次の方法で共有


CAtlServiceModuleT::Handler

サービスのハンドラー ルーチンです。

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 のメンバー