void UpDate_CountryIcon(HWND hCtrl, int countryID) { HICON hIcon = LoadFlagIcon(countryID); HICON hOld = Static_SetIcon(hCtrl, hIcon); ShowWindow(hCtrl, hIcon ? SW_SHOW : SW_HIDE); IcoLib_ReleaseIcon(hOld); }
static INT_PTR ServiceLoadFlagIcon(WPARAM wParam, LPARAM lParam) { /* return handle */ if ((BOOL)lParam) { if (phIconHandles == nullptr) return 0; return (INT_PTR)phIconHandles[CountryNumberToIndex((int)wParam)]; } /* return icon */ return (INT_PTR)LoadFlagIcon(wParam); }
void MsgWndData::FlagsIconSet() { StatusIconData sid = { sizeof(sid) }; sid.szModule = MODNAMEFLAGS; if (!g_bShowStatusIconFlag) sid.flags = MBF_HIDDEN; if (m_countryID != 0xFFFF || g_bUseUnknownFlag) { sid.hIcon = LoadFlagIcon(m_countryID); sid.szTooltip = Translate((char*)CallService(MS_UTILS_GETCOUNTRYBYNUMBER, m_countryID, 0)); } else sid.flags = MBF_HIDDEN; Srmm_ModifyIcon(m_hContact, &sid); }
// always call in context of main thread static void __fastcall SetStatusIcon(MCONTACT hContact,int countryNumber) { StatusIconData sid = { sizeof(sid) }; sid.szModule = MODULENAME; if (countryNumber != 0xFFFF || bUseUnknown) { /* copy icon as status icon API will call DestroyIcon() on it */ sid.hIcon = LoadFlagIcon(countryNumber); sid.szTooltip = (char*) CallService(MS_UTILS_GETCOUNTRYBYNUMBER,countryNumber,0); } else sid.flags = MBF_HIDDEN; Srmm_ModifyIcon(hContact, &sid); if (sid.hIcon) Skin_ReleaseIcon(sid.hIcon); }