Метод 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)

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

CoReleaseMarshalData

ИМаршал