高速にタスクトレイからアイコンを除去する方法

[戻る]
キット 2006/10/07(土) 23:09:43
タスクトレイにアイコンを配置して、アプリケーション終了時に除去して
終了する処理を入れているのですが、除去するのに何故か凄く時間が掛か
ってしまいます。

解決方法に良い知恵は無いでしょうか?

タスクトレイに入れる処理:
m_stNotifyIcon.cbSize = sizeof( NOTIFYICONDATA );
m_stNotifyIcon.uID = 1;
m_stNotifyIcon.hWnd = m_hWnd;
m_stNotifyIcon.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
m_stNotifyIcon.hIcon = AfxGetApp()->LoadIcon( IDR_MAINFRAME );
m_stNotifyIcon.uCallbackMessage = 0;
lstrcpy( m_stNotifyIcon.szTip, "Foo Boo Foo Boo Brabra" );
Shell_NotifyIcon( NIM_ADD, &m_stNotifyIcon );


除去する処理:
Shell_NotifyIcon( NIM_DELETE, &m_stNotifyIcon );

***

Shell_NotifyIcon( NIM_DELETE, &m_stNotifyIcon );

を呼ぶと、2〜3秒フリーズっぽい挙動になります。
Becky! を見ると、サクっとタスクトレイからアイコンが消えているので
なんらか方法が有ると思うのですが、Non-Block関数とかが実は有るので
しょうか?

よろしくお願いいたします。

古いスレッドには追加発言できません。