void GetReceivedFilesDir(TCHAR *szDir, int cchDir) { TCHAR tszTemp[MAX_PATH]; ptrT tszRecvPath(db_get_tsa(NULL, "SRFile", "RecvFilesDirAdv")); if (tszRecvPath) _tcsncpy_s(tszTemp, tszRecvPath, _TRUNCATE); else mir_sntprintf(tszTemp, _T("%%mydocuments%%\\%s\\%%userid%%"), TranslateT("My received files")); patchDir(tszTemp, _countof(tszTemp)); RemoveInvalidPathChars(tszTemp); mir_tstrncpy(szDir, tszTemp, cchDir); }
void GetContactReceivedFilesDir(HANDLE hContact, TCHAR *szDir, int cchDir, BOOL patchVars) { DBVARIANT dbv; TCHAR szTemp[MAX_PATH]; szTemp[0] = 0; if ( !DBGetContactSettingTString( NULL, "SRFile", "RecvFilesDirAdv", &dbv)) { if ( lstrlen( dbv.ptszVal ) > 0 ) lstrcpyn( szTemp, dbv.ptszVal, SIZEOF( szTemp )); DBFreeVariant( &dbv ); } if ( !szTemp[0] ) #ifdef _UNICODE mir_sntprintf( szTemp, SIZEOF(szTemp), _T("%%mydocuments%%\\%s\\%%userid%%"), TranslateT("My Received Files")); #else mir_sntprintf( szTemp, SIZEOF(szTemp), _T("%%mydocuments%%\\%s\\%%userid%%"), "My Received Files"); #endif if ( hContact ) { REPLACEVARSDATA dat = { 0 }; REPLACEVARSARRAY rvaVarsToReplace[4]; rvaVarsToReplace[0].lptzKey = _T("nick"); rvaVarsToReplace[0].lptzValue = mir_tstrdup((TCHAR *)CallService(MS_CLIST_GETCONTACTDISPLAYNAME, (WPARAM)hContact, GCDNF_TCHAR)); rvaVarsToReplace[1].lptzKey = _T("userid"); rvaVarsToReplace[1].lptzValue = GetContactID(hContact); rvaVarsToReplace[2].lptzKey = _T("proto"); rvaVarsToReplace[2].lptzValue = mir_a2t((char *)CallService(MS_PROTO_GETCONTACTBASEPROTO, (WPARAM)hContact,0)); rvaVarsToReplace[3].lptzKey = NULL; rvaVarsToReplace[3].lptzValue = NULL; for (int i=0; i < (SIZEOF(rvaVarsToReplace)-1);i++) RemoveInvalidFilenameChars(rvaVarsToReplace[i].lptzValue); dat.cbSize = sizeof( dat ); dat.dwFlags = RVF_TCHAR; dat.variables = rvaVarsToReplace; dat.hContact = hContact; TCHAR* result = ( TCHAR* )CallService( MS_UTILS_REPLACEVARS, (WPARAM)szTemp, (LPARAM)&dat ); if ( result ) { _tcsncpy( szTemp, result, SIZEOF(szTemp)); mir_free( result ); for (int i=0; i < (SIZEOF(rvaVarsToReplace)-1);i++) mir_free(rvaVarsToReplace[i].lptzValue); } } if (patchVars) patchDir( szTemp, SIZEOF(szTemp)); RemoveInvalidPathChars(szTemp); lstrcpyn( szDir, szTemp, cchDir ); }
void GetReceivedFilesDir(TCHAR *szDir, int cchDir) { TCHAR szTemp[MAX_PATH]; szTemp[0] = 0; DBVARIANT dbv; if (!db_get_ts(NULL, "SRFile", "RecvFilesDirAdv", &dbv)) { if (lstrlen(dbv.ptszVal) > 0) lstrcpyn(szTemp, dbv.ptszVal, SIZEOF(szTemp)); db_free(&dbv); } if (!szTemp[0]) mir_sntprintf(szTemp, SIZEOF(szTemp), _T("%%mydocuments%%\\%s"), TranslateT("My received files")); patchDir(szTemp, SIZEOF(szTemp)); RemoveInvalidPathChars(szTemp); lstrcpyn(szDir, szTemp, cchDir); }
void GetContactReceivedFilesDir(MCONTACT hContact, TCHAR *szDir, int cchDir, BOOL patchVars) { TCHAR tszTemp[MAX_PATH]; ptrT tszRecvPath(db_get_tsa(NULL, "SRFile", "RecvFilesDirAdv")); if (tszRecvPath) _tcsncpy_s(tszTemp, tszRecvPath, _TRUNCATE); else mir_sntprintf(tszTemp, _T("%%mydocuments%%\\%s\\%%userid%%"), TranslateT("My received files")); if (hContact) { hContact = db_mc_tryMeta(hContact); REPLACEVARSARRAY rvaVarsToReplace[4]; rvaVarsToReplace[0].key.t = _T("nick"); rvaVarsToReplace[0].value.t = mir_tstrdup((TCHAR *)pcli->pfnGetContactDisplayName(hContact, 0)); rvaVarsToReplace[1].key.t = _T("userid"); rvaVarsToReplace[1].value.t = GetContactID(hContact); rvaVarsToReplace[2].key.t = _T("proto"); rvaVarsToReplace[2].value.t = mir_a2t(GetContactProto(hContact)); rvaVarsToReplace[3].key.t = NULL; rvaVarsToReplace[3].value.t = NULL; for (int i = 0; i < (_countof(rvaVarsToReplace) - 1); i++) RemoveInvalidFilenameChars(rvaVarsToReplace[i].value.t); TCHAR *result = Utils_ReplaceVarsT(tszTemp, hContact, rvaVarsToReplace); if (result) { _tcsncpy(tszTemp, result, _countof(tszTemp)); mir_free(result); for (int i = 0; i < (_countof(rvaVarsToReplace) - 1); i++) mir_free(rvaVarsToReplace[i].value.t); } } if (patchVars) patchDir(tszTemp, _countof(tszTemp)); RemoveInvalidPathChars(tszTemp); mir_tstrncpy(szDir, tszTemp, cchDir); }
void GetReceivedFilesDir(TCHAR *szDir, int cchDir) { DBVARIANT dbv; TCHAR szTemp[MAX_PATH]; szTemp[0] = 0; if ( !DBGetContactSettingTString( NULL, "SRFile", "RecvFilesDirAdv", &dbv )) { if ( lstrlen( dbv.ptszVal ) > 0 ) lstrcpyn( szTemp, dbv.ptszVal, SIZEOF( szTemp )); DBFreeVariant(&dbv); } if ( !szTemp[0] ) #ifdef _UNICODE mir_sntprintf( szTemp, SIZEOF(szTemp), _T("%%mydocuments%%\\%s"), TranslateT("My Received Files")); #else mir_sntprintf( szTemp, SIZEOF(szTemp), _T("%%mydocuments%%\\%s"), "My Received Files"); #endif patchDir( szTemp, SIZEOF(szTemp)); RemoveInvalidPathChars(szTemp); lstrcpyn( szDir, szTemp, cchDir ); }