CreateBindCtx 関数 (objbase.h)

IBindCtx (バインド コンテキスト オブジェクト) の実装へのポインターを返します。 このオブジェクトは、特定のモニカー バインディング操作に関する情報を格納します。

構文

HRESULT CreateBindCtx(
  [in]  DWORD reserved,
  [out] LPBC  *ppbc
);

パラメーター

[in] reserved

このパラメーターは予約されており、0 である必要があります。

[out] ppbc

新しいバインド コンテキスト オブジェクトへのインターフェイス ポインターを受け取る IBindCtx* ポインター変数のアドレス。 関数が成功すると、呼び出し元はバインド コンテキストで Release を呼び出す役割を担います。 バインド コンテキストの NULL 値は、エラーが発生したことを示します。

戻り値

この関数は、E_OUTOFMEMORYおよびS_OK標準戻り値を返すことができます。

注釈

CreateBindCtx は、次の手順のように、モニカーをバインドするプロセス (モニカーを介して識別することによってインターフェイスを見つけてポインターを取得する) で最も一般的に使用されます。

  1. CreateBindCtx 関数を呼び出して、バインド コンテキストへのポインターを取得します。
  2. モニカーで IMoniker::BindToObject メソッドを呼び出し、モニカーが参照するオブジェクトへのインターフェイス ポインターを取得します。
  3. バインド コンテキストを解放します。
  4. インターフェイス ポインターを使用します。
  5. インターフェイス ポインターを解放します。
次のコード フラグメントは、これらの手順を示しています。
// pMnk is an IMoniker * that points to a previously acquired moniker 
IInterface *pInterface; 
IBindCtx *pbc; 
 
CreateBindCtx( 0, &pbc ); 
pMnk->BindToObject( pbc, NULL, IID_IInterface, &pInterface ); 
pbc->Release(); 

// pInterface now points to the object; safe to use pInterface 
pInterface->Release(); 

バインド コンテキストは、IMoniker::BindToObject 以外の IMoniker インターフェイスの他のメソッドや MkParseDisplayName 関数でも使用されます。

バインド コンテキストは、バインド操作中にバインドされたオブジェクトへの参照を保持し、バインド コンテキストが解放されるまで、バインドされたオブジェクトはアクティブなまま (オブジェクトのサーバーの実行を維持) します。 後続の操作を同じオブジェクトにバインドするときにバインド コンテキストを再利用すると、パフォーマンスが向上する可能性があります。 ただし、オブジェクトを不必要にアクティブ化したままにしておく可能性があるため、バインド コンテキストはできるだけ早く解放する必要があります。

バインド コンテキストには 、バインド 操作のすべてのステップに適用されるパラメーターを含むBIND_OPTS構造体が含まれています。 CreateBindCtx を使用してバインド コンテキストを作成すると、BIND_OPTS構造体のフィールドは次のように初期化されます。

cbStruct = sizeof(BIND_OPTS) 
grfFlags = 0 
grfMode = STGM_READWRITE 
dwTickCountDeadline = 0

IBindCtx::SetBindOptions メソッドを呼び出して、これらの既定値を変更できます。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー objbase.h
Library Ole32.lib
[DLL] Ole32.dll

こちらもご覧ください

Ibindctx

Imoniker

MkParseDisplayName