From 13c033c257f6c083b0c46b4fa28601db5a0b6335 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Thu, 27 Feb 2014 20:50:07 +0000 Subject: MS_MC_GETMETACONTACT => db_mc_getMeta git-svn-id: http://svn.miranda-ng.org/main/trunk@8317 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/AvatarHistory/src/AvatarHistory.cpp | 29 ++++++-------- .../ClientChangeNotify/src/ClientChangeNotify.cpp | 7 ++-- plugins/Db3x_mmap/src/dbcontacts.cpp | 6 +-- plugins/MenuItemEx/src/main.cpp | 22 ++++------- plugins/MirOTR/MirOTR/src/dbfilter.cpp | 4 +- plugins/MirOTR/MirOTR/src/mirotrmenu.cpp | 2 +- plugins/MirOTR/MirOTR/src/options.cpp | 1 - plugins/MirOTR/MirOTR/src/options.h | 2 +- plugins/MirOTR/MirOTR/src/svcs_menu.cpp | 6 +-- plugins/MirOTR/MirOTR/src/svcs_srmm.cpp | 4 +- plugins/MirandaG15/src/CContactList.cpp | 12 +++--- plugins/NewAwaySysMod/src/MsgEventAdded.cpp | 40 +++++++++---------- plugins/NewEventNotify/src/main.cpp | 2 +- plugins/New_GPG/src/icons.cpp | 4 +- plugins/New_GPG/src/init.cpp | 4 +- plugins/New_GPG/src/messages.cpp | 8 ++-- plugins/New_GPG/src/metacontacts.cpp | 46 ++++++---------------- plugins/New_GPG/src/metacontacts.h | 1 - plugins/New_GPG/src/srmm.cpp | 2 +- plugins/Nudge/src/main.cpp | 29 +++++--------- plugins/QuickContacts/src/quickcontacts.cpp | 6 +-- plugins/QuickSearch/i_ok.inc | 2 +- plugins/QuickSearch/sr_window.pas | 10 ++--- plugins/SecureIM/src/commonheaders.cpp | 2 +- plugins/SecureIM/src/commonheaders.h | 2 +- plugins/SecureIM/src/crypt.h | 1 - plugins/SecureIM/src/crypt_icons.cpp | 2 +- plugins/SecureIM/src/crypt_metacontacts.cpp | 28 +++---------- plugins/SecureIM/src/main.cpp | 1 - plugins/SecureIM/src/options.cpp | 4 +- plugins/SpellChecker/src/utils.cpp | 40 ++++++++----------- plugins/UserInfoEx/src/classMAnnivDate.cpp | 2 +- plugins/UserInfoEx/src/dlg_anniversarylist.cpp | 2 +- plugins/UserInfoEx/src/dlg_propsheet.cpp | 2 +- .../src/ex_import/classExImContactBase.cpp | 2 +- .../src/ex_import/classExImContactXML.cpp | 8 ++-- plugins/UserInfoEx/src/ex_import/svc_ExImXML.cpp | 4 +- plugins/UserInfoEx/src/mir_db.cpp | 8 +--- plugins/UserInfoEx/src/mir_db.h | 1 - plugins/UserInfoEx/src/svc_reminder.cpp | 6 +-- plugins/Utils.pas/mirutils.pas | 15 +++---- plugins/Variables/src/parse_metacontacts.cpp | 2 +- plugins/WhenWasIt/src/dlg_handlers.cpp | 2 +- plugins/WhenWasIt/src/notifiers.cpp | 6 +-- 44 files changed, 152 insertions(+), 237 deletions(-) (limited to 'plugins') diff --git a/plugins/AvatarHistory/src/AvatarHistory.cpp b/plugins/AvatarHistory/src/AvatarHistory.cpp index d56a2a20cf..ae493d33ad 100644 --- a/plugins/AvatarHistory/src/AvatarHistory.cpp +++ b/plugins/AvatarHistory/src/AvatarHistory.cpp @@ -156,18 +156,15 @@ static int AvatarChanged(WPARAM hContact, LPARAM lParam) else ShowDebugPopup(hContact, TranslateT("AVH Debug: File copied successfully"), history_filename); - if (ServiceExists(MS_MC_GETMETACONTACT)) { - MCONTACT hMetaContact = (MCONTACT)CallService(MS_MC_GETMETACONTACT, hContact, 0); - - if (hMetaContact != NULL && ContactEnabled(hMetaContact, "LogToDisk", AVH_DEF_LOGTOHISTORY)) { - TCHAR filename[MAX_PATH] = _T(""); - - GetOldStyleAvatarName(filename, hMetaContact); - if (CopyImageFile(avatar->filename, filename)) - ShowPopup(hContact, TranslateT("Avatar History: Unable to save avatar"), filename); - else - ShowDebugPopup(hContact, TranslateT("AVH Debug: File copied successfully"), filename); - } + MCONTACT hMetaContact = db_mc_getMeta(hContact); + if (hMetaContact && ContactEnabled(hMetaContact, "LogToDisk", AVH_DEF_LOGTOHISTORY)) { + TCHAR filename[MAX_PATH] = _T(""); + + GetOldStyleAvatarName(filename, hMetaContact); + if (CopyImageFile(avatar->filename, filename)) + ShowPopup(hContact, TranslateT("Avatar History: Unable to save avatar"), filename); + else + ShowDebugPopup(hContact, TranslateT("AVH Debug: File copied successfully"), filename); } } } @@ -201,11 +198,9 @@ static int AvatarChanged(WPARAM hContact, LPARAM lParam) if (opts.log_per_contact_folders) { CreateOldStyleShortcut(hContact, history_filename); - if (ServiceExists(MS_MC_GETMETACONTACT)) { - MCONTACT hMetaContact = (MCONTACT)CallService(MS_MC_GETMETACONTACT, hContact, 0); - if (hMetaContact != NULL && ContactEnabled(hMetaContact, "LogToDisk", AVH_DEF_LOGTOHISTORY)) - CreateOldStyleShortcut(hMetaContact, history_filename); - } + MCONTACT hMetaContact = db_mc_getMeta(hContact); + if (hMetaContact && ContactEnabled(hMetaContact, "LogToDisk", AVH_DEF_LOGTOHISTORY)) + CreateOldStyleShortcut(hMetaContact, history_filename); } } } diff --git a/plugins/ClientChangeNotify/src/ClientChangeNotify.cpp b/plugins/ClientChangeNotify/src/ClientChangeNotify.cpp index 178c252ea9..f9ba750500 100644 --- a/plugins/ClientChangeNotify/src/ClientChangeNotify.cpp +++ b/plugins/ClientChangeNotify/src/ClientChangeNotify.cpp @@ -25,7 +25,7 @@ HGENMENU g_hTogglePopupsMenuItem; int hLangpack; COptPage *g_PreviewOptPage; // we need to show popup even for the NULL contact if g_PreviewOptPage is not NULL (used for popup preview) -BOOL bPopupExists = FALSE, bMetaContactsExists = FALSE, bFingerprintExists = FALSE, bVariablesExists = FALSE; +BOOL bPopupExists = FALSE, bFingerprintExists = FALSE, bVariablesExists = FALSE; PLUGININFOEX pluginInfo = { sizeof(PLUGININFOEX), @@ -210,7 +210,7 @@ int ContactSettingChanged(WPARAM hContact, LPARAM lParam) return 0; _ASSERT(szProto); - if (bMetaContactsExists && !strcmp(szProto, (char*)CallService(MS_MC_GETPROTOCOLNAME, 0, 0))) // workaround for metacontacts + if (!strcmp(szProto, (char*)CallService(MS_MC_GETPROTOCOLNAME, 0, 0))) // workaround for metacontacts return 0; sd.MirVer = db_get_s(hContact, szProto, DB_MIRVER, _T("")); @@ -230,7 +230,7 @@ int ContactSettingChanged(WPARAM hContact, LPARAM lParam) PopupOptPage.DBToMem(); } - MCONTACT hContactOrMeta = (hContact && bMetaContactsExists) ? (MCONTACT)CallService(MS_MC_GETMETACONTACT, hContact, 0) : hContact; + MCONTACT hContactOrMeta = (hContact) ? db_mc_getMeta(hContact) : 0; if (!hContactOrMeta) hContactOrMeta = hContact; @@ -369,7 +369,6 @@ INT_PTR CALLBACK CCNErrorDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM static int ModuleLoad(WPARAM wParam, LPARAM lParam) { bPopupExists = ServiceExists(MS_POPUP_ADDPOPUP); - bMetaContactsExists = ServiceExists(MS_MC_GETPROTOCOLNAME) && ServiceExists(MS_MC_GETMETACONTACT); bFingerprintExists = ServiceExists(MS_FP_SAMECLIENTST) && ServiceExists(MS_FP_GETCLIENTICONT); bVariablesExists = ServiceExists(MS_VARS_FORMATSTRING); return 0; diff --git a/plugins/Db3x_mmap/src/dbcontacts.cpp b/plugins/Db3x_mmap/src/dbcontacts.cpp index 09bb9a3e91..e0a1b83b5b 100644 --- a/plugins/Db3x_mmap/src/dbcontacts.cpp +++ b/plugins/Db3x_mmap/src/dbcontacts.cpp @@ -253,11 +253,11 @@ void CDb3Mmap::FillContacts() for (int i = 0; i < cc->nSubs; i++) { char setting[100]; mir_snprintf(setting, sizeof(setting), "Handle%d", i); - cc->pSubs[i] = (0 != GetContactSetting(dwContactID, "MetaContacts", setting, &dbv)) ? INVALID_CONTACT_ID : dbv.dVal; + cc->pSubs[i] = (0 != GetContactSetting(dwContactID, "MetaContacts", setting, &dbv)) ? NULL : dbv.dVal; } } - cc->activeID = (0 != GetContactSetting(dwContactID, "MetaContacts", "Default", &dbv)) ? INVALID_CONTACT_ID : dbv.dVal; - cc->parentID = (0 != GetContactSetting(dwContactID, "MetaContacts", "Handle", &dbv)) ? INVALID_CONTACT_ID : dbv.dVal; + cc->activeID = (0 != GetContactSetting(dwContactID, "MetaContacts", "Default", &dbv)) ? NULL : dbv.dVal; + cc->parentID = (0 != GetContactSetting(dwContactID, "MetaContacts", "Handle", &dbv)) ? NULL : dbv.dVal; dwOffset = p->ofsNext; } diff --git a/plugins/MenuItemEx/src/main.cpp b/plugins/MenuItemEx/src/main.cpp index cb04157a35..39d6549624 100644 --- a/plugins/MenuItemEx/src/main.cpp +++ b/plugins/MenuItemEx/src/main.cpp @@ -20,7 +20,7 @@ HGENMENU hmenuVis,hmenuOff,hmenuHide,hmenuIgnore,hmenuProto,hmenuAdded,hmenuAuth HGENMENU hmenuCopyID,hmenuRecvFiles,hmenuStatusMsg,hmenuCopyIP,hmenuCopyMirVer; static HGENMENU hIgnoreItem[9], hProtoItem[MAX_PROTOS]; HICON hIcon[5]; -BOOL bMetaContacts = FALSE, bPopupService = FALSE; +BOOL bPopupService = FALSE; PROTOACCOUNT **accs; OPENOPTIONSDIALOG ood; int protoCount; @@ -261,28 +261,21 @@ void CopyToClipboard(HWND hwnd,LPSTR pszMsg, LPTSTR ptszMsg) BOOL isMetaContact(MCONTACT hContact) { - char *proto; - if (bMetaContacts) { - proto = GetContactProto(hContact); - if ( lstrcmpA(proto, "MetaContacts") == 0 ) { - return TRUE; - } - } + char *proto = GetContactProto(hContact); + if (lstrcmpA(proto, "MetaContacts") == 0) + return TRUE; + return FALSE; } MCONTACT getDefaultContact(MCONTACT hContact) { - if (bMetaContacts) - return (MCONTACT)CallService(MS_MC_GETDEFAULTCONTACT, hContact, 0); - return 0; + return (MCONTACT)CallService(MS_MC_GETDEFAULTCONTACT, hContact, 0); } MCONTACT getMostOnline(MCONTACT hContact) { - if (bMetaContacts) - return (MCONTACT)CallService(MS_MC_GETMOSTONLINECONTACT, hContact, 0); - return 0; + return (MCONTACT)CallService(MS_MC_GETMOSTONLINECONTACT, hContact, 0); } void GetID(MCONTACT hContact, LPSTR szProto, LPSTR szID) @@ -980,7 +973,6 @@ static int ContactWindowOpen(WPARAM wparam, LPARAM lParam) static int ModuleLoad(WPARAM wParam, LPARAM lParam) { bPopupService = ServiceExists(MS_POPUP_ADDPOPUP); - bMetaContacts = ServiceExists(MS_MC_GETMETACONTACT); return 0; } diff --git a/plugins/MirOTR/MirOTR/src/dbfilter.cpp b/plugins/MirOTR/MirOTR/src/dbfilter.cpp index c3ebb7f95a..953ac2adfc 100644 --- a/plugins/MirOTR/MirOTR/src/dbfilter.cpp +++ b/plugins/MirOTR/MirOTR/src/dbfilter.cpp @@ -196,7 +196,7 @@ int OnDatabaseEventPreAdd(WPARAM hContact, LPARAM lParam) if (!db_event_get((HANDLE)lParam, &info)) { if(info.eventType == EVENTTYPE_MESSAGE) { MCONTACT hSub; - if(options.bHaveMetaContacts && (hSub = (MCONTACT)CallService(MS_MC_GETMOSTONLINECONTACT, hContact, 0)) != 0) + if((hSub = (MCONTACT)CallService(MS_MC_GETMOSTONLINECONTACT, hContact, 0)) != 0) hContact = hSub; ConnContext *context = otrl_context_find_miranda(otr_user_state, hContact); @@ -252,7 +252,7 @@ int WindowEvent(WPARAM wParam, LPARAM lParam) { if(mwd->uType != MSG_WINDOW_EVT_OPEN) return 0; MCONTACT hContact = mwd->hContact, hTemp; - if(options.bHaveMetaContacts && (hTemp = (MCONTACT)CallService(MS_MC_GETMOSTONLINECONTACT, hContact, 0)) != 0) + if((hTemp = (MCONTACT)CallService(MS_MC_GETMOSTONLINECONTACT, hContact, 0)) != 0) hContact = hTemp; if (!CallService(MS_PROTO_ISPROTOONCONTACT, hContact, (LPARAM)MODULENAME)) diff --git a/plugins/MirOTR/MirOTR/src/mirotrmenu.cpp b/plugins/MirOTR/MirOTR/src/mirotrmenu.cpp index 65d489d1cc..317fcd749f 100644 --- a/plugins/MirOTR/MirOTR/src/mirotrmenu.cpp +++ b/plugins/MirOTR/MirOTR/src/mirotrmenu.cpp @@ -86,7 +86,7 @@ INT_PTR MirOTRMenuCheckService(WPARAM wParam,LPARAM) return TRUE; MCONTACT hContact = (MCONTACT)pcpp->wParam, hSub; - if(options.bHaveMetaContacts && (hSub = (MCONTACT)CallService(MS_MC_GETMOSTONLINECONTACT, hContact, 0)) != 0) + if((hSub = (MCONTACT)CallService(MS_MC_GETMOSTONLINECONTACT, hContact, 0)) != 0) hContact = hSub; TrustLevel level = ( TrustLevel )otr_context_get_trust(otrl_context_find_miranda(otr_user_state, hContact)); diff --git a/plugins/MirOTR/MirOTR/src/options.cpp b/plugins/MirOTR/MirOTR/src/options.cpp index b6792618d5..59e32e72b2 100644 --- a/plugins/MirOTR/MirOTR/src/options.cpp +++ b/plugins/MirOTR/MirOTR/src/options.cpp @@ -89,7 +89,6 @@ void LoadOptions() { options.end_offline = (db_get_b(0, MODULENAME, "EndOffline", 1) == 1); options.end_window_close = (db_get_b(0, MODULENAME, "EndWindowClose", 0) == 1); - options.bHaveMetaContacts = 0 != ServiceExists(MS_MC_GETMETACONTACT); options.bHavePopups = 0 != ServiceExists(MS_POPUP_ADDPOPUPT) && ServiceExists(MS_POPUP_SHOWMESSAGE); options.bHaveSecureIM = 0 != ServiceExists("SecureIM/IsContactSecured"); options.bHaveButtonsBar = 0 != ServiceExists(MS_BB_ADDBUTTON); diff --git a/plugins/MirOTR/MirOTR/src/options.h b/plugins/MirOTR/MirOTR/src/options.h index ee74c7b9cc..27a3f06223 100644 --- a/plugins/MirOTR/MirOTR/src/options.h +++ b/plugins/MirOTR/MirOTR/src/options.h @@ -32,7 +32,7 @@ typedef struct { bool end_offline, end_window_close; // temporary options - bool bHaveMetaContacts, bHavePopups, bHaveSecureIM, bHaveButtonsBar; + bool bHavePopups, bHaveSecureIM, bHaveButtonsBar; } Options; diff --git a/plugins/MirOTR/MirOTR/src/svcs_menu.cpp b/plugins/MirOTR/MirOTR/src/svcs_menu.cpp index 0db55124ea..010ef9077b 100644 --- a/plugins/MirOTR/MirOTR/src/svcs_menu.cpp +++ b/plugins/MirOTR/MirOTR/src/svcs_menu.cpp @@ -26,7 +26,7 @@ int StartOTR(MCONTACT hContact) { INT_PTR SVC_StartOTR(WPARAM hContact, LPARAM lParam) { MCONTACT hSub; - if(options.bHaveMetaContacts && (hSub = (MCONTACT)CallService(MS_MC_GETMOSTONLINECONTACT, hContact, 0)) != 0) + if((hSub = (MCONTACT)CallService(MS_MC_GETMOSTONLINECONTACT, hContact, 0)) != 0) hContact = hSub; if ( options.bHaveSecureIM && CallService("SecureIM/IsContactSecured", hContact, 0) != 0 ) { @@ -46,7 +46,7 @@ INT_PTR SVC_StartOTR(WPARAM hContact, LPARAM lParam) INT_PTR SVC_RefreshOTR(WPARAM hContact, LPARAM lParam) { MCONTACT hSub; - if(options.bHaveMetaContacts && (hSub = (MCONTACT)CallService(MS_MC_GETMOSTONLINECONTACT, hContact, 0)) != 0) + if((hSub = (MCONTACT)CallService(MS_MC_GETMOSTONLINECONTACT, hContact, 0)) != 0) hContact = hSub; if ( options.bHaveSecureIM && CallService("SecureIM/IsContactSecured", hContact, 0) != 0 ) { @@ -100,7 +100,7 @@ INT_PTR SVC_StopOTR(WPARAM hContact, LPARAM lParam) INT_PTR SVC_VerifyOTR(WPARAM hContact, LPARAM lParam) { MCONTACT hSub; - if(options.bHaveMetaContacts && (hSub = (MCONTACT)CallService(MS_MC_GETMOSTONLINECONTACT, hContact, 0)) != 0) + if((hSub = (MCONTACT)CallService(MS_MC_GETMOSTONLINECONTACT, hContact, 0)) != 0) hContact = hSub; ConnContext *context = otrl_context_find_miranda(otr_user_state, hContact); diff --git a/plugins/MirOTR/MirOTR/src/svcs_srmm.cpp b/plugins/MirOTR/MirOTR/src/svcs_srmm.cpp index fcc4b5e85a..fc273282b2 100644 --- a/plugins/MirOTR/MirOTR/src/svcs_srmm.cpp +++ b/plugins/MirOTR/MirOTR/src/svcs_srmm.cpp @@ -69,8 +69,8 @@ void SetEncryptionStatus(MCONTACT hContact, TrustLevel level) if (options.bHaveButtonsBar) CallService(MS_BB_SETBUTTONSTATE, hContact, (LPARAM)&button); db_set_dw(hContact, MODULENAME, "TrustLevel", level); - if (!chat_room && options.bHaveMetaContacts) { - MCONTACT hMeta = (MCONTACT)CallService(MS_MC_GETMETACONTACT, hContact, 0); + if (!chat_room) { + MCONTACT hMeta = db_mc_getMeta(hContact); MCONTACT hMostOnline = (MCONTACT)CallService(MS_MC_GETMOSTONLINECONTACT, (WPARAM)hMeta, 0); if(hMeta && hContact == hMostOnline) SetEncryptionStatus(hMeta, level); diff --git a/plugins/MirandaG15/src/CContactList.cpp b/plugins/MirandaG15/src/CContactList.cpp index f457542ec0..c9f01b8187 100644 --- a/plugins/MirandaG15/src/CContactList.cpp +++ b/plugins/MirandaG15/src/CContactList.cpp @@ -83,7 +83,7 @@ tstring CContactList::GetContactGroupPath(MCONTACT hContact) tstring strGroup = _T(""); if(db_get_b(0, "MetaContacts", "Enabled", 1) && CAppletManager::IsSubContact(hContact)) { - MCONTACT hMetaContact = (MCONTACT)CallService(MS_MC_GETMETACONTACT, hContact, NULL); + MCONTACT hMetaContact = db_mc_getMeta(hContact); if(CConfig::GetBoolSetting(CLIST_USEGROUPS)) strGroup = CAppletManager::GetContactGroup(hMetaContact); @@ -160,11 +160,10 @@ void CContactList::AddContact(MCONTACT hContact) return; } else if(CAppletManager::IsSubContact(hContact)) { - MCONTACT hMetaContact = (MCONTACT)CallService(MS_MC_GETMETACONTACT, hContact, 0); + MCONTACT hMetaContact = db_mc_getMeta(hContact); // check that the metacontact exists - if(!FindContact(hMetaContact)) { + if(!FindContact(hMetaContact)) AddContact(hMetaContact); - } } CListItem *pItem = NULL; @@ -221,8 +220,9 @@ bool CContactList::IsVisible(CContactListEntry *pEntry) { if(CConfig::GetBoolSetting(CLIST_USEIGNORE)) { if(db_get_b(pEntry->hHandle,"CList","Hidden",0)) return false; - else if(CAppletManager::IsSubContact(pEntry->hHandle)) { - MCONTACT hMetaContact = (MCONTACT)CallService(MS_MC_GETMETACONTACT, (WPARAM)pEntry->hHandle, 0); + + if(CAppletManager::IsSubContact(pEntry->hHandle)) { + MCONTACT hMetaContact = db_mc_getMeta(pEntry->hHandle); if(db_get_b(hMetaContact,"CList","Hidden",0)) return false; } diff --git a/plugins/NewAwaySysMod/src/MsgEventAdded.cpp b/plugins/NewAwaySysMod/src/MsgEventAdded.cpp index 87c6bf8c3d..a124a2a416 100644 --- a/plugins/NewAwaySysMod/src/MsgEventAdded.cpp +++ b/plugins/NewAwaySysMod/src/MsgEventAdded.cpp @@ -139,28 +139,28 @@ int MsgEventAdded(WPARAM hContact, LPARAM lParam) int bMsgWindowIsOpen = MSGWNDOPEN_UNDEFINED; if (dbei->flags & DBEF_READ) { // if it's a subcontact of a metacontact - MCONTACT hMetaContact; - if (ServiceExists(MS_MC_GETMETACONTACT) && (hMetaContact = CallService(MS_MC_GETMETACONTACT, hContact, 0))) { // ugly workaround for metacontacts, part II - // remove outdated events first - DWORD CurTime = time(NULL); - int i; - for (i = MetacontactEvents.GetSize() - 1; i >= 0; i--) - if (CurTime - MetacontactEvents[i].timestamp > MAX_REPLY_TIMEDIFF) - MetacontactEvents.RemoveElem(i); - - // we compare only event timestamps, and do not look at the message itself. it's unlikely that there'll be two events from a contact at the same second, so it's a trade-off between speed and reliability - for (i = MetacontactEvents.GetSize() - 1; i >= 0; i--) { - if (MetacontactEvents[i].timestamp == dbei->timestamp && MetacontactEvents[i].hMetaContact == hMetaContact) { - bMsgWindowIsOpen = MetacontactEvents[i].bMsgWindowIsOpen; - break; - } - } - if (i < 0) { - _ASSERT(0); - return 0; + MCONTACT hMetaContact = db_mc_getMeta(hContact); + if (hMetaContact == 0) + return 0; + + // remove outdated events first + DWORD CurTime = time(NULL); + int i; + for (i = MetacontactEvents.GetSize() - 1; i >= 0; i--) + if (CurTime - MetacontactEvents[i].timestamp > MAX_REPLY_TIMEDIFF) + MetacontactEvents.RemoveElem(i); + + // we compare only event timestamps, and do not look at the message itself. it's unlikely that there'll be two events from a contact at the same second, so it's a trade-off between speed and reliability + for (i = MetacontactEvents.GetSize() - 1; i >= 0; i--) { + if (MetacontactEvents[i].timestamp == dbei->timestamp && MetacontactEvents[i].hMetaContact == hMetaContact) { + bMsgWindowIsOpen = MetacontactEvents[i].bMsgWindowIsOpen; + break; } } - else return 0; + if (i < 0) { + _ASSERT(0); + return 0; + } } // ugly workaround for metacontacts, part i; store all metacontacts' events to a temporary array, so we'll be able to get the 'source' protocol when subcontact event happens later. we need the protocol to get its status and per-status settings properly diff --git a/plugins/NewEventNotify/src/main.cpp b/plugins/NewEventNotify/src/main.cpp index 7a946b16cf..9c5f46a6e2 100644 --- a/plugins/NewEventNotify/src/main.cpp +++ b/plugins/NewEventNotify/src/main.cpp @@ -71,7 +71,7 @@ int HookedNewEvent(WPARAM hContact, LPARAM lParam) db_event_get((HANDLE)lParam, &dbe); //do not show popups for sub-contacts - if (hContact && ServiceExists(MS_MC_GETMETACONTACT) && CallService(MS_MC_GETMETACONTACT, hContact, 0)) + if (hContact && db_mc_isSub(hContact)) return 0; //custom database event types diff --git a/plugins/New_GPG/src/icons.cpp b/plugins/New_GPG/src/icons.cpp index ac41cb8788..2770d28b64 100644 --- a/plugins/New_GPG/src/icons.cpp +++ b/plugins/New_GPG/src/icons.cpp @@ -49,7 +49,7 @@ void setClistIcon(MCONTACT hContact) bool enabled = isContactSecured(hContact); extern HANDLE g_hCLIcon; MCONTACT hMC = hContact; - if(metaIsSubcontact(hContact)) + if(db_mc_isSub(hContact)) hMC = metaGetContact(hContact); else if(metaIsProtoMetaContacts(hContact)) hMC = metaGetContact(hContact); @@ -64,7 +64,7 @@ void setSrmmIcon(MCONTACT h) MCONTACT hContact = metaIsProtoMetaContacts(h) ? metaGetMostOnline(h) : h; bool enabled = isContactSecured(hContact); MCONTACT hMC = NULL; - if(metaIsSubcontact(hContact)) + if(db_mc_isSub(hContact)) hMC = metaGetContact(hContact); else if(metaIsProtoMetaContacts(hContact)) hMC = metaGetContact(hContact); diff --git a/plugins/New_GPG/src/init.cpp b/plugins/New_GPG/src/init.cpp index 185cb0d774..633411c44a 100644 --- a/plugins/New_GPG/src/init.cpp +++ b/plugins/New_GPG/src/init.cpp @@ -17,7 +17,7 @@ #include "commonheaders.h" //global variables -bool bAppendTags = false, bDebugLog = false, bJabberAPI = false, bPresenceSigning = false, bIsMiranda09 = false, bMetaContacts = false, bFileTransfers = false, bSameAction = false, bAutoExchange = false, bStripTags = false, tabsrmm_used = false; +bool bAppendTags = false, bDebugLog = false, bJabberAPI = false, bPresenceSigning = false, bIsMiranda09 = false, bFileTransfers = false, bSameAction = false, bAutoExchange = false, bStripTags = false, tabsrmm_used = false; TCHAR *inopentag = NULL, *inclosetag = NULL, *outopentag = NULL, *outclosetag = NULL, *password = NULL; list Accounts; @@ -140,8 +140,6 @@ static int OnModulesLoaded(WPARAM wParam,LPARAM lParam) sid.szTooltip = LPGEN("GPG Turn on encryption"); Srmm_AddIcon(&sid); - bMetaContacts = ServiceExists(MS_MC_GETMETACONTACT) != 0; - if(bJabberAPI && bIsMiranda09) GetJabberInterface(0,0); diff --git a/plugins/New_GPG/src/messages.cpp b/plugins/New_GPG/src/messages.cpp index af59cbe729..cada448160 100755 --- a/plugins/New_GPG/src/messages.cpp +++ b/plugins/New_GPG/src/messages.cpp @@ -319,7 +319,7 @@ void RecvMsgSvc_func(MCONTACT hContact, std::wstring str, char *msg, DWORD flags str.insert(0, inopentag); str.append(inclosetag); } - if(metaIsSubcontact(hContact)) + if(db_mc_isSub(hContact)) { char *msg = mir_strdup(toUTF8(str).c_str()); HistoryLog(hContact, db_event(msg, timestamp, 0, dbflags|DBEF_READ)); @@ -338,7 +338,7 @@ void RecvMsgSvc_func(MCONTACT hContact, std::wstring str, char *msg, DWORD flags } if(db_get_b(metaIsProtoMetaContacts(hContact)?metaGetMostOnline(hContact):hContact, szGPGModuleName, "GPGEncryption", 0)) { - if(metaIsSubcontact(hContact)) + if(db_mc_isSub(hContact)) { HistoryLog(hContact, db_event(msg, timestamp, 0, dbflags|DBEF_READ)); HistoryLog(metaGetContact(hContact), db_event(msg, timestamp, 0, dbflags)); @@ -487,7 +487,7 @@ INT_PTR RecvMsgSvc(WPARAM w, LPARAM l) db_set_b(ccs->hContact, szGPGModuleName, "bAlwatsTrust", 1); setSrmmIcon(ccs->hContact); setClistIcon(ccs->hContact); - if(metaIsSubcontact(ccs->hContact)) + if(db_mc_isSub(ccs->hContact)) { setSrmmIcon(metaGetContact(ccs->hContact)); setClistIcon(metaGetContact(ccs->hContact)); @@ -767,7 +767,7 @@ void SendMsgSvc_func(MCONTACT hContact, char *msg, DWORD flags) str_event.insert(0, toUTF8(outopentag)); str_event.append(toUTF8(outclosetag)); } - /*if(metaIsSubcontact(hContact)) + /*if(db_mc_isSub(hContact)) { hcontact_data[metaGetContact(hContact)].msgs_to_pass.push_back(str_event); if(bDebugLog) diff --git a/plugins/New_GPG/src/metacontacts.cpp b/plugins/New_GPG/src/metacontacts.cpp index 876071191a..9896393cbc 100644 --- a/plugins/New_GPG/src/metacontacts.cpp +++ b/plugins/New_GPG/src/metacontacts.cpp @@ -16,67 +16,47 @@ #include "commonheaders.h" -extern bool bMetaContacts; - bool metaIsProtoMetaContacts(MCONTACT hContact) { - if(bMetaContacts) { - LPSTR proto = GetContactProto(hContact); - if( proto && strcmp(proto,"MetaContacts")==0 ) { - return true; - } - } + LPSTR proto = GetContactProto(hContact); + if(proto && strcmp(proto,"MetaContacts") == 0) + return true; + return false; } bool metaIsDefaultSubContact(MCONTACT hContact) { - if(bMetaContacts) - return (MCONTACT)CallService(MS_MC_GETDEFAULTCONTACT,(WPARAM)CallService(MS_MC_GETMETACONTACT,hContact,0),0)==hContact; - return false; + return (MCONTACT)CallService(MS_MC_GETDEFAULTCONTACT, db_mc_getMeta(hContact), 0) == hContact; } MCONTACT metaGetContact(MCONTACT hContact) { - if(bMetaContacts) - if(metaIsSubcontact(hContact)) - return (MCONTACT)CallService(MS_MC_GETMETACONTACT,hContact,0); + if(db_mc_isSub(hContact)) + return db_mc_getMeta(hContact); return NULL; } -bool metaIsSubcontact(MCONTACT hContact) -{ - if(bMetaContacts) - return CallService(MS_MC_GETMETACONTACT,hContact,0) != 0; - return false; -} - MCONTACT metaGetMostOnline(MCONTACT hContact) { - if(bMetaContacts) - if(metaIsProtoMetaContacts(hContact)) - return (MCONTACT)CallService(MS_MC_GETMOSTONLINECONTACT,hContact,0); + if(metaIsProtoMetaContacts(hContact)) + return (MCONTACT)CallService(MS_MC_GETMOSTONLINECONTACT,hContact,0); return NULL; } MCONTACT metaGetDefault(MCONTACT hContact) { - if(bMetaContacts) - if(metaIsProtoMetaContacts(hContact)) - return (MCONTACT)CallService(MS_MC_GETDEFAULTCONTACT,hContact,0); + if(metaIsProtoMetaContacts(hContact)) + return (MCONTACT)CallService(MS_MC_GETDEFAULTCONTACT,hContact,0); return NULL; } DWORD metaGetContactsNum(MCONTACT hContact) { - if(bMetaContacts) - return CallService(MS_MC_GETNUMCONTACTS, hContact, 0); - return 0; + return CallService(MS_MC_GETNUMCONTACTS, hContact, 0); } MCONTACT metaGetSubcontact(MCONTACT hContact, int num) { - if(bMetaContacts) - return (MCONTACT)CallService(MS_MC_GETSUBCONTACT, hContact, (LPARAM)num); - return 0; + return (MCONTACT)CallService(MS_MC_GETSUBCONTACT, hContact, (LPARAM)num); } diff --git a/plugins/New_GPG/src/metacontacts.h b/plugins/New_GPG/src/metacontacts.h index 396c3bcb43..d908d1e8a8 100644 --- a/plugins/New_GPG/src/metacontacts.h +++ b/plugins/New_GPG/src/metacontacts.h @@ -17,7 +17,6 @@ bool metaIsProtoMetaContacts(MCONTACT hContact); bool metaIsDefaultSubContact(MCONTACT hContact) ; MCONTACT metaGetContact(MCONTACT hContact); -bool metaIsSubcontact(MCONTACT hContact); MCONTACT metaGetMostOnline(MCONTACT hContact); MCONTACT metaGetDefault(MCONTACT hContact); DWORD metaGetContactsNum(MCONTACT hContact); diff --git a/plugins/New_GPG/src/srmm.cpp b/plugins/New_GPG/src/srmm.cpp index aab34ee826..24c00fd878 100644 --- a/plugins/New_GPG/src/srmm.cpp +++ b/plugins/New_GPG/src/srmm.cpp @@ -41,7 +41,7 @@ int __cdecl onIconPressed(WPARAM wParam, LPARAM lParam) hMeta = hContact; hContact = metaGetMostOnline(hContact); // возьмем тот, через который пойдет сообщение } - else if(metaIsSubcontact(hContact)) + else if(db_mc_isSub(hContact)) hMeta = metaGetContact(hContact); StatusIconClickData *sicd = (StatusIconClickData *)lParam; if(strcmp(sicd->szModule, szGPGModuleName)) diff --git a/plugins/Nudge/src/main.cpp b/plugins/Nudge/src/main.cpp index 1c19a70d78..bf6258f156 100644 --- a/plugins/Nudge/src/main.cpp +++ b/plugins/Nudge/src/main.cpp @@ -459,12 +459,9 @@ void Nudge_SentStatus(CNudgeElement n, MCONTACT hContact) dbei.cbBlob = (DWORD)strlen(buff) + 1; dbei.pBlob = (PBYTE)buff; - INT_PTR res = CallService(MS_MC_GETMETACONTACT, hContact, 0); //try to retrieve the metacontact if some - if (res != CALLSERVICE_NOTFOUND) { - MCONTACT hMetaContact = (MCONTACT)res; - if (hMetaContact != NULL) // metacontact - db_event_add(hMetaContact, &dbei); - } + MCONTACT hMetaContact = db_mc_getMeta(hContact); + if (hMetaContact != NULL) // metacontact + db_event_add(hMetaContact, &dbei); db_event_add(hContact, &dbei); mir_free(buff); @@ -482,13 +479,10 @@ void Nudge_ShowStatus(CNudgeElement n, MCONTACT hContact, DWORD timestamp) dbei.cbBlob = (DWORD)strlen(buff) + 1; dbei.pBlob = (PBYTE)buff; - INT_PTR res = CallService(MS_MC_GETMETACONTACT, hContact, 0); //try to retrieve the metacontact if some - if (res != CALLSERVICE_NOTFOUND) { - MCONTACT hMetaContact = (MCONTACT)res; - if (hMetaContact != NULL) { //metacontact - db_event_add(hMetaContact, &dbei); - dbei.flags |= DBEF_READ; - } + MCONTACT hMetaContact = db_mc_getMeta(hContact); + if (hMetaContact != NULL) { //metacontact + db_event_add(hMetaContact, &dbei); + dbei.flags |= DBEF_READ; } db_event_add(hContact, &dbei); @@ -497,12 +491,9 @@ void Nudge_ShowStatus(CNudgeElement n, MCONTACT hContact, DWORD timestamp) MCONTACT Nudge_GethContact(MCONTACT hContact) { - INT_PTR res = CallService(MS_MC_GETMETACONTACT, hContact, 0); - if (res != CALLSERVICE_NOTFOUND) { - MCONTACT hMetaContact = (MCONTACT)res; - if (hMetaContact != NULL) - return hMetaContact; - } + MCONTACT hMetaContact = db_mc_getMeta(hContact); + if (hMetaContact != NULL) + return hMetaContact; return hContact; } diff --git a/plugins/QuickContacts/src/quickcontacts.cpp b/plugins/QuickContacts/src/quickcontacts.cpp index 80c4643996..0708700494 100644 --- a/plugins/QuickContacts/src/quickcontacts.cpp +++ b/plugins/QuickContacts/src/quickcontacts.cpp @@ -203,9 +203,7 @@ int ModulesLoaded(WPARAM wParam, LPARAM lParam) mi.pszService = MS_QC_SHOW_DIALOG; Menu_AddMainMenuItem(&mi); - if (ServiceExists(MS_MC_GETPROTOCOLNAME) && ServiceExists(MS_MC_GETMETACONTACT)) - metacontacts_proto = (char *) CallService(MS_MC_GETPROTOCOLNAME, 0, 0); - + metacontacts_proto = (char*)CallService(MS_MC_GETPROTOCOLNAME, 0, 0); return 0; } @@ -366,7 +364,7 @@ void LoadContacts(HWND hwndDlg, BOOL show_all) if (metacontactsEnabled) { if ((!show_all && opts.hide_subcontacts) || opts.group_append) - hMeta = (MCONTACT)CallService(MS_MC_GETMETACONTACT, hContact, 0); + hMeta = db_mc_getMeta(hContact); } else { diff --git a/plugins/QuickSearch/i_ok.inc b/plugins/QuickSearch/i_ok.inc index cb4b161694..da9f138b81 100644 --- a/plugins/QuickSearch/i_ok.inc +++ b/plugins/QuickSearch/i_ok.inc @@ -233,7 +233,7 @@ begin end else if (flags and QSF_SUBMETA)<>0 then begin - lparam:=FindMeta(CallService(MS_MC_GETMETACONTACT,hContact,0),wparam); + lparam:=FindMeta(db_mc_getMeta(hContact),wparam); end; if wparam>0 then diff --git a/plugins/QuickSearch/sr_window.pas b/plugins/QuickSearch/sr_window.pas index d9b83503c9..0b4383fcc2 100644 --- a/plugins/QuickSearch/sr_window.pas +++ b/plugins/QuickSearch/sr_window.pas @@ -56,7 +56,7 @@ type flags :dword; status :dword; //--- Metacontacts only --- - wparam :WPARAM; + wparam :WPARAM; lparam :LPARAM; end; var @@ -399,7 +399,7 @@ begin begin if ListView_GetItemState(grid,i,LVIS_SELECTED)<>0 then begin - tmp:=CallService(MS_MC_GETMETACONTACT,FlagBuf[LV_GetLParam(grid,i)].contact,0); + tmp:=db_mc_getMeta(FlagBuf[LV_GetLParam(grid,i)].contact); if tmp<>0 then if hMeta=0 then hMeta:=tmp @@ -798,7 +798,7 @@ begin col:=ListViewToColumn(col); if (qsopt.columns[col].setting_type=QST_SETTING) and // right now, not time or IP - (qsopt.columns[col].datatype<>QSTS_IP) and + (qsopt.columns[col].datatype<>QSTS_IP) and (qsopt.columns[col].datatype<>QSTS_TIMESTAMP) then begin doit:=true; @@ -1388,7 +1388,7 @@ procedure SetCellColor(lplvcd:PNMLVCUSTOMDRAW;idx:integer); begin if (qsopt.flags and QSO_COLORIZE)<>0 then begin - with FlagBuf[idx] do + with FlagBuf[idx] do begin if (flags and QSF_ACCDEL)<>0 then begin @@ -1532,7 +1532,7 @@ var count,current,next,perpage:integer; begin result:=0; - case hMessage of + case hMessage of WM_CHAR: if wParam=27 then begin PostMessage(GetParent(Dialog),WM_COMMAND,(BN_CLICKED shl 16)+IDCANCEL,0); diff --git a/plugins/SecureIM/src/commonheaders.cpp b/plugins/SecureIM/src/commonheaders.cpp index db6ee76cd3..459c34a3b9 100644 --- a/plugins/SecureIM/src/commonheaders.cpp +++ b/plugins/SecureIM/src/commonheaders.cpp @@ -15,7 +15,7 @@ HICON g_hICO[ICO_CNT], g_hPOP[POP_CNT], g_hIEC[1+IEC_CNT*MODE_CNT] = {0}; HANDLE g_IEC[1+IEC_CNT*MODE_CNT]; int iBmpDepth; -BOOL bMetaContacts = false, bPopupExists = false; +BOOL bPopupExists = false; BOOL bPGPloaded = false, bPGPkeyrings = false, bUseKeyrings = false, bPGPprivkey = false; BOOL bGPGloaded = false, bGPGkeyrings = false, bSavePass = false; BOOL bSFT, bSOM, bASI, bMCD, bSCM, bDGP, bAIP, bNOL, bAAK, bMCM; diff --git a/plugins/SecureIM/src/commonheaders.h b/plugins/SecureIM/src/commonheaders.h index 6fe89b1c81..c8c9a1fcb3 100644 --- a/plugins/SecureIM/src/commonheaders.h +++ b/plugins/SecureIM/src/commonheaders.h @@ -90,7 +90,7 @@ extern int iService, iHook; extern HICON g_hICO[ICO_CNT], g_hIEC[1+IEC_CNT*MODE_CNT], g_hPOP[POP_CNT]; extern HANDLE g_IEC[1+IEC_CNT*MODE_CNT]; extern int iBmpDepth; -extern BOOL bMetaContacts, bPopupExists; +extern BOOL bPopupExists; extern BOOL bPGPloaded, bPGPkeyrings, bUseKeyrings, bPGPprivkey; extern BOOL bGPGloaded, bGPGkeyrings, bSavePass; extern BOOL bSFT, bSOM, bASI, bMCD, bSCM, bDGP, bAIP, bNOL, bAAK, bMCM; diff --git a/plugins/SecureIM/src/crypt.h b/plugins/SecureIM/src/crypt.h index e7e9398f69..42bbe51f9b 100644 --- a/plugins/SecureIM/src/crypt.h +++ b/plugins/SecureIM/src/crypt.h @@ -146,7 +146,6 @@ void showPopupRM(MCONTACT); // crypt_meta.cpp BOOL isProtoMetaContacts(MCONTACT); BOOL isDefaultSubContact(MCONTACT); -MCONTACT getMetaContact(MCONTACT); MCONTACT getMostOnline(MCONTACT); void DeinitMetaContact(MCONTACT); diff --git a/plugins/SecureIM/src/crypt_icons.cpp b/plugins/SecureIM/src/crypt_icons.cpp index 1aa8a4f578..97c3631523 100644 --- a/plugins/SecureIM/src/crypt_icons.cpp +++ b/plugins/SecureIM/src/crypt_icons.cpp @@ -64,7 +64,7 @@ HANDLE mode2clicon(int mode, int type) // обновляет иконки в clist и в messagew void ShowStatusIcon(MCONTACT hContact, int mode) { - MCONTACT hMC = getMetaContact(hContact); + MCONTACT hMC = db_mc_getMeta(hContact); // обновить иконки в clist if (mode != -1) { diff --git a/plugins/SecureIM/src/crypt_metacontacts.cpp b/plugins/SecureIM/src/crypt_metacontacts.cpp index e99328f1d6..c104044f87 100644 --- a/plugins/SecureIM/src/crypt_metacontacts.cpp +++ b/plugins/SecureIM/src/crypt_metacontacts.cpp @@ -2,42 +2,26 @@ BOOL isProtoMetaContacts(MCONTACT hContact) { - if (bMetaContacts) { - LPSTR proto = GetContactProto(hContact); - if (proto && !strcmp(proto,"MetaContacts")) - return true; - } + LPSTR proto = GetContactProto(hContact); + if (proto && !strcmp(proto,"MetaContacts")) + return true; return false; } BOOL isDefaultSubContact(MCONTACT hContact) { - if (bMetaContacts) - return (MCONTACT)CallService(MS_MC_GETDEFAULTCONTACT,(WPARAM)CallService(MS_MC_GETMETACONTACT,hContact,0),0) == hContact; - - return false; -} - -MCONTACT getMetaContact(MCONTACT hContact) -{ - if (bMetaContacts) - return (MCONTACT)CallService(MS_MC_GETMETACONTACT, hContact, 0); - - return 0; + return (MCONTACT)CallService(MS_MC_GETDEFAULTCONTACT, db_mc_getMeta(hContact), 0) == hContact; } MCONTACT getMostOnline(MCONTACT hContact) { - if (bMetaContacts) - return (MCONTACT)CallService(MS_MC_GETMOSTONLINECONTACT, hContact, 0); - - return 0; + return (MCONTACT)CallService(MS_MC_GETMOSTONLINECONTACT, hContact, 0); } // remove all secureim connections on subcontacts void DeinitMetaContact(MCONTACT hContact) { - MCONTACT hMetaContact = isProtoMetaContacts(hContact) ? hContact : getMetaContact(hContact); + MCONTACT hMetaContact = isProtoMetaContacts(hContact) ? hContact : db_mc_getMeta(hContact); if (hMetaContact) { for (int i=0; i < CallService(MS_MC_GETNUMCONTACTS,(WPARAM)hMetaContact,0); i++) { MCONTACT hSubContact = (MCONTACT)CallService(MS_MC_GETSUBCONTACT, (WPARAM)hMetaContact, i); diff --git a/plugins/SecureIM/src/main.cpp b/plugins/SecureIM/src/main.cpp index 63f191d663..2822625fbd 100644 --- a/plugins/SecureIM/src/main.cpp +++ b/plugins/SecureIM/src/main.cpp @@ -128,7 +128,6 @@ extern "C" __declspec(dllexport) int __cdecl Unload() int ModuleLoad(WPARAM, LPARAM) { bPopupExists = ServiceExists(MS_POPUP_ADDPOPUP); - bMetaContacts = ServiceExists(MS_MC_GETMETACONTACT); return 0; } diff --git a/plugins/SecureIM/src/options.cpp b/plugins/SecureIM/src/options.cpp index 732b3466a3..219aad76c9 100644 --- a/plugins/SecureIM/src/options.cpp +++ b/plugins/SecureIM/src/options.cpp @@ -1065,7 +1065,7 @@ void RefreshPGPDlg(HWND hDlg, BOOL iInit) for (MCONTACT hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) { pUinKey ptr = getUinKey(hContact); - if (ptr && ptr->mode == MODE_PGP && isSecureProtocol(hContact) /*&& !getMetaContact(hContact)*/ && !isChatRoom(hContact)) { + if (ptr && ptr->mode == MODE_PGP && isSecureProtocol(hContact) && !isChatRoom(hContact)) { LPSTR szKeyID = db_get_sa(hContact,MODULENAME,"pgp_abbr"); lvi.iItem++; @@ -1125,7 +1125,7 @@ void RefreshGPGDlg(HWND hDlg, BOOL iInit) for (MCONTACT hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) { pUinKey ptr = getUinKey(hContact); - if (ptr && ptr->mode == MODE_GPG && isSecureProtocol(hContact) /*&& !getMetaContact(hContact)*/ && !isChatRoom(hContact)) { + if (ptr && ptr->mode == MODE_GPG && isSecureProtocol(hContact) && !isChatRoom(hContact)) { if (iInit ) ptr->tgpgMode = ptr->gpgMode; diff --git a/plugins/SpellChecker/src/utils.cpp b/plugins/SpellChecker/src/utils.cpp index 028d76c8e7..66013573a2 100644 --- a/plugins/SpellChecker/src/utils.cpp +++ b/plugins/SpellChecker/src/utils.cpp @@ -774,16 +774,13 @@ void GetUserLanguageSetting(Dialog *dlg, char *setting) if (mc != CALLSERVICE_NOTFOUND) { char* metacontacts_proto = (char *) mc; if (metacontacts_proto != NULL) { - mc = CallService(MS_MC_GETMETACONTACT, (WPARAM) dlg->hContact, 0); - if (mc != CALLSERVICE_NOTFOUND) { - MCONTACT hMetaContact = (MCONTACT)mc; - if (hMetaContact != NULL) { - GetUserProtoLanguageSetting(dlg, hMetaContact, metacontacts_proto, setting); - if (dlg->lang_name[0] != _T('\0')) - return; - - GetUserProtoLanguageSetting(dlg, hMetaContact, "UserInfo", setting, FALSE); - } + MCONTACT hMetaContact = db_mc_getMeta(dlg->hContact); + if (hMetaContact != NULL) { + GetUserProtoLanguageSetting(dlg, hMetaContact, metacontacts_proto, setting); + if (dlg->lang_name[0] != _T('\0')) + return; + + GetUserProtoLanguageSetting(dlg, hMetaContact, "UserInfo", setting, FALSE); } } } @@ -814,19 +811,16 @@ void GetContactLanguage(Dialog *dlg) // Try from metacontact if (dlg->lang_name[0] == _T('\0')) { - INT_PTR mc = CallService(MS_MC_GETMETACONTACT, (WPARAM) dlg->hContact, 0); - if (mc != CALLSERVICE_NOTFOUND) { - MCONTACT hMetaContact = (MCONTACT)mc; - if (hMetaContact != NULL) { - if (!db_get_ts(hMetaContact, MODULE_NAME, "TalkLanguage", &dbv)) { - lstrcpyn(dlg->lang_name, dbv.ptszVal, SIZEOF(dlg->lang_name)); - db_free(&dbv); - } - - if (dlg->lang_name[0] == _T('\0') && !db_get_ts(hMetaContact, "eSpeak", "TalkLanguage", &dbv)) { - lstrcpyn(dlg->lang_name, dbv.ptszVal, SIZEOF(dlg->lang_name)); - db_free(&dbv); - } + MCONTACT hMetaContact = db_mc_getMeta(dlg->hContact); + if (hMetaContact != NULL) { + if (!db_get_ts(hMetaContact, MODULE_NAME, "TalkLanguage", &dbv)) { + lstrcpyn(dlg->lang_name, dbv.ptszVal, SIZEOF(dlg->lang_name)); + db_free(&dbv); + } + + if (dlg->lang_name[0] == _T('\0') && !db_get_ts(hMetaContact, "eSpeak", "TalkLanguage", &dbv)) { + lstrcpyn(dlg->lang_name, dbv.ptszVal, SIZEOF(dlg->lang_name)); + db_free(&dbv); } } } diff --git a/plugins/UserInfoEx/src/classMAnnivDate.cpp b/plugins/UserInfoEx/src/classMAnnivDate.cpp index bd4396612d..59e861d446 100644 --- a/plugins/UserInfoEx/src/classMAnnivDate.cpp +++ b/plugins/UserInfoEx/src/classMAnnivDate.cpp @@ -731,7 +731,7 @@ int MAnnivDate::BackupBirthday(MCONTACT hContact, LPSTR pszProto, const BYTE bDo if (pszProto) { BYTE bIsMeta = DB::Module::IsMeta(pszProto); - BYTE bIsMetaSub = !bIsMeta && DB::MetaContact::IsSub(hContact); + BYTE bIsMetaSub = !bIsMeta && db_mc_isSub(hContact); MAnnivDate mdbNewProto; MAnnivDate mdbIgnore; diff --git a/plugins/UserInfoEx/src/dlg_anniversarylist.cpp b/plugins/UserInfoEx/src/dlg_anniversarylist.cpp index 42e7d3e525..745a82caa7 100644 --- a/plugins/UserInfoEx/src/dlg_anniversarylist.cpp +++ b/plugins/UserInfoEx/src/dlg_anniversarylist.cpp @@ -829,7 +829,7 @@ class CAnnivList for (MCONTACT hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) { // ignore meta subcontacts here, as they are not interesting. - if (!DB::MetaContact::IsSub(hContact)) { + if (!db_mc_isSub(hContact)) { // filter protocol pszProto = DB::Contact::Proto(hContact); if (pszProto) { diff --git a/plugins/UserInfoEx/src/dlg_propsheet.cpp b/plugins/UserInfoEx/src/dlg_propsheet.cpp index f5da4c7488..b46b9a635f 100644 --- a/plugins/UserInfoEx/src/dlg_propsheet.cpp +++ b/plugins/UserInfoEx/src/dlg_propsheet.cpp @@ -1350,7 +1350,7 @@ static INT_PTR CALLBACK DlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPar if (hContact != pPs->hContact) { if (!myGlobals.szMetaProto) break; - if (pPs->hContact != (MCONTACT)CallService(MS_MC_GETMETACONTACT, hContact, NULL)) + if (pPs->hContact != db_mc_getMeta(hContact)) break; if (!db_get_b(NULL, MODNAME, SET_META_SCAN, TRUE)) break; diff --git a/plugins/UserInfoEx/src/ex_import/classExImContactBase.cpp b/plugins/UserInfoEx/src/ex_import/classExImContactBase.cpp index 67681553b8..74cfe49000 100644 --- a/plugins/UserInfoEx/src/ex_import/classExImContactBase.cpp +++ b/plugins/UserInfoEx/src/ex_import/classExImContactBase.cpp @@ -242,7 +242,7 @@ MCONTACT CExImContactBase::toDB() return _hContact = INVALID_CONTACT_ID; } // Add the protocol to the new contact - if (CallService(MS_PROTO_ADDTOCONTACT, (WPARAM)_hContact, (LPARAM)_pszProto)) { + if (CallService(MS_PROTO_ADDTOCONTACT, _hContact, (LPARAM)_pszProto)) { DB::Contact::Delete(_hContact); return _hContact = INVALID_CONTACT_ID; } diff --git a/plugins/UserInfoEx/src/ex_import/classExImContactXML.cpp b/plugins/UserInfoEx/src/ex_import/classExImContactXML.cpp index de9db38883..a71efbfa07 100644 --- a/plugins/UserInfoEx/src/ex_import/classExImContactXML.cpp +++ b/plugins/UserInfoEx/src/ex_import/classExImContactXML.cpp @@ -511,7 +511,7 @@ int CExImContactXML::LoadXmlElemnt(TiXmlElement *xContact) if (vSub = xSub) { // identify metacontact by the first valid subcontact in xmlfile if (_hContact == INVALID_CONTACT_ID && vSub.handle() != INVALID_CONTACT_ID) { - MCONTACT hMeta = (MCONTACT)CallService(MS_MC_GETMETACONTACT, (WPARAM)vSub.handle(), NULL); + MCONTACT hMeta = db_mc_getMeta(vSub.handle()); if (hMeta != NULL) { _hContact = hMeta; break; @@ -636,7 +636,7 @@ int CExImContactXML::ImportNormalContact() int err = ImportContact(); // remove contact from a metacontact - if (err == ERROR_OK && CallService(MS_MC_GETMETACONTACT, (WPARAM)_hContact, NULL)) + if (err == ERROR_OK && db_mc_getMeta(_hContact)) CallService(MS_MC_REMOVEFROMMETA, NULL, (LPARAM)_hContact); return err; @@ -736,9 +736,9 @@ int CExImContactXML::ImportMetaSubContact(CExImContactXML * pMetaContact) return err; // check if contact is subcontact of the desired meta contact - if ((MCONTACT)CallService(MS_MC_GETMETACONTACT, (WPARAM)_hContact, NULL) != pMetaContact->handle()) { + if (db_mc_getMeta(_hContact) != pMetaContact->handle()) { // add contact to the metacontact (this service returns TRUE if successful) - err = CallService(MS_MC_ADDTOMETA, (WPARAM)_hContact, (LPARAM)pMetaContact->handle()); + err = CallService(MS_MC_ADDTOMETA, _hContact, (LPARAM)pMetaContact->handle()); if (err == FALSE) { // ask to delete new contact if (_isNewContact && _hContact != NULL) { diff --git a/plugins/UserInfoEx/src/ex_import/svc_ExImXML.cpp b/plugins/UserInfoEx/src/ex_import/svc_ExImXML.cpp index 6a5f9154dc..ed8c032472 100644 --- a/plugins/UserInfoEx/src/ex_import/svc_ExImXML.cpp +++ b/plugins/UserInfoEx/src/ex_import/svc_ExImXML.cpp @@ -158,7 +158,7 @@ int CFileXml::Export(lpExImParam ExImContact, LPCSTR pszFileName) case EXIM_ALL: case EXIM_GROUP: // dont export meta subcontacts by default - if (!DB::MetaContact::IsSub(hContact)) { + if (!db_mc_isSub(hContact)) { if (vContact.fromDB(hContact)) { vContact.Export(xmlfile, &Modules); } @@ -167,7 +167,7 @@ int CFileXml::Export(lpExImParam ExImContact, LPCSTR pszFileName) case EXIM_SUBGROUP: // dont export meta subcontacts by default and // export only contact with selectet group name - if (!DB::MetaContact::IsSub(hContact) && + if (!db_mc_isSub(hContact) && mir_tcsncmp(ExImContact->ptszName, DB::Setting::GetTString(hContact, "CList", "Group"), mir_tcslen(ExImContact->ptszName))== 0) { if (vContact.fromDB(hContact)) { diff --git a/plugins/UserInfoEx/src/mir_db.cpp b/plugins/UserInfoEx/src/mir_db.cpp index 48cc65751d..d759ebaf9b 100644 --- a/plugins/UserInfoEx/src/mir_db.cpp +++ b/plugins/UserInfoEx/src/mir_db.cpp @@ -46,18 +46,12 @@ MCONTACT Sub(MCONTACT hMetaContact, int idx) return NULL; } -bool IsSub(MCONTACT hContact) -{ - return db_mc_isSub(hContact); -} - MCONTACT GetMeta(MCONTACT hContact) { if (!myGlobals.szMetaProto) return NULL; - MCONTACT result = (MCONTACT)CallService(MS_MC_GETMETACONTACT, hContact, 0); - return (result == (MCONTACT)CALLSERVICE_NOTFOUND) ? NULL : result; + return db_mc_getMeta(hContact); } } /* namespace MetaContact */ diff --git a/plugins/UserInfoEx/src/mir_db.h b/plugins/UserInfoEx/src/mir_db.h index 9d850c0006..ae6ec11c25 100644 --- a/plugins/UserInfoEx/src/mir_db.h +++ b/plugins/UserInfoEx/src/mir_db.h @@ -28,7 +28,6 @@ namespace MetaContact{ INT_PTR SubDefNum(MCONTACT hMetaContact); MCONTACT Sub(MCONTACT hMetaContact, int idx); - bool IsSub(MCONTACT hContact); MCONTACT GetMeta(MCONTACT hContact); } /* namespace MetaContact */ diff --git a/plugins/UserInfoEx/src/svc_reminder.cpp b/plugins/UserInfoEx/src/svc_reminder.cpp index 491a26685a..c22b9089c1 100644 --- a/plugins/UserInfoEx/src/svc_reminder.cpp +++ b/plugins/UserInfoEx/src/svc_reminder.cpp @@ -537,9 +537,7 @@ static BYTE CheckBirthday(MCONTACT hContact, MTime &Now, CEvent &evt, BYTE bNoti static void CheckContact(MCONTACT hContact, MTime &Now, CEvent &evt, BYTE bNotify, PWORD LastAnwer = 0) { // ignore meta subcontacts here as their birthday information are collected explicitly - if (hContact && - (!gRemindOpts.bCheckVisibleOnly || !db_get_b(hContact, MOD_CLIST, "Hidden", FALSE)) && - (!DB::MetaContact::IsSub(hContact))) + if (hContact && (!gRemindOpts.bCheckVisibleOnly || !db_get_b(hContact, MOD_CLIST, "Hidden", FALSE)) && !db_mc_isSub(hContact)) { CEvent ca; @@ -738,7 +736,7 @@ static INT_PTR BackupBirthdayService(WPARAM hContact, LPARAM lParam) //walk through all the contacts stored in the DB for (hContact = db_find_first(); hContact != NULL; hContact = db_find_next(hContact)) - if (!DB::MetaContact::IsSub(hContact) && !mdb.DBGetBirthDate(hContact)) + if (!db_mc_isSub(hContact) && !mdb.DBGetBirthDate(hContact)) mdb.BackupBirthday(hContact, NULL, TRUE, &a1); } diff --git a/plugins/Utils.pas/mirutils.pas b/plugins/Utils.pas/mirutils.pas index ea35e86e51..bafb5b8a15 100644 --- a/plugins/Utils.pas/mirutils.pas +++ b/plugins/Utils.pas/mirutils.pas @@ -719,15 +719,12 @@ begin if (result=0) and (DBReadByte(hContact,strCList,'Hidden',0)=0) then begin result:=255; - if ServiceExists(MS_MC_GETMETACONTACT)<>0 then - begin - if CallService(MS_MC_GETMETACONTACT,hContact,0)<>0 then - result:=2; - if StrCmp( - PAnsiChar(CallService(MS_PROTO_GETCONTACTBASEPROTO,hContact,0)), - PAnsiChar(CallService(MS_MC_GETPROTOCOLNAME,0,0)))=0 then - result:=1; - end; + if db_mc_getMeta(hContact)<>0 then + result:=2; + if StrCmp( + PAnsiChar(CallService(MS_PROTO_GETCONTACTBASEPROTO,hContact,0)), + PAnsiChar(CallService(MS_MC_GETPROTOCOLNAME,0,0)))=0 then + result:=1; end; if proto<>nil then StrCopy(proto,@name); diff --git a/plugins/Variables/src/parse_metacontacts.cpp b/plugins/Variables/src/parse_metacontacts.cpp index e97447f967..f47600aa5e 100644 --- a/plugins/Variables/src/parse_metacontacts.cpp +++ b/plugins/Variables/src/parse_metacontacts.cpp @@ -40,7 +40,7 @@ static TCHAR *parseGetParent(ARGUMENTSINFO *ai) return NULL; } - hContact = (MCONTACT)CallService(MS_MC_GETMETACONTACT, hContact, 0); + hContact = db_mc_getMeta(hContact); if (hContact == NULL) return NULL; diff --git a/plugins/WhenWasIt/src/dlg_handlers.cpp b/plugins/WhenWasIt/src/dlg_handlers.cpp index ccf8737629..3fb1dbf078 100644 --- a/plugins/WhenWasIt/src/dlg_handlers.cpp +++ b/plugins/WhenWasIt/src/dlg_handlers.cpp @@ -70,7 +70,7 @@ int EnablePopupsGroup(HWND hWnd, int enable) EnableWindow(GetDlgItem(hWnd, IDC_FOREGROUND), enable); EnableWindow(GetDlgItem(hWnd, IDC_BACKGROUND), enable); EnableWindow(GetDlgItem(hWnd, IDC_NOBIRTHDAYS_POPUP), enable); - EnableWindow(GetDlgItem(hWnd, IDC_IGNORE_SUBCONTACTS), (ServiceExists(MS_MC_GETMETACONTACT)) ? enable : FALSE); + EnableWindow(GetDlgItem(hWnd, IDC_IGNORE_SUBCONTACTS), enable); EnableWindow(GetDlgItem(hWnd, IDC_PREVIEW), enable); EnableWindow(GetDlgItem(hWnd, IDC_LEFT_CLICK), enable); EnableWindow(GetDlgItem(hWnd, IDC_RIGHT_CLICK), enable); diff --git a/plugins/WhenWasIt/src/notifiers.cpp b/plugins/WhenWasIt/src/notifiers.cpp index f6282045a3..83eb7c9c30 100644 --- a/plugins/WhenWasIt/src/notifiers.cpp +++ b/plugins/WhenWasIt/src/notifiers.cpp @@ -67,8 +67,8 @@ TCHAR *BuildDABText(int dab, TCHAR *name, TCHAR *text, int size) int PopupNotifyBirthday(MCONTACT hContact, int dtb, int age) { if (commonData.bIgnoreSubcontacts) { - MCONTACT hMetacontact = (MCONTACT)CallService(MS_MC_GETMETACONTACT, hContact, 0); - if ((hMetacontact) && (hMetacontact != hContact)) //not main metacontact + MCONTACT hMetacontact = db_mc_getMeta(hContact); + if (hMetacontact && hMetacontact != hContact) //not main metacontact return 0; } @@ -110,7 +110,7 @@ int PopupNotifyBirthday(MCONTACT hContact, int dtb, int age) int PopupNotifyMissedBirthday(MCONTACT hContact, int dab, int age) { if (commonData.bIgnoreSubcontacts) { - MCONTACT hMetacontact = (MCONTACT)CallService(MS_MC_GETMETACONTACT, hContact, 0); + MCONTACT hMetacontact = db_mc_getMeta(hContact); if (hMetacontact && hMetacontact != hContact) //not main metacontact return 0; } -- cgit v1.2.3