This function marshals an HRESULT to the specified stream, from which it can be unmarshaled using the CoUnmarshalHresult function.
An HRESULT is process-specific, so an HRESULT that is valid in one process might not be valid in another.
If you are writing your own implementation of IMarshal and need to marshal an HRESULT from one process to another, either as a parameter or a return code, your application must call this function. In other circumstances, the application does not need to call this function.
This function performs the following tasks:
Writes an HRESULT to a stream.
Returns an IStream pointer to that stream.
To determine whether the platform supports this function, see Determining Supported COM APIs.