This topic has not yet been rated - Rate this topic

CoGetInterfaceAndReleaseStream function

Applies to: desktop apps | Metro style apps

Unmarshals a buffer containing an interface pointer and releases the stream when an interface pointer has been marshaled from another thread to the calling thread.

Syntax

HRESULT CoGetInterfaceAndReleaseStream(
  __in   LPSTREAM pStm,
  __in   REFIID iid,
  __out  LPVOID *ppv
);

Parameters

pStm [in]

A pointer to the IStream interface on the stream to be unmarshaled.

iid [in]

A reference to the identifier of the interface requested from the unmarshaled object.

ppv [out]

The address of pointer variable that receives the interface pointer requested in riid. Upon successful return, *ppv contains the requested interface pointer to the unmarshaled interface.

Return value

This function can return the standard return values S_OK and E_INVALIDARG, as well as any of the values returned by CoUnmarshalInterface.

Remarks

The CoGetInterfaceAndReleaseStream function performs the following tasks:

  • Calls CoUnmarshalInterface to unmarshal an interface pointer previously passed in a call to CoMarshalInterThreadInterfaceInStream.
  • Releases the stream pointer. Even if the unmarshaling fails, the stream is still released because there is no effective way to recover from a failure of this kind.

Requirements

Minimum supported client

Windows 2000 Professional

Minimum supported server

Windows 2000 Server

Header

Objbase.h

Library

Ole32.lib

DLL

Ole32.dll

See also

CoMarshalInterThreadInterfaceInStream
CoUnmarshalInterface

 

 

Send comments about this topic to Microsoft

Build date: 3/7/2012

Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ