int NewsAggrInit(WPARAM wParam, LPARAM lParam) { hNewsAggregatorFolder = FoldersRegisterCustomPathT(LPGEN("Avatars"), LPGEN("News Aggregator"), MIRANDA_USERDATAT _T("\\Avatars\\")_T(DEFAULT_AVATARS_FOLDER)); if (hNewsAggregatorFolder) FoldersGetCustomPathT(hNewsAggregatorFolder, tszRoot, MAX_PATH, _T("")); else lstrcpyn(tszRoot, VARST( _T("%miranda_userdata%\\Avatars\\"_T(DEFAULT_AVATARS_FOLDER))), SIZEOF(tszRoot)); for (MCONTACT hContact = db_find_first(MODULE); hContact; hContact = db_find_next(hContact, MODULE)) { if (!db_get_b(NULL, MODULE, "StartupRetrieve", 1)) db_set_dw(hContact, MODULE, "LastCheck", time(NULL)); SetContactStatus(hContact, ID_STATUS_ONLINE); } NetlibInit(); InitIcons(); InitMenu(); HookEvent(ME_TTB_MODULELOADED, OnToolbarLoaded); HookEvent(ME_FOLDERS_PATH_CHANGED, OnFoldersChanged); // timer for the first update timerId = SetTimer(NULL, 0, 10000, timerProc2); // first update is 10 sec after load return 0; }
extern "C" __declspec(dllexport) int Load(void) { mir_getLP(&pluginInfo); mir_getCLI(); hmiranda = GetModuleHandle(NULL); INITCOMMONCONTROLSEX ctrls = {0}; ctrls.dwSize = sizeof(INITCOMMONCONTROLSEX); ctrls.dwICC = ICC_DATE_CLASSES; InitCommonControlsEx(&ctrls); hRichedDll = LoadLibrary(_T("Msftedit.dll")); if (!hRichedDll) { if (MessageBox(0, TranslateT("Miranda could not load the Notes & Reminders plugin, Msftedit.dll is missing. If you are using WINE, please make sure you have Msftedit.dll installed. Press 'Yes' to continue loading Miranda."), _T(SECTIONNAME), MB_YESNO | MB_ICONINFORMATION) != IDYES) return 1; return 0; } InitServices(); WS_Init(); hkModulesLoaded = HookEvent(ME_SYSTEM_MODULESLOADED, OnModulesLoaded); InitIcons(); return 0; }
int ModulesLoaded(WPARAM wParam, LPARAM lParam) { InitUtils(); lib_cs_lock(); otr_user_state = otrl_userstate_create(); lib_cs_unlock(); // this calls ReadPrivkeyFiles (above) to set filename values (also called on ME_FOLDERS_PATH_CHANGED) InitOptions(); InitDBFilter(); InitIcons(); InitMenu(); InitSRMM(); hEventWindow = HookEvent(ME_MSG_WINDOWEVENT, WindowEvent); if (options.bHaveSecureIM && !db_get_b(0, MODULENAME, "sim_warned", 0)) { db_set_b(0, MODULENAME, "sim_warned", 1); options.default_policy = OTRL_POLICY_MANUAL_MOD; SaveOptions(); MessageBox(0, TranslateT(LANG_OTR_SECUREIM_TEXT), TranslateT(LANG_OTR_SECUREIM_TITLE), 0x30); } return 0; }
extern "C" int __declspec(dllexport) Load(PLUGINLINK *link) { pluginLink = link; mir_getMMI(&mmi); mir_getMD5I(&md5i); mir_getUTFI(&utfi); mir_getLI(&li); pcli = reinterpret_cast<CLIST_INTERFACE*>( CallService( MS_CLIST_RETRIEVE_INTERFACE,0,reinterpret_cast<LPARAM>(g_hInstance)) ); PROTOCOLDESCRIPTOR pd = {sizeof(pd)}; pd.szName = "Twitter"; pd.type = PROTOTYPE_PROTOCOL; pd.fnInit = protoInit; pd.fnUninit = protoUninit; CallService(MS_PROTO_REGISTERMODULE,0,reinterpret_cast<LPARAM>(&pd)); g_hEvents[0] = HookEvent(ME_SYSTEM_MODULESLOADED,OnModulesLoaded); InitIcons(); InitContactMenus(); return 0; }
BOOL CSysTray::ProcessWindowMessage(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &lResult, DWORD dwMsgMapID) { HRESULT hr; if (hWnd != m_hWnd) return FALSE; switch (uMsg) { case WM_NCCREATE: case WM_NCDESTROY: return FALSE; case WM_CREATE: InitIcons(); SetTimer(1, 2000, NULL); return TRUE; case WM_TIMER: UpdateIcons(); return TRUE; case WM_DESTROY: KillTimer(1); ShutdownIcons(); return TRUE; } TRACE("SysTray message received %u (%08p %08p)\n", uMsg, wParam, lParam); hr = ProcessIconMessage(uMsg, wParam, lParam, lResult); if (FAILED(hr)) return FALSE; return (hr == S_OK); }
extern "C" __declspec(dllexport) int Load(void) { mir_getLP(&pluginInfoEx); HookEvent(ME_SYSTEM_MODULESLOADED, OnModulesLoaded); HookEvent(ME_OPT_INITIALISE, HSOptInitialise); InitIcons(); return 0; }
static int MainInit(WPARAM wparam,LPARAM lparam) { // initialize icons InitIcons(); // TopToolbar support HookEvent(ME_TTB_MODULELOADED, InitTopToolbarButton); InitFrames(); return 0; }
void InitGlobals() { g_dat.hMessageWindowList = WindowList_Create(); HookEvent(ME_DB_EVENT_ADDED, dbaddedevent); HookEvent(ME_PROTO_ACK, ackevent); HookEvent(ME_SKIN2_ICONSCHANGED, IconsChanged); HookEvent(ME_AV_AVATARCHANGED, AvatarChanged); HookEvent(ME_SYSTEM_SHUTDOWN, OnShutdown); HookEvent(ME_MC_DEFAULTTCHANGED, OnMetaChanged); ReloadGlobals(); InitIcons(); }
int OnModulesLoaded(WPARAM, LPARAM) { g_hCommonScriptFolder = FoldersRegisterCustomPathT(MODULE, Translate("Common scripts folder"), COMMON_SCRIPTS_PATHT); HookEvent(ME_OPT_INITIALISE, CLuaOptions::OnOptionsInit); hRecvMessage = CreateHookableEvent(MODULE PSR_MESSAGE); CreateProtoServiceFunction(MODULE, PSR_MESSAGE, FilterRecvMessage); InitIcons(); g_mLua = new CMLua(); g_mLua->Load(); return 0; }
extern "C" int __declspec(dllexport) Load(void) { mir_getLP(&pluginInfo); mir_getCLI(); InitMessagePump(); InitOptions(); InitNotify(); InitFonts(); InitIcons(); InitMenuItems(); HookEvent(ME_SYSTEM_PRESHUTDOWN, PreShutdown); HookEvent(ME_SYSTEM_MODULESLOADED, ModulesLoaded); return 0; }
extern "C" int __declspec(dllexport) Load() { mir_getLP(&pluginInfo); mir_getCLI(); InitIcons(); // Register protocol module PROTOCOLDESCRIPTOR pd = { 0 }; pd.cbSize = sizeof(pd); pd.szName = "VKontakte"; pd.fnInit = (pfnInitProto)vkProtoInit; pd.fnUninit = (pfnUninitProto)vkProtoUninit; pd.type = PROTOTYPE_PROTOCOL; Proto_RegisterModule(&pd); return 0; }
// Called when the game starts or when spawned void AGameObject::BeginPlay() { Super::BeginPlay(); //LOG( "%s [%s]->AGameObject::BeginPlay()", *GetName(), *Name ); Team* newTeam = Game->gm->teams[ Stats.TeamId ]; if( !newTeam ) { error( FS( "Team %d not created yet", Stats.TeamId ) ); newTeam = Game->gm->teams[ Stats.TeamId ] = new Team( Stats.TeamId, "err-team", Alliances::Neutral, FLinearColor::Red ); } SetTeam( newTeam ); ID = Game->NextId(); InitIcons(); }
extern "C" int __declspec(dllexport) Load() { mir_getLP(&pluginInfo); InitIcons(); InitServers(); InitContactMenus(); // register protocol PROTOCOLDESCRIPTOR pd = { sizeof(pd) }; pd.szName = "IRC"; pd.type = PROTOTYPE_PROTOCOL; pd.fnInit = (pfnInitProto)ircProtoInit; pd.fnUninit = (pfnUninitProto)ircProtoUninit; CallService(MS_PROTO_REGISTERMODULE, 0, (LPARAM)&pd); return 0; }
extern "C" int __declspec(dllexport) Load(void) { mir_getLP(&pluginInfo); mir_getCLI(); PROTOCOLDESCRIPTOR pd = { 0 }; pd.cbSize = sizeof(pd); pd.szName = "Twitter"; pd.type = PROTOTYPE_PROTOCOL; pd.fnInit = protoInit; pd.fnUninit = protoUninit; Proto_RegisterModule(&pd); InitIcons(); InitContactMenus(); return 0; }
extern "C" int __declspec(dllexport) Load(void) { mir_getLP(&pluginInfo); HookEvent(ME_SYSTEM_MODULESLOADED, OnModulesLoaded); PROTOCOLDESCRIPTOR pd = { sizeof(pd) }; pd.szName = "AIM"; pd.type = PROTOTYPE_PROTOCOL; pd.fnInit = protoInit; pd.fnUninit = protoUninit; CallService(MS_PROTO_REGISTERMODULE, 0, (LPARAM) & pd); InitIcons(); InitExtraIcons(); return 0; }
extern "C" __declspec(dllexport) int Load(void) { mir_getLP(&pluginInfo); PrepareBufferedFunctions(); if ( CallService(MS_UTILS_GETCOUNTRYLIST, (WPARAM)&nCountriesCount, (LPARAM)&countries)) nCountriesCount = 0; bShowStatusIcon = db_get_b(NULL, MODULENAME, "ShowStatusIconFlag", SETTING_SHOWSTATUSICONFLAG_DEFAULT) != 0; bShowExtraIcon = db_get_b(NULL, MODULENAME, "ShowExtraImgFlag", SETTING_SHOWEXTRAIMGFLAG_DEFAULT) != 0; bUseUnknown = db_get_b(NULL, MODULENAME, "UseUnknownFlag", SETTING_USEUNKNOWNFLAG_DEFAULT) != 0; bUseIpToCountry = db_get_b(NULL, MODULENAME, "UseIpToCountry", SETTING_USEIPTOCOUNTRY_DEFAULT) != 0; InitIcons(); InitIpToCountry(); InitExtraImg(); return 0; }
// weather protocol initialization function // run after the event ME_SYSTEM_MODULESLOADED occurs int WeatherInit(WPARAM wParam,LPARAM lParam) { // initialize netlib NetlibInit(); InitIcons(); InitMwin(); // load weather menu items AddMenuItems(); // timer for the first update timerId = SetTimer(NULL, 0, 5000, timerProc2); // first update is 5 sec after load // weather user detail HookEvent(ME_USERINFO_INITIALISE, UserInfoInit); HookEvent(ME_TTB_MODULELOADED, OnToolbarLoaded); return 0; }
extern "C" __declspec (dllexport) int Load() { mir_getLP(&pluginInfo); // Ensure that the common control DLL is loaded (for listview) INITCOMMONCONTROLSEX icex = { sizeof(icex), ICC_LISTVIEW_CLASSES }; InitCommonControlsEx(&icex); InitIcons(); InitOptions(); HookEvent(ME_CLIST_PREBUILDCONTACTMENU, PrebuildContactMenu); HookEvent(ME_DB_EVENT_ADDED, OnDatabaseEventAdd); HookEvent(ME_SYSTEM_MODULESLOADED, ModulesLoaded); hServiceToggle = CreateServiceFunction(MS_NOHISTORY_TOGGLE, ServiceToggle); hServiceClear = CreateServiceFunction(MS_NOHISTORY_CLEAR, ServiceClear); return 0; }
extern "C" __declspec(dllexport) int Load(void) { DEBUGOUT_T("LOAD MIROTR"); mir_getLP(&pluginInfo); mir_getCLI(); InitIcons(); OTRL_INIT; INITCOMMONCONTROLSEX icce = {0}; icce.dwSize = sizeof(icce); icce.dwICC = ICC_LISTVIEW_CLASSES|ICC_PROGRESS_CLASS; InitCommonControlsEx(&icce); db_set_resident(MODULENAME, "TrustLevel"); //////////////////////////////////////////////////////////////////////////// // init plugin PROTOCOLDESCRIPTOR pd = { 0 }; pd.cbSize = sizeof(pd); pd.szName = MODULENAME; pd.type = PROTOTYPE_ENCRYPTION; Proto_RegisterModule(&pd); // remove us as a filter to all contacts - fix filter type problem if(db_get_b(0, MODULENAME, "FilterOrderFix", 0) != 2) { for (MCONTACT hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) Proto_RemoveFromContact(hContact, MODULENAME); db_set_b(0, MODULENAME, "FilterOrderFix", 2); } // create our services CreateProtoServiceFunction(MODULENAME, PSS_MESSAGE, SVC_OTRSendMessage); CreateProtoServiceFunction(MODULENAME, PSR_MESSAGE, SVC_OTRRecvMessage); // hook modules loaded for updater support HookEvent(ME_SYSTEM_MODULESLOADED, ModulesLoaded); return 0; }
extern "C" int __declspec(dllexport) Load(void) { hMsftedit = LoadLibrary(_T("Msftedit.dll")); if (hMsftedit == NULL) return 1; clsdates = db_get_b(NULL, PluginName, "ClassicDates", 1) != 0; dtsubfldr = db_get_b(NULL, PluginName, "SubFolders", 1) != 0; catchcrashes = db_get_b(NULL, PluginName, "CatchCrashes", 1) != 0; mir_getLP(&pluginInfoEx); profname = Utils_ReplaceVarsT(_T("%miranda_profilename%.dat")); profpath = Utils_ReplaceVarsT(_T("%miranda_userdata%")); if (catchcrashes && !needrestart) mir_sntprintf(CrashLogFolder, TEXT("%s\\CrashLog"), profpath); _tcsncpy_s(VersionInfoFolder, profpath, _TRUNCATE); HookEvent(ME_SYSTEM_MODULESLOADED, ModulesLoaded); HookEvent(ME_OPT_INITIALISE, OptionsInit); HookEvent(ME_SYSTEM_PRESHUTDOWN, PreShutdown); packlcid = (LCID)Langpack_GetDefaultLocale(); InitIcons(); if (catchcrashes && !needrestart) InitExceptionHandler(); CreateServiceFunction(MS_CRASHDUMPER_STORETOFILE, StoreVersionInfoToFile); CreateServiceFunction(MS_CRASHDUMPER_STORETOCLIP, StoreVersionInfoToClipboard); CreateServiceFunction(MS_CRASHDUMPER_VIEWINFO, ViewVersionInfo); CreateServiceFunction(MS_CRASHDUMPER_GETINFO, GetVersionInfo); CreateServiceFunction(MS_CRASHDUMPER_UPLOAD, UploadVersionInfo); CreateServiceFunction(MS_CRASHDUMPER_URL, OpenUrl); CreateServiceFunction(MS_SERVICEMODE_LAUNCH, ServiceModeLaunch); CreateServiceFunction(MS_CRASHDUMPER_URLTOCLIP, CopyLinkToClipboard); return 0; }
int CMPlugin::Load() { // Add options hook HookEvent(ME_OPT_INITIALISE, OptInit); HookEvent(ME_SYSTEM_MODULESLOADED, NewsAggrInit); HookEvent(ME_SYSTEM_PRESHUTDOWN, NewsAggrPreShutdown); hUpdateMutex = CreateMutex(nullptr, FALSE, nullptr); CreateProtoServiceFunction(MODULENAME, PS_GETNAME, NewsAggrGetName); CreateProtoServiceFunction(MODULENAME, PS_GETCAPS, NewsAggrGetCaps); CreateProtoServiceFunction(MODULENAME, PS_SETSTATUS, NewsAggrSetStatus); CreateProtoServiceFunction(MODULENAME, PS_GETSTATUS, NewsAggrGetStatus); CreateProtoServiceFunction(MODULENAME, PS_LOADICON, NewsAggrLoadIcon); CreateProtoServiceFunction(MODULENAME, PSS_GETINFO, NewsAggrGetInfo); CreateProtoServiceFunction(MODULENAME, PS_GETAVATARINFO, NewsAggrGetAvatarInfo); CreateProtoServiceFunction(MODULENAME, PSR_MESSAGE, NewsAggrRecvMessage); CreateServiceFunction(MS_NEWSAGGREGATOR_CHECKALLFEEDS, CheckAllFeeds); CreateServiceFunction(MS_NEWSAGGREGATOR_ADDFEED, AddFeed); CreateServiceFunction(MS_NEWSAGGREGATOR_IMPORTFEEDS, ImportFeeds); CreateServiceFunction(MS_NEWSAGGREGATOR_EXPORTFEEDS, ExportFeeds); CreateServiceFunction(MS_NEWSAGGREGATOR_CHECKFEED, CheckFeed); CreateServiceFunction(MS_NEWSAGGREGATOR_CHANGEFEED, ChangeFeed); CreateServiceFunction(MS_NEWSAGGREGATOR_ENABLED, EnableDisable); HOTKEYDESC hkd = {}; hkd.dwFlags = HKD_UNICODE; hkd.pszName = "NewsAggregator/CheckAllFeeds"; hkd.szDescription.w = LPGENW("Check All Feeds"); hkd.szSection.w = LPGENW("News Aggregator"); hkd.pszService = MS_NEWSAGGREGATOR_CHECKALLFEEDS; hkd.DefHotKey = HOTKEYCODE(HOTKEYF_CONTROL+HKCOMB_A, 'O') | HKF_MIRANDA_LOCAL; g_plugin.addHotkey(&hkd); InitIcons(); return 0; }
void QvisSubsetPanelItem::setState(CheckedState s) { if(!checkable) return; if(state != s) { // set the check state state = s; if(!iconsReady) InitIcons(); // change the icon if(s == CompletelyChecked) setIcon(0,iconChecked); else if(s == PartiallyChecked) setIcon(0,iconMixed); else setIcon(0,iconUnchecked); } }
void SvcFlagsLoadModule() { if (CallService(MS_UTILS_GETCOUNTRYLIST, (WPARAM)&nCountriesCount, (LPARAM)&countries)) nCountriesCount = 0; InitIcons(); /* load in iconlib */ CreateServiceFunction(MS_FLAGS_DETECTCONTACTORIGINCOUNTRY, ServiceDetectContactOriginCountry); // init settings g_bUseUnknownFlag = db_get_b(NULL, MODNAMEFLAGS, "UseUnknownFlag", SETTING_USEUNKNOWNFLAG_DEFAULT) != 0; g_bShowStatusIconFlag = db_get_b(NULL, MODNAMEFLAGS, "ShowStatusIconFlag", SETTING_SHOWSTATUSICONFLAG_DEFAULT) != 0; HookEvent(ME_SKIN2_ICONSCHANGED, OnStatusIconsChanged); // get local langID for descIcon (try to use user local Flag as icon) DWORD langid = 0; if (!CallService(MS_UTILS_GETCOUNTRYBYNUMBER, langid, 0)) langid = 1; char szId[20]; mir_snprintf(szId, (langid == 0xFFFF) ? "%s_0x%X" : "%s_%i", "flags", langid); /* buffer safe */ hExtraIconSvc = ExtraIcon_RegisterIcolib("Flags", LPGEN("Flags (UInfoEx)"), szId); }
extern "C" int __declspec(dllexport) Load(PLUGINLINK *link) { pluginLink = link; mir_getMMI(&mmi); mir_getMD5I(&md5i); mir_getUTFI(&utfi); mir_getLI(&li); hMooduleLoaded = HookEvent(ME_SYSTEM_MODULESLOADED, OnModulesLoaded); PROTOCOLDESCRIPTOR pd = {0}; pd.cbSize = sizeof(pd); pd.szName = "AIM"; pd.type = PROTOTYPE_PROTOCOL; pd.fnInit = protoInit; pd.fnUninit = protoUninit; CallService(MS_PROTO_REGISTERMODULE, 0, (LPARAM) & pd); InitThemeSupport(); InitIcons(); return 0; }
extern "C" int __declspec(dllexport) Load(void) { mir_getLP(&pluginInfo); mir_getCLI(); // ensure datetime picker is loaded INITCOMMONCONTROLSEX ccx; ccx.dwSize = sizeof(ccx); ccx.dwICC = ICC_DATE_CLASSES; InitCommonControlsEx(&ccx); HookEvent(ME_SYSTEM_MODULESLOADED,MainInit); HookEvent(ME_SYSTEM_PRESHUTDOWN, MainDeInit); LoadOptions(); InitList(); // initialize icons InitIcons(); HookEvent(ME_OPT_INITIALISE, OptInit); return 0; }
//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CHudControlPointIcons::FireGameEvent( IGameEvent *event ) { const char *eventname = event->GetName(); C_BasePlayer *pPlayer = C_BasePlayer::GetLocalPlayer(); if ( FStrEq( "controlpoint_initialized", eventname ) ) { // Create our control points InitIcons(); return; } if ( FStrEq( "controlpoint_updateimages", eventname ) ) { // Update the images of our control point icons int iIndex = event->GetInt( "index" ); if ( iIndex == -1 ) { for (int i = 0; i < m_Icons.Count(); i++) { m_Icons[i]->UpdateImage(); } } else { // Only invalidate the specified cap point for (int i = 0; i < m_Icons.Count(); i++) { if ( m_Icons[i]->GetCapIndex() == iIndex ) { m_Icons[i]->UpdateImage(); } } } UpdateProgressBarFor( iIndex ); return; } if ( FStrEq( "controlpoint_updatelayout", eventname ) ) { // Update the layout of our control point icons int iIndex = event->GetInt( "index" ); if ( iIndex == -1 ) { InvalidateLayout(); } else { // Only invalidate the specified cap point for (int i = 0; i < m_Icons.Count(); i++) { if ( m_Icons[i]->GetCapIndex() == iIndex ) { m_Icons[i]->InvalidateLayout(); } } } UpdateProgressBarFor( iIndex ); return; } if ( FStrEq( "controlpoint_updatecapping", eventname ) ) { // Update the capping status of our control point icons int iIndex = event->GetInt( "index" ); if ( iIndex == -1 ) { for (int i = 0; i < m_Icons.Count(); i++) { m_Icons[i]->UpdateCapImage(); } } else { // Only invalidate the specified cap point for (int i = 0; i < m_Icons.Count(); i++) { if ( m_Icons[i]->GetCapIndex() == iIndex ) { m_Icons[i]->UpdateCapImage(); } } } UpdateProgressBarFor( iIndex ); return; } if ( FStrEq( "controlpoint_starttouch", eventname ) ) { int iPlayer = event->GetInt( "player" ); if ( pPlayer && iPlayer == pPlayer->entindex() ) { m_iCurrentCP = event->GetInt( "area" ); UpdateProgressBarFor( m_iCurrentCP ); } } else if ( FStrEq( "controlpoint_endtouch", eventname ) ) { int iPlayer = event->GetInt( "player" ); if ( pPlayer && iPlayer == pPlayer->entindex() ) { m_iCurrentCP = -1; UpdateProgressBarFor( m_iCurrentCP ); } } else if ( FStrEq( "controlpoint_pulse_element", eventname ) ) { int iPlayer = event->GetInt( "player" ); if ( pPlayer && iPlayer == pPlayer->entindex() ) { for (int i = 0; i < m_Icons.Count(); i++) { m_Icons[i]->FakePulse( gpGlobals->curtime + (i * PULSE_TIME_PER_ICON) ); } } } else if ( FStrEq( "controlpoint_fake_capture", eventname ) ) { int iPlayer = event->GetInt( "player" ); if ( pPlayer && iPlayer == pPlayer->entindex() ) { m_iCurrentCP = event->GetInt( "int_data" ); m_bFakingCapture = true; m_bFakingCaptureMult = false; m_flFakeCaptureTime = gpGlobals->curtime + FAKE_CAPTURE_TIME + FAKE_CAPTURE_POST_PAUSE; UpdateProgressBarFor( -1 ); } } else if ( FStrEq( "controlpoint_fake_capture_mult", eventname ) ) { int iPlayer = event->GetInt( "player" ); if ( pPlayer && iPlayer == pPlayer->entindex() ) { m_iCurrentCP = event->GetInt( "int_data" ); m_bFakingCapture = true; m_bFakingCaptureMult = true; m_flFakeCaptureTime = gpGlobals->curtime + FAKE_CAPTURE_TIME + FAKE_CAPTURE_POST_PAUSE; UpdateProgressBarFor( -1 ); } } else if ( FStrEq( "intro_nextcamera", eventname ) ) { int iPlayer = event->GetInt( "player" ); if ( pPlayer && iPlayer == pPlayer->entindex() ) { m_iCurrentCP = -1; m_bFakingCapture = false; m_bFakingCaptureMult = false; UpdateProgressBarFor( -1 ); } } else if ( FStrEq( "intro_finish", eventname ) ) { int iPlayer = event->GetInt( "player" ); if ( pPlayer && iPlayer == pPlayer->entindex() ) { m_iCurrentCP = -1; m_flPulseTime = 0; m_bFakingCapture = false; m_bFakingCaptureMult = false; InitIcons(); } } }
extern "C" int __declspec(dllexport) Load(void) { mir_getLP(&pluginInfoEx); mir_getCLI(); // initialize global variables InitVar(); // load options and set defaults LoadOptions(); InitIcons(); // reset the weather data at startup for individual contacts EraseAllInfo(); // load weather update data LoadWIData(true); // set status to online if "Do not display weather condition as protocol status" is enabled old_status = status = ID_STATUS_OFFLINE; // add an event on weather update and error hHookWeatherUpdated = CreateHookableEvent(ME_WEATHER_UPDATED); hHookWeatherError = CreateHookableEvent(ME_WEATHER_ERROR); // initialize options and network HookEvent(ME_OPT_INITIALISE, OptInit); HookEvent(ME_SYSTEM_MODULESLOADED, WeatherInit); HookEvent(ME_DB_CONTACT_DELETED, ContactDeleted); HookEvent(ME_CLIST_DOUBLECLICKED, BriefInfo); HookEvent(ME_WEATHER_UPDATED, WeatherPopup); HookEvent(ME_WEATHER_ERROR, WeatherError); HookEvent(ME_SYSTEM_PRESHUTDOWN, WeatherShutdown); HookEvent(ME_CLIST_PREBUILDCONTACTMENU, BuildContactMenu); hDataWindowList = WindowList_Create(); hWindowList = WindowList_Create(); hUpdateMutex = CreateMutex(NULL, FALSE, NULL); // register weather protocol PROTOCOLDESCRIPTOR pd = { 0 }; pd.cbSize = sizeof(pd); pd.szName = WEATHERPROTONAME; pd.type = (opt.NoProtoCondition) ? PROTOTYPE_VIRTUAL : PROTOTYPE_PROTOCOL; Proto_RegisterModule(&pd); // initialize weather protocol services InitServices(); // add sound event SkinAddNewSoundExT("weatherupdated", _T(WEATHERPROTONAME), LPGENT("Weather Condition Changed")); SkinAddNewSoundExT("weatheralert", _T(WEATHERPROTONAME), LPGENT("Weather Alert Issued")); // window needed for popup commands TCHAR SvcFunc[100]; mir_sntprintf(SvcFunc, _T("%s__PopupWindow"), _T(WEATHERPROTONAME)); hPopupWindow = CreateWindowEx(WS_EX_TOOLWINDOW, _T("static"), SvcFunc, 0, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, HWND_DESKTOP, NULL, hInst, NULL); SetWindowLongPtr(hPopupWindow, GWLP_WNDPROC, (LONG_PTR)PopupWndProc); return 0; }
//===== Load ===== //Initializes the services provided and the link to those needed //Called when the plugin is loaded into Miranda MIRAPI int Load(void) { DuplicateHandle(GetCurrentProcess(), GetCurrentThread(), GetCurrentProcess(), &hMainThread, THREAD_SET_CONTEXT, FALSE, 0); mir_getMTI(&MText); mir_getLP(&pluginInfoEx); CreateServiceFunction(MS_POPUP_GETSTATUS, GetStatus); #if defined(_DEBUG) PopupOptions.debug = db_get_b(NULL, MODULNAME, "debug", FALSE); #else PopupOptions.debug = false; #endif LoadGDIPlus(); //Transparent and animation routines hDwmapiDll = LoadLibrary(_T("dwmapi.dll")); MyDwmEnableBlurBehindWindow = 0; if (hDwmapiDll) MyDwmEnableBlurBehindWindow = (HRESULT (WINAPI *)(HWND, DWM_BLURBEHIND *))GetProcAddress(hDwmapiDll, "DwmEnableBlurBehindWindow"); PopupHistoryLoad(); LoadPopupThread(); if (!LoadPopupWnd2()) { MessageBox(0, TranslateT("Error: I could not register the Popup Window class.\r\nThe plugin will not operate."), _T(MODULNAME_LONG), MB_ICONSTOP | MB_OK); return 0; //We couldn't register our Window Class, don't hook any event: the plugin will act as if it was disabled. } RegisterOptPrevBox(); // Register in DBEditor++ UpgradeDb(); HookEvent(ME_SYSTEM_MODULESLOADED, ModulesLoaded); HookEvent(ME_OPT_INITIALISE, OptionsInitialize); HookEvent(ME_SYSTEM_PRESHUTDOWN, OkToExit); hbmNoAvatar = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_NOAVATAR)); if (!OptionLoaded) LoadOptions(); //Service Functions hEventNotify = CreateHookableEvent(ME_POPUP_FILTER); CreateServiceFunction(MS_POPUP_ADDPOPUP, Popup_AddPopup); CreateServiceFunction(MS_POPUP_ADDPOPUPW, Popup_AddPopupW); CreateServiceFunction(MS_POPUP_ADDPOPUP2, Popup_AddPopup2); CreateServiceFunction(MS_POPUP_CHANGETEXTW, Popup_ChangeTextW); CreateServiceFunction(MS_POPUP_CHANGEW, Popup_ChangeW); CreateServiceFunction(MS_POPUP_CHANGEPOPUP2, Popup_Change2); CreateServiceFunction(MS_POPUP_GETCONTACT, Popup_GetContact); CreateServiceFunction(MS_POPUP_GETPLUGINDATA, Popup_GetPluginData); CreateServiceFunction(MS_POPUP_ISSECONDLINESHOWN, Popup_IsSecondLineShown); CreateServiceFunction(MS_POPUP_SHOWMESSAGE, Popup_ShowMessage); CreateServiceFunction(MS_POPUP_SHOWMESSAGEW, Popup_ShowMessageW); CreateServiceFunction(MS_POPUP_QUERY, Popup_Query); CreateServiceFunction(MS_POPUP_REGISTERACTIONS, Popup_RegisterActions); CreateServiceFunction(MS_POPUP_REGISTERNOTIFICATION, Popup_RegisterNotification); CreateServiceFunction(MS_POPUP_UNHOOKEVENTASYNC, Popup_UnhookEventAsync); CreateServiceFunction(MS_POPUP_REGISTERVFX, Popup_RegisterVfx); CreateServiceFunction(MS_POPUP_REGISTERCLASS, Popup_RegisterPopupClass); CreateServiceFunction(MS_POPUP_UNREGISTERCLASS, Popup_UnregisterPopupClass); CreateServiceFunction(MS_POPUP_ADDPOPUPCLASS, Popup_CreateClassPopup); //load icons / create hook InitIcons(); HookEvent(ME_SKIN2_ICONSCHANGED, IconsChanged); //add menu items InitMenuItems(); return 0; }
int __cdecl onModulesLoaded(WPARAM wParam,LPARAM lParam) { #if defined(_DEBUG) || defined(NETLIB_LOG) InitNetlib(); Sent_NetLog("onModuleLoaded begin"); #endif bMetaContacts = ServiceExists(MS_MC_GETMETACONTACT)!=0; bPopupExists = ServiceExists(MS_POPUP_ADDPOPUPEX)!=0; bPopupUnicode = ServiceExists(MS_POPUP_ADDPOPUPW)!=0; g_hFolders = FoldersRegisterCustomPath(szModuleName, "Icons", MIRANDA_PATH"\\icons"); if( g_hFolders==(HANDLE)CALLSERVICE_NOTFOUND ) g_hFolders = 0; InitIcons(); GetFlags(); #if defined(_DEBUG) || defined(NETLIB_LOG) Sent_NetLog("rsa_init"); #endif { // RSA/AES rsa_init(&exp,&imp); DBVARIANT dbv; dbv.type = DBVT_BLOB; if( DBGetContactSetting(0,szModuleName,"rsa_priv",&dbv) == 0 ) { exp->rsa_set_keypair(CPP_MODE_RSA_4096,dbv.pbVal,dbv.cpbVal); DBFreeVariant(&dbv); rsa_4096=1; } else if( DBGetContactSetting(0,szModuleName,"rsa_priv_4096",&dbv) == 0 ) { exp->rsa_set_keypair(CPP_MODE_RSA_4096|CPP_MODE_RSA_BER,dbv.pbVal,dbv.cpbVal); DBFreeVariant(&dbv); char priv_key[4096]; int priv_len; char pub_key[4096]; int pub_len; DBCONTACTWRITESETTING cws; cws.szModule = szModuleName; cws.value.type = DBVT_BLOB; exp->rsa_get_keypair(CPP_MODE_RSA_4096,(PBYTE)&priv_key,&priv_len,(PBYTE)&pub_key,&pub_len); cws.szSetting = "rsa_priv"; cws.value.pbVal = (PBYTE)&priv_key; cws.value.cpbVal = priv_len; CallService(MS_DB_CONTACT_WRITESETTING, (WPARAM)0, (LPARAM)&cws); cws.szSetting = "rsa_pub"; cws.value.pbVal = (PBYTE)&pub_key; cws.value.cpbVal = pub_len; CallService(MS_DB_CONTACT_WRITESETTING, (WPARAM)0, (LPARAM)&cws); DBDeleteContactSetting(0, szModuleName, "rsa_priv_2048"); DBDeleteContactSetting(0, szModuleName, "rsa_pub_2048"); // DBDeleteContactSetting(0, szModuleName, "rsa_priv_4096"); // DBDeleteContactSetting(0, szModuleName, "rsa_pub_4096"); rsa_4096=1; } if( !rsa_4096 ) { unsigned int tID; CloseHandle( (HANDLE) _beginthreadex(NULL, 0, sttGenerateRSA, NULL, 0, &tID) ); } exp->rsa_set_timeout( DBGetContactSettingWord(0,szModuleName,"ket",10) ); } #if defined(_DEBUG) || defined(NETLIB_LOG) Sent_NetLog("pgp_init"); #endif bPGP = DBGetContactSettingByte(0, szModuleName, "pgp", 0); if(bPGP) { //PGP bPGPloaded = pgp_init(); bUseKeyrings = DBGetContactSettingByte(0,szModuleName,"ukr",1); LPSTR priv = myDBGetStringDecode(0,szModuleName,"pgpPrivKey"); if(priv) { bPGPprivkey = true; if(bPGPloaded) pgp_set_priv_key(priv); mir_free(priv); }// if(priv) if(bPGPloaded && bUseKeyrings) { char PubRingPath[MAX_PATH], SecRingPath[MAX_PATH]; PubRingPath[0]='\0'; SecRingPath[0]='\0'; if(pgp_get_version()<0x02000000) { // 6xx bPGPkeyrings = pgp_open_keyrings(PubRingPath,SecRingPath); } else { LPSTR tmp; tmp = myDBGetString(0,szModuleName,"pgpPubRing"); if(tmp) { strncpy(PubRingPath,tmp,sizeof(PubRingPath)); mir_free(tmp); } tmp = myDBGetString(0,szModuleName,"pgpSecRing"); if(tmp) { strncpy(SecRingPath,tmp,sizeof(SecRingPath)); mir_free(tmp); } if(PubRingPath[0] && SecRingPath[0]) { bPGPkeyrings = pgp_open_keyrings(PubRingPath,SecRingPath); if(bPGPkeyrings) { DBWriteContactSettingString(0,szModuleName,"pgpPubRing",PubRingPath); DBWriteContactSettingString(0,szModuleName,"pgpSecRing",SecRingPath); } else { DBDeleteContactSetting(0, szModuleName, "pgpPubRing"); DBDeleteContactSetting(0, szModuleName, "pgpSecRing"); } } } }// if(bPGPloaded && bUseKeyrings) }// if(bPGP) #if defined(_DEBUG) || defined(NETLIB_LOG) Sent_NetLog("gpg_init"); #endif bGPG = DBGetContactSettingByte(0, szModuleName, "gpg", 0); if(bGPG) { //GPG LPSTR tmp; bGPGloaded = gpg_init(); char gpgexec[MAX_PATH], gpghome[MAX_PATH]; gpgexec[0]='\0'; gpghome[0]='\0'; tmp = myDBGetString(0,szModuleName,"gpgExec"); if(tmp) { strncpy(gpgexec,tmp,sizeof(gpgexec)); mir_free(tmp); } tmp = myDBGetString(0,szModuleName,"gpgHome"); if(tmp) { strncpy(gpghome,tmp,sizeof(gpghome)); mir_free(tmp); } if(DBGetContactSettingByte(0, szModuleName, "gpgLogFlag",0)) { tmp = myDBGetString(0,szModuleName,"gpgLog"); if(tmp) { gpg_set_log(tmp); mir_free(tmp); } } if(DBGetContactSettingByte(0, szModuleName, "gpgTmpFlag",0)) { tmp = myDBGetString(0,szModuleName,"gpgTmp"); if(tmp) { gpg_set_tmp(tmp); mir_free(tmp); } } bGPGkeyrings = gpg_open_keyrings(gpgexec,gpghome); if(bGPGkeyrings) { DBWriteContactSettingString(0,szModuleName,"gpgExec",gpgexec); DBWriteContactSettingString(0,szModuleName,"gpgHome",gpghome); } else { DBDeleteContactSetting(0, szModuleName, "gpgExec"); DBDeleteContactSetting(0, szModuleName, "gpgHome"); } bSavePass = DBGetContactSettingByte(0,szModuleName,"gpgSaveFlag",0); if(bSavePass) { tmp = myDBGetString(0,szModuleName,"gpgSave"); if(tmp) { gpg_set_passphrases(tmp); mir_free(tmp); } } } #if defined(_DEBUG) || defined(NETLIB_LOG) Sent_NetLog("loadContactList"); #endif loadContactList(); // add new skin sound SkinAddNewSound("IncomingSecureMessage","Incoming Secure Message","Sounds\\iSecureMessage.wav"); SkinAddNewSound("OutgoingSecureMessage","Outgoing Secure Message","Sounds\\oSecureMessage.wav"); #if defined(_DEBUG) || defined(NETLIB_LOG) Sent_NetLog("init extra icons"); #endif // init extra icons for(int i=0;i<1+MODE_CNT*IEC_CNT;i++) { g_IEC[i].cbSize = sizeof(g_IEC[i]); g_IEC[i].ColumnType = bADV; g_IEC[i].hImage = (HANDLE)-1; } // build extra imagelist //onExtraImageListRebuilding(0,0); #if defined(_DEBUG) || defined(NETLIB_LOG) Sent_NetLog("hook events"); #endif AddHookFunction(ME_CLIST_PREBUILDCONTACTMENU, onRebuildContactMenu); // g_hMC = HookEvent(ME_MC_SUBCONTACTSCHANGED, onMC); if( ServiceExists(MS_EXTRAICON_REGISTER) ) { g_hCLIcon = ExtraIcon_Register(szModuleName, Translate("SecureIM status"), "sim_cm_est", (MIRANDAHOOK)onExtraImageListRebuilding, (MIRANDAHOOK)onExtraImageApplying); } else { AddHookFunction(ME_CLIST_EXTRA_LIST_REBUILD, onExtraImageListRebuilding); AddHookFunction(ME_CLIST_EXTRA_IMAGE_APPLY, onExtraImageApplying); } // hook init options AddHookFunction(ME_OPT_INITIALISE, onRegisterOptions); if(bPopupExists) AddHookFunction(ME_OPT_INITIALISE, onRegisterPopOptions); AddHookFunction(ME_PROTO_ACK, onProtoAck); AddHookFunction(ME_DB_CONTACT_SETTINGCHANGED, onContactSettingChanged); AddHookFunction(ME_DB_CONTACT_ADDED, onContactAdded); AddHookFunction(ME_DB_CONTACT_DELETED, onContactDeleted); // hook message transport AddProtoServiceFunction(PSR_MESSAGE, onRecvMsg); AddProtoServiceFunction(PSS_MESSAGE, (MIRANDASERVICE)onSendMsg); AddProtoServiceFunction(PSS_MESSAGE"W", (MIRANDASERVICE)onSendMsgW); AddProtoServiceFunction(PSS_FILE, (MIRANDASERVICE)onSendFile); #if defined(_DEBUG) || defined(NETLIB_LOG) Sent_NetLog("create Native/RSA menu"); #endif // create a menu item for creating a secure im connection to the user. g_hMenu[0] = AddMenuItem(sim301,110000,g_hICO[ICO_CM_EST],MODULENAME"/SIM_EST",CMIF_NOTOFFLINE); g_hMenu[1] = AddMenuItem(sim302,110001,g_hICO[ICO_CM_DIS],MODULENAME"/SIM_DIS",CMIF_NOTOFFLINE); if(ServiceExists(MS_CLIST_ADDSUBGROUPMENUITEM)) { g_hMenu[2] = AddMenuItem(sim312[0],110002,NULL,NULL,CMIF_ROOTPOPUP); g_hMenu[3] = AddSubItem(g_hMenu[2],sim232[0],110003,110002,MODULENAME"/SIM_ST_DIS"); g_hMenu[4] = AddSubItem(g_hMenu[2],sim232[1],110004,110002,MODULENAME"/SIM_ST_ENA"); g_hMenu[5] = AddSubItem(g_hMenu[2],sim232[2],110005,110002,MODULENAME"/SIM_ST_TRY"); } else { g_hMenu[2] = 0; g_hMenu[3] = AddMenuItem(sim232[0],110003,NULL,MODULENAME"/SIM_ST_DIS"); g_hMenu[4] = AddMenuItem(sim232[1],110004,NULL,MODULENAME"/SIM_ST_ENA"); g_hMenu[5] = AddMenuItem(sim232[2],110005,NULL,MODULENAME"/SIM_ST_TRY"); } #if defined(_DEBUG) || defined(NETLIB_LOG) Sent_NetLog("create PGP/GPG menu"); #endif HICON icon; if( bPGPloaded ) { icon=mode2icon(MODE_PGP|SECURED,2); g_hMenu[6] = AddMenuItem(sim306,110006,icon,MODULENAME"/PGP_SET",0); icon=mode2icon(MODE_PGP,2); g_hMenu[7] = AddMenuItem(sim307,110007,icon,MODULENAME"/PGP_DEL",0); } if(bGPGloaded) { icon=mode2icon(MODE_GPG|SECURED,2); g_hMenu[8] = AddMenuItem(sim308,110008,icon,MODULENAME"/GPG_SET",0); icon=mode2icon(MODE_GPG,2); g_hMenu[9] = AddMenuItem(sim309,110009,icon,MODULENAME"/GPG_DEL",0); } #if defined(_DEBUG) || defined(NETLIB_LOG) Sent_NetLog("create Mode menu"); #endif if(ServiceExists(MS_CLIST_ADDSUBGROUPMENUITEM)) { g_hMenu[10] = AddMenuItem(sim311[0],110010,NULL,NULL,CMIF_ROOTPOPUP); g_hMenu[11] = AddSubItem(g_hMenu[10],sim231[0],110011,110010,MODULENAME"/MODE_NAT"); g_hMenu[12] = AddSubItem(g_hMenu[10],sim231[1],110012,110010,MODULENAME"/MODE_PGP"); g_hMenu[13] = AddSubItem(g_hMenu[10],sim231[2],110013,110010,MODULENAME"/MODE_GPG"); g_hMenu[14] = AddSubItem(g_hMenu[10],sim231[3],110014,110010,MODULENAME"/MODE_RSA"); } else { g_hMenu[10] = 0; g_hMenu[11] = AddMenuItem(sim231[0],110011,NULL,MODULENAME"/MODE_NAT"); g_hMenu[12] = AddMenuItem(sim231[1],110012,NULL,MODULENAME"/MODE_PGP"); g_hMenu[13] = AddMenuItem(sim231[2],110013,NULL,MODULENAME"/MODE_GPG"); g_hMenu[14] = AddMenuItem(sim231[3],110014,NULL,MODULENAME"/MODE_RSA"); } // updater plugin support if(ServiceExists(MS_UPDATE_REGISTERFL)) { CallService(MS_UPDATE_REGISTERFL, (WPARAM)2445, (LPARAM)&pluginInfo); } #if defined(_DEBUG) || defined(NETLIB_LOG) Sent_NetLog("create srmm icons"); #endif // add icon to srmm status icons if(ServiceExists(MS_MSG_ADDICON)) { StatusIconData sid; memset(&sid,0,sizeof(sid)); sid.cbSize = sizeof(sid); sid.szModule = (char*)szModuleName; sid.flags = MBF_DISABLED|MBF_HIDDEN; // Native sid.dwId = MODE_NATIVE; sid.hIcon = mode2icon(MODE_NATIVE|SECURED,3); sid.hIconDisabled = mode2icon(MODE_NATIVE,3); sid.szTooltip = Translate("SecureIM [Native]"); CallService(MS_MSG_ADDICON, 0, (LPARAM)&sid); // PGP sid.dwId = MODE_PGP; sid.hIcon = mode2icon(MODE_PGP|SECURED,3); sid.hIconDisabled = mode2icon(MODE_PGP,3); sid.szTooltip = Translate("SecureIM [PGP]"); CallService(MS_MSG_ADDICON, 0, (LPARAM)&sid); // GPG sid.dwId = MODE_GPG; sid.hIcon = mode2icon(MODE_GPG|SECURED,3); sid.hIconDisabled = mode2icon(MODE_GPG,3); sid.szTooltip = Translate("SecureIM [GPG]"); CallService(MS_MSG_ADDICON, 0, (LPARAM)&sid); // RSAAES sid.dwId = MODE_RSAAES; sid.hIcon = mode2icon(MODE_RSAAES|SECURED,3); sid.hIconDisabled = mode2icon(MODE_RSAAES,3); sid.szTooltip = Translate("SecureIM [RSA/AES]"); CallService(MS_MSG_ADDICON, 0, (LPARAM)&sid); // hook the window events so that we can can change the status of the icon AddHookFunction(ME_MSG_WINDOWEVENT, onWindowEvent); AddHookFunction(ME_MSG_ICONPRESSED, onIconPressed); } #if defined(_DEBUG) || defined(NETLIB_LOG) Sent_NetLog("onModuleLoaded end"); #endif return 0; }
//===== Load ===== //Initializes the services provided and the link to those needed //Called when the plugin is loaded into Miranda MIRAPI int Load(PLUGINLINK *link) { char ver[1024]; pluginLink=link; g_popup.isOsUnicode = (GetVersion() & 0x80000000) == 0; CallService(MS_SYSTEM_GETVERSIONTEXT, (WPARAM) sizeof(ver), (LPARAM) ver); g_popup.isMirUnicode = strstr(ver, "Unicode") != NULL; hGetStatus = CreateServiceFunction(MS_POPUP_GETSTATUS, GetStatus); DuplicateHandle(GetCurrentProcess(), GetCurrentThread(), GetCurrentProcess(), &hMainThread, THREAD_SET_CONTEXT, FALSE, 0); mir_getLI (&li); mir_getMMI (&mmi); mir_getUTFI (&utfi); mir_getMTI (&MText); mir_getLP(&pluginInfoEx); #if defined(_DEBUG) PopUpOptions.debug = DBGetContactSettingByte(NULL, MODULNAME, "debug", FALSE); #else PopUpOptions.debug = false; #endif LoadGDIPlus(); //Transparent and animation routines OSVERSIONINFO osvi = { 0 }; BOOL bResult = FALSE; osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); bResult = GetVersionEx(&osvi); // MLU layer for ansi release #if !defined(_UNICODE) MySetLayeredWindowAttributes = 0; MyUpdateLayeredWindow = 0; MyAnimateWindow = 0; MyDrawTextW = 0; MyDrawTextExW = 0; MySetWindowTextW = 0; MySendMessageW = 0; MyCallWindowProcW = 0; MyCreateWindowExW = 0; MyGetMonitorInfo = 0; MyMonitorFromWindow = 0; hUserDll = LoadLibrary(_T("user32.dll")); if (hUserDll) { MySetLayeredWindowAttributes = (BOOL (WINAPI *)(HWND,COLORREF,BYTE,DWORD))GetProcAddress(hUserDll, "SetLayeredWindowAttributes"); MyUpdateLayeredWindow = (BOOL (WINAPI *)(HWND, HDC, POINT *, SIZE *, HDC, POINT *, COLORREF, BLENDFUNCTION *, DWORD))GetProcAddress(hUserDll, "UpdateLayeredWindow"); MyAnimateWindow = (BOOL (WINAPI*)(HWND,DWORD,DWORD))GetProcAddress(hUserDll,"AnimateWindow"); MyDrawTextW = (int (WINAPI *)(HDC, LPCWSTR, int, LPRECT, UINT))GetProcAddress(hUserDll,"DrawTextW"); MyDrawTextExW = (int (WINAPI*)(HDC,LPCWSTR,int,LPRECT,UINT,LPDRAWTEXTPARAMS))GetProcAddress(hUserDll,"DrawTextExW"); MySetWindowTextW = (BOOL (WINAPI*)(HWND, LPCWSTR))GetProcAddress(hUserDll,"SetWindowTextW"); MySendMessageW = (LRESULT (WINAPI *)(HWND, UINT, WPARAM, LPARAM))GetProcAddress(hUserDll,"SendMessageW"); MyCallWindowProcW = (LRESULT (WINAPI *)(WNDPROC, HWND, UINT, WPARAM, LPARAM))GetProcAddress(hUserDll,"CallWindowProcW"); MyCreateWindowExW = (HWND (WINAPI*)(DWORD, LPCWSTR, LPCWSTR, DWORD, int, int, int, int, HWND, HMENU, HINSTANCE, LPVOID))GetProcAddress(hUserDll,"CreateWindowExW"); if (LOWORD(GetVersion())!=4) { //Windows 98, ME, 2000, XP, and later support multimonitor configuration. if (bResult) { if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) { //2000 or XP #ifdef UNICODE MyGetMonitorInfo = (BOOL (WINAPI*)(HMONITOR,LPMONITORINFO))GetProcAddress(hUserDll,("GetMonitorInfoW")); #else MyGetMonitorInfo = (BOOL (WINAPI*)(HMONITOR,LPMONITORINFO))GetProcAddress(hUserDll,("GetMonitorInfoA")); #endif //UNICODE } else { //98 or ME // attempt to fix multimonitor on 9x MyGetMonitorInfo = (BOOL (WINAPI*)(HMONITOR,LPMONITORINFO))GetProcAddress(hUserDll,("GetMonitorInfoA")); if (!MyGetMonitorInfo) MyGetMonitorInfo = (BOOL (WINAPI*)(HMONITOR,LPMONITORINFO))GetProcAddress(hUserDll,("GetMonitorInfo")); } } //There's no need for an else branch. if (MyGetMonitorInfo) MyMonitorFromWindow = (HMONITOR (WINAPI*)(HWND,DWORD))GetProcAddress(hUserDll, ("MonitorFromWindow")); } } hGdiDll = LoadLibrary(_T("gdi32.dll")); if (hGdiDll) { MyGetTextExtentPoint32W = (BOOL (WINAPI *)(HDC, LPCWSTR, int, LPSIZE))GetProcAddress(hGdiDll,"GetTextExtentPoint32W"); } else{ MyGetTextExtentPoint32W = 0; } hMsimgDll = LoadLibrary(_T("msimg32.dll")); MyAlphaBlend = 0; MyTransparentBlt = 0; if (hMsimgDll) { MyTransparentBlt = (BOOL (WINAPI *)(HDC, int, int, int, int, HDC, int, int, int, int, UINT)) GetProcAddress(hMsimgDll, "TransparentBlt"); MyAlphaBlend = (BOOL (WINAPI *)(HDC, int, int, int, int, HDC, int, int, int, int, BLENDFUNCTION)) GetProcAddress(hMsimgDll, "AlphaBlend"); } #endif hDwmapiDll = LoadLibrary(_T("dwmapi.dll")); MyDwmEnableBlurBehindWindow = 0; if (hDwmapiDll) { MyDwmEnableBlurBehindWindow = (HRESULT (WINAPI *)(HWND, DWM_BLURBEHIND *)) GetProcAddress(hDwmapiDll, "DwmEnableBlurBehindWindow"); } PopupHistoryLoad(); LoadPopupThread(); if (!LoadPopupWnd2()) { MessageBox(0, TranslateTS( _T("Error: I could not register the PopUp Window class.\r\n") _T("The plugin will not operate.") ), _T(MODULNAME_LONG), MB_ICONSTOP|MB_OK); return 0; //We couldn't register our Window Class, don't hook any event: the plugin will act as if it was disabled. } RegisterOptPrevBox(); // Register in DBEditor++ DBVARIANT dbv; if (DBGetContactSetting(NULL, "KnownModules", MODULNAME, &dbv)) DBWriteContactSettingString(NULL, "KnownModules", pluginInfoEx.shortName, MODULNAME); DBFreeVariant(&dbv); hModulesLoaded = HookEvent(ME_SYSTEM_MODULESLOADED, ModulesLoaded); hOptionsInitialize = HookEvent(ME_OPT_INITIALISE, OptionsInitialize); hOkToExit = HookEvent(ME_SYSTEM_OKTOEXIT, OkToExit); // hEventStatusChanged = HookEvent(ME_CLIST_STATUSMODECHANGE,StatusModeChanged); hbmNoAvatar = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_NOAVATAR)); if(!OptionLoaded){ LoadOptions(); } //Service Functions for (int i = SIZEOF(popupServices); i--; ) popupServices[i].handle = CreateServiceFunction(popupServices[i].name, popupServices[i].func); //load icons / create hook InitIcons(); hIconsChanged = HookEvent(ME_SKIN2_ICONSCHANGED,IconsChanged); //add menu items InitMenuItems(); return 0; }