From f99d18dd83625a753a7171e807b404345b11de4d Mon Sep 17 00:00:00 2001 From: sje Date: Wed, 3 Oct 2007 08:03:17 +0000 Subject: fix major bug in 'get most online supporting cap' function notify of subcontact change on any subcontact status change calculate subcontacts and meta status after modules loaded use meta map for contact count git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@342 4f64403b-2f21-0410-a795-97e2b3489a10 --- meta2/api.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'meta2/api.cpp') diff --git a/meta2/api.cpp b/meta2/api.cpp index 03e3c71..73f5adc 100644 --- a/meta2/api.cpp +++ b/meta2/api.cpp @@ -260,14 +260,18 @@ int ModulesLoadedAPI(WPARAM wParam, LPARAM lParam) { DBWriteContactSettingByte(hContact, MODULE, "IsSubcontact", 1); } else DBDeleteContactSetting(hContact, MODULE, "ParentMetaID"); - } else if(IsMetacontact(hContact)) { - meta_count++; - DBWriteContactSettingWord(hContact, MODULE, "Status", ID_STATUS_OFFLINE); } hContact = ( HANDLE )CallService( MS_DB_CONTACT_FINDNEXT,( WPARAM )hContact, 0 ); } + hContact = (HANDLE)CallService( MS_DB_CONTACT_FINDFIRST, 0, 0); + while(hContact != NULL) { + if(IsMetacontact(hContact)) + Meta_CalcStatus(hContact); + hContact = ( HANDLE )CallService( MS_DB_CONTACT_FINDNEXT,( WPARAM )hContact, 0 ); + } + return 0; } @@ -301,8 +305,8 @@ void InitAPI() { hEventUnforceSend = CreateHookableEvent(ME_MC_UNFORCESEND); hSubcontactsChanged = CreateHookableEvent(ME_MC_SUBCONTACTSCHANGED); - //hEventModulesLoadedAPI = HookEvent(ME_SYSTEM_MODULESLOADED, ModulesLoadedAPI); - ModulesLoadedAPI(0, 0); + hEventModulesLoadedAPI = HookEvent(ME_SYSTEM_MODULESLOADED, ModulesLoadedAPI); + //ModulesLoadedAPI(0, 0); } void DeinitAPI() { -- cgit v1.2.3