/** Editor ED - Modul ST: System Tray Management **/
#include "top.h"
#ifdef BUILD_ST
#include <windows.h>
#include "etc.h"
#include "res.h"
/** Function: Fuege Anwendungssymbol zum Taskleistenstatusfenster hinzu **/
BOOL st_AddIcon(HWND hWnd, UINT uID, HICON hicon, const TCHAR *lpszTip)
{
BOOL ret;
NOTIFYICONDATA tnid;
tnid.cbSize = sizeof(NOTIFYICONDATA);
tnid.hWnd = hWnd; // Handle des Fensters, welches Callback-Nachrichten erhalten soll
tnid.uID = uID; // Symbol-Bezeichner
tnid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
tnid.uCallbackMessage = IDM_UNHIDE;
tnid.hIcon = hicon; // Symbol-Handle
if (lpszTip) // Tooltip-Text
lstrcpyn(tnid.szTip, lpszTip, sizeof tnid.szTip); // lpszTip ist auf 64b beschraenkt
else
tnid.szTip[0] = TEXT('\0');
ret = Shell_NotifyIcon(NIM_ADD, &tnid);
if (hicon)
DestroyIcon(hicon);
return ret; // TRUE, falls erfolgreich
}
/** Function: Entferne Anwendungssymbol von Taskleistenstatusfenster **/
BOOL st_DelIcon(HWND hWnd, UINT uID)
{
BOOL ret;
NOTIFYICONDATA tnid;
tnid.cbSize = sizeof(NOTIFYICONDATA);
tnid.hWnd = hWnd; // Handle des Fensters, welches Symbol hinzufuegte
tnid.uID = uID; // Symbol-Bezeichner
ret = Shell_NotifyIcon(NIM_DELETE, &tnid);
return ret; // TRUE, falls erfolgreich
}
#endif