次の方法で共有


BIND_OPTS 構造体 (objidl.h)

モニカー バインド操作中に使用されるパラメーターが含まれます。

BIND_OPTS2またはBIND_OPTS3構造体は、BIND_OPTS構造体の代わりに使用できます。

構文

typedef struct tagBIND_OPTS {
  DWORD cbStruct;
  DWORD grfFlags;
  DWORD grfMode;
  DWORD dwTickCountDeadline;
} BIND_OPTS, *LPBIND_OPTS;

メンバー

cbStruct

この構造体のサイズ (バイト単位)。

grfFlags

モニカー バインド操作の側面を制御するフラグ。 この値は、 BIND_FLAGS 列挙のビット フラグの任意の組み合わせです。 CreateBindCtx 関数は、このメンバーを 0 に初期化します。

grfMode

モニカーが識別するオブジェクトを格納しているファイルを開くときに使用するフラグ。 使用できる値は STGM 定数です。 バインド操作では、ファイルの読み込み時に IPersistFile::Load の呼び出しでこれらのフラグが使用されます。 オブジェクトが既に実行されている場合、これらのフラグはバインド操作によって無視されます。 CreateBindCtx 関数は、このフィールドを初期化してSTGM_READWRITEします。

dwTickCountDeadline

呼び出し元がバインド操作を完了するクロック時間 (ミリ秒単位)。 このメンバーを使用すると、速度が最も重要な場合に、呼び出し元が操作の実行時間を制限できます。 値 0 は、期限がないことを示します。 ほとんどの場合、呼び出し元は IMoniker::GetTimeOfLastChange メソッドを呼び出すときにこの機能を使用しますが、他の操作にも便利に適用できます。 CreateBindCtx 関数は、このフィールドを 0 に初期化します。

一般的な期限では、数百ミリ秒の実行が可能です。 この期限は推奨事項であり、要件ではありません。ただし、期限を大幅に超える操作を行うと、エンド ユーザーに遅延が発生する可能性があります。 各モニカーの実装では、期限までに操作を完了するか、エラー MK_E_EXCEEDEDDEADLINEで失敗する必要があります。

必要な 1 つ以上のオブジェクトが実行されていないためにバインド操作が期限を超えた場合、モニカーの実装では 、IBindCtx::RegisterObjectParam を使用してバインド コンテキストで担当するオブジェクトを登録する必要があります。 オブジェクトは、"ExceededDeadline"、"ExceededDeadline1"、"ExceededDeadline2" などのパラメーター名で登録する必要があります。 呼び出し元が後で実行中のオブジェクト テーブルで オブジェクトを検出した場合、呼び出し元はバインド操作を再試行できます。

GetTickCount 関数は、システムの起動後のミリ秒数を示し、2^31 ミリ秒後に 0 に折り返します。 そのため、呼び出し元は誤ってゼロ値を渡さないように注意する必要があります (期限がないことを示します)。モニカーの実装では、クロック ラッピングの問題に注意する必要があります。

注釈

BIND_OPTS構造体はバインド コンテキストに格納されます。バインド中に複合モニカーの各コンポーネントで同じバインド コンテキストが使用され、同じパラメーターを複合モニカーのすべてのコンポーネントに渡すことができます。 バインド コンテキストの詳細については、「 IBindCtx 」を参照してください。

モニカー クライアント (モニカーを使用してオブジェクトへのインターフェイス ポインターを取得する) は、通常、この構造体のメンバーの値を指定する必要はありません。 CreateBindCtx 関数は、ほとんどの状況に適した既定値に設定されたバインド オプションを使用してバインド コンテキストを作成します。BindMoniker 関数は、モニカーのバインドに使用するバインド コンテキストを作成するときに同じことを行います。 これらのバインド オプションの値を変更する場合は、 BIND_OPTS 構造体を IBindCtx::SetBindOptions メソッドに渡します。 モニカーの実装者は、IBindCtx::GetBindOptions メソッドにBIND_OPTS構造体を渡して、これらのバインド オプションの値を取得できます。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
Header objidl.h

こちらもご覧ください

CreateBindCtx

Ibindctx

Imoniker