Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

CoGetInterfaceAndReleaseStream function (combaseapi.h)

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

[in] pStm

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

[in] iid

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

[out] ppv

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

Important  

Security Note: Calling this method with untrusted data is a security risk. Call this method only with trusted data.

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

Requirement Value
Minimum supported client Windows 2000 Professional [desktop apps | UWP apps]
Minimum supported server Windows 2000 Server [desktop apps | UWP apps]
Target Platform Windows
Header combaseapi.h (include Objbase.h)
Library Ole32.lib
DLL Ole32.dll

See also

CoMarshalInterThreadInterfaceInStream

CoUnmarshalInterface


Feedback

Was this page helpful?

Additional resources