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


Метод ICallUnmarshal::ReleaseMarshalData (callobj.h)

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

Синтаксис

HRESULT ReleaseMarshalData(
  [in] ULONG                    iMethod,
  [in] PVOID                    pBuffer,
  [in] ULONG                    cbBuffer,
  [in] ULONG                    ibFirstRelease,
  [in] RPCOLEDATAREP            dataRep,
  [in] CALLFRAME_MARSHALCONTEXT *pcontext
);

Параметры

[in] iMethod

Номер метода.

[in] pBuffer

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

[in] cbBuffer

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

[in] ibFirstRelease

Первый байт в освобождаемом буфере. Значение , равное нулю, означает, что указатели интерфейса во всем буфере должны быть освобождены. Идея заключается в том, что маршалированные указатели интерфейса до указанного байта уже были освобождены каким-то другим механизмом.

[in] dataRep

Представление данных, с помощью которого были маршалированы данные.

[in] pcontext

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

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

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

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

Комментарии

Чтобы очистить ресурсы, хранящиеся в маршализованном буфере, необходимо вызвать метод ReleaseMarshalData . Однако если для перечисления MSHLFLAGS задано нормальное состояние, это выполняется автоматически при распаковке.

ReleaseMarshalData можно использовать как для маршалированных параметров, так и для выхода.

Требования

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

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

ICallUnmarshal