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