ICallUnmarshal::Unmarshal method (callobj.h)

Turns a marshaled packet of data back into an activation record that can then be invoked or manipulated in some other way.

Syntax

HRESULT Unmarshal(
  [in]  ULONG                    iMethod,
  [in]  PVOID                    pBuffer,
  [in]  ULONG                    cbBuffer,
  [in]  BOOL                     fForceBufferCopy,
  [in]  RPCOLEDATAREP            dataRep,
  [in]  CALLFRAME_MARSHALCONTEXT *pcontext,
  [out] ULONG                    *pcbUnmarshalled,
  [out] ICallFrame               **ppFrame
);

Parameters

[in] iMethod

The method number. If this parameter is -1, the method number will be determined from the data to be unmarshaled.

[in] pBuffer

A pointer to the buffer from which the activation record is to be created.

[in] cbBuffer

The size of the buffer, in bytes.

[in] fForceBufferCopy

Indicates whether the buffer should be copied and retained (nonzero) or the buffer will remain valid (zero).

[in] dataRep

The data representation with which the data was marshaled.

[in] pcontext

A pointer to a CALLFRAME_MARSHALCONTEXT structure that contains information about the context in which unmarshaling is to be carried out.

[out] pcbUnmarshalled

A pointer to the number of bytes that were successfully unmarshaled.

[out] ppFrame

A call frame bound to the umarshaled invocation.

Return value

This method can return the following values.

Return code Description
S_OK
The method completed successfully.
E_UNEXPECTED
An unexpected error has occurred.

Requirements

Requirement Value
Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Target Platform Windows
Header callobj.h

See also

ICallUnmarshal