CoMarshalInterface3w
Usage
HRESULT CoMarshalInterface
(
IStream* pStream,
REFIID riid,
IUnknown* pUnk,
DWORD dwDestContext,
void* pvDestContext,
DWORD mshlFlags
)
Overview
Marshals an interface into a stream so that the object can then be unmarshaled from another COM apartment and used remotely.
Params
pStream [In] Stream the object will be marshaled into.
riid [In] Identifier of the interface to marshal.
pUnk [In] Pointer to the object to marshal.
dwDestContext [In] Destination. Used to enable or disable optimizations.
pvDestContext [In] Reserved. Must be NULL.
mshlFlags [In] Flags that affect the marshaling. See notes.
Returns
Success: S_OK.
Failure: HRESULT code.
Notes
The mshlFlags parameter can take one or more of the following flags:
MSHLFLAGS_NORMAL - Unmarshal once, releases stub on last proxy release.
MSHLFLAGS_TABLESTRONG - Unmarshal many, release when CoReleaseMarshalData() called.
MSHLFLAGS_TABLEWEAK - Unmarshal many, releases stub on last proxy release.
MSHLFLAGS_NOPING - No automatic garbage collection (and so reduces network traffic).
If a marshaled object is not unmarshaled, then CoReleaseMarshalData(3w) must be called in order to release the resources used in the marshaling.
Implementation
Declared in "objbase.h".
Implemented in "dlls/ole32/marshal.c".
Debug channel "ole".
Releases
4 releases since Debian 4.0 (Etch); the text changed 3 times.