bool WindowsLPIAction::IsNeed() { if (status == CannotBeApplied) return false; bool bNeed = false; if (_getDownloadID() != DI_UNKNOWN) { if (_isLangPackInstalled() == false || _isDefaultLanguage() == false) { bNeed = true; } else { status = AlreadyApplied; } } else { status = CannotBeApplied; _getStringFromResourceIDName(IDS_WINDOWSLPIACTION_UNSUPPORTEDVERSION, szCannotBeApplied); g_log.Log(L"WindowsLPIAction::IsNeed. Unsupported Windows version"); } g_log.Log(L"WindowsLPIAction::IsNeed returns %u", (wchar_t *) bNeed); return bNeed; }
void AdobeReaderAction::CheckPrerequirements(Action * action) { _readVersionInstalled(); if (m_version.size() > 0) { if (_isLangPackInstalled() == true) { SetStatus(AlreadyApplied); return; } int major = _getMajorVersion(); if (major != 9 && major != 10) { _getStringFromResourceIDName(IDS_NOTSUPPORTEDVERSION, szCannotBeApplied); g_log.Log(L"AdobeReaderAction::CheckPrerequirements. Version not supported"); SetStatus(CannotBeApplied); return; } } else { _setStatusNotInstalled(); return; } }
ActionStatus OpenOfficeAction::GetStatus() { if (status == InProgress) { if (m_runner->IsRunning()) return InProgress; if (_isLangPackInstalled()) { if (_isDefaultLanguage() == false) { _setDefaultLanguage(); } SetStatus(Successful); } else { SetStatus(FinishedWithError); } g_log.Log(L"OpenOfficeAction::GetStatus is '%s'", status == Successful ? L"Successful" : L"FinishedWithError"); } return status; }
void OpenOfficeAction::CheckPrerequirements(Action * action) { _readVersionInstalled(); if (m_version.size() > 0) { if (_isLangPackInstalled() == true) { SetStatus(AlreadyApplied); return; } if (_doesDownloadExist() == false) { _getStringFromResourceIDName(IDS_OPENOFFICEACTION_NOTSUPPORTEDVERSION, szCannotBeApplied); g_log.Log(L"OpenOfficeAction::CheckPrerequirements. Version not supported"); SetStatus(CannotBeApplied); return; } } else { _setStatusNotInstalled(); return; } }
LPCWSTR Windows8LPIAction::GetLicenseID() { // If the package is installed, no need to accept the license if (_isLangPackInstalled() == true) return NULL; return MAKEINTRESOURCE(IDR_LICENSE_WINDOWS8); }
bool Windows8LPIAction::_isAlreadyApplied() { bool panel, langpack, deflang; panel = _isLanguagePanelFirst(); langpack = _isLangPackInstalled(); deflang = _isDefaultLanguage(); return panel && langpack && deflang; }
bool IELPIAction::_wasInstalled() { // Could not find a way to tell if it went well if (_getIEVersion() == InternetExplorerVersion::IE8 && m_OSVersion->GetVersion() == WindowsXP) { return true; } return _isLangPackInstalled(); }
void WindowsLPIAction::Execute() { wchar_t szParams[MAX_PATH]; wchar_t lpkapp[MAX_PATH]; if (_isLangPackInstalled() == true) { _setDefaultLanguage(); status = _isLangPackInstalled() ? Successful : FinishedWithError; g_log.Log(L"WindowsLPIAction::Execute. Setting default language only was '%s'", status == Successful ? L"Successful" : L"FinishedWithError"); return; } OperatingVersion version = m_OSVersion->GetVersion(); if (version == WindowsXP) { GetSystemDirectory(lpkapp, MAX_PATH); wcscat_s(lpkapp, L"\\msiexec.exe "); wcscpy_s(szParams, L" /i "); wcscat_s(szParams, m_szFilename); // full path to 'lip_ca-es.msi' wcscat_s(szParams, L" /qn"); } else // Windows Vista and 7 { // Documentation: http://technet.microsoft.com/en-us/library/cc766010%28WS.10%29.aspx wcscpy_s(szParams, L" /i ca-ES /r /s /p "); wcscat_s(szParams, m_szFilename); GetSystemDirectory(lpkapp, MAX_PATH); wcscat_s(lpkapp, L"\\lpksetup.exe"); } status = InProgress; g_log.Log(L"WindowsLPIAction::Execute '%s' with params '%s'", lpkapp, szParams); m_runner->Execute(lpkapp, szParams, m_OSVersion->IsWindows64Bits()); }
ActionStatus WindowsLPIAction::GetStatus() { if (status == InProgress) { if (m_runner->IsRunning()) return InProgress; if (_isLangPackInstalled()) { status = Successful; _setDefaultLanguage(); } else { status = FinishedWithError; } g_log.Log(L"WindowsLPIAction::GetStatus is '%s'", status == Successful ? L"Successful" : L"FinishedWithError"); } return status; }
void MSOfficeLPIAction::CheckPrerequirements(Action * action) { if (_getVersionInstalled() == NoMSOffice) { _setStatusNotInstalled(); return; } if (_getVersionInstalled() == MSOffice2010_64 || _getVersionInstalled() == MSOffice2013_64) { SetStatus(CannotBeApplied); _getStringFromResourceIDName(IDS_NOTSUPPORTEDVERSION, szCannotBeApplied); g_log.Log(L"MSOfficeLPIAction::CheckPrerequirements. Version not supported"); return; } if (_isLangPackInstalled()) { SetStatus(AlreadyApplied); return; } }
ActionStatus AdobeReaderAction::GetStatus() { if (status == InProgress) { if (m_runner->IsRunning()) return InProgress; switch (m_executionStep) { case ExecutionStepNone: break; case ExecutionStep1: { m_hideApplicationWindow.Stop(); _installVersion(); return InProgress; } case ExecutionStep2: break; default: assert(false); break; } _readInstalledLang(m_version); if (_isLangPackInstalled()) { SetStatus(Successful); } else { SetStatus(FinishedWithError); } g_log.Log(L"AdobeReaderAction::GetStatus is '%s'", status == Successful ? L"Successful" : L"FinishedWithError"); } return status; }
void Windows8LPIAction::Execute() { wchar_t szParams[MAX_PATH]; wchar_t lpkapp[MAX_PATH]; if (_isLangPackInstalled() == false) { // Documentation: http://technet.microsoft.com/en-us/library/cc766010%28WS.10%29.aspx wcscpy_s(szParams, L" /i "); wcscat_s(szParams, GetUseDialectalVariant() ? VALENCIAN_LANGPACKCODE : CATALAN_LANGPACKCODE); wcscat_s(szParams, L" /r /s /p "); wcscat_s(szParams, m_filename.c_str()); GetSystemDirectory(lpkapp, MAX_PATH); wcscat_s(lpkapp, L"\\lpksetup.exe"); g_log.Log(L"Windows8LPIAction::Execute '%s' with params '%s'", lpkapp, szParams); m_runner->Execute(lpkapp, szParams, m_OSVersion->IsWindows64Bits()); } SetStatus(InProgress); }
bool WindowsLPIAction::IsDownloadNeed() { return _isLangPackInstalled() == false; }
void IELPIAction::CheckPrerequirements(Action * action) { Prerequirements pre; ActionStatus status; if (GetStatus() == CannotBeApplied) status = Selected; else status = GetStatus(); szCannotBeApplied[0] = NULL; pre = _checkPrerequirements(); if (pre != PrerequirementsOk) { switch (pre) { case UnknownIEVersion: _getStringFromResourceIDName(IDS_IELPIACTION_UNKNOWNIE, szCannotBeApplied); break; default: break; } } else if (action != NULL) { switch (_checkPrerequirementsDependand(action)) { case AppliedInWinLPI: _getStringFromResourceIDName(IDS_IELPIACTION_APPLIEDINWINLPI, szCannotBeApplied); break; case NeedsWinLPI: _getStringFromResourceIDName(IDS_IELPIACTION_IENEEDWINLPI, szCannotBeApplied); break; case NoLangPackAvailable: _getStringFromResourceIDName(IDS_IELPIACTION_NOPACKAGE, szCannotBeApplied); break; default: break; } } g_log.Log(L"IELPIAction::CheckPrerequirements: %s", wcslen(szCannotBeApplied) > 0 ? szCannotBeApplied: L"Ok"); if (wcslen(szCannotBeApplied) > 0) { status = CannotBeApplied; } else { if (_getDownloadID() != NULL) { if (_isLangPackInstalled()) { status = AlreadyApplied; } } else { status = CannotBeApplied; } } SetStatus(status); }