Поделиться через


Метод IGlobalInterfaceTable::GetInterfaceFromGlobal (objidl.h)

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

Синтаксис

HRESULT GetInterfaceFromGlobal(
  [in]  DWORD  dwCookie,
  [in]  REFIID riid,
  [out] void   **ppv
);

Параметры

[in] dwCookie

Идентифицирует интерфейс (и его объект) и извлекается с помощью вызова метода IGlobalInterfaceTable::RegisterInterfaceInGlobal.

[in] riid

IID интерфейса.

[out] ppv

Указатель на указатель для запрошенного интерфейса.

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

Этот метод может возвращать следующие значения.

Код возврата Описание
S_OK
Метод завершился успешно.
E_INVALIDARG
Один или несколько параметров являются недопустимыми.

Комментарии

После регистрации интерфейса в глобальной таблице интерфейсов квартира может получить указатель на этот интерфейс, вызвав метод GetInterfaceFromGlobal с предоставленным файлом cookie. Этот указатель на интерфейс можно использовать в вызывающей квартире, но не в других квартирах в процессе.

Приложение отвечает за координацию доступа к глобальной переменной во время вызовов IGlobalInterfaceTable::RevokeInterfaceFromGlobal. То есть приложение должно гарантировать, что один поток не вызывает RevokeInterfaceFromGlobal , а другой поток вызывает GetInterfaceFromGlobal с тем же файлом cookie. Разрешено несколько вызовов GetInterfaceFromGlobal для одного файла cookie.

Метод GetInterfaceFromGlobal вызывает AddRef для указателя, полученного в параметре ppv . Вызывающий объект несет ответственность за вызов release для этого указателя.

Требования

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

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

IGlobalInterfaceTable