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


Метод 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

Получает количество байтов, которые были успешно удалены. Этот параметр возвращается даже в ситуациях ошибок. Этот параметр является необязательным.

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

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

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

Комментарии

При отменемаршалинга версии [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

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

ICallFrame