///////////////////////////////////////////////////////////////////////////// // GetWindowsDllPath // // delete after use. ///////////////////////////////////////////////////////////////////////////// LPCTSTR GetWindowsDllPath( TCHAR* FileName) { TCHAR* DataFilePath = NULL; TCHAR* UserDataPath = new TCHAR[MAX_PATH]; HRESULT ResultCode = SHGetFolderPath( NULL, CSIDL_WINDOWS|CSIDL_FLAG_CREATE, NULL, SHGFP_TYPE_CURRENT, UserDataPath); if(FAILED(ResultCode)) { } else { if (FileName[0] != '\\') { TCHAR* TempUserDataPath = ConcatStrings(UserDataPath, _T("\\")); delete[] UserDataPath; UserDataPath = TempUserDataPath; } DataFilePath = ConcatStrings(UserDataPath, FileName); if (NULL != UserDataPath) { delete[] UserDataPath; } } return DataFilePath; }
TCHAR* __cdecl ConcatStringsV( LPCTSTR FirstString, LPCTSTR SecondString, ...) { TCHAR* NewString = NULL; va_list Arguments; va_start( Arguments, SecondString ); TCHAR* OldString = NewString = ConcatStrings(FirstString, SecondString); TCHAR* NextArg = va_arg( Arguments, TCHAR*); while (NULL != NextArg) { NewString = ConcatStrings(OldString, NextArg); delete OldString; OldString = NewString; NextArg = va_arg( Arguments, TCHAR*); } va_end( Arguments ); return NewString; }
int TMain::CheckPing() { int Result = ID_NO; String Host, Phone, S = ""; ShowWaitCursor(); TFileIni* FileIni = CreateINIFile(); for (int i = 1; i <= FileIni->ReadInteger("DB", "Count", 0); i++) { ProcMess(); Host = FileIni->ReadString("DB", "Ping" + IntToStr(i), ""); if (Host != "") if (!Ping(Host)) S = ConcatStrings(S, Format(IDS_PING_ERROR, ARRAYOFCONST((FileIni->ReadString("DB", "Name" + IntToStr(i), ""), FileIni->ReadString("DB", "Phone" + IntToStr(i), "")))), (String) sLineBreak + (String) sLineBreak); } FileIni->Free(); RestoreCursor(); if (S != "") Result = MsgBox(S + sLineBreak + sLineBreak + LoadStr(IDS_PING_RESULT), MB_YESNOCANCEL | MB_ICONQUESTION); return Result; }
///////////////////////////////////////////////////////////////////////////// // GetFileNameTempPath ///////////////////////////////////////////////////////////////////////////// LPCTSTR GetFileNameTempPath( LPCTSTR FileName) { TCHAR* FileNameTempPath = NULL; TCHAR* FriendlyFileNameBase = GetBaseFileName(FileName); if (NULL != FriendlyFileNameBase) { TCHAR TempPath[MAX_PATH] = {0}; GetTempPath(MAX_PATH, TempPath); FileNameTempPath = ConcatStrings(TempPath, FriendlyFileNameBase); } return FileNameTempPath; }