Метод IMarshal::ReleaseMarshalData (objidl.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 | objidl.h (включая ObjIdl.h) |