int ModulesLoaded(WPARAM, LPARAM) { InitFonts(); hAvChangeEvent = HookEvent(ME_AV_AVATARCHANGED, AvatarChanged); hShowTipEvent = HookEvent(ME_CLC_SHOWINFOTIP, ShowTipHook); hHideTipEvent = HookEvent(ME_CLC_HIDEINFOTIP, HideTipHook); hAckEvent = HookEvent(ME_PROTO_ACK, ProtoAck); hFramesSBShow = HookEvent(ME_CLIST_FRAMES_SB_SHOW_TOOLTIP, FramesShowSBTip); hFramesSBHide = HookEvent(ME_CLIST_FRAMES_SB_HIDE_TOOLTIP, FramesHideSBTip); hFolderChanged = HookEvent(ME_FOLDERS_PATH_CHANGED, ReloadSkinFolder); hSkinFolder = FoldersRegisterCustomPathT(LPGEN("Skins"), LPGEN("Tipper"), MIRANDA_PATHT _T("\\") _T(DEFAULT_SKIN_FOLDER)); FoldersGetCustomPathT(hSkinFolder, SKIN_FOLDER, _countof(SKIN_FOLDER), _T(DEFAULT_SKIN_FOLDER)); InitTipperSmileys(); LoadOptions(); ReloadFont(0, 0); ParseSkinFile(opt.szSkinName, true, false); // set 'time-in' CallService(MS_CLC_SETINFOTIPHOVERTIME, opt.iTimeIn, 0); // set Miranda start timestamp db_set_dw(0, MODULE, "MirandaStartTS", (DWORD)time(0)); return 0; }
int ModulesLoaded(WPARAM wParam, LPARAM lParam) { InitFonts(); InitUpdaterSupport(); hAvChangeEvent = HookEvent(ME_AV_AVATARCHANGED, AvatarChanged); hShowTipEvent = HookEvent(ME_CLC_SHOWINFOTIP, ShowTipHook); hHideTipEvent = HookEvent(ME_CLC_HIDEINFOTIP, HideTipHook); hAckEvent = HookEvent(ME_PROTO_ACK, ProtoAck); hFramesSBShow = HookEvent(ME_CLIST_FRAMES_SB_SHOW_TOOLTIP, FramesShowSBTip); hFramesSBHide = HookEvent(ME_CLIST_FRAMES_SB_HIDE_TOOLTIP, FramesHideSBTip); hFolderChanged = HookEvent(ME_FOLDERS_PATH_CHANGED, ReloadSkinFolder); hSkinFolder = FoldersRegisterCustomPathT(MODULE, "Tipper skins", MIRANDA_PATHT _T("\\") _T(DEFAULT_SKIN_FOLDER)); FoldersGetCustomPathT(hSkinFolder, SKIN_FOLDER, SIZEOF(SKIN_FOLDER), _T(DEFAULT_SKIN_FOLDER)); InitTipperSmileys(); LoadOptions(); ReloadFont(0, 0); ParseSkinFile(opt.szSkinName, true, false); // set 'time-in' CallService(MS_CLC_SETINFOTIPHOVERTIME, opt.iTimeIn, 0); // set Miranda start timestamp DBWriteContactSettingDword(0, MODULE, "MirandaStartTS", (DWORD)time(0)); // get MetaContacts module name if (ServiceExists(MS_MC_GETPROTOCOLNAME)) strcpy(szMetaModuleName, (char *)CallService(MS_MC_GETPROTOCOLNAME, 0, 0)); return 0; }
static void InitFonts() { font_id_firstline.cbSize = sizeof(FontIDT); font_id_firstline.flags = FIDF_ALLOWEFFECTS; mir_tstrcpy(font_id_firstline.group, LPGENT("Popups")); mir_tstrcpy(font_id_firstline.name, LPGENT("First line")); mir_strcpy(font_id_firstline.dbSettingsGroup, MODULE); mir_strcpy(font_id_firstline.prefix, "FontFirst"); mir_tstrcpy(font_id_firstline.backgroundGroup, _T("Popups")); mir_tstrcpy(font_id_firstline.backgroundName, _T("Background")); font_id_firstline.order = 0; FontRegisterT(&font_id_firstline); font_id_secondline.cbSize = sizeof(FontIDT); font_id_secondline.flags = FIDF_ALLOWEFFECTS; mir_tstrcpy(font_id_secondline.group, LPGENT("Popups")); mir_tstrcpy(font_id_secondline.name, LPGENT("Second line")); mir_strcpy(font_id_secondline.dbSettingsGroup, MODULE); mir_strcpy(font_id_secondline.prefix, "FontSecond"); mir_tstrcpy(font_id_secondline.backgroundGroup, _T("Popups")); mir_tstrcpy(font_id_secondline.backgroundName, _T("Background")); font_id_secondline.order = 1; FontRegisterT(&font_id_secondline); font_id_time.cbSize = sizeof(FontIDT); font_id_time.flags = FIDF_ALLOWEFFECTS; mir_tstrcpy(font_id_time.group, LPGENT("Popups")); mir_tstrcpy(font_id_time.name, LPGENT("Time")); mir_strcpy(font_id_time.dbSettingsGroup, MODULE); mir_strcpy(font_id_time.prefix, "FontTime"); mir_tstrcpy(font_id_time.backgroundGroup, _T("Popups")); mir_tstrcpy(font_id_time.backgroundName, _T("Background")); font_id_time.order = 2; FontRegisterT(&font_id_time); colour_id_bg.cbSize = sizeof(ColourIDT); mir_tstrcpy(colour_id_bg.group, LPGENT("Popups")); mir_tstrcpy(colour_id_bg.name, LPGENT("Background")); mir_strcpy(colour_id_bg.dbSettingsGroup, MODULE); mir_strcpy(colour_id_bg.setting, "ColourBg"); colour_id_bg.defcolour = GetSysColor(COLOR_3DSHADOW); colour_id_bg.order = 0; ColourRegisterT(&colour_id_bg); colour_id_border.cbSize = sizeof(ColourIDT); mir_tstrcpy(colour_id_border.group, LPGENT("Popups")); mir_tstrcpy(colour_id_border.name, LPGENT("Border")); mir_strcpy(colour_id_border.dbSettingsGroup, MODULE); mir_strcpy(colour_id_border.setting, "ColourBorder"); colour_id_border.defcolour = RGB(0, 0, 0); colour_id_border.order = 1; ColourRegisterT(&colour_id_border); colour_id_sidebar.cbSize = sizeof(ColourIDT); mir_tstrcpy(colour_id_sidebar.group, LPGENT("Popups")); mir_tstrcpy(colour_id_sidebar.name, LPGENT("Sidebar")); mir_strcpy(colour_id_sidebar.dbSettingsGroup, MODULE); mir_strcpy(colour_id_sidebar.setting, "ColourSidebar"); colour_id_sidebar.defcolour = RGB(128, 128, 128); colour_id_sidebar.order = 2; ColourRegisterT(&colour_id_sidebar); colour_id_titleunderline.cbSize = sizeof(ColourIDT); mir_tstrcpy(colour_id_titleunderline.group, LPGENT("Popups")); mir_tstrcpy(colour_id_titleunderline.name, LPGENT("Title underline")); mir_strcpy(colour_id_titleunderline.dbSettingsGroup, MODULE); mir_strcpy(colour_id_titleunderline.setting, "ColourTitleUnderline"); colour_id_titleunderline.defcolour = GetSysColor(COLOR_3DSHADOW); colour_id_titleunderline.order = 3; ColourRegisterT(&colour_id_titleunderline); ReloadFont(0, 0); }
// Called when all the modules are loaded static INT_PTR ModulesLoaded(WPARAM wParam, LPARAM lParam) { // add our modules to the KnownModules list CallService("DBEditorpp/RegisterSingleModule", (WPARAM) MODULE_NAME, 0); if (ServiceExists(MS_MC_GETPROTOCOLNAME)) metacontacts_proto = (char *) CallService(MS_MC_GETPROTOCOLNAME, 0, 0); // updater plugin support if(ServiceExists(MS_UPDATE_REGISTER)) { Update upd = {0}; char szCurrentVersion[30]; upd.cbSize = sizeof(upd); upd.szComponentName = pluginInfo.shortName; upd.szUpdateURL = UPDATER_AUTOREGISTER; upd.szBetaVersionURL = "http://pescuma.org/miranda/voiceservice_version.txt"; upd.szBetaChangelogURL = "http://pescuma.org/miranda/voiceservice#Changelog"; upd.pbBetaVersionPrefix = (BYTE *)"Voice Service "; upd.cpbBetaVersionPrefix = strlen((char *)upd.pbBetaVersionPrefix); #ifdef UNICODE upd.szBetaUpdateURL = "http://pescuma.org/miranda/voiceserviceW.zip"; #else upd.szBetaUpdateURL = "http://pescuma.org/miranda/voiceservice.zip"; #endif upd.pbVersion = (BYTE *)CreateVersionStringPlugin((PLUGININFO*) &pluginInfo, szCurrentVersion); upd.cpbVersion = strlen((char *)upd.pbVersion); CallService(MS_UPDATE_REGISTER, 0, (LPARAM)&upd); } // Init icons { IcoLib_Register(mainIcons[0], _T("Voice Calls"), _T("Main"), IDI_MAIN); IcoLib_Register(mainIcons[1], _T("Voice Calls"), _T("Dialpad"), IDI_DIALPAD); IcoLib_Register(mainIcons[2], _T("Voice Calls"), _T("Secure Overlay"), IDI_SECURE); int i; for(i = 0; i < MAX_REGS(stateNames); i++) IcoLib_Register(stateIcons[i], _T("Voice Calls"), stateNames[i], IDI_TALKING + i); for(i = 0; i < MAX_REGS(actionNames); i++) IcoLib_Register(actionIcons[i], _T("Voice Calls"), actionNames[i], IDI_ACTION_CALL + i); hHooks.push_back( HookEvent(ME_SKIN2_ICONSCHANGED, IconsChanged) ); } // Init fonts { FontIDT fi = {0}; fi.cbSize = sizeof(fi); lstrcpyn(fi.group, TranslateT("Voice Calls"), MAX_REGS(fi.group)); strncpy(fi.dbSettingsGroup, MODULE_NAME, MAX_REGS(fi.dbSettingsGroup)); for (int i = 0; i < NUM_FONTS; i++) { fi.order = i; lstrcpyn(fi.name, stateNames[i], MAX_REGS(fi.name)); strncpy(fi.prefix, stateIcons[i], MAX_REGS(fi.prefix)); CallService(MS_FONT_REGISTERT, (WPARAM) &fi, 0); } ReloadFont(0,0); hHooks.push_back( HookEvent(ME_FONT_RELOAD, ReloadFont) ); } // Init bkg color { ColourIDT ci = {0}; ci.cbSize = sizeof(ci); lstrcpyn(ci.group, TranslateT("Voice Calls"), MAX_REGS(ci.group)); lstrcpyn(ci.name, TranslateT("Background"), MAX_REGS(ci.name)); strncpy(ci.dbSettingsGroup, MODULE_NAME, MAX_REGS(ci.dbSettingsGroup)); strncpy(ci.setting, "BkgColor", MAX_REGS(ci.setting)); ci.defcolour = GetSysColor(COLOR_BTNFACE); CallService(MS_COLOUR_REGISTERT, (WPARAM) &ci, 0); ReloadColor(0,0); hHooks.push_back( HookEvent(ME_COLOUR_RELOAD, ReloadColor) ); } // Init history if (ServiceExists(MS_HISTORYEVENTS_REGISTER)) { char *templates[] = { "Talking\nCall from %number% has started\n%number%\tOther side of the call", "Ringing\nCall from %number% is ringing\n%number%\tOther side of the call", "Calling\nCalling %number%\n%number%\tOther side of the call", "On Hold\nCall from %number% is on hold\n%number%\tOther side of the call", "Ended\nCall from %number% has ended\n%number%\tOther side of the call", "Busy\n%number% is busy\n%number%\tOther side of the call", }; HISTORY_EVENT_HANDLER heh = {0}; heh.cbSize = sizeof(heh); heh.module = MODULE_NAME; heh.name = "VoiceCall"; heh.description = "Voice calls"; heh.eventType = EVENTTYPE_VOICE_CALL; heh.defaultIconName = "vca_call"; heh.supports = HISTORYEVENTS_FORMAT_TCHAR; heh.flags = HISTORYEVENTS_FLAG_SHOW_IM_SRMM | HISTORYEVENTS_FLAG_USE_SENT_FLAG | HISTORYEVENTS_REGISTERED_IN_ICOLIB; heh.templates = templates; heh.numTemplates = MAX_REGS(templates); CallService(MS_HISTORYEVENTS_REGISTER, (WPARAM) &heh, 0); } InitOptions(); InitFrames(); // Add menu items CLISTMENUITEM mi = {0}; mi.cbSize = sizeof(mi); mi.position = -2000020000; mi.flags = CMIF_TCHAR; HICON icons[MAX_REGS(actionIcons)]; for(int i = 0; i < MAX_REGS(actionIcons); ++i) icons[i] = IcoLib_LoadIcon(actionIcons[i]); CreateServiceFunction(MS_VOICESERVICE_CM_CALL, Service_Call); mi.ptszName = actionNames[ACTION_CALL]; mi.hIcon = icons[ACTION_CALL]; mi.pszService = MS_VOICESERVICE_CM_CALL; hCMCall = (HANDLE) CallService(MS_CLIST_ADDCONTACTMENUITEM, 0, (LPARAM) &mi); CreateServiceFunction(MS_VOICESERVICE_CM_ANSWER, CMAnswer); mi.position++; mi.ptszName = actionNames[ACTION_ANSWER]; mi.hIcon = icons[ACTION_ANSWER]; mi.pszService = MS_VOICESERVICE_CM_ANSWER; hCMAnswer = (HANDLE) CallService(MS_CLIST_ADDCONTACTMENUITEM, 0, (LPARAM) &mi); CreateServiceFunction(MS_VOICESERVICE_CM_HOLD, CMHold); mi.position++; mi.position++; mi.ptszName = actionNames[ACTION_HOLD]; mi.hIcon = icons[ACTION_HOLD]; mi.pszService = MS_VOICESERVICE_CM_HOLD; hCMHold = (HANDLE) CallService(MS_CLIST_ADDCONTACTMENUITEM, 0, (LPARAM) &mi); CreateServiceFunction(MS_VOICESERVICE_CM_DROP, CMDrop); mi.position++; mi.ptszName = actionNames[ACTION_DROP]; mi.hIcon = icons[ACTION_DROP]; mi.pszService = MS_VOICESERVICE_CM_DROP; hCMDrop = (HANDLE) CallService(MS_CLIST_ADDCONTACTMENUITEM, 0, (LPARAM) &mi); for(i = 0; i < MAX_REGS(actionIcons); ++i) IcoLib_ReleaseIcon(icons[i]); hHooks.push_back( HookEvent(ME_CLIST_PREBUILDCONTACTMENU, PreBuildContactMenu) ); // Util services CreateServiceFunction(MS_VOICESERVICE_CALL, Service_Call); CreateServiceFunction(MS_VOICESERVICE_CAN_CALL, Service_CanCall); // Sounds SKINSOUNDDESCEX ssd = {0}; ssd.cbSize = sizeof(ssd); ssd.pszSection = "Voice Calls"; { for(int i = 0; i < MAX_REGS(sounds); ++i) { ssd.pszName = sounds[i].name; ssd.pszDescription = sounds[i].description; CallService(MS_SKIN_ADDNEWSOUND, 0, (LPARAM)&ssd); } } SetTimer(NULL, 0, 1000, ClearOldVoiceCalls); // Accounts int numAccounts; PROTOACCOUNT **accounts; ProtoEnumAccounts(&numAccounts, &accounts); for(i = 0; i < numAccounts; ++i) AddAccount(accounts[i]); hHooks.push_back( HookEvent(ME_PROTO_ACCLISTCHANGED, AccListChanged) ); return 0; }
int ModulesLoaded(WPARAM wParam, LPARAM lParam) { MNotifyGetLink(); if (ServiceExists(MS_HPP_EG_WINDOW)) { lstPopupHistory.SetRenderer(RENDER_HISTORYPP); } if(ServiceExists(MS_UPDATE_REGISTER)) { // register with updater Update update = {0}; char szVersion[16]; update.cbSize = sizeof(Update); update.szComponentName = pluginInfo.shortName; update.pbVersion = (BYTE *)CreateVersionString(pluginInfo.version, szVersion); update.cpbVersion = (int)strlen((char *)update.pbVersion); update.szBetaChangelogURL = "https://server.scottellis.com.au/wsvn/mim_plugs/yapp/?op=log&rev=0&sc=0&isdir=1"; update.szUpdateURL = UPDATER_AUTOREGISTER; // these are the three lines that matter - the archive, the page containing the version string, and the text (or data) // before the version that we use to locate it on the page // (note that if the update URL and the version URL point to standard file listing entries, the backend xml // data will be used to check for updates rather than the actual web page - this is not true for beta urls) #ifdef _WIN64 update.szBetaUpdateURL = "http://www.scottellis.com.au/miranda_plugins/yapp_x64.zip"; #endif update.szBetaVersionURL = "http://www.scottellis.com.au/miranda_plugins/ver_yapp.html"; update.pbBetaVersionPrefix = (BYTE *)"YAPP version "; update.cpbBetaVersionPrefix = (int)strlen((char *)update.pbBetaVersionPrefix); CallService(MS_UPDATE_REGISTER, 0, (WPARAM)&update); } #ifdef _UNICODE if(ServiceExists(MS_FONT_REGISTERW)) { font_id_firstlinew.cbSize = sizeof(FontIDW); font_id_firstlinew.flags = FIDF_ALLOWEFFECTS; _tcscpy(font_id_firstlinew.group, _T("Popups")); _tcscpy(font_id_firstlinew.name, _T("First line")); strcpy(font_id_firstlinew.dbSettingsGroup, MODULE); strcpy(font_id_firstlinew.prefix, "FontFirst"); font_id_firstlinew.order = 0; font_id_secondlinew.cbSize = sizeof(FontIDW); font_id_secondlinew.flags = FIDF_ALLOWEFFECTS; _tcscpy(font_id_secondlinew.group, _T("Popups")); _tcscpy(font_id_secondlinew.name, _T("Second line")); strcpy(font_id_secondlinew.dbSettingsGroup, MODULE); strcpy(font_id_secondlinew.prefix, "FontSecond"); font_id_secondlinew.order = 1; font_id_timew.cbSize = sizeof(FontIDW); font_id_timew.flags = FIDF_ALLOWEFFECTS; _tcscpy(font_id_timew.group, _T("Popups")); _tcscpy(font_id_timew.name, _T("Time")); strcpy(font_id_timew.dbSettingsGroup, MODULE); strcpy(font_id_timew.prefix, "FontTime"); font_id_timew.order = 2; CallService(MS_FONT_REGISTERW, (WPARAM)&font_id_firstlinew, 0); CallService(MS_FONT_REGISTERW, (WPARAM)&font_id_secondlinew, 0); CallService(MS_FONT_REGISTERW, (WPARAM)&font_id_timew, 0); colour_id_bgw.cbSize = sizeof(ColourIDW); _tcscpy(colour_id_bgw.group, _T("Popups")); _tcscpy(colour_id_bgw.name, _T("Background")); strcpy(colour_id_bgw.dbSettingsGroup, MODULE); strcpy(colour_id_bgw.setting, "ColourBg"); colour_id_bgw.defcolour = GetSysColor(COLOR_3DSHADOW); colour_id_bgw.order = 0; colour_id_borderw.cbSize = sizeof(ColourIDW); _tcscpy(colour_id_borderw.group, _T("Popups")); _tcscpy(colour_id_borderw.name, _T("Border")); strcpy(colour_id_borderw.dbSettingsGroup, MODULE); strcpy(colour_id_borderw.setting, "ColourBorder"); colour_id_borderw.defcolour = RGB(0, 0, 0); colour_id_borderw.order = 1; colour_id_sidebarw.cbSize = sizeof(ColourIDW); _tcscpy(colour_id_sidebarw.group, _T("Popups")); _tcscpy(colour_id_sidebarw.name, _T("Sidebar")); strcpy(colour_id_sidebarw.dbSettingsGroup, MODULE); strcpy(colour_id_sidebarw.setting, "ColourSidebar"); colour_id_sidebarw.defcolour = RGB(128, 128, 128); colour_id_sidebarw.order = 2; colour_id_titleunderlinew.cbSize = sizeof(ColourIDW); _tcscpy(colour_id_titleunderlinew.group, _T("Popups")); _tcscpy(colour_id_titleunderlinew.name, _T("Title underline")); strcpy(colour_id_titleunderlinew.dbSettingsGroup, MODULE); strcpy(colour_id_titleunderlinew.setting, "ColourTitleUnderline"); colour_id_titleunderlinew.defcolour = GetSysColor(COLOR_3DSHADOW); colour_id_titleunderlinew.order = 3; CallService(MS_COLOUR_REGISTERW, (WPARAM)&colour_id_bgw, 0); CallService(MS_COLOUR_REGISTERW, (WPARAM)&colour_id_borderw, 0); CallService(MS_COLOUR_REGISTERW, (WPARAM)&colour_id_sidebarw, 0); CallService(MS_COLOUR_REGISTERW, (WPARAM)&colour_id_titleunderlinew, 0); ReloadFont(0, 0); hEventReloadFont = HookEvent(ME_FONT_RELOAD, ReloadFont); } else #endif if(ServiceExists(MS_FONT_REGISTER)) { font_id_firstline.cbSize = sizeof(FontID); font_id_firstline.flags = FIDF_ALLOWEFFECTS; strcpy(font_id_firstline.group, "Popups"); strcpy(font_id_firstline.name, "First line"); strcpy(font_id_firstline.dbSettingsGroup, MODULE); strcpy(font_id_firstline.prefix, "FontFirst"); font_id_firstline.order = 0; font_id_secondline.cbSize = sizeof(FontID); font_id_secondline.flags = FIDF_ALLOWEFFECTS; strcpy(font_id_secondline.group, "Popups"); strcpy(font_id_secondline.name, "Second line"); strcpy(font_id_secondline.dbSettingsGroup, MODULE); strcpy(font_id_secondline.prefix, "FontSecond"); font_id_secondline.order = 1; font_id_time.cbSize = sizeof(FontID); font_id_time.flags = FIDF_ALLOWEFFECTS; strcpy(font_id_time.group, "Popups"); strcpy(font_id_time.name, "Time"); strcpy(font_id_time.dbSettingsGroup, MODULE); strcpy(font_id_time.prefix, "FontTime"); font_id_time.order = 2; CallService(MS_FONT_REGISTER, (WPARAM)&font_id_firstline, 0); CallService(MS_FONT_REGISTER, (WPARAM)&font_id_secondline, 0); CallService(MS_FONT_REGISTER, (WPARAM)&font_id_time, 0); colour_id_bg.cbSize = sizeof(ColourID); strcpy(colour_id_bg.group, "Popups"); strcpy(colour_id_bg.name, "Background"); strcpy(colour_id_bg.dbSettingsGroup, MODULE); strcpy(colour_id_bg.setting, "ColourBg"); colour_id_bg.defcolour = GetSysColor(COLOR_3DSHADOW); colour_id_bg.order = 0; colour_id_border.cbSize = sizeof(ColourID); strcpy(colour_id_border.group, "Popups"); strcpy(colour_id_border.name, "Border"); strcpy(colour_id_border.dbSettingsGroup, MODULE); strcpy(colour_id_border.setting, "ColourBorder"); colour_id_border.defcolour = RGB(0, 0, 0); colour_id_border.order = 1; colour_id_sidebar.cbSize = sizeof(ColourID); strcpy(colour_id_sidebar.group, "Popups"); strcpy(colour_id_sidebar.name, "Sidebar"); strcpy(colour_id_sidebar.dbSettingsGroup, MODULE); strcpy(colour_id_sidebar.setting, "ColourSidebar"); colour_id_sidebar.defcolour = RGB(128, 128, 128); colour_id_sidebar.order = 2; colour_id_titleunderline.cbSize = sizeof(ColourID); strcpy(colour_id_titleunderline.group, "Popups"); strcpy(colour_id_titleunderline.name, "Title underline"); strcpy(colour_id_titleunderline.dbSettingsGroup, MODULE); strcpy(colour_id_titleunderline.setting, "ColourTitleUnderline"); colour_id_titleunderline.defcolour = GetSysColor(COLOR_3DSHADOW); colour_id_titleunderline.order = 3; CallService(MS_COLOUR_REGISTER, (WPARAM)&colour_id_bg, 0); CallService(MS_COLOUR_REGISTER, (WPARAM)&colour_id_border, 0); CallService(MS_COLOUR_REGISTER, (WPARAM)&colour_id_sidebar, 0); CallService(MS_COLOUR_REGISTER, (WPARAM)&colour_id_titleunderline, 0); ReloadFont(0, 0); hEventReloadFont = HookEvent(ME_FONT_RELOAD, ReloadFont); } else { LOGFONT lf = {0}; lf.lfCharSet = DEFAULT_CHARSET; lf.lfHeight = -14; lf.lfWeight = FW_BOLD; hFontFirstLine = CreateFontIndirect(&lf); lf.lfHeight = -12; lf.lfWeight = 0; hFontSecondLine = CreateFontIndirect(&lf); lf.lfHeight = -8; lf.lfWeight = 0; hFontTime = CreateFontIndirect(&lf); } LoadModuleDependentOptions(); if(GetModuleHandle(_T("neweventnotify"))) { ignore_gpd_passed_addy = true; } return 0; }