здравствуйте. подскажите пожалуйста в чем проблема.
мне необходимо создать иконку в трее, затем сменить ее и показать балун. кажется элементарная задача, однако при выполнении следующего кода, иконка создается — меняются, но балун не появляется.
int _tmain(int argc, _TCHAR* argv[]) {
#define MY_ARRAYSIZE(a) (sizeof(a)/sizeof(a[0]))
BOOL res;
NOTIFYICONDATA nid;
memset(&nid, 0, sizeof(nid));
nid.cbSize = sizeof(nid);
nid.hWnd = GetConsoleWindow();
nid.uID = 1;
nid.uFlags = NIF_ICON | NIF_INFO;
nid.hIcon = LoadIcon(NULL, IDI_ASTERISK);
res = Shell_NotifyIcon(NIM_ADD, &nid);
if (res) {
printf("icon added.\n");
}
Sleep(5000);
nid.hIcon = LoadIcon(NULL, IDI_ERROR);
nid.dwInfoFlags = NIIF_INFO;
HRESULT hr1 = StringCchCopy(nid.szInfo, MY_ARRAYSIZE(nid.szInfo), TEXT("Your message text goes here."));
HRESULT hr2 = StringCchCopy(nid.szInfoTitle, MY_ARRAYSIZE(nid.szInfoTitle), TEXT("Title"));
if ( FAILED(hr1) || FAILED(hr2) ) {
printf("ballon's text not created");
}
nid.uTimeout = 15000;
res = Shell_NotifyIcon(NIM_MODIFY, &nid);
if ( res ) {
printf("icon changed. baloon added.");
}
Sleep(10000);
Shell_NotifyIcon(NIM_DELETE, &nid);
return 0;
}