CoMarshalInterface(3w)

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.

  1. 4.0
  2. 5.0
  3. 6.0
  4. 7

From libwine-dev 1.4.1-4 in Debian 7 (Wheezy). Parsed by carta from the page's man source.