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