CoMarshalInterface (OLE32.@)
HRESULT CoMarshalInterface ( IStream* pStream, REFIID riid, IUnknown* pUnk, DWORD dwDestContext, void* pvDestContext, DWORD mshlFlags )
Marshals an interface into a stream so that the object can then be unmarshaled from another COM apartment and used remotely.
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. |
Success: S_OK.
Failure: HRESULT code.
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 must be called in order to release the resources used in the marshaling.
CoUnmarshalInterface, CoReleaseMarshalData.
Defined in "objbase.h".
Implemented in "dlls/ole32/marshal.c". source.winehq.org/source/dlls/ole32/marshal.c
Debug channel "ole".
Copyright © 2008 The Wine Project. All trademarks are the property of their respective owners. Visit WineHQ for license details. Generated Jul 2008.