From 9263c0341134cc0079cf78b64319cc81d035317b Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sun, 22 Dec 2013 17:31:01 +0000 Subject: =?UTF-8?q?more=20cleaning=20for=20=D0=B3=D1=88=D1=82=D0=B0=D1=89?= =?UTF-8?q?=D1=83=D1=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://svn.miranda-ng.org/main/trunk@7341 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/UserInfoEx/src/svc_contactinfo.cpp | 830 ++++++++++++++--------------- 1 file changed, 400 insertions(+), 430 deletions(-) (limited to 'plugins/UserInfoEx/src/svc_contactinfo.cpp') diff --git a/plugins/UserInfoEx/src/svc_contactinfo.cpp b/plugins/UserInfoEx/src/svc_contactinfo.cpp index 43f1522e8e..0c39d10aec 100644 --- a/plugins/UserInfoEx/src/svc_contactinfo.cpp +++ b/plugins/UserInfoEx/src/svc_contactinfo.cpp @@ -31,60 +31,61 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. static BYTE gNameOrder[NAMEORDERCOUNT]; // name order as set up for contact list /** - * This function translates the DBVARIANT structure to an CONTACTINFO structure - * and keeps the original data type. - * - * @warning ci MUST NOT be NULL and dbv must be freed by caller on failure! - * - * @param dbv - DBVARIANT to take the data for translation from - * @param ci - CONTACTINFO structure to translate to - * - * @retval 0 - success - * @retval 1 - failure - **/ +* This function translates the DBVARIANT structure to an CONTACTINFO structure +* and keeps the original data type. +* +* @warning ci MUST NOT be NULL and dbv must be freed by caller on failure! +* +* @param dbv - DBVARIANT to take the data for translation from +* @param ci - CONTACTINFO structure to translate to +* +* @retval 0 - success +* @retval 1 - failure +**/ + static FORCEINLINE INT_PTR VarToVarCI(const DBVARIANT *dbv, CONTACTINFO *ci) { switch (dbv->type) { case DBVT_ASCIIZ: - case DBVT_WCHAR: { - // string translation is to be done by caller!!! - ci->pszVal = dbv->ptszVal; - ci->type = (ci->pszVal != NULL) ? CNFT_ASCIIZ : 0; - } break; - - case DBVT_BYTE: { - ci->type = CNFT_BYTE; - ci->bVal = dbv->bVal; - } break; - - case DBVT_WORD: { - ci->type = CNFT_WORD; - ci->wVal = dbv->wVal; - } break; - - case DBVT_DWORD: { - ci->type = CNFT_DWORD; - ci->dVal = dbv->dVal; - } break; - - default: { - ci->type = 0; - } + case DBVT_WCHAR: + // string translation is to be done by caller!!! + ci->pszVal = dbv->ptszVal; + ci->type = (ci->pszVal != NULL) ? CNFT_ASCIIZ : 0; + break; + + case DBVT_BYTE: + ci->type = CNFT_BYTE; + ci->bVal = dbv->bVal; + break; + + case DBVT_WORD: + ci->type = CNFT_WORD; + ci->wVal = dbv->wVal; + break; + + case DBVT_DWORD: + ci->type = CNFT_DWORD; + ci->dVal = dbv->dVal; + break; + + default: + ci->type = 0; } return ci->type == 0; } /** - * This function tries to read a setting from the contact's protocol module. - * - * @warning ci MUST NOT be NULL! - * - * @param ci - pointer to a CONTACTINFO structure holding information about the contact - * @param pszSetting - the desired setting to read - * - * @retval 0 - if setting was found and read correctly - * @retval 1 - if any error occured or setting was not found - **/ +* This function tries to read a setting from the contact's protocol module. +* +* @warning ci MUST NOT be NULL! +* +* @param ci - pointer to a CONTACTINFO structure holding information about the contact +* @param pszSetting - the desired setting to read +* +* @retval 0 - if setting was found and read correctly +* @retval 1 - if any error occured or setting was not found +**/ + static FORCEINLINE INT_PTR GCIVar(CONTACTINFO *ci, LPCSTR pszSetting) { DBVARIANT dbv; @@ -95,26 +96,26 @@ static FORCEINLINE INT_PTR GCIVar(CONTACTINFO *ci, LPCSTR pszSetting) db_free(&dbv); } } - else { - ci->type = 0; - } + else ci->type = 0; + return ci->type == 0; } /** - * This function tries to read a setting from a certain module (e.g. USERINFO) and if failed it - * tries once again with the baseprotocol of the contact (e.g. ICQ). If nothing was found anyway - * and this is an metacontact it can have a look into subcontacts to retrieve the information. - * This depends on the settings the user did. - * - * @warning ci MUST NOT be NULL! - * - * @param ci - pointer to a CONTACTINFO structure holding information about the contact - * @param pszSetting - the desired setting to read - * - * @retval 0 - if setting was found and read correctly - * @retval 1 - if any error occured or setting was not found - **/ +* This function tries to read a setting from a certain module (e.g. USERINFO) and if failed it +* tries once again with the baseprotocol of the contact (e.g. ICQ). If nothing was found anyway +* and this is an metacontact it can have a look into subcontacts to retrieve the information. +* This depends on the settings the user did. +* +* @warning ci MUST NOT be NULL! +* +* @param ci - pointer to a CONTACTINFO structure holding information about the contact +* @param pszSetting - the desired setting to read +* +* @retval 0 - if setting was found and read correctly +* @retval 1 - if any error occured or setting was not found +**/ + static FORCEINLINE INT_PTR GCIVarEx(CONTACTINFO *ci, LPCSTR pszSetting) { DBVARIANT dbv; @@ -125,26 +126,26 @@ static FORCEINLINE INT_PTR GCIVarEx(CONTACTINFO *ci, LPCSTR pszSetting) db_free(&dbv); } } - else { - ci->type = 0; - } + else ci->type = 0; + return ci->type == 0; } /** - * This function tries to read a Language from a certain module (e.g. USERINFO) and if failed it - * tries once again with the baseprotocol of the contact (e.g. ICQ). If nothing was found anyway - * and this is an metacontact it can have a look into subcontacts to retrieve the information. - * This depends on the settings the user did. - * - * @warning ci MUST NOT be NULL! - * - * @param ci - pointer to a CONTACTINFO structure holding information about the contact - * @param pszSetting - the desired setting to read - * - * @retval 0 - if setting was found and read correctly - * @retval 1 - if any error occured or setting was not found - **/ +* This function tries to read a Language from a certain module (e.g. USERINFO) and if failed it +* tries once again with the baseprotocol of the contact (e.g. ICQ). If nothing was found anyway +* and this is an metacontact it can have a look into subcontacts to retrieve the information. +* This depends on the settings the user did. +* +* @warning ci MUST NOT be NULL! +* +* @param ci - pointer to a CONTACTINFO structure holding information about the contact +* @param pszSetting - the desired setting to read +* +* @retval 0 - if setting was found and read correctly +* @retval 1 - if any error occured or setting was not found +**/ + static FORCEINLINE INT_PTR GCILangEx(CONTACTINFO *ci, LPCSTR pszSetting) { if (0 == GCIVarEx(ci, pszSetting)) { @@ -153,18 +154,16 @@ static FORCEINLINE INT_PTR GCILangEx(CONTACTINFO *ci, LPCSTR pszSetting) LPIDSTRLIST pList; UINT nList, i, res = 0; switch (ci->type) { - case CNFT_BYTE: res = ci->bVal; break; - case CNFT_WORD: res = ci->wVal; break; - case CNFT_DWORD: res = ci->dVal; break; - default: return 1; + case CNFT_BYTE: res = ci->bVal; break; + case CNFT_WORD: res = ci->wVal; break; + case CNFT_DWORD: res = ci->dVal; break; + default: return 1; } GetLanguageList(&nList, &pList); for(i = 0; ipszVal = (ci->dwFlag & CNF_UNICODE) - ? (LPTSTR) mir_a2u(pList[i].pszText) - : (LPTSTR) mir_strdup(pList[i].pszText); + ci->pszVal = (ci->dwFlag & CNF_UNICODE) ? (LPTSTR) mir_a2u(pList[i].pszText) : (LPTSTR) mir_strdup(pList[i].pszText); ci->type = (ci->pszVal != NULL) ? CNFT_ASCIIZ : 0; return 0; } @@ -173,52 +172,51 @@ static FORCEINLINE INT_PTR GCILangEx(CONTACTINFO *ci, LPCSTR pszSetting) ci->pszVal = NULL; } } - else { - ci->type = 0; - } + else ci->type = 0; + return ci->type == 0; } /** - * This function read a setting from the baseprotocol of the contact (e.g. ICQ). - * - * @warning ci MUST NOT be NULL! - * - * @param ci - pointer to a CONTACTINFO structure holding information about the contact - * @param pszSetting - the desired setting to read - * - * @retval 0 - if setting was found and read correctly - * @retval 1 - if any error occured or setting was not found - **/ +* This function read a setting from the baseprotocol of the contact (e.g. ICQ). +* +* @warning ci MUST NOT be NULL! +* +* @param ci - pointer to a CONTACTINFO structure holding information about the contact +* @param pszSetting - the desired setting to read +* +* @retval 0 - if setting was found and read correctly +* @retval 1 - if any error occured or setting was not found +**/ + static FORCEINLINE INT_PTR GCIStr(CONTACTINFO *ci, LPCSTR pszSetting) { const BYTE type = CI_TCHAR(ci); DBVARIANT dbv; if (DB::Setting::Get(ci->hContact, ci->szProto, pszSetting, &dbv, type) == 0) { - if (DB::Variant::dbv2String(&dbv, type) == 0) { + if (DB::Variant::dbv2String(&dbv, type) == 0) ci->pszVal = dbv.ptszVal; - } else { db_free(&dbv); ci->pszVal = NULL; } } - else { - ci->pszVal = NULL; - } + else ci->pszVal = NULL; + ci->type = (ci->pszVal) ? CNFT_ASCIIZ : 0; return ci->type == 0; } /** - * Format the full name for the contact. - * - * @params ci - CONTACTINFO structure - * - * @retval 0 - if setting was found and read correctly - * @retval 1 - if any error occured or setting was not found - **/ +* Format the full name for the contact. +* +* @params ci - CONTACTINFO structure +* +* @retval 0 - if setting was found and read correctly +* @retval 1 - if any error occured or setting was not found +**/ + static FORCEINLINE INT_PTR GCIFirstLast(CONTACTINFO *ci) { DBVARIANT dbvf, dbvl; @@ -227,79 +225,64 @@ static FORCEINLINE INT_PTR GCIFirstLast(CONTACTINFO *ci) BYTE type = CI_TCHAR(ci); if (DB::Setting::GetEx(ci->hContact, USERINFO, ci->szProto, SET_CONTACT_FIRSTNAME, &dbvf, type)) - { dbvf.type = DBVT_DELETED; - } + if (DB::Setting::GetEx(ci->hContact, USERINFO, ci->szProto, SET_CONTACT_LASTNAME, &dbvl, type)) - { dbvl.type = DBVT_DELETED; - } - if (type == DBVT_WCHAR) - { + if (type == DBVT_WCHAR) { // both firstname and lastname are valid - if (dbvf.type == DBVT_WCHAR && dbvl.type == DBVT_WCHAR) - { + if (dbvf.type == DBVT_WCHAR && dbvl.type == DBVT_WCHAR) { cbf = mir_wcslen(dbvf.pwszVal); cbl = mir_wcslen(dbvl.pwszVal); ci->pszVal = (LPTSTR) mir_alloc((cbf + cbl + 2) * sizeof(WCHAR)); if (ci->pszVal) - { mir_snwprintf((LPWSTR) ci->pszVal, cbf + cbl + 2, L"%s %s", dbvf.pwszVal, dbvl.pwszVal); - } + db_free(&dbvf); db_free(&dbvl); } // set firstname as result - else if (dbvf.type == DBVT_WCHAR) - { + else if (dbvf.type == DBVT_WCHAR) { ci->pszVal = (LPTSTR) dbvf.pwszVal; db_free(&dbvl); } // set lastname as result - else if (dbvl.type == DBVT_WCHAR) - { + else if (dbvl.type == DBVT_WCHAR) { ci->pszVal = (LPTSTR) dbvl.pwszVal; db_free(&dbvf); } - else - { + else { ci->pszVal = NULL; db_free(&dbvf); db_free(&dbvl); } } - else - { + else { // both firstname and lastname are valid - if (dbvf.type == DBVT_ASCIIZ && dbvl.type == DBVT_ASCIIZ) - { + if (dbvf.type == DBVT_ASCIIZ && dbvl.type == DBVT_ASCIIZ) { cbf = mir_strlen(dbvf.pszVal); cbl = mir_strlen(dbvl.pszVal); ci->pszVal = (LPTSTR) mir_alloc((cbf + cbl + 2) * sizeof(CHAR)); if (ci->pszVal) - { mir_snprintf((LPSTR) ci->pszVal, cbf + cbl + 2, "%s %s", dbvf.pszVal, dbvl.pszVal); - } + db_free(&dbvf); db_free(&dbvl); } // set firstname as result - else if (dbvf.type == DBVT_ASCIIZ) - { + else if (dbvf.type == DBVT_ASCIIZ) { ci->pszVal = (LPTSTR) dbvf.pszVal; db_free(&dbvl); } // set lastname as result - else if (dbvl.type == DBVT_ASCIIZ) - { + else if (dbvl.type == DBVT_ASCIIZ) { ci->pszVal = (LPTSTR) dbvl.pszVal; db_free(&dbvf); } - else - { + else { ci->pszVal = NULL; db_free(&dbvf); db_free(&dbvl); @@ -310,14 +293,15 @@ static FORCEINLINE INT_PTR GCIFirstLast(CONTACTINFO *ci) } /** - * return the country name - * - * @param ci - pointer to a CONTACTINFO structure holding information about the contact - * @param pszSetting - the desired setting to read the countrys id from - * - * @retval 0 - if setting was found and read correctly - * @retval 1 - if any error occured or setting was not found - **/ +* return the country name +* +* @param ci - pointer to a CONTACTINFO structure holding information about the contact +* @param pszSetting - the desired setting to read the countrys id from +* +* @retval 0 - if setting was found and read correctly +* @retval 1 - if any error occured or setting was not found +**/ + static FORCEINLINE INT_PTR GCICountry(CONTACTINFO *ci, LPCSTR pszSetting) { if (0 == GCIVarEx(ci, pszSetting)) { @@ -331,14 +315,11 @@ static FORCEINLINE INT_PTR GCICountry(CONTACTINFO *ci, LPCSTR pszSetting) } LPSTR szCountry = res ? (LPSTR)CallService(MS_UTILS_GETCOUNTRYBYNUMBER, res, 0) : NULL; - if (szCountry) { - ci->pszVal = (ci->dwFlag & CNF_UNICODE) - ? (LPTSTR) mir_a2u(szCountry) - : (LPTSTR) mir_strdup(szCountry); - } - else { + if (szCountry) + ci->pszVal = (ci->dwFlag & CNF_UNICODE) ? (LPTSTR) mir_a2u(szCountry) : (LPTSTR) mir_strdup(szCountry); + else ci->pszVal = NULL; - } + ci->type = (ci->pszVal != NULL) ? CNFT_ASCIIZ : 0; } } @@ -362,196 +343,204 @@ INT_PTR GetContactInfo(WPARAM wParam, LPARAM lParam) CONTACTINFO *ci = (CONTACTINFO*) lParam; INT_PTR result; - if (ci && ci->cbSize == sizeof(CONTACTINFO) && (ci->szProto != NULL || (ci->szProto = DB::Contact::Proto(ci->hContact)) != NULL)) - { + if (ci && ci->cbSize == sizeof(CONTACTINFO) && (ci->szProto != NULL || (ci->szProto = DB::Contact::Proto(ci->hContact)) != NULL)) { switch (ci->dwFlag & 0x7F) { // // contact name // - case CNF_FIRSTNAME: { - result = GCIVarEx(ci, SET_CONTACT_FIRSTNAME); - } break; + case CNF_FIRSTNAME: + result = GCIVarEx(ci, SET_CONTACT_FIRSTNAME); + break; - case CNF_LASTNAME: { - result = GCIVarEx(ci, SET_CONTACT_LASTNAME); - } break; + case CNF_LASTNAME: + result = GCIVarEx(ci, SET_CONTACT_LASTNAME); + break; - case CNF_FIRSTLAST: { - result = GCIVarEx(ci, SET_CONTACT_FIRSTLASTNAME); //first try to read "FullName" - if (result) result = GCIFirstLast(ci); //fallback to "FirstName" + "LastName" - } break; + case CNF_FIRSTLAST: + result = GCIVarEx(ci, SET_CONTACT_FIRSTLASTNAME); //first try to read "FullName" + if (result) result = GCIFirstLast(ci); //fallback to "FirstName" + "LastName" + break; - case CNF_NICK: { - result = GCIVarEx(ci, SET_CONTACT_NICK); - } break; + case CNF_NICK: + result = GCIVarEx(ci, SET_CONTACT_NICK); + break; - case CNF_CUSTOMNICK: { + case CNF_CUSTOMNICK: + { LPSTR s = ci->szProto; ci->szProto = MOD_CLIST; result = GCIVar(ci, SET_CONTACT_MYHANDLE); ci->szProto = s; - } break; + } + break; - case CNF_LANGUAGE1: { - result = GCILangEx(ci, SET_CONTACT_LANG1); - } break; + case CNF_LANGUAGE1: + result = GCILangEx(ci, SET_CONTACT_LANG1); + break; - case CNF_LANGUAGE2: { - result = GCILangEx(ci, SET_CONTACT_LANG2); - } break; + case CNF_LANGUAGE2: + result = GCILangEx(ci, SET_CONTACT_LANG2); + break; - case CNF_LANGUAGE3: { - result = GCILangEx(ci, SET_CONTACT_LANG3); - } break; + case CNF_LANGUAGE3: + result = GCILangEx(ci, SET_CONTACT_LANG3); + break; // // private contact // - case CNF_STREET: { - result = GCIVarEx(ci, SET_CONTACT_STREET); - } break; + case CNF_STREET: + result = GCIVarEx(ci, SET_CONTACT_STREET); + break; - case CNF_ZIP: { - result = GCIVarEx(ci, SET_CONTACT_ZIP); - } break; + case CNF_ZIP: + result = GCIVarEx(ci, SET_CONTACT_ZIP); + break; - case CNF_CITY: { - result = GCIVarEx(ci, SET_CONTACT_CITY); - } break; + case CNF_CITY: + result = GCIVarEx(ci, SET_CONTACT_CITY); + break; - case CNF_STATE: { - result = GCIVarEx(ci, SET_CONTACT_STATE); - } break; + case CNF_STATE: + result = GCIVarEx(ci, SET_CONTACT_STATE); + break; - case CNF_COUNTRY: { - result = GCICountry(ci, SET_CONTACT_COUNTRY); - } break; + case CNF_COUNTRY: + result = GCICountry(ci, SET_CONTACT_COUNTRY); + break; - case CNF_PHONE: { - result = GCIVarEx(ci, SET_CONTACT_PHONE); - } break; + case CNF_PHONE: + result = GCIVarEx(ci, SET_CONTACT_PHONE); + break; - case CNF_FAX: { - result = GCIVarEx(ci, SET_CONTACT_FAX); - } break; + case CNF_FAX: + result = GCIVarEx(ci, SET_CONTACT_FAX); + break; - case CNF_CELLULAR: { - result = GCIVarEx(ci, SET_CONTACT_CELLULAR); - } break; + case CNF_CELLULAR: + result = GCIVarEx(ci, SET_CONTACT_CELLULAR); + break; - case CNF_EMAIL: { - result = GCIVarEx(ci, SET_CONTACT_EMAIL); - } break; + case CNF_EMAIL: + result = GCIVarEx(ci, SET_CONTACT_EMAIL); + break; - case CNF_HOMEPAGE: { - result = GCIVarEx(ci, SET_CONTACT_HOMEPAGE); - } break; + case CNF_HOMEPAGE: + result = GCIVarEx(ci, SET_CONTACT_HOMEPAGE); + break; // // company information // - case CNF_CONAME: { - result = GCIVarEx(ci, SET_CONTACT_COMPANY); - } break; + case CNF_CONAME: + result = GCIVarEx(ci, SET_CONTACT_COMPANY); + break; - case CNF_CODEPT: { - result = GCIVarEx(ci, SET_CONTACT_COMPANY_DEPARTMENT); - } break; + case CNF_CODEPT: + result = GCIVarEx(ci, SET_CONTACT_COMPANY_DEPARTMENT); + break; - case CNF_COPOSITION: { - result = GCIVarEx(ci, SET_CONTACT_COMPANY_POSITION); - } break; + case CNF_COPOSITION: + result = GCIVarEx(ci, SET_CONTACT_COMPANY_POSITION); + break; - case CNF_COSTREET: { - result = GCIVarEx(ci, SET_CONTACT_COMPANY_STREET); - } break; + case CNF_COSTREET: + result = GCIVarEx(ci, SET_CONTACT_COMPANY_STREET); + break; - case CNF_COZIP: { - result = GCIVarEx(ci, SET_CONTACT_COMPANY_ZIP); - } break; + case CNF_COZIP: + result = GCIVarEx(ci, SET_CONTACT_COMPANY_ZIP); + break; - case CNF_COCITY: { - result = GCIVarEx(ci, SET_CONTACT_COMPANY_CITY); - } break; + case CNF_COCITY: + result = GCIVarEx(ci, SET_CONTACT_COMPANY_CITY); + break; - case CNF_COSTATE: { - result = GCIVarEx(ci, SET_CONTACT_COMPANY_STATE); - } break; + case CNF_COSTATE: + result = GCIVarEx(ci, SET_CONTACT_COMPANY_STATE); + break; - case CNF_COCOUNTRY: { - result = GCICountry(ci, SET_CONTACT_COMPANY_COUNTRY); - } break; + case CNF_COCOUNTRY: + result = GCICountry(ci, SET_CONTACT_COMPANY_COUNTRY); + break; - case CNF_COPHONE: { - result = GCIVarEx(ci, SET_CONTACT_COMPANY_PHONE); - } break; + case CNF_COPHONE: + result = GCIVarEx(ci, SET_CONTACT_COMPANY_PHONE); + break; - case CNF_COFAX: { - result = GCIVarEx(ci, SET_CONTACT_COMPANY_FAX); - } break; + case CNF_COFAX: + result = GCIVarEx(ci, SET_CONTACT_COMPANY_FAX); + break; - case CNF_COCELLULAR: { - result = GCIVarEx(ci, SET_CONTACT_COMPANY_CELLULAR); - } break; + case CNF_COCELLULAR: + result = GCIVarEx(ci, SET_CONTACT_COMPANY_CELLULAR); + break; - case CNF_COEMAIL: { - result = GCIVarEx(ci, SET_CONTACT_COMPANY_EMAIL); - } break; + case CNF_COEMAIL: + result = GCIVarEx(ci, SET_CONTACT_COMPANY_EMAIL); + break; - case CNF_COHOMEPAGE: { - result = GCIVarEx(ci, SET_CONTACT_COMPANY_HOMEPAGE); - } break; + case CNF_COHOMEPAGE: + result = GCIVarEx(ci, SET_CONTACT_COMPANY_HOMEPAGE); + break; // // personal information // - case CNF_ABOUT: { - result = GCIVarEx(ci, SET_CONTACT_ABOUT); - } break; + case CNF_ABOUT: + result = GCIVarEx(ci, SET_CONTACT_ABOUT); + break; - case CNF_MYNOTES: { - result = GCIVarEx(ci, SET_CONTACT_MYNOTES); - } break; + case CNF_MYNOTES: + result = GCIVarEx(ci, SET_CONTACT_MYNOTES); + break; - case CNF_AGE: { - result = GCIVarEx(ci, SET_CONTACT_AGE); - } break; // returns age (byte, 0==unspecified) ?? + case CNF_AGE: + result = GCIVarEx(ci, SET_CONTACT_AGE); + break; // returns age (byte, 0==unspecified) ?? - case CNF_GENDER: { - ci->bVal = GenderOf(ci->hContact, ci->szProto); - ci->type = (ci->bVal != 0) ? CNFT_BYTE : 0; - result = ci->type == 0; - } break; + case CNF_GENDER: + ci->bVal = GenderOf(ci->hContact, ci->szProto); + ci->type = (ci->bVal != 0) ? CNFT_BYTE : 0; + result = ci->type == 0; + break; - case CNF_BIRTHDAY: { + case CNF_BIRTHDAY: + { MAnnivDate mda; result = mda.DBGetBirthDate(ci->hContact, ci->szProto); if (result == 0) { - ci->bVal = (BYTE) mda.Day(); + ci->bVal = (BYTE)mda.Day(); ci->type = CNFT_BYTE; } - } break; + } + break; - case CNF_BIRTHMONTH: { + case CNF_BIRTHMONTH: + { MAnnivDate mda; result = mda.DBGetBirthDate(ci->hContact, ci->szProto); if (result == 0) { - ci->bVal = (BYTE) mda.Month(); + ci->bVal = (BYTE)mda.Month(); ci->type = CNFT_BYTE; } - } break; + } + break; - case CNF_BIRTHYEAR: { + case CNF_BIRTHYEAR: + { MAnnivDate mda; result = mda.DBGetBirthDate(ci->hContact, ci->szProto); if (result == 0) { - ci->wVal = (WORD) mda.Year(); + ci->wVal = (WORD)mda.Year(); ci->type = CNFT_WORD; } - } break; + } + break; - case CNF_BIRTHDATE: { + case CNF_BIRTHDATE: + { MAnnivDate mda; result = mda.DBGetBirthDate(ci->hContact, ci->szProto); if (result == 0) { @@ -559,176 +548,160 @@ INT_PTR GetContactInfo(WPARAM wParam, LPARAM lParam) ci->pszVal = NULL; if (ci->dwFlag & CNF_UNICODE) { WCHAR wszDate[80]; - if (GetDateFormatW(LOCALE_USER_DEFAULT, wParam == 1 ? DATE_LONGDATE : DATE_SHORTDATE, &st, NULL, wszDate, SIZEOF(wszDate))) { + if (GetDateFormatW(LOCALE_USER_DEFAULT, wParam == 1 ? DATE_LONGDATE : DATE_SHORTDATE, &st, NULL, wszDate, SIZEOF(wszDate))) ci->pszVal = (LPTSTR)mir_wcsdup(wszDate); - } } else { CHAR szDate[80]; - if (GetDateFormatA(LOCALE_USER_DEFAULT, wParam == 1 ? DATE_LONGDATE : DATE_SHORTDATE, &st, NULL, szDate, SIZEOF(szDate))) { + if (GetDateFormatA(LOCALE_USER_DEFAULT, wParam == 1 ? DATE_LONGDATE : DATE_SHORTDATE, &st, NULL, szDate, SIZEOF(szDate))) ci->pszVal = (LPTSTR)mir_strdup(szDate); - } } ci->type = (ci->pszVal != NULL) ? CNFT_ASCIIZ : 0; result = ci->type == 0; } - } break; - - case CNF_TIMEZONE: { - //use new core tz interface - if (tmi.prepareList) { - HANDLE hTz = tmi.createByContact(ci->hContact, TZF_KNOWNONLY); - if (hTz) { - LPTIME_ZONE_INFORMATION tzi = tmi.getTzi(hTz); - int offset = tzi->Bias + tzi->StandardBias; - - char str[80]; - mir_snprintf(str, SIZEOF(str), offset ? "UTC%+d:%02d" : "UTC", offset / -60, abs(offset % 60)); - ci->pszVal = ci->dwFlag & CNF_UNICODE - ? (TCHAR*)mir_a2u(str) - : (TCHAR*)mir_strdup(str); - ci->type = CNFT_ASCIIZ; - return 0; - } - else { - ci->pszVal = NULL; - } + } + break; + + case CNF_TIMEZONE: + //use new core tz interface + if (tmi.prepareList) { + HANDLE hTz = tmi.createByContact(ci->hContact, TZF_KNOWNONLY); + if (hTz) { + LPTIME_ZONE_INFORMATION tzi = tmi.getTzi(hTz); + int offset = tzi->Bias + tzi->StandardBias; + + char str[80]; + mir_snprintf(str, SIZEOF(str), offset ? "UTC%+d:%02d" : "UTC", offset / -60, abs(offset % 60)); + ci->pszVal = ci->dwFlag & CNF_UNICODE ? (TCHAR*)mir_a2u(str) : (TCHAR*)mir_strdup(str); + ci->type = CNFT_ASCIIZ; + return 0; + } + ci->pszVal = NULL; + } + //fallback use old UIEX method + else { + CTimeZone* ptz = GetContactTimeZone(ci->hContact, ci->szProto); + if (ptz) { + if (ci->dwFlag & CNF_UNICODE) + ci->pszVal = (LPTSTR)mir_t2u(ptz->ptszDisplay); + else + ci->pszVal = (LPTSTR)mir_t2a(ptz->ptszDisplay); } - //fallback use old UIEX method else { - CTimeZone* ptz = GetContactTimeZone(ci->hContact, ci->szProto); - if (ptz) { - if (ci->dwFlag & CNF_UNICODE) { - ci->pszVal = (LPTSTR) mir_t2u(ptz->ptszDisplay); - } - else { - ci->pszVal = (LPTSTR) mir_t2a(ptz->ptszDisplay); - } - } - else { - /* If a timezone does not exist in CTzMgr, it is a invalid timezone, - because Windows and CTzMgr know all existing timezones and it - would not be shown anywhere anyway as UserInfoEx displays only - known windows timezones in the details dialog! - */ - ci->pszVal = NULL; - } + /* If a timezone does not exist in CTzMgr, it is a invalid timezone, + because Windows and CTzMgr know all existing timezones and it + would not be shown anywhere anyway as UserInfoEx displays only + known windows timezones in the details dialog! + */ + ci->pszVal = NULL; } - ci->type = (ci->pszVal != NULL) ? CNFT_ASCIIZ : 0; - result = ci->type == 0; - } break; + } + ci->type = (ci->pszVal != NULL) ? CNFT_ASCIIZ : 0; + result = ci->type == 0; + break; // // information about IM specific stuff // - case CNF_UNIQUEID: { - // protocol must define a PFLAG_UNIQUEIDSETTING + case CNF_UNIQUEID: + // protocol must define a PFLAG_UNIQUEIDSETTING + result = CallProtoService(ci->szProto, PS_GETCAPS, PFLAG_UNIQUEIDSETTING, 0); + if (result != CALLSERVICE_NOTFOUND && result != NULL) + result = GCIVar(ci, (LPCSTR)result); + break; + + case CNF_DISPLAYUID: + if (!GCIVar(ci, "display_uid")) + result = 0; + else { result = CallProtoService(ci->szProto, PS_GETCAPS, PFLAG_UNIQUEIDSETTING, 0); - if (result != CALLSERVICE_NOTFOUND && result != NULL) { - result = GCIVar(ci, (LPCSTR) result); - } - } break; - - case CNF_DISPLAYUID: { - if (!GCIVar(ci, "display_uid")) - result=0; - else { - result = CallProtoService(ci->szProto,PS_GETCAPS,PFLAG_UNIQUEIDSETTING,0); - if (result != CALLSERVICE_NOTFOUND && result != NULL) { - result = GCIVar(ci, (LPCSTR) result); - } - } - } break; + if (result != CALLSERVICE_NOTFOUND && result != NULL) + result = GCIVar(ci, (LPCSTR)result); + } + break; case CNF_DISPLAYNC: - case CNF_DISPLAY: { - int i; - for (i = 0; i < NAMEORDERCOUNT; i++) { - switch (gNameOrder[i]) { - case 0: // custom name - { - // make sure we aren't in CNF_DISPLAYNC mode - // don't get custom name for NULL contact - if (ci->hContact != NULL && (ci->dwFlag & 0x7F) == CNF_DISPLAY) { - BYTE dwFlag = ci->dwFlag; - ci->dwFlag = (ci->dwFlag & CNF_UNICODE) | CNF_CUSTOMNICK; - if (!GetContactInfo(NULL, (LPARAM)ci)) { - ci->dwFlag = dwFlag; - return 0; - } - ci->dwFlag = dwFlag; - } - } break; - case 1: // nick - { - if (!GCIVarEx(ci, SET_CONTACT_NICK)) - return 0; - } break; - case 2: // First Name - { - if (!GCIVarEx(ci, SET_CONTACT_FIRSTNAME)) - return 0; - } break; - case 3: // E-mail - { - if (!GCIVarEx(ci, SET_CONTACT_EMAIL)) - return 0; - } break; - case 4: // Last Name - { - if (!GCIVarEx(ci, SET_CONTACT_LASTNAME)) - return 0; - } break; - case 5: // Unique id - { - // protocol must define a PFLAG_UNIQUEIDSETTING - result = CallProtoService(ci->szProto, PS_GETCAPS, PFLAG_UNIQUEIDSETTING, 0); - if (result != CALLSERVICE_NOTFOUND && result != NULL) { - if (!GCIStr(ci, (LPCSTR) result)) - return 0; - } - } break; - case 6: // first + last name - { - if (!GCIFirstLast(ci)) - return 0; - } break; - default: // unknown contact - { - if (ci->dwFlag & CNF_UNICODE) { - ci->pszVal = (LPTSTR) mir_wcsdup(TranslateW(L"'(Unknown Contact)'")); - } - else { - ci->pszVal = (LPTSTR) mir_strdup(Translate("'(Unknown Contact)'")); - } - ci->type = (ci->pszVal != NULL) ? CNFT_ASCIIZ : 0; - return ci->type == 0; + case CNF_DISPLAY: + for (int i = 0; i < NAMEORDERCOUNT; i++) { + switch (gNameOrder[i]) { + case 0: // custom name + // make sure we aren't in CNF_DISPLAYNC mode + // don't get custom name for NULL contact + if (ci->hContact != NULL && (ci->dwFlag & 0x7F) == CNF_DISPLAY) { + BYTE dwFlag = ci->dwFlag; + ci->dwFlag = (ci->dwFlag & CNF_UNICODE) | CNF_CUSTOMNICK; + if (!GetContactInfo(NULL, (LPARAM)ci)) { + ci->dwFlag = dwFlag; + return 0; } + ci->dwFlag = dwFlag; } + break; + + case 1: // nick + if (!GCIVarEx(ci, SET_CONTACT_NICK)) + return 0; + break; + + case 2: // First Name + if (!GCIVarEx(ci, SET_CONTACT_FIRSTNAME)) + return 0; + break; + + case 3: // E-mail + if (!GCIVarEx(ci, SET_CONTACT_EMAIL)) + return 0; + break; + + case 4: // Last Name + if (!GCIVarEx(ci, SET_CONTACT_LASTNAME)) + return 0; + break; + + case 5: // Unique id + // protocol must define a PFLAG_UNIQUEIDSETTING + result = CallProtoService(ci->szProto, PS_GETCAPS, PFLAG_UNIQUEIDSETTING, 0); + if (result != CALLSERVICE_NOTFOUND && result != NULL) { + if (!GCIStr(ci, (LPCSTR)result)) + return 0; + } + break; + + case 6: // first + last name + if (!GCIFirstLast(ci)) + return 0; + break; + + default: // unknown contact + if (ci->dwFlag & CNF_UNICODE) + ci->pszVal = (LPTSTR)mir_wcsdup(TranslateW(L"'(Unknown Contact)'")); + else + ci->pszVal = (LPTSTR)mir_strdup(Translate("'(Unknown Contact)'")); + + ci->type = (ci->pszVal != NULL) ? CNFT_ASCIIZ : 0; + return ci->type == 0; } } - default: { - result = 1; - } + default: + result = 1; } } - else - { - result = 1; - } + else result = 1; + return result; } /** - * This is the implementation of the MS_DB_CONTACT_GETSETTING_STR_EX service. - * - * @param wParam - handle of the contact a setting was written for (must be NULL in this case) - * @param lParam - DBCONTACTGETSETTING structure holding information about the setting to read - * - * @retval 0 - success - * @retval 1 - error - **/ +* This is the implementation of the MS_DB_CONTACT_GETSETTING_STR_EX service. +* +* @param wParam - handle of the contact a setting was written for (must be NULL in this case) +* @param lParam - DBCONTACTGETSETTING structure holding information about the setting to read +* +* @retval 0 - success +* @retval 1 - error +**/ + static INT_PTR GetContactSettingStrExService(WPARAM wParam, LPARAM lParam) { DBCONTACTGETSETTING *cgs = (DBCONTACTGETSETTING*)lParam; @@ -737,31 +710,30 @@ static INT_PTR GetContactSettingStrExService(WPARAM wParam, LPARAM lParam) } /** - * If the user changes the name order update the global value. - * - * @param wParam - handle of the contact a setting was written for (must be NULL in this case) - * @param lParam - DBCONTACTWRITESETTING structure holding information about the written data - * @return 0 - **/ +* If the user changes the name order update the global value. +* +* @param wParam - handle of the contact a setting was written for (must be NULL in this case) +* @param lParam - DBCONTACTWRITESETTING structure holding information about the written data +* @return 0 +**/ + static int OnSettingChanged(WPARAM wParam, LPARAM lParam) { if ((HANDLE)wParam == NULL) { DBCONTACTWRITESETTING *pdbcws = (DBCONTACTWRITESETTING*) lParam; - if (!mir_strcmp(pdbcws->szModule, "Contact") && - !mir_strcmp(pdbcws->szSetting, "NameOrder")) - { - memcpy(gNameOrder, pdbcws->value.pbVal,pdbcws->value.cpbVal); - } + if (!mir_strcmp(pdbcws->szModule, "Contact") && !mir_strcmp(pdbcws->szSetting, "NameOrder")) + memcpy(gNameOrder, pdbcws->value.pbVal, pdbcws->value.cpbVal); } return 0; } /** - * Loads the module at startup and replaces the service. - * - * @param none - * @return nothing - **/ +* Loads the module at startup and replaces the service. +* +* @param none +* @return nothing +**/ + void SvcContactInfoLoadModule() { CreateServiceFunction(MS_DB_CONTACT_GETSETTING_STR_EX, GetContactSettingStrExService); @@ -769,10 +741,8 @@ void SvcContactInfoLoadModule() DBVARIANT dbv; if (DB::Setting::GetAString(NULL, "Contact", "NameOrder", &dbv)) { - BYTE i; - for (i = 0; i < NAMEORDERCOUNT; i++) { + for (int i = 0; i < NAMEORDERCOUNT; i++) gNameOrder[i] = i; - } } else { memcpy(gNameOrder, dbv.pbVal, dbv.cpbVal); -- cgit v1.2.3