CoEnterServiceDomain と CoLeaveServiceDomain を介した COM+ サービスの使用
CoEnterServiceDomain と CoLeaveServiceDomain は、独自のコンテキストで実行され、COM+ コンポーネントを必要とせずに COM+ サービスを使用できるコード領域を囲む目的で一緒に使用されます。 このコンテキストで使用される COM+ サービスは、 CoEnterServiceDomain に渡される CServiceConfig オブジェクトを介して構成されます。 CoEnterServiceDomain と CoLeaveServiceDomain で囲まれたコードは、このコンテキスト内で作成されたオブジェクトに対して呼び出されるメソッドであるかのように動作します。
スクリプト アプリケーションでは、この関数のペアを使用して、コンポーネントを含まない COM+ サービスの実行時サポートを提供できます。 たとえば、スクリプト 作成アプリケーションを開発して、スクリプト ライターがスクリプト内でサービスの開始と退出をメインできるようにするタグを提供できます。 スクリプト エンジンは、スクリプトを処理してタグを検出すると、事前構成済みの CServiceConfig オブジェクトを使用して CoEnterServiceDomain を呼び出し、必要なコードを実行してから、 CoLeaveServiceDomainを呼び出すことができます。
コンポーネント サービス管理ツール
適用されません。
Visual Basic
適用されません。
C/C++
次のコード フラグメントは、 CoEnterServiceDomain と CoLeaveServiceDomain の呼び出しの間で COM+ サービスを使用する方法を示しています。 簡潔にするため、エラー処理は省略しています。 このコード フラグメントは、「CServiceConfig を使用した COM+ サービスの構成」で作成および構成された CServiceConfig オブジェクトを使用します。
// A CServiceConfig object was created as follows:
// hr = CoCreateInstance(CLSID_CServiceConfig, NULL, CLSCTX_INPROC_SERVER,
// IID_IUnknown, (void**)&pUnknownCSC);
// Enter the Service Domain.
HRESULT hr = CoEnterServiceDomain(pUnknownCSC);
if (FAILED(hr)) throw(hr);
// Do the work that uses COM+ services here.
//DoMyWork();
// Leave the Service Domain.
CoLeaveServiceDomain(NULL);
関連トピック