CoMarshalHresult function (combaseapi.h)

Marshals an HRESULT to the specified stream, from which it can be unmarshaled using the CoUnmarshalHresult function.


HRESULT CoMarshalHresult(
  [in] LPSTREAM pstm,
  [in] HRESULT  hresult


[in] pstm

A pointer to the marshaling stream. See IStream.

[in] hresult

The HRESULT in the originating process.

Return value

This function can return the standard return values E_OUTOFMEMORY and E_UNEXPECTED, as well as the following values.

Return code Description
The HRESULT was marshaled successfully.
A bad pointer was specified for pstm.
The medium is full.


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, you must call this function. In other circumstances, you will have no need to call this function.

This function performs the following tasks:

  1. Writes an HRESULT to a stream.
  2. Returns an IStream pointer to that stream.


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

See also