次の方法で共有


BIND_OPTS2構造体 (objidl.h)

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

構文

typedef struct tagBIND_OPTS2 {
  DWORD        cbStruct;
  DWORD        grfFlags;
  DWORD        grfMode;
  DWORD        dwTickCountDeadline;
  DWORD        dwTrackFlags;
  DWORD        dwClassContext;
  LCID         locale;
  COSERVERINFO *pServerInfo;
} BIND_OPTS2, *LPBIND_OPTS2;

メンバー

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 に折り返されます。 そのため、呼び出し元は、誤ってゼロ値 (期限がないことを示す) を渡さないように注意する必要があります。モニカーの実装では、クロック ラッピングの問題に注意する必要があります。

dwTrackFlags

モニカーは、リンク追跡中にこの値を使用できます。 モニカーが参照している元の永続化されたデータが移動された場合、モニカーは、何らかの適切なメカニズムを使用して元のデータを検索することで、リンクの再確立を試みることができます。 このメンバーは、リンクを解決する方法に関する追加情報を提供します。 IShellLink::ResolvefFlags パラメーターのドキュメントを参照してください。

COM のファイル モニカーの実装では、シェル リンク メカニズムを使用してリンクを再確立し、これらのフラグを IShellLink::Resolve に渡します。

dwClassContext

CLSCTX 列挙から取得された、オブジェクトのインスタンス化に使用されるクラス コンテキスト。 モニカーは通常、この値を CoCreateInstancedwClsContext パラメーターに渡します。

locale

バインド先のオブジェクトによって使用されるロケールに対するクライアントの優先順位を示す LCID 値 。 モニカーは、この値を IClassActivator::GetClassObject に渡します。

pServerInfo

COSERVERINFO 構造体へのポインター。 このメンバーを使用すると、 IMoniker::BindToObject を呼び出すクライアントがサーバー情報を指定できます。 クライアントは、IBindCtx::SetBindOptions メソッドにBIND_OPTS2構造体を渡すことができます。 COSERVERINFO 構造体にサーバー名が指定されている場合、モニカー バインドは指定されたコンピューターに転送されます。 SetBindOptions はCOSERVERINFO 構造体とその構造体に含まれるポインターではなく、BIND_OPTS2の構造体メンバーのみをコピーします。 呼び出し元は、バインド コンテキストが解放されるまで、これらのポインターを解放できません。 COM の新しいクラス モニカーは、現在 pServerInfo フラグを受け入っていません。

注釈

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

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

要件

要件
サポートされている最小のクライアント Windows 10 ビルド 20348
サポートされている最小のサーバー Windows 10 ビルド 20348
Header objidl.h

こちらもご覧ください

BIND_OPTS3

CreateBindCtx

Ibindctx

Imoniker