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.
HRESULT CoGetInterfaceAndReleaseStream( [in] LPSTREAM pStm, [in] REFIID iid, [out] LPVOID *ppv );
A pointer to the IStream interface on the stream to be unmarshaled.
A reference to the identifier of the interface requested from the unmarshaled object.
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.
This function can return the standard return values S_OK and E_INVALIDARG, as well as any of the values returned by CoUnmarshalInterface.
Security Note: Calling this method with untrusted data is a security risk. Call this method only with trusted data.
- 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.
|Minimum supported client||Windows 2000 Professional [desktop apps | UWP apps]|
|Minimum supported server||Windows 2000 Server [desktop apps | UWP apps]|
|Header||combaseapi.h (include Objbase.h)|