文書番号: 418138 - 最終更新日: 2010年5月13日 - リビジョン: 2.0

SDK32: 通知領域にアイコンが登録されないことがある

お知らせお使いのオペレーティング システムには適用しない情報が含まれている場合があります。
この記事は、以前は次の ID で公開されていました: JP418138
すべて展開する | すべて折りたたむ

概要

この資料は、Shell_NotifyIcon 関数による、通知領域へのアイコン登録に関する動作について補足したものです。

詳細

Shell_NotifyIcon 関数では、シェルがハングアップしている場合などを考慮し、シェルへの登録作業が 4 秒以内に完了しない場合には失敗したとみなして制御を戻します。この場合、Shell_NotifyIcon 関数は FALSE を返し、GetLastError 関数の返す値は、1460 (ERROR_TIMEOUT) となります。

補足 : この動作を考慮したアプリケーション側での対処としては、以下のようなものが考えられます。(Shell_NotifyIcon 関数の呼び出しが FALSE を返し、GetLastError 関数の呼び出しが ERROR_TIMEOUT を返した場合)
  1. Sleep 関数の実行などにより、リトライするまでの間、少し待機します。
  2. NIM_MODIFY を指定して Shell_NotifyIcon 関数を呼び出し、Shell_NotifyIcon 関数が FALSE を返すことを確認します。 (TRUE を返した場合には、以前の登録が正常に行われていたものと判断します。)
  3. NIM_ADD を指定して Shell_NotifyIcon 関数を呼び出します。 FALSE が返された場合には、手順 1 から繰り返します。

状況

この動作は、仕様です。

関連情報

180498? (http://support.microsoft.com/kb/180498/JA/ ) Explorer.exe の終了後にタスクバーからアイコンが消える

この資料は以下の製品について記述したものです。
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional
  • Windows Vista Business
  • Windows Vista Enterprise
  • Windows Vista Home Basic
  • Windows Vista Home Premium
  • Windows Vista Ultimate
  • Windows 7 Enterprise
  • Windows 7 Home Premium
  • Windows 7 Professional
  • Windows 7 Starter
  • Windows 7 Ultimate
  • Windows Server 2008 Datacenter
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Standard
  • Windows Server 2008 R2 Datacenter
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 Foundation
  • Windows Server 2008 R2 Standard
キーワード:?
kbinfo KB418138
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"