Método ICallFrame::Marshal (callobj.h)

Calcula las referencias del marco de llamada convirtiendo sus datos accesibles en un búfer plano sin alterar el marco.

Sintaxis

HRESULT Marshal(
  [in]  CALLFRAME_MARSHALCONTEXT *pmshlContext,
  [in]  MSHLFLAGS                mshlflags,
  [in]  PVOID                    pBuffer,
  [in]  ULONG                    cbBuffer,
  [out] ULONG                    *pcbBufferUsed,
  [out] RPCOLEDATAREP            *pdataRep,
  [out] ULONG                    *prpcFlags
);

Parámetros

[in] pmshlContext

Puntero a la estructura CALLFRAME_MARSHALCONTEXT que contiene información de contexto sobre cómo se lleva a cabo la serialización.

[in] mshlflags

Marca que indica si los datos que se van a serializar se van a transmitir de vuelta al proceso de cliente (el caso normal) o se escriben en una tabla global, donde varios clientes pueden recuperarlos. Los valores posibles proceden de la enumeración MSHLFLAGS .

[in] pBuffer

Puntero al búfer en el que se van a colocar los datos serializado.

[in] cbBuffer

Tamaño del búfer, en bytes.

[out] pcbBufferUsed

Recibe el tamaño del búfer que se usó realmente. Este parámetro es opcional.

[out] pdataRep

Recibe la representación de datos NDR con la que se serializaron los datos. Este parámetro es opcional. Para obtener más información, vea IRpcChannelBuffer::GetBuffer.

[out] prpcFlags

Recibe una marca RPC asociada a la llamada. Este parámetro es opcional. Para obtener más información, vea IRpcChannelBuffer::GetBuffer.

Valor devuelto

Este método puede devolver los valores siguientes.

Código devuelto Descripción
S_OK
El método se completó correctamente.
E_UNEXPECTED
Se produjo un error inesperado.

Comentarios

Al serializar las versiones [In] de los parámetros [in, out] están presentes y las versiones [out] no están definidas. Al serializar los parámetros [out] los valores son válidos.

Si este método devuelve un error, el autor de la llamada no podrá limpiarlo. Se han liberado recursos como la memoria asignada de forma transitoria durante el intento de serialización.

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado callobj.h

Consulte también

ICallFrame