ShellProc 関数

説明

SetWindowsHookExA SetWindowsHookExW関数で使用されるアプリケーション定義またはライブラリ定義のコールバック関数。/ 関数は、システムからシェル イベントの通知を受け取ります。

HOOKPROC 型は、このコールバック関数へのポインターを定義します。 ShellProc は、アプリケーション定義またはライブラリ定義関数名のプレースホルダーです。

LRESULT CALLBACK ShellProc(
  _In_ int    nCode,
  _In_ WPARAM wParam,
  _In_ LPARAM lParam
);

パラメーター

nCode [in]

型: int

フック コード。

nCode が 0 未満の場合、フック プロシージャは、それ以上の処理を行わずに CallNextHookEx 関数にメッセージを渡す必要があり、CallNextHookEx によって返される値を返す必要があります。

このパラメーターには、次の値のいずれかを指定できます。

説明
HSHELL_ACCESSIBILITYSTATE 11 アクセシビリティの状態が変更されました。
HSHELL_ACTIVATESHELLWINDOW 3 シェルは、そのメインウィンドウをアクティブにする必要があります。
HSHELL_APPCOMMAND 12 ユーザーが入力イベントを完了し (たとえば、マウスのアプリケーション コマンド ボタンやキーボードのアプリケーション コマンド キーを押した場合)、その入力によって生成された WM_APPCOMMAND メッセージがアプリケーションで処理されませんでした。 シェル プロシージャが WM_COMMAND メッセージを処理する場合は、 CallNextHookEx を呼び出さないでください。 詳細については、「戻り値」セクションを参照してください。
HSHELL_GETMINRECT 5 ウィンドウが最小化または最大化されています。 システムには、ウィンドウの最小化された四角形の座標が必要です。
HSHELL_LANGUAGE 8 キーボード言語が変更されたか、新しいキーボード レイアウトが読み込まれました。
HSHELL_REDRAW 6 タスク バーのウィンドウのタイトルが再描画されました。
HSHELL_TASKMAN 7 ユーザーがタスク リストを選択しました。 タスク リストを提供するシェル アプリケーションは、Windows がタスク リストを開始しないように TRUE を 返す必要があります。
HSHELL_WINDOWACTIVATED 4 アクティブ化が、別のトップレベルの未所有ウィンドウに変更されました。
HSHELL_WINDOWCREATED 1 トップレベルの未所有のウィンドウが作成されました。 このウィンドウは、システムがこのフックを呼び出すときに存在します。
HSHELL_WINDOWDESTROYED 2 トップレベルの未所有のウィンドウが破棄されようとしています。 システムがこのフックを呼び出すと、ウィンドウは引き続き存在します。
HSHELL_WINDOWREPLACED 13 最上位のウィンドウが置き換えられます。 このウィンドウは、システムがこのフックを呼び出すときに存在します。

wParam [in]

型: WPARAM

このパラメーターは、次の表に示すように、 nCode パラメーターの値によって異なります。

nCode wParam
HSHELL_ACCESSIBILITYSTATE 状態が変更されたアクセシビリティ機能を示します。 この値は、ACCESS_FILTERKEYS、ACCESS_MOUSEKEYS、またはACCESS_STICKYKEYSのいずれかです。
HSHELL_APPCOMMAND WM_APPCOMMAND メッセージが最初に送信された場所を示します。たとえば、ウィンドウへのハンドルなどです。 詳細については、WM_APPCOMMANDの cmd パラメーターに 関するページを参照してください。
HSHELL_GETMINRECT 最小化または最大化されたウィンドウへのハンドル。
HSHELL_LANGUAGE ウィンドウへのハンドル。
HSHELL_REDRAW 再描画ウィンドウへのハンドル。
HSHELL_WINDOWACTIVATED アクティブ化されたウィンドウへのハンドル。
HSHELL_WINDOWCREATED 作成されたウィンドウへのハンドル。
HSHELL_WINDOWDESTROYED 破棄されたウィンドウへのハンドル。
HSHELL_WINDOWREPLACED 置き換えられるウィンドウへのハンドル。 Windows 2000: サポートされていません。

lParam [in]

型: LPARAM

このパラメーターは、次の表に示すように、 nCode パラメーターの値によって異なります。

nCode lParam
HSHELL_APPCOMMAND GET_APPCOMMAND_LPARAM(lParam) は、入力イベントに対応するアプリケーション コマンドです。 GET_DEVICE_LPARAM(lParam) は、入力イベントを生成した内容を示します。たとえば、マウスやキーボードなどです。 詳細については、「WM_APPCOMMAND」の uDevice パラメーターの説明を参照してください。 GET_FLAGS_LPARAM(lParam)は、WM_APPCOMMANDcmd の値によって異なります。 たとえば、 WM_APPCOMMAND メッセージが最初に送信されたときに、どの仮想キーが保留されていたかを示している場合があります。 詳細については、WM_APPCOMMANDdwCmdFlags description パラメーターを参照してください。
HSHELL_GETMINRECT RECT 構造体へのポインター。
HSHELL_LANGUAGE キーボード レイアウトへのハンドル。
HSHELL_MONITORCHANGED 別のモニターに移動したウィンドウへのハンドル。
HSHELL_REDRAW ウィンドウが点滅している場合は TRUE 、それ以外の場合は FALSE です。
HSHELL_WINDOWACTIVATED ウィンドウが全画面表示モードの場合は TRUE、それ以外の場合は FALSE です。
HSHELL_WINDOWREPLACED 新しいウィンドウへのハンドル。 Windows 2000: サポートされていません。

戻り値

型: LRESULT

nCode の値がHSHELL_APPCOMMANDで、シェル プロシージャがWM_COMMANDメッセージを処理しない限り、戻り値は 0 にする必要があります。 この場合、戻り値は 0 以外にする必要があります。

注釈

SetWindowsHookEx 関数の呼び出しで、WH_SHELLフックの種類とフック プロシージャへのポインターを指定して、このフック プロシージャをインストールします。

関連項目

CallNextHookEx

SendMessage

SetWindowsHookEx

WM_APPCOMMAND

WM_COMMAND

フック