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