summaryrefslogtreecommitdiff
path: root/metacontacts.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'metacontacts.cpp')
-rw-r--r--metacontacts.cpp33
1 files changed, 31 insertions, 2 deletions
diff --git a/metacontacts.cpp b/metacontacts.cpp
index 6c49411..b0eb8bf 100644
--- a/metacontacts.cpp
+++ b/metacontacts.cpp
@@ -18,7 +18,7 @@
extern bool bMetaContacts;
-BOOL isProtoMetaContacts(HANDLE hContact)
+bool metaIsProtoMetaContacts(HANDLE hContact)
{
if(bMetaContacts) {
LPSTR proto = (LPSTR)CallService(MS_PROTO_GETCONTACTBASEPROTO, (WPARAM)hContact, 0);
@@ -30,7 +30,7 @@ BOOL isProtoMetaContacts(HANDLE hContact)
}
-BOOL metaIsDefaultSubContact(HANDLE hContact)
+bool metaIsDefaultSubContact(HANDLE hContact)
{
if(bMetaContacts)
@@ -45,6 +45,12 @@ HANDLE metaGetContact(HANDLE hContact)
return (HANDLE)CallService(MS_MC_GETMETACONTACT,(WPARAM)hContact,0);
return 0;
}
+bool metaIsSubcontact(HANDLE hContact)
+{
+ if(bMetaContacts)
+ return (HANDLE)CallService(MS_MC_GETMETACONTACT,(WPARAM)hContact,0);
+ return false;
+}
HANDLE metaGetMostOnline(HANDLE hContact)
@@ -54,6 +60,29 @@ HANDLE metaGetMostOnline(HANDLE hContact)
return (HANDLE)CallService(MS_MC_GETMOSTONLINECONTACT,(WPARAM)hContact,0);
return 0;
}
+HANDLE metaGetDefault(HANDLE hContact)
+{
+
+ if(bMetaContacts)
+ return (HANDLE)CallService(MS_MC_GETDEFAULTCONTACT,(WPARAM)hContact,0);
+ return 0;
+}
+
+HANDLE metaGetCurrent(HANDLE hContact)
+{
+ bool IsOnline(HANDLE hContact);
+ if(bMetaContacts)
+ {
+ if(!metaIsProtoMetaContacts(hContact))
+ return hContact;
+ HANDLE hcnt = metaGetDefault(hContact);
+ if(!IsOnline(hcnt))
+ hcnt = metaGetMostOnline(hContact);
+ return hcnt;
+ }
+ return hContact;
+}
+
DWORD metaGetContactsNum(HANDLE hContact)
{