Метод 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.
Возвращаемое значение
Этот метод может возвращать следующие значения.
Код возврата | Описание |
---|---|
|
Метод завершился успешно. |
|
Произошла непредвиденная ошибка. |
Комментарии
При маршалинге имеются версии [In] параметров [in, out], а версии [out] не определены. При маршалинге параметров [out] значения являются допустимыми.
Если этот метод возвращает ошибку, вызывающий объект не сможет ее очистить. Были освобождены такие ресурсы, как память, временно выделенная во время попытки маршалинга.
Требования
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | callobj.h |