Метод ICallFrame::Unmarshal (callobj.h)
Отменяет сортировку пакета данных, содержащего ранее маршалированные параметры [out] вызова в эту уже существующую запись активации.
Синтаксис
HRESULT Unmarshal(
[in] PVOID pBuffer,
[in] ULONG cbBuffer,
[in] RPCOLEDATAREP dataRep,
[in] CALLFRAME_MARSHALCONTEXT *pcontext,
[out] ULONG *pcbUnmarshalled
);
Параметры
[in] pBuffer
Указатель на буфер, содержащий маршалированные значения [out].
[in] cbBuffer
Размер буфера в байтах.
[in] dataRep
Представление данных NDR, с помощью которого были маршалированы данные. Дополнительные сведения см. в разделе IRpcChannelBuffer::GetBuffer.
[in] pcontext
Указатель на структуру CALLFRAME_MARSHALCONTEXT , содержащую контекстную информацию о том, как осуществляется отменамаршалинга.
[out] pcbUnmarshalled
Получает количество байтов, которые были успешно удалены. Этот параметр возвращается даже в ситуациях ошибок. Этот параметр является необязательным.
Возвращаемое значение
Этот метод может возвращать следующие значения.
Код возврата | Описание |
---|---|
|
Метод завершился успешно. |
|
Произошла непредвиденная ошибка. |
Комментарии
При отменемаршалинга версии [in] параметров [in, out] освобождаются, а указатели интерфейса освобождаются и заменяются их версиями [out]. Для всех параметров [in, out] и [out] всегда будут заданы разумные значения [in], [in, out], [out] значения [out], успешно отменяемые из возвращаемых данных, или значение, явно инициализированное значением NULL. При возврате ошибки вызывающий объект обычно хочет вызвать ICallFrame::Free для очистки значений, не равных NULL.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | callobj.h |