Метод IMarshal::ReleaseMarshalData (objidlbase.h)
Уничтожает маршалированные пакеты данных.
Синтаксис
HRESULT ReleaseMarshalData(
[in] IStream *pStm
);
Параметры
[in] pStm
Указатель на поток, содержащий пакет данных, который требуется уничтожить.
Возвращаемое значение
Этот метод может возвращать стандартные возвращаемые значения S_OK и E_FAIL, а также любые ошибки доступа к потоку для интерфейса IStream .
Комментарии
Если маршализованный пакет данных объекта не разархиалируется в пространстве клиентских процессов и пакет больше не требуется, клиент вызывает ReleaseMarshalData в реализации IMarshal прокси-сервера, чтобы указать объекту уничтожить пакет данных. Вызов выполняется в функции CoReleaseMarshalData . Пакет данных служит дополнительной ссылкой на объект , а освобождение данных аналогично освобождению указателя интерфейса путем вызова Release.
Если маршалированные пакеты данных каким-то образом не поступают в клиентский процесс или ReleaseMarshalData не удалось повторно создать на прокси-сервере, COM может вызвать этот метод для самого объекта.
Примечания к вызывающим абонентам
Вы будете редко, если когда-либо иметь возможность вызывать этот метод самостоятельно. Исключением может быть реализация IMarshal в фабрике классов для объекта класса, в котором также реализуется IMarshal. В этом случае, если вы маршалировали объект в таблицу, в которой он мог быть извлечен несколькими клиентами, вы можете в рамках процедуры размежевать метод ReleaseMarshalData , чтобы освободить пакет данных для каждого прокси-сервера.Примечания для разработчиков
Если в реализации хранятся сведения о состоянии маршалированных пакетов данных, этот метод можно использовать для освобождения сведений о состоянии, связанных с пакетом данных, представленным pStm. Реализация также должна размещать указатель поиска в потоке после последнего байта данных.Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Профессиональная [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows 2000 Server [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | objidlbase.h (включая ObjIdl.h) |