diff options
author | sje <sje@4f64403b-2f21-0410-a795-97e2b3489a10> | 2007-10-03 08:03:17 +0000 |
---|---|---|
committer | sje <sje@4f64403b-2f21-0410-a795-97e2b3489a10> | 2007-10-03 08:03:17 +0000 |
commit | f99d18dd83625a753a7171e807b404345b11de4d (patch) | |
tree | 3e05a5a78611fb447951ed800355bd335c1b2b2c /meta2/api.cpp | |
parent | e52098965bc45872cff2d99147b0c27769c146f0 (diff) |
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
Diffstat (limited to 'meta2/api.cpp')
-rw-r--r-- | meta2/api.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
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() {
|