#include "common.h" #include "icons.h" HICON hIconCheck, hIconRestart, hIconCheckExit; HANDLE hIcoLibIconsChanged = 0; int ReloadIcons(WPARAM wParam, LPARAM lParam) { hIconCheck = (HICON)CallService(MS_SKIN2_GETICON, 0, (LPARAM)"updater_check"); hIconRestart = (HICON)CallService(MS_SKIN2_GETICON, 0, (LPARAM)"updater_restart"); hIconCheckExit = (HICON)CallService(MS_SKIN2_GETICON, 0, (LPARAM)"updater_checkexit"); return 0; } void InitIcons() { if(ServiceExists(MS_SKIN2_ADDICON)) { SKINICONDESC2 sid; sid.cbSize = sizeof(SKINICONDESC2); sid.pszSection = "Updater"; sid.pszDescription = Translate("Check for Updates"); sid.pszName = "updater_check"; sid.pszDefaultFile = "updater.dll"; sid.iDefaultIndex = 0; sid.hDefaultIcon = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_MAINMENU), IMAGE_ICON, 0, 0, 0); CallService(MS_SKIN2_ADDICON, 0, (LPARAM)&sid); sid.pszDescription = Translate("Restart"); sid.pszName = "updater_restart"; sid.pszDefaultFile = "updater.dll"; sid.iDefaultIndex = 1; sid.hDefaultIcon = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_RESTART), IMAGE_ICON, 0, 0, 0);//LR_LOADTRANSPARENT | LR_LOADMAP3DCOLORS ); CallService(MS_SKIN2_ADDICON, 0, (LPARAM)&sid); sid.pszDescription = Translate("Update and Exit"); sid.pszName = "updater_checkexit"; sid.pszDefaultFile = "updater.dll"; sid.iDefaultIndex = 2; sid.hDefaultIcon = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_UPDATEANDEXIT), IMAGE_ICON, 0, 0, 0);//LR_LOADTRANSPARENT | LR_LOADMAP3DCOLORS ); CallService(MS_SKIN2_ADDICON, 0, (LPARAM)&sid); ReloadIcons(0, 0); hIcoLibIconsChanged = HookEvent(ME_SKIN2_ICONSCHANGED, ReloadIcons); } else { hIconCheck = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_MAINMENU), IMAGE_ICON, 0, 0, 0);//LR_LOADTRANSPARENT | LR_LOADMAP3DCOLORS ); hIconRestart = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_RESTART), IMAGE_ICON, 0, 0, 0);//LR_LOADTRANSPARENT | LR_LOADMAP3DCOLORS ); hIconCheckExit = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_UPDATEANDEXIT), IMAGE_ICON, 0, 0, 0);//LR_LOADTRANSPARENT | LR_LOADMAP3DCOLORS ); } } void DeinitIcons() { if(hIcoLibIconsChanged) UnhookEvent(hIcoLibIconsChanged); else { DestroyIcon(hIconCheck); DestroyIcon(hIconRestart); DestroyIcon(hIconCheckExit); } }