RegisterShellHookWindow 関数 (winuser.h)
[この関数は、一般的な使用を目的としたものではありません。 それ以降のバージョンの Windows では、変更または使用できない場合があります。
シェル アプリケーションに役立つイベントまたは通知の特定のメッセージを受信するように、指定されたシェル ウィンドウを登録します。
受信したイベント メッセージは、指定されたウィンドウのデスクトップに関連付けられているシェル ウィンドウに送信されるイベント メッセージのみです。 メッセージの多くは、 SetWindowsHookEx 関数を呼び出し、フックの種類 にWH_SHELL を指定した後に受信できるメッセージと同じです。 RegisterShellHookWindow との違いは、メッセージがコールバック プロシージャではなく、指定されたウィンドウの WindowProc を介して受信される点です。
構文
BOOL RegisterShellHookWindow(
[in] HWND hwnd
);
パラメーター
[in] hwnd
型: HWND
シェル フック メッセージに登録するウィンドウへのハンドル。
戻り値
種類: BOOL
関数が成功した場合は TRUE。それ以外の場合は FALSE。
注釈
通常のウィンドウ メッセージと同様に、ウィンドウ プロシージャの 2 番目のパラメーターはメッセージを WM_SHELLHOOKMESSAGEとして識別します。 ただし、これらのシェル フック メッセージの場合、メッセージ値は 、WM_COMMANDなどの他のメッセージ ID と同様に定義済みの定数ではありません。 値は、次に示すように RegisterWindowMessage の呼び出しを使用して動的に取得する必要があります。
RegisterWindowMessage(TEXT("SHELLHOOK"));
これにより、コンパイル時に既知の ID 値を必要とする従来の switch ステートメントを使用してこれらのメッセージを処理することはできません。 シェル フック メッセージを処理する場合、通常は、switch ステートメントの既定のセクションで If ステートメントをコーディングし、メッセージ ID の値が RegisterWindowMessage 呼び出しから取得した値と同じ場合にメッセージを処理します。
次の表では、シェル フック メッセージのウィンドウ プロシージャに渡される wParam パラメーター値と lParam パラメーター値について説明します。
wParam | lParam |
---|---|
HSHELL_GETMINRECT | SHELLHOOKINFO 構造体へのポインター。 |
HSHELL_WINDOWACTIVATED | アクティブ化されたウィンドウへのハンドル。 |
HSHELL_RUDEAPPACTIVATED | アクティブ化されたウィンドウへのハンドル。 |
HSHELL_WINDOWREPLACING | 最上位ウィンドウを置き換えるウィンドウのハンドル。 |
HSHELL_WINDOWREPLACED | 置き換えられるウィンドウへのハンドル。 |
HSHELL_WINDOWCREATED | 作成されるウィンドウのハンドル。 |
HSHELL_WINDOWDESTROYED | 破棄される最上位ウィンドウへのハンドル。 |
HSHELL_ACTIVATESHELLWINDOW | 使用されていません。 |
HSHELL_TASKMAN | 無視できます。 |
HSHELL_REDRAW | 再描画する必要があるウィンドウへのハンドル。 |
HSHELL_FLASH | フラッシュする必要があるウィンドウへのハンドル。 |
HSHELL_ENDTASK | 強制的に終了する必要があるウィンドウへのハンドル。 |
HSHELL_APPCOMMAND | アプリケーションまたはその他のフックによってハンドルされていない APPCOMMAND。 WM_APPCOMMANDを参照し、GET_APPCOMMAND_LPARAM マクロを使用してこのパラメーターを取得します。 |
HSHELL_MONITORCHANGED | 別のモニターに移動したウィンドウへのハンドル。 |
この関数は、Windows XP Service Pack 1 (SP1) と Windows Server 2003 まで SDK ヘッダーとライブラリに含まれていませんでした。 この関数のヘッダー ファイルとインポート ライブラリがない場合は、 LoadLibrary と GetProcAddress を使用して関数を呼び出すことができます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winuser.h (Windows.h を含む) |
Library | User32.lib |
[DLL] | User32.dll |
関連項目
概念
その他のリソース
リファレンス