Nikolay Sivov : combase: Move CoMarshalInterThreadInterfaceInStream().

Alexandre Julliard julliard at winehq.org
Wed Aug 12 16:28:39 CDT 2020


Module: wine
Branch: master
Commit: 0bcbc4693e0ba0fff8a7a69abd0510d03bab5fd3
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=0bcbc4693e0ba0fff8a7a69abd0510d03bab5fd3

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Wed Aug 12 11:12:28 2020 +0300

combase: Move CoMarshalInterThreadInterfaceInStream().

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/combase/combase.spec |  2 +-
 dlls/combase/marshal.c    | 29 +++++++++++++++++++++++++++++
 dlls/ole32/marshal.c      | 45 ---------------------------------------------
 dlls/ole32/ole32.spec     |  2 +-
 4 files changed, 31 insertions(+), 47 deletions(-)

diff --git a/dlls/combase/combase.spec b/dlls/combase/combase.spec
index 8c471f5ef6..5ee52d950e 100644
--- a/dlls/combase/combase.spec
+++ b/dlls/combase/combase.spec
@@ -129,7 +129,7 @@
 @ stdcall CoIsHandlerConnected(ptr) ole32.CoIsHandlerConnected
 @ stdcall CoLockObjectExternal(ptr long long) ole32.CoLockObjectExternal
 @ stdcall CoMarshalHresult(ptr long)
-@ stdcall CoMarshalInterThreadInterfaceInStream(ptr ptr ptr) ole32.CoMarshalInterThreadInterfaceInStream
+@ stdcall CoMarshalInterThreadInterfaceInStream(ptr ptr ptr)
 @ stdcall CoMarshalInterface(ptr ptr ptr long ptr long) ole32.CoMarshalInterface
 @ stub CoPopServiceDomain
 @ stub CoPushServiceDomain
diff --git a/dlls/combase/marshal.c b/dlls/combase/marshal.c
index 54151e21c8..fe4c2f3adf 100644
--- a/dlls/combase/marshal.c
+++ b/dlls/combase/marshal.c
@@ -55,3 +55,32 @@ HRESULT WINAPI CoGetInterfaceAndReleaseStream(IStream *stream, REFIID riid, void
     IStream_Release(stream);
     return hr;
 }
+
+/***********************************************************************
+ *            CoMarshalInterThreadInterfaceInStream    (combase.@)
+ */
+HRESULT WINAPI CoMarshalInterThreadInterfaceInStream(REFIID riid, IUnknown *unk, IStream **stream)
+{
+    ULARGE_INTEGER xpos;
+    LARGE_INTEGER seekto;
+    HRESULT hr;
+
+    TRACE("%s, %p, %p\n", debugstr_guid(riid), unk, stream);
+
+    hr = CreateStreamOnHGlobal(NULL, TRUE, stream);
+    if (FAILED(hr)) return hr;
+    hr = CoMarshalInterface(*stream, riid, unk, MSHCTX_INPROC, NULL, MSHLFLAGS_NORMAL);
+
+    if (SUCCEEDED(hr))
+    {
+        memset(&seekto, 0, sizeof(seekto));
+        IStream_Seek(*stream, seekto, STREAM_SEEK_SET, &xpos);
+    }
+    else
+    {
+        IStream_Release(*stream);
+        *stream = NULL;
+    }
+
+    return hr;
+}
diff --git a/dlls/ole32/marshal.c b/dlls/ole32/marshal.c
index 51db5a7e69..cf1e55babe 100644
--- a/dlls/ole32/marshal.c
+++ b/dlls/ole32/marshal.c
@@ -2079,51 +2079,6 @@ HRESULT WINAPI CoReleaseMarshalData(IStream *pStream)
     return hr;
 }
 
-
-/***********************************************************************
- *		CoMarshalInterThreadInterfaceInStream	[OLE32.@]
- *
- * Marshal an interface across threads in the same process.
- *
- * PARAMS
- *  riid  [I] Identifier of the interface to be marshalled.
- *  pUnk  [I] Pointer to IUnknown-derived interface that will be marshalled.
- *  ppStm [O] Pointer to IStream object that is created and then used to store the marshalled interface.
- *
- * RETURNS
- *  Success: S_OK
- *  Failure: E_OUTOFMEMORY and other COM error codes
- *
- * SEE ALSO
- *   CoMarshalInterface(), CoUnmarshalInterface() and CoGetInterfaceAndReleaseStream()
- */
-HRESULT WINAPI CoMarshalInterThreadInterfaceInStream(
-    REFIID riid, LPUNKNOWN pUnk, LPSTREAM * ppStm)
-{
-    ULARGE_INTEGER	xpos;
-    LARGE_INTEGER		seekto;
-    HRESULT		hres;
-
-    TRACE("(%s, %p, %p)\n",debugstr_guid(riid), pUnk, ppStm);
-
-    hres = CreateStreamOnHGlobal(NULL, TRUE, ppStm);
-    if (FAILED(hres)) return hres;
-    hres = CoMarshalInterface(*ppStm, riid, pUnk, MSHCTX_INPROC, NULL, MSHLFLAGS_NORMAL);
-
-    if (SUCCEEDED(hres))
-    {
-        memset(&seekto, 0, sizeof(seekto));
-        IStream_Seek(*ppStm, seekto, STREAM_SEEK_SET, &xpos);
-    }
-    else
-    {
-        IStream_Release(*ppStm);
-        *ppStm = NULL;
-    }
-
-    return hres;
-}
-
 static HRESULT WINAPI StdMarshalCF_QueryInterface(LPCLASSFACTORY iface,
                                                   REFIID riid, LPVOID *ppv)
 {
diff --git a/dlls/ole32/ole32.spec b/dlls/ole32/ole32.spec
index d5e5607e03..1587f92638 100644
--- a/dlls/ole32/ole32.spec
+++ b/dlls/ole32/ole32.spec
@@ -58,7 +58,7 @@
 @ stdcall CoLoadLibrary(wstr long)
 @ stdcall CoLockObjectExternal(ptr long long)
 @ stdcall CoMarshalHresult(ptr long) combase.CoMarshalHresult
-@ stdcall CoMarshalInterThreadInterfaceInStream(ptr ptr ptr)
+@ stdcall CoMarshalInterThreadInterfaceInStream(ptr ptr ptr) combase.CoMarshalInterThreadInterfaceInStream
 @ stdcall CoMarshalInterface(ptr ptr ptr long ptr long)
 @ stub CoQueryAuthenticationServices
 @ stdcall CoQueryClientBlanket(ptr ptr ptr ptr ptr ptr ptr) combase.CoQueryClientBlanket




More information about the wine-cvs mailing list