次の方法で共有


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
1 つ以上のパラメーターが無効です。

注釈

インターフェイスがグローバル インターフェイス テーブルに登録されると、アパートメントは、指定された Cookie を使用して GetInterfaceFromGlobal メソッドを呼び出すことによって、このインターフェイスへのポインターを取得できます。 インターフェイスへのこのポインターは、呼び出し元のアパートメントでは使用できますが、プロセス内の他のアパートメントでは使用できません。

アプリケーションは、 IGlobalInterfaceTable::RevokeInterfaceFromGlobal の呼び出し中にグローバル変数へのアクセスを調整する役割を担います。 つまり、アプリケーションでは、別のスレッドが同じ Cookie で GetInterfaceFromGlobal を呼び出している間に、1 つのスレッドが RevokeInterfaceFromGlobal を呼び出さないことを確認する必要があります。 同じ Cookie に対する GetInterfaceFromGlobal への複数の呼び出しが許可されます。

GetInterfaceFromGlobal メソッドは、ppv パラメーターで取得したポインターに対して AddRef を呼び出します。 このポインターで Release を呼び出すのは呼び出し元の責任です。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー objidl.h (ObjIdl.h を含む)

こちらもご覧ください

IGlobalInterfaceTable