ICallFrame::Unmarshal method
Unmarshals a packet of data containing the previously marshaled [out] parameters of a call into this already existing activation record.
Syntax
HRESULT Unmarshal( [in] PVOID pBuffer, [in] ULONG cbBuffer, [in] RPCOLEDATAREP dataRep, [in] CALLFRAME_MARSHALCONTEXT *pcontext, [out] ULONG *pcbUnmarshalled );
Parameters
- pBuffer [in]
-
A pointer to the buffer containing the marshaled [out] values.
- cbBuffer [in]
-
The size of the buffer, in bytes.
- dataRep [in]
-
The NDR data representation with which the data was marshaled. For more information, see IRpcChannelBuffer::GetBuffer.
- pcontext [in]
-
A pointer to the CALLFRAME_MARSHALCONTEXT structure containing context information about how unmarshalling is carried out.
- pcbUnmarshalled [out]
-
Receives the number of bytes that were successfully unmarshaled. This parameter is returned even in error situations. This parameter is optional.
Return value
This method can return the following values.
| Return code | Description |
|---|---|
|
The method completed successfully. |
|
An unexpected error has occurred. |
Remarks
When unmarshalling, the [in] versions of [in, out] parameters are freed and interface pointers are released and replaced with there [out] versions. All the [in, out] and [out] parameters will always be set to reasonable [in], [in, out] values, [out] values successfully unmarshaled from the returned data, or a value explicitly initialized to NULL. On failure return, the caller will typically want to call ICallFrame::Free in order to clean up the values that are not NULL.
Requirements
|
Minimum supported client |
Windows 2000 Professional [desktop apps only] |
|---|---|
|
Minimum supported server |
Windows 2000 Server [desktop apps only] |
|
Header |
|
|
IDL |
|
|
IID |
IID_ICallFrame is defined as D573B4B0-894E-11d2-B8B6-00C04FB9618A |
See also