次の方法で共有


IProcessInitializer インターフェイス

定義

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

public interface class IProcessInitializer
[System.Runtime.InteropServices.Guid("1113f52d-dc7f-4943-aed6-88d04027e32a")]
[System.Runtime.InteropServices.InterfaceType(System.Runtime.InteropServices.ComInterfaceType.InterfaceIsIUnknown)]
public interface IProcessInitializer
[<System.Runtime.InteropServices.Guid("1113f52d-dc7f-4943-aed6-88d04027e32a")>]
[<System.Runtime.InteropServices.InterfaceType(System.Runtime.InteropServices.ComInterfaceType.InterfaceIsIUnknown)>]
type IProcessInitializer = interface
Public Interface IProcessInitializer
派生
属性

注釈

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

COM+ では、Dllhost.exe の開始と終了時に イベントと イベントが提供StartupShutdownされます。 この機能を使用すると、COM+ サーバー アプリケーション (以降はサーバー コンポーネントと呼ばれます) にインストールされている COM+ コンポーネントで、カスタム初期化を実行し、コードをクリーンできます。 インターフェイスを実装する各コンポーネントの IProcessInitializer インスタンスが作成され、プロセスの間保存されます。 で ServicedComponent実装する場合、 InitializesServerApplication コンポーネントの登録時に Components コレクション内の パラメーター COMAdminCatalogObject を に true 設定する必要があります。これは、起動時とシャットダウン時にインターフェイス メソッドを呼び出すために必要です。

イベントと Shutdown イベントをStartup使用すると、リソースの初期化、接続の作成、共有データの初期化、クリーンアップ コードの実行を行うことができます。 ただし、サーバー コンポーネントのインスタンスがまだ作成されていないため、COM+ に固有の状態にアクセスすることはできません。 さらに、 イベントと Shutdown イベントのStartupコードは、システムがプロセスを開始した後にアクティブ化を受け入れる準備をするために、Dllhost.exe が 90 秒しか待機しないため、できるだけ早く戻る必要があります。 Dllhost.exe が 90 秒以内に準備ができていることを通知しない場合、システムはプロセスを終了します。したがって、この期間内にすべての初期化処理を完了する必要があります。 初期化に参加する各サーバー コンポーネントは、 インターフェイスをサポートする IProcessInitializer 必要があります。 起動時 DllHost.exe、COM+ は、このサービスを要求し、 インターフェイスを呼び出し、 関数をIProcessInitializerQueryInterfaceび出すすべてのサーバー コンポーネントをStartup作成します。 同様に、DllHost.exe プロセスがシャットダウンされると、以前に格納されていたインターフェイス ポインターで 関数が呼び出 Shutdown されます。

メソッド

Shutdown()

終了アクションを実行します。 Dllhost.exe の終了時に呼び出されます。

Startup(Object)

起動時の初期化を実行します。 Dllhost.exe の起動時に呼び出されます。

適用対象