Функция 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 выполняет следующие задачи:
- Создает объект потока.
- Передает IStream объекта потока указатель на CoMarshalInterface.
- Возвращает указатель IStream на вызывающий объект.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Профессиональная [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows 2000 Server [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | combaseapi.h (включая Objbase.h) |
Библиотека | Ole32.lib |
DLL | Ole32.dll |