static void DBExtraIconsInit() { hExtraChat = ExtraIcon_Register("chat_activity", "Chat activity", "ChatActivity"); hExtraVisibility = ExtraIcon_Register("visibility", "Visibility", "AlwaysVis"); hExtraGender = ExtraIcon_Register("gender", "Gender", "gender_male"); for (unsigned int i = 0; i < MAX_REGS(infos); ++i) { Info &info = infos[i]; if (info.OnClick) info.hExtraIcon = ExtraIcon_Register(info.name, info.desc, info.icon, DefaultOnClick, (LPARAM) &info); else info.hExtraIcon = ExtraIcon_Register(info.name, info.desc, info.icon); } HANDLE hContact = (HANDLE) CallService(MS_DB_CONTACT_FINDFIRST, 0, 0); while (hContact != NULL) { SetExtraIcons(hContact); SetVisibility(hContact, -1, FALSE); SetGender(hContact, -1, FALSE); hContact = (HANDLE) CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM) hContact, 0); } hHooks.push_back(HookEvent(ME_DB_CONTACT_SETTINGCHANGED, SettingChanged)); }
static int OnModulesLoaded(WPARAM, LPARAM) { HookEvent(ME_TTB_MODULELOADED, g_OnToolbarInit); bSecureIM = (ServiceExists("SecureIM/IsContactSecured")); bMirOTR = (int)GetModuleHandle(_T("mirotr.dll")); bNewGPG = (int)GetModuleHandle(_T("new_gpg.dll")); #ifdef _WIN64 bPlatform = 1; #else bPlatform = 0; #endif // file associations manager plugin support if (ServiceExists(MS_ASSOCMGR_ADDNEWURLTYPE)) { CreateServiceFunction("JABBER/*" JS_PARSE_XMPP_URI, g_SvcParseXmppUri); AssocMgr_AddNewUrlTypeT("xmpp:", TranslateT("Jabber Link Protocol"), hInst, IDI_JABBER, "JABBER/*" JS_PARSE_XMPP_URI, 0); } // init fontservice for info frame FontIDT fontid = {0}; fontid.cbSize = sizeof(fontid); _tcsncpy(fontid.group, LPGENT("Jabber"), SIZEOF(fontid.group)); strncpy(fontid.dbSettingsGroup, GLOBAL_SETTING_MODULE, SIZEOF(fontid.dbSettingsGroup)); _tcsncpy(fontid.backgroundGroup, _T("Jabber"), SIZEOF(fontid.backgroundGroup)); _tcsncpy(fontid.backgroundName,_T("Background"), SIZEOF(fontid.backgroundName)); fontid.flags = FIDF_DEFAULTVALID; fontid.deffontsettings.charset = DEFAULT_CHARSET; fontid.deffontsettings.colour = GetSysColor(COLOR_WINDOWTEXT); fontid.deffontsettings.size = -11; lstrcpyn(fontid.deffontsettings.szFace, _T("MS Shell Dlg"), SIZEOF(fontid.deffontsettings.szFace)); fontid.deffontsettings.style = 0; _tcsncpy(fontid.name, LPGENT("Frame title"), SIZEOF(fontid.name)); strncpy(fontid.prefix, "fntFrameTitle", SIZEOF(fontid.prefix)); fontid.deffontsettings.style = DBFONTF_BOLD; FontRegisterT(&fontid); _tcsncpy(fontid.name, LPGENT("Frame text"), SIZEOF(fontid.name)); strncpy(fontid.prefix, "fntFrameClock", SIZEOF(fontid.prefix)); fontid.deffontsettings.style = 0; FontRegisterT(&fontid); ColourIDT colourid = {0}; colourid.cbSize = sizeof(colourid); _tcsncpy(colourid.group, _T("Jabber"), SIZEOF(colourid.group)); strncpy(colourid.dbSettingsGroup, GLOBAL_SETTING_MODULE, SIZEOF(colourid.dbSettingsGroup)); _tcsncpy(colourid.name, _T("Background"), SIZEOF(colourid.name)); strncpy(colourid.setting, "clFrameBack", SIZEOF(colourid.setting)); colourid.defcolour = GetSysColor(COLOR_WINDOW); ColourRegisterT(&colourid); // Init extra icons hExtraActivity = ExtraIcon_Register("activity", LPGEN("Jabber Activity"), "jabber_dancing"); hExtraMood = ExtraIcon_Register("mood", LPGEN("Jabber Mood"), "jabber_contemplative"); return 0; }
CMraProto::CMraProto(const char* _module, const TCHAR* _displayName) : PROTO<CMraProto>(_module, _displayName), m_bLoggedIn(false), m_groups(5, NumericKeySortT) { InitializeCriticalSectionAndSpinCount(&csCriticalSectionSend, 0); MraSendQueueInitialize(0, &hSendQueueHandle); MraFilesQueueInitialize(0, &hFilesQueueHandle); MraMPopSessionQueueInitialize(&hMPopSessionQueue); MraAvatarsQueueInitialize(&hAvatarsQueueHandle); CreateProtoService(PS_SETCUSTOMSTATUSEX, &CMraProto::MraSetXStatusEx); CreateProtoService(PS_GETCUSTOMSTATUSEX, &CMraProto::MraGetXStatusEx); CreateProtoService(PS_GETCUSTOMSTATUSICON, &CMraProto::MraGetXStatusIcon); CreateProtoService(PS_SET_LISTENINGTO, &CMraProto::MraSetListeningTo); CreateProtoService(PS_CREATEACCMGRUI, &CMraProto::MraCreateAccMgrUI); CreateProtoService(PS_GETAVATARCAPS, &CMraProto::MraGetAvatarCaps); CreateProtoService(PS_GETAVATARINFOT, &CMraProto::MraGetAvatarInfo); CreateProtoService(PS_GETMYAVATART, &CMraProto::MraGetMyAvatar); CreateProtoService(MS_ICQ_SENDSMS, &CMraProto::MraSendSMS); CreateProtoService(PS_SEND_NUDGE, &CMraProto::MraSendNudge); if ( ServiceExists(MS_NUDGE_SEND)) m_heNudgeReceived = CreateProtoEvent(PE_NUDGE); TCHAR name[128]; mir_sntprintf( name, SIZEOF(name), TranslateT("%s connection"), m_tszUserName); NETLIBUSER nlu = { sizeof(nlu) }; nlu.flags = NUF_INCOMING | NUF_OUTGOING | NUF_HTTPCONNS | NUF_UNICODE; nlu.szSettingsModule = m_szModuleName; nlu.ptszDescriptiveName = name; m_hNetlibUser = (HANDLE)CallService(MS_NETLIB_REGISTERUSER, 0, (LPARAM)&nlu); HookProtoEvent(ME_SYSTEM_PRESHUTDOWN, &CMraProto::OnPreShutdown); InitMenus(); mir_snprintf(szNewMailSound, SIZEOF(szNewMailSound), "%s: %s", m_szModuleName, MRA_SOUND_NEW_EMAIL); SkinAddNewSoundEx(szNewMailSound, m_szModuleName, MRA_SOUND_NEW_EMAIL); HookProtoEvent(ME_CLIST_PREBUILDSTATUSMENU, &CMraProto::MraRebuildStatusMenu); hExtraXstatusIcon = ExtraIcon_Register("MRAXstatus", LPGEN("Mail.ru Xstatus"), "mra_xstatus25"); hExtraInfo = ExtraIcon_Register("MRAStatus", LPGEN("Mail.ru extra info"), "mra_xstatus49"); bHideXStatusUI = FALSE; m_iXStatus = getByte(DBSETTING_XSTATUSID, MRA_MIR_XSTATUS_NONE); if ( !IsXStatusValid(m_iXStatus)) m_iXStatus = MRA_MIR_XSTATUS_NONE; }
CMraProto::CMraProto(const char* _module, const TCHAR* _displayName) : PROTO<CMraProto>(_module, _displayName), m_bLoggedIn(false), m_groups(5, NumericKeySortT) { MraSendQueueInitialize(0, &hSendQueueHandle); MraFilesQueueInitialize(0, &hFilesQueueHandle); MraMPopSessionQueueInitialize(&hMPopSessionQueue);//getByte("AutoAuthOnWebServices", MRA_DEFAULT_AUTO_AUTH_ON_WEB_SVCS) MraAvatarsQueueInitialize(&hAvatarsQueueHandle); CreateProtoService(PS_SETCUSTOMSTATUSEX, &CMraProto::MraSetXStatusEx); CreateProtoService(PS_GETCUSTOMSTATUSEX, &CMraProto::MraGetXStatusEx); CreateProtoService(PS_GETCUSTOMSTATUSICON, &CMraProto::MraGetXStatusIcon); CreateProtoService(PS_SET_LISTENINGTO, &CMraProto::MraSetListeningTo); CreateProtoService(PS_CREATEACCMGRUI, &CMraProto::MraCreateAccMgrUI); CreateProtoService(PS_GETAVATARCAPS, &CMraProto::MraGetAvatarCaps); CreateProtoService(PS_GETAVATARINFO, &CMraProto::MraGetAvatarInfo); CreateProtoService(PS_GETMYAVATAR, &CMraProto::MraGetMyAvatar); CreateProtoService(MS_ICQ_SENDSMS, &CMraProto::MraSendSMS); CreateProtoService(PS_SEND_NUDGE, &CMraProto::MraSendNudge); CreateProtoService(PS_GETUNREADEMAILCOUNT, &CMraProto::GetUnreadEmailCount); if (ServiceExists(MS_NUDGE_SEND)) m_heNudgeReceived = CreateProtoEvent(PE_NUDGE); TCHAR name[MAX_PATH]; mir_sntprintf(name, _countof(name), TranslateT("%s connection"), m_tszUserName); NETLIBUSER nlu = { sizeof(nlu) }; nlu.flags = NUF_INCOMING | NUF_OUTGOING | NUF_HTTPCONNS | NUF_TCHAR; nlu.szSettingsModule = m_szModuleName; nlu.ptszDescriptiveName = name; m_hNetlibUser = (HANDLE)CallService(MS_NETLIB_REGISTERUSER, 0, (LPARAM)&nlu); InitMenus(); mir_snprintf(szNewMailSound, _countof(szNewMailSound), "%s_new_email", m_szModuleName); SkinAddNewSoundEx(szNewMailSound, m_szModuleName, MRA_SOUND_NEW_EMAIL); HookProtoEvent(ME_CLIST_PREBUILDSTATUSMENU, &CMraProto::MraRebuildStatusMenu); hExtraXstatusIcon = ExtraIcon_Register("MRAXstatus", LPGEN("Mail.ru xStatus"), "mra_xstatus25"); hExtraInfo = ExtraIcon_Register("MRAStatus", LPGEN("Mail.ru extra info"), MRA_XSTATUS_UNKNOWN_STR); m_bHideXStatusUI = false; m_iXStatus = getByte(DBSETTING_XSTATUSID, MRA_MIR_XSTATUS_NONE); if (!IsXStatusValid(m_iXStatus)) m_iXStatus = MRA_MIR_XSTATUS_NONE; }
static int OnModulesLoaded( WPARAM, LPARAM ) { bSecureIM = (ServiceExists("SecureIM/IsContactSecured")); // file associations manager plugin support if ( ServiceExists( MS_ASSOCMGR_ADDNEWURLTYPE )) { CreateServiceFunction("JABBER/*" JS_PARSE_XMPP_URI, g_SvcParseXmppUri ); AssocMgr_AddNewUrlTypeT( "xmpp:", TranslateT("Jabber Link Protocol"), hInst, IDI_JABBER, "JABBER/*" JS_PARSE_XMPP_URI, 0 ); } // init fontservice for info frame FontID fontid = {0}; fontid.cbSize = sizeof(fontid); strcpy(fontid.group, "Jabber"); strcpy(fontid.dbSettingsGroup, GLOBAL_SETTING_MODULE); strcpy(fontid.backgroundGroup, "Jabber"); strcpy(fontid.backgroundName,"Background"); fontid.flags = FIDF_DEFAULTVALID; fontid.deffontsettings.charset = DEFAULT_CHARSET; fontid.deffontsettings.colour = GetSysColor(COLOR_WINDOWTEXT); fontid.deffontsettings.size = -11; lstrcpyA(fontid.deffontsettings.szFace, "MS Shell Dlg"); fontid.deffontsettings.style = 0; strcpy(fontid.name, "Frame title"); strcpy(fontid.prefix, "fntFrameTitle"); fontid.deffontsettings.style = DBFONTF_BOLD; CallService(MS_FONT_REGISTER, (WPARAM)&fontid, 0); strcpy(fontid.name, "Frame text"); strcpy(fontid.prefix, "fntFrameClock"); fontid.deffontsettings.style = 0; CallService(MS_FONT_REGISTER, (WPARAM)&fontid, 0); ColourID colourid = {0}; colourid.cbSize = sizeof(colourid); strcpy(colourid.group, "Jabber"); strcpy(colourid.dbSettingsGroup, GLOBAL_SETTING_MODULE); strcpy(colourid.name, "Background"); strcpy(colourid.setting, "clFrameBack"); colourid.defcolour = GetSysColor(COLOR_WINDOW); CallService(MS_COLOUR_REGISTER, (WPARAM)&colourid, 0); // Init extra icons hExtraActivity = ExtraIcon_Register("activity", "Jabber Activity" /* No icons registered, "working" */); hExtraMood = ExtraIcon_Register("mood", "Jabber Mood" /* No icons registered, "amazed" */); return 0; }
bool SvcHomepageEnableExtraIcons(bool bEnable, bool bUpdateDB) { bool bChanged; if (bUpdateDB) { bChanged = g_eiHome != bEnable; db_set_b(NULL, MODNAME, SET_CLIST_EXTRAICON_HOMEPAGE, g_eiHome = bEnable); } else bChanged = g_eiHome = db_get_b(NULL, MODNAME, SET_CLIST_EXTRAICON_HOMEPAGE, DEFVAL_CLIST_EXTRAICON_HOMEPAGE) != 0; if (g_eiHome) { // hook events if (hChangedHook == NULL) hChangedHook = HookEvent(ME_DB_CONTACT_SETTINGCHANGED, (MIRANDAHOOK)OnContactSettingChanged); if (hApplyIconHook == NULL) hApplyIconHook = HookEvent(ME_CLIST_EXTRA_IMAGE_APPLY, (MIRANDAHOOK)OnCListApplyIcons); if (ghExtraIconSvc == INVALID_HANDLE_VALUE) ghExtraIconSvc = ExtraIcon_Register("homepage", LPGEN("Homepage (uinfoex)"), ICO_BTN_GOTO); } else { if (hChangedHook) { UnhookEvent(hChangedHook); hChangedHook = NULL; } if (hApplyIconHook) { UnhookEvent(hApplyIconHook); hApplyIconHook = NULL; } } return bChanged; }
bool SvcGenderEnableExtraIcons(bool bEnable, bool bUpdateDB) { bool bChanged; if (bUpdateDB) { bChanged = g_eiGender != bEnable; db_set_b(NULL, MODNAME, SET_CLIST_EXTRAICON_GENDER2, g_eiGender = bEnable); } else bChanged = g_eiGender = db_get_b(NULL, MODNAME, SET_CLIST_EXTRAICON_GENDER2, 0) != 0; if (g_eiGender) { // Gender checked or dropdown select if (ghExtraIconSvc == INVALID_HANDLE_VALUE) ghExtraIconSvc = ExtraIcon_Register("gender", LPGEN("Gender (uinfoex)"), ICO_COMMON_MALE); // hook events if (hChangedHook == NULL) hChangedHook = HookEvent(ME_DB_CONTACT_SETTINGCHANGED, (MIRANDAHOOK)OnContactSettingChanged); if (hApplyIconHook == NULL) hApplyIconHook = HookEvent(ME_CLIST_EXTRA_IMAGE_APPLY, (MIRANDAHOOK)OnCListApplyIcons); } else { if (hChangedHook) { UnhookEvent(hChangedHook); hChangedHook = NULL; } if (hApplyIconHook) { UnhookEvent(hApplyIconHook); hApplyIconHook = NULL; } } return bChanged; }
extern "C" int __declspec(dllexport) Load(void) { mir_getLP(&pluginInfo); mir_getCLI(); mir_getTMI(&tmi); srand(time(NULL)); _tzset(); // Register the module PROTOCOLDESCRIPTOR pd = { sizeof(pd) }; pd.szName = ICQ_PROTOCOL_NAME; pd.type = PROTOTYPE_PROTOCOL; pd.fnInit = icqProtoInit; pd.fnUninit = icqProtoUninit; CallService(MS_PROTO_REGISTERMODULE, 0, (LPARAM)&pd); // Initialize charset conversion routines InitI18N(); // Register static services CreateServiceFunction(ICQ_DB_GETEVENTTEXT_MISSEDMESSAGE, icq_getEventTextMissedMessage); // Init extra statuses InitXStatusIcons(); HookEvent(ME_SKIN2_ICONSCHANGED, OnReloadIcons); HookEvent(ME_SYSTEM_MODULELOAD, ModuleLoad); HookEvent(ME_SYSTEM_MODULEUNLOAD, ModuleLoad); hExtraXStatus = ExtraIcon_Register("xstatus", LPGEN("ICQ xStatus"), "icq_xstatus13"); g_MenuInit(); return 0; }
int LoadIcons() { //hiDlgIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_BIRTHDAYS_DLG)); hiCheckMenu = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_CHECK)); hiListMenu = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_LIST)); hiAddBirthdayContact = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ADD)); hiRefreshUserDetails = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_REFRESH_USERDETAILS)); hiImportBirthdays = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_IMPORT_BIRTHDAYS)); hiExportBirthdays = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_EXPORT_BIRTHDAYS)); GET_DTB_ICON(0); GET_DTB_ICON(1); GET_DTB_ICON(2); GET_DTB_ICON(3); GET_DTB_ICON(4); GET_DTB_ICON(5); GET_DTB_ICON(6); GET_DTB_ICON(7); GET_DTB_ICON(8); GET_DTB_ICON(9); hiDTBMore = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_DTBMORE)); AddIcons(); GetIcons(); if (ServiceExists(MS_EXTRAICON_REGISTER)) { hWWIExtraIcons = ExtraIcon_Register("WhenWasIt", Translate("WhenWasIt birthday reminder"), "MenuCheck", OnExtraIconListRebuild, OnExtraImageApply); } return 0; }
bool SvcPhoneEnableExtraIcons(bool bEnable, bool bUpdateDB) { bool bChanged; if (bUpdateDB) { bChanged = g_eiPhone != bEnable; db_set_b(NULL, MODNAME, SET_CLIST_EXTRAICON_PHONE, g_eiPhone = bEnable); } else bChanged = g_eiPhone = db_get_b(NULL, MODNAME, SET_CLIST_EXTRAICON_PHONE, DEFVAL_CLIST_EXTRAICON_PHONE) != 0; // force module enabled, if extraicon plugin was found if (g_eiPhone) { // hook events if (hChangedHook == NULL) hChangedHook = HookEvent(ME_DB_CONTACT_SETTINGCHANGED, (MIRANDAHOOK)OnContactSettingChanged); if (hApplyIconHook == NULL) hApplyIconHook = HookEvent(ME_CLIST_EXTRA_IMAGE_APPLY, (MIRANDAHOOK)OnCListApplyIcons); if (ghExtraIconSvc == INVALID_HANDLE_VALUE) ghExtraIconSvc = ExtraIcon_Register("sms", LPGEN("Phone (uinfoex)"), ICO_BTN_CELLULAR); } else { if (hChangedHook) { UnhookEvent(hChangedHook); hChangedHook = NULL; } if (hApplyIconHook) { UnhookEvent(hApplyIconHook); hApplyIconHook = NULL; } } return bChanged; }
CExtraImages::CExtraImages() : m_hExtraIcons(ExtraIcon_Register(ICON_STR_QUOTE,QUOTES_PROTOCOL_NAME,Quotes_MakeIconName(ICON_STR_MAIN).c_str())), m_bExtraImagesInit(false), m_nSlot(DBGetContactSettingWord(NULL,QUOTES_PROTOCOL_NAME,DB_STR_QUOTE_EXTRA_IMAGE_SLOT,EXTRA_ICON_ADV1)) { m_ahExtraImages[eiUp] = INVALID_IMAGE_HANDLE; m_ahExtraImages[eiDown] = INVALID_IMAGE_HANDLE; m_ahExtraImages[eiNotChanged] = INVALID_IMAGE_HANDLE; }
extern "C" int __declspec(dllexport) Load() { // set the memory, lists & utf8 managers mir_getXI(&xi); mir_getTMI(&tmi); mir_getLP(&pluginInfo); mir_getCLI(); { INT_PTR result = CallService(MS_IMG_GETINTERFACE, FI_IF_VERSION, (LPARAM)&FIP); if (FIP == NULL || result != S_OK) { MessageBoxEx(NULL, TranslateT("Fatal error, image services not found. Jabber Protocol will be disabled."), _T("Error"), MB_OK | MB_ICONERROR | MB_APPLMODAL, 0); return 1; } } WORD v[4]; CallService(MS_SYSTEM_GETFILEVERSION, 0, (LPARAM)v); mir_sntprintf(szCoreVersion, SIZEOF(szCoreVersion), _T("%d.%d.%d.%d"), v[0], v[1], v[2], v[3]); CallService(MS_UTILS_GETCOUNTRYLIST, (WPARAM)&g_cbCountries, (LPARAM)&g_countries); hExtListInit = CreateHookableEvent(ME_JABBER_EXTLISTINIT); hDiscoInfoResult = CreateHookableEvent(ME_JABBER_SRVDISCOINFO); // Register protocol module PROTOCOLDESCRIPTOR pd = { sizeof(pd) }; pd.szName = "JABBER"; pd.fnInit = (pfnInitProto)jabberProtoInit; pd.fnUninit = (pfnUninitProto)jabberProtoUninit; pd.type = PROTOTYPE_PROTOCOL; CallService(MS_PROTO_REGISTERMODULE, 0, (LPARAM)&pd); g_IconsInit(); g_XstatusIconsInit(); // Init extra icons hExtraActivity = ExtraIcon_Register("activity", LPGEN("Jabber Activity"), "jabber_dancing"); hExtraMood = ExtraIcon_Register("mood", LPGEN("Jabber Mood"), "jabber_contemplative"); g_MenuInit(); HookEvent(ME_SYSTEM_MODULESLOADED, OnModulesLoaded); JabberUserInfoInit(); return 0; }
void InitFingerModule() { HookEvent(ME_SYSTEM_MODULESLOADED, OnModulesLoaded); HookEvent(ME_MC_DEFAULTTCHANGED, OnMetaDefaultChanged); CreateServiceFunction(MS_FP_SAMECLIENTSW, ServiceSameClientsW); CreateServiceFunction(MS_FP_GETCLIENTDESCRW, ServiceGetClientDescrW); CreateServiceFunction(MS_FP_GETCLIENTICONW, ServiceGetClientIconW); hExtraIcon = ExtraIcon_Register("Client", LPGEN("Fingerprint"), "client_Miranda_unknown", OnExtraIconListRebuild, OnExtraImageApply, OnExtraIconClick); }
void DefaultExtraIcons_Load() { hExtraChat = ExtraIcon_Register("chat_activity", LPGEN("Chat activity"), "ChatActivity"); hExtraVisibility = ExtraIcon_Register("visibility", "Visibility", LoadSkinnedIconName(SKINICON_OTHER_VISIBLE_ALL)); hExtraGender = ExtraIcon_Register("gender", "Gender", "gender_male"); hExtraProto = ExtraIcon_Register("protocol", "Account", LoadSkinnedIconName(SKINICON_OTHER_ACCMGR), &ProtocolRebuildIcons, &ProtocolApplyIcon, &ProtocolOnClick); for (int i = 0; i < SIZEOF(infos); i++) { Info &p = infos[i]; p.hIcolib = LoadSkinnedIconHandle(p.iSkinIcon); if (p.OnClick) p.hExtraIcon = ExtraIcon_Register(p.name, p.desc, LoadSkinnedIconName(p.iSkinIcon), DefaultOnClick, (LPARAM)&p); else p.hExtraIcon = ExtraIcon_Register(p.name, p.desc, LoadSkinnedIconName(p.iSkinIcon)); } for (MCONTACT hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) { SetExtraIcons(hContact); SetVisibility(hContact, -1, false); SetGender(hContact, -1, false); } HookEvent(ME_DB_CONTACT_SETTINGCHANGED, SettingChanged); }
void InitExtraImg(void) { CreateServiceFunction(MS_FLAGS_DETECTCONTACTORIGINCOUNTRY, ServiceDetectContactOriginCountry); HookEvent(ME_SYSTEM_MODULESLOADED, ExtraImgModulesLoaded); HookEvent(ME_SKIN2_ICONSCHANGED, StatusIconsChanged); HookEvent(ME_OPT_INITIALISE, OnOptionsInit); HookEvent(ME_DB_CONTACT_SETTINGCHANGED, ExtraImgSettingChanged); /* Extra Image */ hExtraIcon = ExtraIcon_Register("flags_extra", LPGEN("Country flag"), "flags_0"); if (bShowExtraIcon) EnsureExtraImages(); }
int onModulesLoaded(WPARAM wParam,LPARAM lParam) { // IcoLib support Icon_Register(g_hInst, "Mobile State", &icon, 1); // Extra icons hExtraIcon = ExtraIcon_Register("mobilestate", LPGEN("Mobile State"), "mobile_icon"); // Set initial value for all contacts for (MCONTACT hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) ExtraIconsApply(hContact, 1); return 0; }
int onModulesLoaded(WPARAM wParam,LPARAM lParam) { HookEvent(ME_OPT_INITIALISE, onOptInitialise); //IcoLib support Icon_Register(g_hInst, LPGEN("Ignore State"), iconList, SIZEOF(iconList)); fill_filter(); hExtraIcon = ExtraIcon_Register("ignore", LPGEN("Ignore State"), "ignore_full"); // Set initial value for all contacts for (HANDLE hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) applyExtraImage(hContact); return 0; }
void InitExtraIcons(void) { hExtraAT = ExtraIcon_Register("aimaccounttype", LPGEN("AIM Account Type"), "AIM_aol"); hExtraES = ExtraIcon_Register("aimextstatus", LPGEN("AIM Extended Status"), "AIM_hiptop"); }
static void ProtocolInit() { hExtraProto = ExtraIcon_Register("protocol", "Account", "core_main_34", &ProtocolRebuildIcons, &ProtocolApplyIcon, &ProtocolOnClick); }
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; }