CoMarshalInterface.3w

Langue: en

Version: Jun 2009 (debian - 07/07/09)

Section: 3 (Bibliothèques de fonctions)

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 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.

SEE ALSO

CoUnmarshalInterface(), CoReleaseMarshalData(3w).

IMPLEMENTATION

Defined in "objbase.h".

Implemented in "dlls/ole32/marshal.c".

Debug channel "ole".