CoMarshalInterface(3w)
NAME
CoMarshalInterface (OLE32.@)
SYNOPSIS
HRESULT CoMarshalInterface ( IStream* pStream, REFIID riid, IUnknown* pUnk, DWORD dwDestContext, void* pvDestContext, DWORD mshlFlags )
DESCRIPTION
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 CoReleaseMarshal
- Data() 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.
SEE ALSO
CoUnmarshalInterface(), CoReleaseMarshalData(3w).
IMPLEMENTATION
Defined in "objbase.h".
Implemented in "build/buildd-wine-unstable_1.1.32-1+b1-amd64-KnxYu0/wine-unstable-1.1.32/build32/dlls/ole32/marshal.c".
- Debug channel "ole".