Функция CoGetInterfaceAndReleaseStream (combaseapi.h)

Отменяет маршалирование буфера, содержащего указатель интерфейса, и освобождает поток при маршале указателя интерфейса из другого потока в вызывающий поток.

Синтаксис

HRESULT CoGetInterfaceAndReleaseStream(
  [in]  LPSTREAM pStm,
  [in]  REFIID   iid,
  [out] LPVOID   *ppv
);

Параметры

[in] pStm

Указатель на интерфейс IStream в потоке, который требуется отменить.

[in] iid

Ссылка на идентификатор интерфейса, запрошенного из немаршалированного объекта.

[out] ppv

Адрес переменной указателя, которая получает указатель интерфейса, запрошенный в riid. После успешного возврата *ppv содержит запрошенный указатель на немаршализованный интерфейс.

Возвращаемое значение

Эта функция может возвращать стандартные возвращаемые значения S_OK и E_INVALIDARG, а также любые значения, возвращаемые coUnmarshalInterface.

Комментарии

Важно  

Примечание по безопасности. Вызов этого метода с недоверенными данными представляет угрозу безопасности. Вызывайте этот метод только для надежных данных.

 
Функция CoGetInterfaceAndReleaseStream выполняет следующие задачи:
  • Вызывает CoUnmarshalInterface , чтобы отменить удаление указателя интерфейса, ранее переданного в вызове CoMarshalInterThreadInterfaceInStream.
  • Освобождает указатель потока. Даже если размежевание завершается ошибкой, поток по-прежнему освобождается, так как нет эффективного способа восстановления после сбоя такого рода.

Требования

   
Минимальная версия клиента Windows 2000 Профессиональная [классические приложения | Приложения UWP]
Минимальная версия сервера Windows 2000 Server [классические приложения | Приложения UWP]
Целевая платформа Windows
Header combaseapi.h (включая Objbase.h)
Библиотека Ole32.lib
DLL Ole32.dll

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

CoMarshalInterThreadInterfaceInStream

CoUnmarshalInterface