CAtlServiceModuleT::Handler
更新 : 2007 年 11 月
サービスのハンドラ ルーチンです。
void Handler(
DWORD dwOpcode
) throw( );
パラメータ
- dwOpcode
ハンドラ操作を定義するスイッチ。詳細については、次の「解説」を参照してください。
解説
サービスのステータスを取得したり、サービスの停止や一時中断などの命令を実行するために、サービス コントロール マネージャ (SCM: Service Control Manager) によって呼び出されるコードです。SCM は、次に示すオペレーション コードをハンドラに渡して、サービスの動作を指示します。
オペレーション コード |
説明 |
---|---|
SERVICE_CONTROL_STOP |
サービスを停止します。atlbase.h 内の CAtlServiceModuleT::OnStop メソッドをオーバーライドし、動作を変更します。 |
SERVICE_CONTROL_PAUSE |
ユーザー実装です。atlbase.h 内の空のメソッド CAtlServiceModuleT::OnPause をオーバーライドし、サービスを一時中断します。 |
SERVICE_CONTROL_CONTINUE |
ユーザー実装です。atlbase.h 内の空のメソッド CAtlServiceModuleT::OnContinue をオーバーライドし、サービスを続行します。 |
SERVICE_CONTROL_INTERROGATE |
ユーザー実装です。atlbase.h 内の空のメソッド CAtlServiceModuleT::OnInterrogate をオーバーライドし、サービスに問い合わせます。 |
SERVICE_CONTROL_SHUTDOWN |
ユーザー実装です。atlbase.h 内の空のメソッド CAtlServiceModuleT::OnShutdown をオーバーライドし、サービスをシャットダウンします。 |
オペレーション コードが認識されない場合は、CAtlServiceModuleT::OnUnknownRequest メソッドが呼び出されます。
ATL が生成した既定のサービスは、停止命令だけを処理します。SCM が停止命令を渡すと、サービスは SCM にプログラムが間もなく停止することを通知します。次に、サービスは PostThreadMessage を呼び出し、サービス自体に終了メッセージを送信します。これによってメッセージ ループが終了し、サービスが最終的に終了します。
必要条件
ヘッダー : atlbase.h