IProcessInitializer インターフェイス

メモ : この名前空間、クラス、およびメンバは、.NET Framework Version 1.1 だけでサポートされています。

COM コンポーネントの起動時または終了時に呼び出すことができるメソッドをサポートします。

この型のすべてのメンバの一覧については、IProcessInitializer メンバ を参照してください。

<Guid("1113f52d-dc7f-4943-aed6-88d04027e32a")>
<InterfaceType(ComInterfaceType.InterfaceIsIUnknown)>
Public Interface IProcessInitializer
[C#]
[Guid("1113f52d-dc7f-4943-aed6-88d04027e32a")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IProcessInitializer
[C++]
[Guid("1113f52d-dc7f-4943-aed6-88d04027e32a")]
[InterfaceType(ComInterfaceType::InterfaceIsIUnknown)]
public __gc __interface IProcessInitializer
[JScript]
public
   Guid("1113f52d-dc7f-4943-aed6-88d04027e32a")
 InterfaceType(ComInterfaceType.InterfaceIsIUnknown)
interface IProcessInitializer

解説

サーバー プロセス (Dllhost.exe) の起動時に初期化コードを実行する必要がある場合や、サーバー プロセスの終了時に終了コードを実行する必要がある場合は、サービス コンポーネントに IProcessInitializer インターフェイス メソッドを実装します。

COM+ は、Dllhost.exe の起動時に Startup イベントを発生させ、Dllhost.exe の終了時に Shutdown イベントを発生させます。この機能により、COM+ サーバー アプリケーション (以下、「サーバー コンポーネント」とします) 内にインストールされた任意の COM+ コンポーネントが、初期化やクリーンアップのためのカスタム コードを実行することが可能になります。 IProcessInitializer インターフェイスを実装する各コンポーネントのインスタンスは、プロセスの存続期間中に作成されて保存され、起動および終了の処理中にそのインターフェイス メソッドが呼び出されます。 ServicedComponent に実装した場合、コンポーネントの登録中に、Components コレクション内の COMAdminCatalogObjectInitializesServerApplication パラメータが true に設定されます。

Startup イベントと Shutdown イベントを使用すると、リソースの初期化、接続の作成、共有データの初期化、およびクリーンアップ コードを実行できます。ただし、サーバー コンポーネントのインスタンスはまだ作成されていないため、COM+ の特定の状態にはアクセスしないでください。さらに、システムはプロセスを起動した後 Dllhost.exe がアクティベーションを受け入れる準備を終えるまでに 90 秒間しか待たないため、 Startup イベントと Shutdown イベントのコードは可能な限りすばやく制御を返す必要があります。Dllhost.exe が 90 秒以内に準備が整ったことを通知しないと、システムがプロセスを終了させるため、すべての初期化処理をこの時間内に完了させる必要があります。初期化に参加する各サーバー コンポーネントが、 IProcessInitializer インターフェイスをサポートする必要があります。DllHost.exe の起動時には、COM+ は、このサービスを要求したすべてのサーバー コンポーネントを作成し、 IProcessInitializer インターフェイスの QueryInterface を呼び出し、 Startup 関数を呼び出します。同様に、DllHost.exe プロセスの終了時には、これらの以前に格納したインターフェイスのポインタで Shutdown 関数を呼び出します。

必要条件

名前空間: System.EnterpriseServices

プラットフォーム: Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: System.Enterpriseservices (System.Enterpriseservices.dll 内)

参照

IProcessInitializer メンバ | System.EnterpriseServices 名前空間