CoEnterServiceDomain 関数 (comsvcs.h)
COM+ サービスを使用できるコードを入力するために使用します。
構文
HRESULT CoEnterServiceDomain(
[in] IUnknown *pConfigObject
);
パラメーター
[in] pConfigObject
CServiceConfig クラスから作成された、囲まれたコード内で使用されるサービスの構成情報を含む、オブジェクトの IUnknown インターフェイスへのポインター。
戻り値
このメソッドは、E_INVALIDARG、E_OUTOFMEMORY、E_FAILの標準戻り値と、次の値を返すことができます。
リターン コード | 説明 |
---|---|
|
メソッドは正常に完了しました。 |
|
CServiceConfig オブジェクトのサイド バイ サイド アセンブリ構成が無効です。 |
|
CServiceConfig オブジェクトのスレッド プール構成が無効です。 スレッド アパートメント モデルは、 CoEnterServiceDomain を呼び出して再構成することはできません。 |
|
CServiceConfig オブジェクトのトラッカー構成が無効です。 |
|
呼び出し元には、COM+ パーティションに対するアクセス許可がありません。 |
注釈
CoEnterServiceDomain と CoLeaveServiceDomain の呼び出しの間で囲まれたコードは、独自のコンテキストで実行され、コンテキスト内で作成されたオブジェクトで呼び出されるメソッドであるかのように動作します。 CoEnterServiceDomain は別のアパートメント モデルに切り替えることはできません。そのため、囲まれたコードは呼び出し元のアパートメントと呼び出し元のスレッドで実行されます。 CoEnterServiceDomain を呼び出すときに、CServiceConfig オブジェクトを使用してアパートメント モデルを変更しようとするとエラーが発生します。
CoEnterServiceDomain は、まず、pConfigObject パラメーターとして渡される CServiceConfig オブジェクトによって指定されたとおりに構成されたコンテキストを作成します。 その後、クライアント側とサーバー側の両方のポリシーが、メソッド呼び出しが発生したかのようにトリガーされます。 その後、新しいコンテキストがコンテキスト スタックにプッシュされ、現在のコンテキストになります。
効率的な設計とスレッド マーシャリングが関係しないため、 CoEnterServiceDomain と CoLeaveServiceDomain を使用すると、同等のメソッド呼び出しと比較してオーバーヘッドが大幅に削減されます。
CoEnterServiceDomain と CoLeaveServiceDomain は、アプリケーションで特に役立ちます。これらの関数を使用すると、コンポーネントを作成しなくても COM+ サービスにアクセスできます。
CoEnterServiceDomain と CoLeaveServiceDomain のペアは入れ子にすることができます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | comsvcs.h |
Library | ComSvcs.lib |
[DLL] | ComSvcs.dll |