Tuesday, April 03, 2007 1:20 PMHello,
When Windows explorer restarts after a crash in XP (and earlier versions) the message TaskbarCreated is sent to CFrameWnd. This signifies to the application that it can add itself back to the notification area. In Vista, CFrameWnd is simply not receiving this message. I have not found any documentation about the TaskbarCreated message being deprecated or any suggestions for another way to do this. How should I know when to re-add an application's icon to the notification area after a Windows explorer crash?
Thursday, April 05, 2007 6:47 PMDoes anyone know the answer to this problem? No much information in the internet about Vista task tray icon handling...
Thursday, April 05, 2007 11:58 PM
The code is still in there to broadcast the message.
SendNotifyMessage(HWND_BROADCAST, RegisterWindowMessage(TEXT("TaskbarCreated")), 0, 0);
Monday, April 09, 2007 8:15 PMEric,
True, but it looks as though applications running as admin cannot receive the message. Presumably, this is because Explorer, which publishes the message, is not running as admin. Perhaps this is a bug. Why should Windows limit the possibility of a properly functioning notification area icon that runs with admin privileges? As for me, this solves the issue because the application normally runs without admin privileges. I only discovered it by chance because I crashed Explorer while running the application from Visual Studio, which itself was running as admin.
Thanks for your help.
Tuesday, April 10, 2007 1:27 PMThe message is blocked by User Interface Privilege Isolation, Administrative applications that need to see it can allow it through by calling ChangeWindowMessageFilter after making sure the necessary security precautions are in place.
Thursday, July 26, 2007 7:29 PM
Calling ChangeWindowMessageFilter() solved the problem for me. If your app will run on XP or 2000 you will need to call GetProcAddress() to call it dynamically.