BOOL MOperatingSystem::IsWindows9x() { if (IsWindows98()) return TRUE; if (IsWindows95()) return TRUE; if (IsWindowsME()) return TRUE; return FALSE; }
void OutlookExtensionCacheNuker::Execute() { LOG_WS_INFO(_T("Removing extend.dat")); if( m_pProcessController) { m_pProcessController->ReportProgress(_T("Removing extend.dat")); } std::vector<CStdString> vecProfiles = SystemFolderInfo::GetUserProfiles(); CStdString sPath; if (IsOutlook98() || (IsWindows98() && vecProfiles.size() == 0)) { sPath = BuildExtendDatPath(_T("")) + _T("\\") + GetExtendFilename(); CStdString sMsg; sMsg.Format(_T("Deleting %s"), sPath.c_str() ); LOG_WS_INFO(sMsg.c_str() ); if( m_pProcessController) { m_pProcessController->ReportProgress(sMsg.c_str()); } ::DeleteFile(sPath); } for (unsigned int i = 0; i<vecProfiles.size(); i++) { sPath = BuildExtendDatPath(vecProfiles[i]) + _T("\\") + GetExtendFilename(); CStdString sMsg; sMsg.Format(_T("Deleting %s"), sPath.c_str() ); LOG_WS_INFO(sMsg.c_str() ); if( m_pProcessController) { m_pProcessController->ReportProgress(sMsg.c_str()); } ::DeleteFile(sPath); } }
CString GetOS() { CString Response; OS_VERSION_INFO osvi; char sText[512]=""; char sBuf[100]=""; ZeroMemory(&osvi,sizeof(OS_VERSION_INFO)); _stprintf(sText, _T("\nOperating System\n")); if (GetOSVersion(&osvi)) { // _stprintf(sText, _T("Emulated OS: ")); switch (osvi.dwEmulatedPlatformId) { case PLATFORM_DOS: { _stprintf(sBuf, _T("Dos")); break; } case PLATFORM_WINDOWS31: { _stprintf(sBuf, _T("Windows")); break; } case PLATFORM_WINDOWSFW: { _stprintf(sBuf, _T("Windows For Workgroups")); break; } case PLATFORM_WIN32S: { _stprintf(sBuf, _T("Win32s")); break; } case PLATFORM_WINDOWS_CE: { _stprintf(sBuf, _T("Windows CE")); break; } case PLATFORM_WINDOWS: { if (IsWindows95(&osvi)) _stprintf(sBuf, _T("Windows 95")); else if (IsWindows95SP1(&osvi)) _stprintf(sBuf, _T("Windows 95 SP1")); else if (IsWindows95OSR2(&osvi)) _stprintf(sBuf, _T("Windows 95 OSR2")); else if (IsWindows98(&osvi)) _stprintf(sBuf, _T("Windows 98")); else if (IsWindows98SP1(&osvi)) _stprintf(sBuf, _T("Windows 98 SP1")); else if (IsWindows98SE(&osvi)) _stprintf(sBuf, _T("Windows 98 Second Edition")); else _stprintf(sBuf, _T("Windows ??")); break; } case PLATFORM_NT_WORKSTATION: { if (IsWindows2000(&osvi)) _stprintf(sBuf, _T("Windows 2000 Professional")); else _stprintf(sBuf, _T("Windows NT Workstation")); break; } case PLATFORM_NT_PRIMARY_DOMAIN_CONTROLLER: { if (IsWindows2000(&osvi)) _stprintf(sBuf, _T("Windows 2000 Server (Acting as Primary Domain Controller)")); else _stprintf(sBuf, _T("Windows NT Server (Acting as Primary Domain Controller)")); break; } case PLATFORM_NT_BACKUP_DOMAIN_CONTROLLER: { if (IsWindows2000(&osvi)) _stprintf(sBuf, _T("Windows 2000 Server (Acting as Backup Domain Controller)")); else _stprintf(sBuf, _T("Windows NT Server (Acting as Backup Domain Controller)")); break; } case PLATFORM_NT_STAND_ALONE_SERVER: { if (IsWindows2000(&osvi)) _stprintf(sBuf, _T("Windows 2000 Server (Acting as Standalone Sever)")); else _stprintf(sBuf, _T("Windows NT Server (Acting as Standalone Sever)")); break; } case PLATFORM_WINDOWS_TERMINAL_SERVER: { _stprintf(sBuf, _T("Windows NT Terminal Server")); break; } case PLATFORM_NT_ENTERPRISE_SERVER: { _stprintf(sBuf, _T("Windows NT Enterprise Edition")); break; } default: { _stprintf(sBuf, _T("Unknown OS")); break; } } } _tcscat(sText, sBuf); // _stprintf(sBuf, _T(" v%d."), osvi.dwEmulatedMajorVersion); // _tcscat(sText, sBuf); // _stprintf(sBuf, _T("%02d "), osvi.dwEmulatedMinorVersion); // _tcscat(sText, sBuf); if (osvi.wEmulatedServicePack) { _stprintf(sBuf, _T(" Service Pack %d"), osvi.wEmulatedServicePack); _tcscat(sText, sBuf); } if (osvi.dwEmulatedBuildNumber) { _stprintf(sBuf, _T(" (Build %d)"), osvi.dwEmulatedBuildNumber); _tcscat(sText, sBuf); } _tcscat(sText, _T(" \r\n")); ; return sText; }
CStdString OutlookExtensionCacheNuker::BuildExtendDatPath(CStdString sProfileDirName) { LOG_WS_INFO(_T("Getting path for extend.dat")); if( m_pProcessController) { m_pProcessController->ReportProgress(_T("Getting path for extend.dat")); } CStdString sPath; CStdString sTest; // Outlook98 is ambigiuous if ( IsOutlook98() ) { sPath = GetWindowsPath(); if( IsWindows98() ) { return sPath; } sTest.Format(_T("%s\\extend.dat"), sPath.c_str()); if( _taccess(sTest.c_str(), 0) == 0) { CStdString sMsg; sMsg.Format(_T("Extend.dat found at %s"), sTest.c_str() ); LOG_WS_INFO(sMsg.c_str() ); if( m_pProcessController) { m_pProcessController->ReportProgress(sMsg.c_str() ); } return(sPath); } } sPath = GetLocalAppDataPath(); if (!(IsWindows98() && sProfileDirName.IsEmpty())) { int nPos = sPath.Find(_T("\\"), GetProfilesRoot().size()+1); sPath = GetProfilesRoot() + _T("\\") + sProfileDirName + _T("\\") + sPath.Right(sPath.size() - nPos - 1); } sPath += _T("\\Microsoft\\Outlook"); sTest.Format(_T("%s\\extend.dat"), sPath.c_str()); if( _taccess(sTest.c_str(), 0) == 0) { CStdString sMsg; sMsg.Format(_T("Extend.dat found at %s"), sTest.c_str() ); LOG_WS_INFO(sMsg.c_str() ); if( m_pProcessController) { m_pProcessController->ReportProgress(sMsg.c_str()); } } else { LOG_WS_INFO(_T("Extend.dat not found")); if( m_pProcessController) { m_pProcessController->ReportProgress(_T("Extend.dat not found")); } } return sPath; }