87 const HMODULE wesnoth_exe = GetModuleHandle(
nullptr);
88 if (wesnoth_exe ==
nullptr) {
92 const HRSRC group_icon_info = FindResource(wesnoth_exe, TEXT(
"WESNOTH_ICON"), RT_GROUP_ICON);
93 if (group_icon_info ==
nullptr) {
97 HGLOBAL hGlobal = LoadResource(wesnoth_exe, group_icon_info);
98 if (hGlobal ==
nullptr) {
102 const PBYTE group_icon_res =
static_cast<PBYTE
>(LockResource(hGlobal));
103 if (group_icon_res ==
nullptr) {
107 const int nID = LookupIconIdFromDirectoryEx(group_icon_res, TRUE, 32, 32, LR_DEFAULTCOLOR);
112 const HRSRC icon_info = FindResource(wesnoth_exe, MAKEINTRESOURCE(nID), MAKEINTRESOURCE(3));
113 if (icon_info ==
nullptr) {
117 hGlobal = LoadResource(wesnoth_exe, icon_info);
118 if (hGlobal ==
nullptr) {
122 const PBYTE icon_res =
static_cast<PBYTE
>(LockResource(hGlobal));
123 if (icon_res ==
nullptr) {
127 const HICON icon = CreateIconFromResource(icon_res, SizeofResource(wesnoth_exe, icon_info), TRUE, 0x00030000);
128 if (icon ==
nullptr) {
133 if (window ==
nullptr) {
140 nid =
new NOTIFYICONDATA;
141 memset(
nid, 0,
sizeof(*
nid));
142 nid->cbSize = NOTIFYICONDATA_V2_SIZE;
144 nid->uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE;
145 nid->dwInfoFlags = NIIF_USER;
146 nid->uVersion = NOTIFYICON_VERSION;
150 nid->hBalloonIcon = icon;
151 lstrcpyW(
nid->szTip, wtip.c_str());
154 return Shell_NotifyIcon(NIM_ADD,
nid) != FALSE;