IGlobalOptions インターフェイス (objidl.h)
コンポーネント オブジェクト モデル (COM) ランタイムのグローバル プロパティを設定およびクエリします。
継承
IGlobalOptions インターフェイスは、IUnknown インターフェイスから継承します。 IGlobalOptions には、 次の種類のメンバーもあります。
メソッド
IGlobalOptions インターフェイスには、これらのメソッドがあります。
IGlobalOptions::Query IGlobalOptions::Query メソッド (objidl.h) は、COM ランタイムの指定されたグローバル プロパティに対してクエリを実行します。 |
IGlobalOptions::Set IGlobalOptions::Set メソッド (objidl.h) は、COM ランタイムの指定されたグローバル プロパティを設定します。 |
注釈
このインターフェイスを使用して、COM ランタイムの次のグローバル プロパティを設定および照会できます。
プロパティ | 値 |
---|---|
COMGLB_APPID | プロセスの AppID。 これは、Windows XP でサポートされている唯一のプロパティです。 |
COMGLB_EXCEPTION_HANDLING |
COMGLB_EXCEPTION_HANDLING プロパティに使用できる値は次のとおりです。
メモ COM ランタイム例外処理が無効になっている場合でも、例外を処理するプロセスに別のアプリケーション レベルの例外ハンドラーがある場合、例外が WER に伝達されない可能性があります。
|
COMGLB_RPC_THREADPOOL_SETTING |
Set メソッドのCOMGLB_RPC_THREADPOOL_SETTING プロパティに使用できる値は次のとおりです。
COMGLB_RPC_THREADPOOL_SETTING プロパティを使用して、RPC スレッド プールの動作を変更できます。 既定の動作を変更すると、RPC で余分なスレッドが使用されるため、パフォーマンスが低下します。 そのため、この設定を変更するときは注意が必要です。 この設定は、アプリケーションの互換性の理由からのみ変更することをお勧めします。
メモ このプロパティは、プロセスで COM が初期化された直後に設定する必要があります。 COM が RPC チャネルを初期化する操作 (オブジェクト参照のマーシャリングやマーシャリング解除など) を実行した後にこのプロパティを設定すると、 Set メソッドは失敗します。
|
COMGLB_RO_SETTINGS |
COMGLB_RO_SETTINGS プロパティに使用できる値は次のとおりです。
|
COMGLB_UNMARSHALING_POLICY |
COMGLB_UNMARSHALING_POLICY プロパティに使用できる値は次のとおりです。
|
クラッシュやその他の例外を検出するアプリケーションでは、ローカル サーバーでの呼び出しや IDropTarget::D rop メソッドの実行時など、受信 COM 呼び出しの実行中に生成される可能性がある例外を検出し、COMGLB_EXCEPTION_HANDLINGを COMGLB_EXCEPTION_DONOT_HANDLE に設定して、例外をキャッチする COM の動作を無効にすることが重要です。 これを行わないと、プロセスの状態が破損する可能性があります。たとえば、これらの例外がスローされたときに保持されるロックが破棄され、プロセスが不整合な状態になる可能性があります。
このようなアプリケーションはすべて、起動時にこのコードを実行する必要があります。
IGlobalOptions *pGlobalOptions;
hr = CoCreateInstance(CLSID_GlobalOptions, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pGlobalOptions));
if (SUCCEEDED(hr))
{
hr = pGlobalOptions->Set(COMGLB_EXCEPTION_HANDLING, COMGLB_EXCEPTION_DONOT_HANDLE);
pGlobalOptions->Release();
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | objidl.h (ObjIdl.h を含む) |