Hello, I compiled my trayicon utility c++ code in visual studio 2005 express edition and tray icon balloons showed up successfully but later I deleted my firewall, switched on to windows firewall and now I am on another firewall software. Now i ran my same project and balloons showed up successfully but when i rebuilt it, i can't see balloons anymore. My Shell_NotifyIcon method still returns true.

Here is the code:

nid.cbSize = sizeof( NOTIFYICONDATA_V2_SIZE ); // i've tested NOTIFYICONDATA //and nid as well

nid.hWnd = hWnd;
nid.uID = uID; 
nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP|NIF_INFO; nid.dwInfoFlags = 0x00000004; 
strcpy(nid.szInfoTitle , balloonTitle); 
strcpy(nid.szInfo , balloonMsg); 
int ret = Shell_NotifyIcon( NIM_MODIFY, &nid );

Can anybody suggest where does the problem lie? it seems it is related to OS, my OS is XP and i've even modified "EnableBalloonTips" to 1.

Faran Shabbir

7 Years
Discussion Span
Last Post by faranshabbir

Read the following Link Carefully and check for MACRO & GUID that needs to be defined in case of XP, I am assuming that you are good in understanding msdn doc. If you still find it difficult to implement I will provide you the sample.


Hope the above link helps.

Thanks much... it has been helpful.

The problem was here:

nid.cbSize = sizeof( NOTIFYICONDATA_V2_SIZE );

it should be:


It is used for Windows 2000 or later versions. The prior one was returning wrong value (as expected) :)

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.