Shell_NotifyIconW 関数 (shellapi.h)
タスク バーの状態領域にメッセージを送信します。
構文
BOOL Shell_NotifyIconW(
[in] DWORD dwMessage,
[in] PNOTIFYICONDATAW lpData
);
パラメーター
[in] dwMessage
型: DWORD
この関数によって実行されるアクションを示す 値。 次のいずれかの値になります。
NIM_ADD (0x00000000)
0x00000000。 ステータス領域にアイコンを追加します。 アイコンには、lpdata が指す NOTIFYICONDATA 構造体の識別子が、その uID メンバーまたは guidItem メンバーを介して指定されます。 この識別子は、 Shell_NotifyIconへの後続 の呼び出しで使用され、アイコンに対して後でアクションを実行します。
NIM_MODIFY (0x00000001)
0x00000001。 状態領域のアイコンを変更します。 lpdata が指す NOTIFYICONDATA 構造体は、通知領域 (NIM_ADD) に追加されたときにアイコンに最初に割り当てられた ID を使用して、変更するアイコンを識別します。
NIM_DELETE (0x00000002)
0x00000002。 ステータス領域からアイコンを削除します。 lpdata が指す NOTIFYICONDATA 構造体は、アイコンが通知領域 (NIM_ADD) に追加されたときに最初にアイコンに割り当てられた ID を使用して、削除するアイコンを識別します。
NIM_SETFOCUS (0x00000003)
0x00000003。 バージョン 5.0 以降のみをShell32.dll。 タスク バーの通知領域にフォーカスを戻します。 通知領域のアイコンは、UI 操作が完了したときにこのメッセージを使用する必要があります。 たとえば、アイコンにショートカット メニューが表示されていても、Esc キーを押してキャンセルする場合は、 NIM_SETFOCUS を使用して通知領域にフォーカスを戻します。
NIM_SETVERSION (0x00000004)
0x00000004。 バージョン 5.0 以降のみをShell32.dll。 lpdata が指す構造体の uVersion メンバーで指定されたバージョン番号に従って動作するように通知領域に指示します。 バージョン番号は、認識されるメンバーを指定します。
NIM_SETVERSIONは、通知領域アイコンが追加されるたびに呼び出す必要があります (NIM_ADD)。 NIM_MODIFYで呼び出す必要はありません。 ユーザーがログオフすると、バージョン設定は保持されません。
詳細については、「解説」を参照してください。
[in] lpData
種類: PNOTIFYICONDATA
NOTIFYICONDATA 構造体へのポインター。 構造体の内容は 、dwMessage の値によって異なります。 通知領域に追加するアイコンを定義したり、そのアイコンに通知を表示させたり、変更または削除するアイコンを識別することができます。
戻り値
種類: BOOL
成功した場合は TRUE 、それ以外の場合 は FALSE を 返します。 dwMessage が NIM_SETVERSION に設定されている場合、バージョンが正常に変更された場合は TRUE、要求されたバージョンがサポートされていない場合は FALSE を返します。
注釈
Windows 2000 (Shell32.dll バージョン 5.0) の時点で、lpdata が指す NOTIFYICONDATA 構造体の uVersion メンバーを NOTIFYICON_VERSION_4 以上に設定した場合、Shell_NotifyIconマウス イベントとキーボード イベントは、以前のバージョンの Windows とは異なる方法で処理されます。 違いは次のとおりです。
- ユーザーがキーボードを使用して通知アイコンのショートカット メニューを選択すると、シェルは関連付けられているアプリケーションに WM_CONTEXTMENU メッセージを送信するようになりました。 以前のバージョンでは、 WM_RBUTTONDOWN と WM_RBUTTONUP メッセージが送信されます。
- ユーザーがキーボードで通知アイコンを選択し、SPACEBAR キーまたは ENTER キーを使用してアクティブ化した場合、バージョン 5.0 シェルは関連付けられたアプリケーションにNIN_KEYSELECT通知を送信します。 以前のバージョンでは、 WM_RBUTTONDOWN と WM_RBUTTONUP メッセージが送信されます。
- ユーザーがマウスで通知アイコンを選択し、ENTER キーを使用してアクティブ化すると、シェルは関連付けられたアプリケーションにNIN_SELECT通知を送信するようになりました。 以前のバージョンでは、 WM_RBUTTONDOWN と WM_RBUTTONUP メッセージが送信されます。
- NIN_BALLOONSHOW。 バルーンが表示されたときに送信されます (バルーンはキューに入れられます)。
-
NIN_BALLOONHIDE。 バルーンが消えたときに送信されます。 たとえば、アイコンが削除されたときなどです。 タイムアウトが原因でバルーンが閉じられた場合、またはユーザーがマウスをクリックした場合、このメッセージは送信されません。
Windows 7 の時点で、NIN_BALLOONHIDEは、 NIIF_RESPECT_QUIET_TIME フラグが設定された通知が静かな時間帯 (新しいコンピューター上のユーザーの最初の 1 時間) に表示しようとしたときにも送信されます。 その場合、バルーンはまったく表示されません。
- NIN_BALLOONTIMEOUT。 タイムアウトが原因でバルーンが閉じられたときに送信されます。
- NIN_BALLOONUSERCLICK。 ユーザーがマウスをクリックしたため、バルーンが閉じられたときに送信されます。
- NIN_POPUPOPEN。 ユーザーがアイコンの上にカーソルを置くと送信され、標準的なテキストヒントの代わりによりリッチなポップアップ UI を使用する必要があることを示します。
- NIN_POPUPCLOSE。 アイコンの上にカーソルが置かなくなったときに送信され、リッチ ポップアップ UI を閉じる必要があることを示します。
注意
shellapi.h ヘッダーは、Shell_NotifyIconをエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | shellapi.h |
Library | Shell32.lib |
[DLL] | Shell32.dll (バージョン 4.0 以降) |
API セット | ext-ms-win-shell-shell32-l1-2-1 (Windows 10 バージョン 10.0.10240 で導入) |