Tacitonitus, I don't think that a code couldn't work because someone is marked by the obscure forces. First of all, it was was my wrong about the new operator because it seemed to me that you destroyed the buffer exiting the function. Of course to use a static or dynamic allocation makes no difference, what really counts is that the memory stay there when shell functions are called. The Shell_NotifyIcon, with a lot of bugs as usual for MS products, couldn't be not functional. There is a sea of 64 bits applications out there that works. My personal idea is that the problem is not in your code for Shell_NotifyIcon, but somewhere else. Probably you would take a tighten look to the whole code and try debugging to see if the buffer is consistent each time you use the Shell_NotifyIcon function. Cheers