Поделиться через


Метод ICallFrame::Marshal (callobj.h)

Маршалирует кадр вызова, превратив доступные данные в плоский буфер, не нарушая его.

Синтаксис

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

Параметры

[in] pmshlContext

Указатель на структуру CALLFRAME_MARSHALCONTEXT , содержащую контекстную информацию о том, как выполняется маршалинг.

[in] mshlflags

Флаг, указывающий, должны ли данные для маршалинга передаваться обратно в клиентский процесс (в обычном случае) или записываться в глобальную таблицу, где их могут извлечь несколько клиентов. Возможные значения — из перечисления MSHLFLAGS .

[in] pBuffer

Указатель на буфер, в который помещаются маршалированные данные.

[in] cbBuffer

Размер буфера в байтах.

[out] pcbBufferUsed

Получает размер фактически использованного буфера. Этот параметр является необязательным.

[out] pdataRep

Получает представление данных NDR, с помощью которого были маршалированы данные. Этот параметр является необязательным. Дополнительные сведения см. в разделе IRpcChannelBuffer::GetBuffer.

[out] prpcFlags

Получает флаг RPC, связанный с вызовом. Этот параметр является необязательным. Дополнительные сведения см. в разделе IRpcChannelBuffer::GetBuffer.

Возвращаемое значение

Этот метод может возвращать следующие значения.

Код возврата Описание
S_OK
Метод завершился успешно.
E_UNEXPECTED
Произошла непредвиденная ошибка.

Комментарии

При маршалинге имеются версии [In] параметров [in, out], а версии [out] не определены. При маршалинге параметров [out] значения являются допустимыми.

Если этот метод возвращает ошибку, вызывающий объект не сможет ее очистить. Были освобождены такие ресурсы, как память, временно выделенная во время попытки маршалинга.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header callobj.h

См. также раздел

ICallFrame