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

Маршалирует указатель интерфейса из одного потока в другой в том же процессе.

Синтаксис

HRESULT CoMarshalInterThreadInterfaceInStream(
  [in]  REFIID    riid,
  [in]  LPUNKNOWN pUnk,
  [out] LPSTREAM  *ppStm
);

Параметры

[in] riid

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

[in] pUnk

Указатель на интерфейс для маршалинга, который должен быть производным от IUnknown. Этот параметр может принимать значение NULL.

[out] ppStm

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

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

Эта функция может возвращать стандартные возвращаемые значения E_OUTOFMEMORY и S_OK.

Комментарии

Функция CoMarshalInterThreadInterfaceInStream позволяет объекту легко и надежно маршалировать указатель интерфейса на другой поток в том же процессе. Поток, возвращаемый в параметре ppStm , гарантированно будет вести себя правильно, когда клиент, работающий в принимающем потоке, пытается отменить маркер указателя. Затем клиент может вызвать CoGetInterfaceAndReleaseStream , чтобы отменить маршал указателя интерфейса и освободить объект потока.

Функция CoMarshalInterThreadInterfaceInStream выполняет следующие задачи:

  1. Создает объект потока.
  2. Передает IStream объекта потока указатель на CoMarshalInterface.
  3. Возвращает указатель IStream на вызывающий объект.

Требования

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

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

CoGetInterfaceAndReleaseStream