INT_PTR ExportBirthdaysService(WPARAM, LPARAM) { TCHAR fileName[1024] = { 0 }; OPENFILENAME of = { 0 }; of.lStructSize = sizeof(OPENFILENAME); //of.hInstance = hInstance; TCHAR filter[MAX_PATH]; mir_sntprintf(filter, _T("%s (*") _T(BIRTHDAY_EXTENSION) _T(")%c*") _T(BIRTHDAY_EXTENSION) _T("%c%s (*.*)%c*.*%c"), TranslateT("Birthdays files"), 0, 0, TranslateT("All Files"), 0, 0); of.lpstrFilter = filter; of.lpstrFile = fileName; of.nMaxFile = _countof(fileName); of.lpstrTitle = TranslateT("Please select a file to export birthdays to..."); if (GetSaveFileName(&of)) { TCHAR buffer[2048]; TCHAR *fn = _tcsrchr(fileName, _T('\\')) + 1; if (!_tcschr(fn, _T('.'))) mir_tstrcat(fileName, _T(BIRTHDAY_EXTENSION)); mir_sntprintf(buffer, TranslateT("Exporting birthdays to file: %s"), fileName); ShowPopupMessage(TranslateT("WhenWasIt"), buffer, hExportBirthdays); DoExport(fileName); ShowPopupMessage(TranslateT("WhenWasIt"), TranslateT("Done exporting birthdays"), hExportBirthdays); } return 0; }
void __cdecl RefreshUserDetailsWorkerThread(void *param) { ShowPopupMessage(TranslateT("WhenWasIt"), TranslateT("Starting to refresh user details"), hRefreshUserDetails); int delay = db_get_w(NULL, ModuleName, "UpdateDelay", REFRESH_DETAILS_DELAY); int res; MCONTACT hContact = db_find_first(); while (hContact != NULL) { res = CallContactService(hContact, PSS_GETINFO, 0, 0); hContact = db_find_next(hContact); if (hContact) Sleep(delay); //sleep for a few seconds between requests } ShowPopupMessage(TranslateT("WhenWasIt"), TranslateT("Done refreshing user details"), hRefreshUserDetails); }
int ShowMessage(TCHAR *message, int cUnreadEmails) { int usePopups = ServiceExists(MS_POPUP_ADDPOPUPT) ? db_get_b(NULL, ModuleName, "UsePopups", 0) : 0; if (usePopups) return ShowPopupMessage(TranslateT("Exchange email"), message, cUnreadEmails); return ShowMessageBoxMessage(TranslateT("Do you want to see the email headers?"), message, cUnreadEmails); }
INT_PTR ImportBirthdaysService(WPARAM, LPARAM) { TCHAR fileName[1024] = { 0 }; OPENFILENAME of = { 0 }; of.lStructSize = sizeof(OPENFILENAME); //of.hInstance = hInstance; TCHAR filter[MAX_PATH]; mir_sntprintf(filter, _T("%s (*") _T(BIRTHDAY_EXTENSION) _T(")%c*") _T(BIRTHDAY_EXTENSION) _T("%c"), TranslateT("Birthdays files"), 0, 0); of.lpstrFilter = filter; of.lpstrFile = fileName; of.nMaxFile = _countof(fileName); of.lpstrTitle = TranslateT("Please select a file to import birthdays from..."); of.Flags = OFN_FILEMUSTEXIST; if (GetOpenFileName(&of)) { TCHAR buffer[2048]; mir_sntprintf(buffer, TranslateT("Importing birthdays from file: %s"), fileName); ShowPopupMessage(TranslateT("WhenWasIt"), buffer, hImportBirthdays); DoImport(fileName); ShowPopupMessage(TranslateT("WhenWasIt"), TranslateT("Done importing birthdays"), hImportBirthdays); } return 0; }
int DoImport(TCHAR *fileName) { FILE *fin = _tfopen(fileName, _T("rt")); if ( !fin) { MessageBox(0, TranslateT("Could not open file to import birthdays"), TranslateT("Error"), MB_OK | MB_ICONERROR); return 1; } int mode = commonData.cDefaultModule; while (!feof(fin)) { TCHAR buffer[4096]; _fgetts(buffer, SIZEOF(buffer), fin); if (buffer[0] == _T(COMMENT_CHAR)) continue; TCHAR *delAccount = _tcsstr(buffer, _T(" : ")); if (delAccount) { int tmp = delAccount[0]; delAccount[0] = _T('\0'); TCHAR *delProto = _tcsrchr(buffer, _T('@')); if (delProto) { int tmp2 = delProto[0]; delProto[0] = _T('\0'); TCHAR *szHandle = buffer; TCHAR *szProto = delProto + 1; MCONTACT hContact = GetContactFromID(szHandle, szProto); if (hContact) { delProto[0] = tmp; delAccount[0] = tmp; int year, month, day; _stscanf(delAccount, _T(" : %02d/%02d/%04d"), &day, &month, &year); SaveBirthday(hContact, year, month, day, mode); } else { TCHAR tmp[2048]; mir_sntprintf(tmp, SIZEOF(tmp), TranslateT(NOTFOUND_FORMAT), szHandle, szProto); ShowPopupMessage(TranslateT("Warning"), tmp, hImportBirthdays); } } } } fclose(fin); return 0; }