次の方法で共有


BindMoniker 関数 (objbase.h)

モニカーを使用してオブジェクトを検索し、非アクティブな場合はオブジェクトをアクティブにし、そのオブジェクト上の指定されたインターフェイスへのポインターを取得します。

構文

HRESULT BindMoniker(
  [in]  LPMONIKER pmk,
  [in]  DWORD     grfOpt,
  [in]  REFIID    iidResult,
  [out] LPVOID    *ppvResult
);

パラメーター

[in] pmk

オブジェクトのモニカーへのポインター。 「IMoniker」を参照してください。

[in] grfOpt

このパラメーターは将来使用するために予約されており、0 である必要があります。

[in] iidResult

オブジェクトとの通信に使用するインターフェイス識別子。

[out] ppvResult

iidResult で要求されたインターフェイス ポインターを受け取るポインター変数のアドレス。 正常に戻ると、*ppvResult には要求されたインターフェイス ポインターが含まれます。 エラーが発生した場合、*ppvResultNULL です。 呼び出しが成功した場合、呼び出し元は、オブジェクトの IUnknown::Release メソッドの呼び出しでポインターを解放する役割を担います。

戻り値

この関数は、次のエラー コード、または IMoniker::BindToObject メソッドによって返されるエラー値のいずれかを返すことができます。

リターン コード 説明
S_OK
オブジェクトが見つかり、必要に応じてアクティブ化され、要求されたインターフェイスへのポインターが返されました。
MK_E_NOOBJECT
モニカー オブジェクトが識別したオブジェクトが見つかりませんでした。

注釈

BindMoniker は、オブジェクトのモニカーを持つクライアントが、そのオブジェクトのいずれかのインターフェイスへのポインターを取得するための便利な方法として提供されるヘルパー関数です。 BindMoniker は 、次の呼び出しをパッケージします。

CreateBindCtx(0, &pbc);
pmk->BindToObject(pbc, NULL, riid, ppvObj);

CreateBindCtx は、IBindContext のシステム実装をサポートするバインド コンテキスト オブジェクトを作成します。 pmk パラメーターは、実際にはモニカー オブジェクトの IMoniker 実装へのポインターです。 この実装の BindToObject メソッドは、要求されたインターフェイス ポインターへのポインターを提供します。

複数のモニカーを連続してバインドし、それらのモニカーが同じオブジェクトをアクティブにすることがわかっている場合は、 IMoniker::BindToObject メソッドを直接呼び出す方が効率的な場合があります。これにより、すべてのモニカーに同じバインド コンテキスト オブジェクトを使用できます。 詳細については、 IBindCtx インターフェイスを参照してください。

ドキュメントにリンクされたオブジェクトを含めることができるようにするコンテナー アプリケーションは、通常 、IMoniker メソッドを直接呼び出さない特別なクライアントです。 代わりに、クライアントは IOleLink インターフェイスを介してリンクされたオブジェクトを操作します。 既定のハンドラーは、このインターフェイスを実装し、必要に応じて適切な IMoniker メソッドを呼び出します。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー objbase.h
Library Ole32.lib
[DLL] Ole32.dll
API セット ext-ms-win-com-ole32-l1-1-5 (Windows 10 バージョン 10.0.15063 で導入)

こちらもご覧ください

CreateBindCtx

IMoniker::BindToObject