次の方法で共有


IObjectControl::Activate メソッド (comsvcs.h)

COM+ オブジェクトがアクティブ化されるたびにコンテキスト固有の初期化を実行できるようにします。 このメソッドは、オブジェクトに対して他のメソッドが呼び出される前に、COM+ ランタイム環境によって呼び出されます。

構文

HRESULT Activate();

戻り値

このメソッドは、標準の戻り値E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED、E_FAIL、およびS_OKを返すことができます。

注釈

クライアントがアクティブになっていない COM+ オブジェクトを呼び出すたびに、COM+ ランタイム環境によってオブジェクトが自動的にアクティブ化されます。 これは Just-In-Time Activation と呼ばれます。 インターフェイスとして IObjectControl を サポートするコンポーネントの場合、COM+ は、クライアントのメソッド呼び出しを オブジェクトに渡す前に、オブジェクトの Activate メソッドを呼び出します。

コンテキスト固有の初期化プロシージャは、IObjectControl を公開するオブジェクトの Activate メソッドに実装する必要があります。

たとえば、 Activate メソッドを使用すると、オブジェクトのコンテキストへの参照を取得し、それをメンバー変数に格納できます。 その後、オブジェクト コンテキストは、それを必要とする任意のメソッドで使用でき、使用するたびに新しいものを取得する必要はありません。 オブジェクトのコンテキストへの参照を取得したら、IObjectControl メソッドを使用して、セキュリティが有効かどうか、オブジェクトがトランザクションで実行されているかどうか、または呼び出し元が特定のロールにあるかどうかをチェックできます。

オブジェクトのリサイクルを有効にする場合 ( CanBePooled メソッドを実装してオブジェクトのクエリを実行)、 Activate メソッドは新しく作成されたオブジェクトとリサイクルされたオブジェクトの両方を処理できる必要があります。 Activate メソッドが戻るときに、新しいオブジェクトとリサイクルされたオブジェクトの間に区別できる違いはありません。

COM+ は、Activate メソッドを呼び出す前に IObjectControl を公開するオブジェクトへの呼び出しを明示的に禁止します (コンストラクターにある場合)。 このような呼び出しでは、RPC_E_DISCONNECTED エラーが発生します。 たとえば、オブジェクトがコンストラクター内で自身への参照を渡した後、 Activate の呼び出しの前に参照がそのオブジェクトに呼び出された場合、切断されたエラーが返されます。

Activate メソッドを使用して、オブジェクトの ISecurityProperty インターフェイスへの参照を取得し、メソッドが呼び出される前にオブジェクトの作成者のセキュリティ ID をチェックすることもできます。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー comsvcs.h

こちらもご覧ください

IObjectControl