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

参照

参照

CAtlServiceModuleT クラス

その他の技術情報

CAtlServiceModuleT のメンバ