Функция 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.
Комментарии
Примечание по безопасности. Вызов этого метода с недоверенными данными представляет угрозу безопасности. Вызывайте этот метод только для надежных данных.
- Вызывает CoUnmarshalInterface , чтобы отменить удаление указателя интерфейса, ранее переданного в вызове CoMarshalInterThreadInterfaceInStream.
- Освобождает указатель потока. Даже если размежевание завершается ошибкой, поток по-прежнему освобождается, так как нет эффективного способа восстановления после сбоя такого рода.
Требования
Минимальная версия клиента | Windows 2000 Профессиональная [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows 2000 Server [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | combaseapi.h (включая Objbase.h) |
Библиотека | Ole32.lib |
DLL | Ole32.dll |