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; }
ActionStatus Windows8LPIAction::GetStatus() { if (status == InProgress) { if (m_runner->IsRunning()) return InProgress; if (_isLanguagePanelFirst() == false) { _setLanguagePanel(); } _setDefaultLanguage(); if (_isAlreadyApplied()) { SetStatus(Successful); } else { SetStatus(FinishedWithError); _dumpLpkSetupErrors(); } g_log.Log(L"Windows8LPIAction::GetStatus is '%s'", status == Successful ? L"Successful" : L"FinishedWithError"); } return status; }
ActionStatus MSOfficeLPIAction::GetStatus() { if (status == InProgress) { if (m_runner->IsRunning()) return InProgress; switch (m_executionStep) { case ExecutionStepNone: break; case ExecutionStep1: { if (_executeInstallConnector() == true) { m_executionStep = ExecutionStep2; return InProgress; } break; } case ExecutionStep2: break; default: assert(false); break; } if (_isLangPackForVersionInstalled(_getRegKeys())) { SetStatus(Successful); _setDefaultLanguage(); } else { SetStatus(FinishedWithError); if (m_msiexecLog.empty() == false) { #define LINES_TODUMP 7 #define KEYWORD_TOSEARCH L"Error" LogExtractor logExtractor(m_msiexecLog, LINES_TODUMP); logExtractor.SetExtractLastOccurrence(true); logExtractor.SetFileIsUnicode(false); logExtractor.ExtractLogFragmentForKeyword(KEYWORD_TOSEARCH); logExtractor.DumpLines(); } } g_log.Log(L"MSOfficeLPIAction::GetStatus is '%s'", status == Successful ? L"Successful" : L"FinishedWithError"); } return status; }
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 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()); }