From c94a4dbc5bff33b467fa08a3543f3f20c9aca65e Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@4f64403b-2f21-0410-a795-97e2b3489a10> Date: Tue, 12 Feb 2008 01:17:31 +0000 Subject: db string fixes git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@397 4f64403b-2f21-0410-a795-97e2b3489a10 --- metacontacts/MetaContacts_8.vcproj | 2 -- metacontacts/meta_menu.c | 4 ++-- metacontacts/meta_utils.c | 22 ++++++++++++++++++++-- metacontacts/version.h | 2 +- 4 files changed, 23 insertions(+), 7 deletions(-) diff --git a/metacontacts/MetaContacts_8.vcproj b/metacontacts/MetaContacts_8.vcproj index d0cb79d..21b1e3e 100644 --- a/metacontacts/MetaContacts_8.vcproj +++ b/metacontacts/MetaContacts_8.vcproj @@ -78,7 +78,6 @@ Name="VCLinkerTool" AdditionalOptions="/MACHINE:I386" AdditionalDependencies="unicows.lib user32.lib gdi32.lib comctl32.lib" - OutputFile="../../bin/debug/plugins/MetaContacts.dll" LinkIncremental="1" SuppressStartupBanner="true" GenerateDebugInformation="true" @@ -174,7 +173,6 @@ Name="VCLinkerTool" AdditionalOptions="/MACHINE:I386" AdditionalDependencies="unicows.lib user32.lib gdi32.lib comctl32.lib" - OutputFile="../../bin/release/plugins/MetaContacts.dll" LinkIncremental="1" SuppressStartupBanner="true" GenerateManifest="false" diff --git a/metacontacts/meta_menu.c b/metacontacts/meta_menu.c index 9367d3b..4165c3b 100644 --- a/metacontacts/meta_menu.c +++ b/metacontacts/meta_menu.c @@ -43,8 +43,8 @@ int Meta_Convert(WPARAM wParam,LPARAM lParam) // Get some information about the selected contact. // proto = (char *)CallService(MS_PROTO_GETCONTACTBASEPROTO,wParam,0); - if(!MyDBGetContactSetting((HANDLE)wParam,"CList","Group",&dbv)) { - group = ((dbv.type == DBVT_ASCIIZ || dbv.type == DBVT_UTF8) ? _strdup(dbv.pszVal) : NULL); + if(!DBGetContactSettingStringUtf((HANDLE)wParam,"CList","Group",&dbv)) { + group = _strdup(dbv.pszVal); DBFreeVariant(&dbv); } diff --git a/metacontacts/meta_utils.c b/metacontacts/meta_utils.c index 7d064e1..2c00ddc 100644 --- a/metacontacts/meta_utils.c +++ b/metacontacts/meta_utils.c @@ -38,11 +38,12 @@ int MyDBWriteContactSetting(HANDLE hContact, const char *szModule, const char *s int MyDBGetContactSetting(HANDLE hContact, const char *szModule, const char *szSetting, DBVARIANT *dbv) { static BOOL strsvc, strsvcset = FALSE; + memset(dbv, 0, sizeof(DBVARIANT)); if(!strsvcset) {strsvc = ServiceExists(MS_DB_CONTACT_GETSETTING_STR); strsvcset = TRUE;} // preserve unicode strings - this service should return other data types unchanged - if(strsvc) return DBGetContactSettingStringUtf(hContact, szModule, szSetting, dbv); + if(strsvc) return DBGetContactSettingW(hContact, szModule, szSetting, dbv); return DBGetContactSetting(hContact, szModule, szSetting, dbv); } @@ -56,7 +57,6 @@ int Meta_EqualDBV(DBVARIANT *dbv, DBVARIANT *id) { switch(dbv->type) { case DBVT_DELETED: - return 1; case DBVT_BYTE: if(dbv->bVal == id->bVal) @@ -69,8 +69,12 @@ int Meta_EqualDBV(DBVARIANT *dbv, DBVARIANT *id) { return 1; break; case DBVT_ASCIIZ: + case DBVT_UTF8: if(!strcmp(dbv->pszVal,id->pszVal)) return 1; + case DBVT_WCHAR: + if(!wcscmp(dbv->pwszVal,id->pwszVal)) + return 1; case DBVT_BLOB: if(dbv->cpbVal == id->cpbVal) { @@ -135,6 +139,7 @@ HANDLE Meta_GetHandle(const char *protocol, DBVARIANT *id) return hUser; break; case DBVT_ASCIIZ: + case DBVT_UTF8: if(!strcmp(dbv.pszVal,id->pszVal)) { DBFreeVariant(&dbv); @@ -145,6 +150,17 @@ HANDLE Meta_GetHandle(const char *protocol, DBVARIANT *id) DBFreeVariant(&dbv); break; } + case DBVT_WCHAR: + if(!wcscmp(dbv.pwszVal,id->pwszVal)) + { + DBFreeVariant(&dbv); + return hUser; + } + else + { + DBFreeVariant(&dbv); + break; + } case DBVT_BLOB: if(dbv.cpbVal == id->cpbVal) { @@ -696,7 +712,9 @@ void CopyStatusData(HANDLE hMeta) { bDoneStatus = TRUE; } if((!bDoneXStatus) && (!MyDBGetContactSetting(hContact, proto, "XStatusId", &dbv)) && dbv.type != DBVT_DELETED) { + DBWriteContactSettingString(hMeta, META_PROTO, "XStatusProto", proto); MyDBWriteContactSetting(hMeta, META_PROTO, "XStatusId", &dbv); + DBFreeVariant(&dbv); if(!MyDBGetContactSetting(hContact, proto, "XStatusMsg", &dbv)) { MyDBWriteContactSetting(hMeta, META_PROTO, "XStatusMsg", &dbv); diff --git a/metacontacts/version.h b/metacontacts/version.h index 5d4c354..4d9c508 100644 --- a/metacontacts/version.h +++ b/metacontacts/version.h @@ -5,7 +5,7 @@ #define __MAJOR_VERSION 0 #define __MINOR_VERSION 14 #define __RELEASE_NUM 0 -#define __BUILD_NUM 4 +#define __BUILD_NUM 5 #define __FILEVERSION_STRING __MAJOR_VERSION,__MINOR_VERSION,__RELEASE_NUM,__BUILD_NUM #define __FILEVERSION_STRING_DOTS __MAJOR_VERSION.__MINOR_VERSION.__RELEASE_NUM.__BUILD_NUM -- cgit v1.2.3