| OLD | NEW |
| (Empty) |
| 1 // Copyright 2009-2010 Google Inc. | |
| 2 // | |
| 3 // Licensed under the Apache License, Version 2.0 (the "License"); | |
| 4 // you may not use this file except in compliance with the License. | |
| 5 // You may obtain a copy of the License at | |
| 6 // | |
| 7 // http://www.apache.org/licenses/LICENSE-2.0 | |
| 8 // | |
| 9 // Unless required by applicable law or agreed to in writing, software | |
| 10 // distributed under the License is distributed on an "AS IS" BASIS, | |
| 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| 12 // See the License for the specific language governing permissions and | |
| 13 // limitations under the License. | |
| 14 // ======================================================================== | |
| 15 | |
| 16 #ifndef OMAHA_CLIENT_INSTALL_INTERNAL_H_ | |
| 17 #define OMAHA_CLIENT_INSTALL_INTERNAL_H_ | |
| 18 | |
| 19 #include <windows.h> | |
| 20 #include <atlstr.h> | |
| 21 #include <vector> | |
| 22 #include "base/basictypes.h" | |
| 23 #include "omaha/common/command_line.h" | |
| 24 | |
| 25 namespace omaha { | |
| 26 | |
| 27 class SplashScreen; | |
| 28 | |
| 29 namespace internal { | |
| 30 | |
| 31 // Elevates TBD and waits for it to exit. | |
| 32 HRESULT DoElevation(bool is_interactive, | |
| 33 bool is_install_elevated_instance, | |
| 34 const CString& cmd_line, | |
| 35 DWORD* exit_code); | |
| 36 | |
| 37 // Installs Omaha if necessary and app(s) if is_app_install. | |
| 38 HRESULT DoInstall(bool is_machine, | |
| 39 bool is_app_install, | |
| 40 bool is_eula_required, | |
| 41 bool is_oem_install, | |
| 42 const CString& current_version, | |
| 43 const CommandLineArgs& args, | |
| 44 const CString& session_id, | |
| 45 SplashScreen* splash_screen, | |
| 46 int* extra_code1, | |
| 47 bool* has_setup_succeeded, | |
| 48 bool* has_launched_handoff, | |
| 49 bool* has_ui_been_displayed); | |
| 50 | |
| 51 // Installs the specified applications. | |
| 52 HRESULT InstallApplications(bool is_machine, | |
| 53 bool is_eula_required, | |
| 54 const CommandLineArgs& args, | |
| 55 const CString& session_id, | |
| 56 SplashScreen* splash_screen, | |
| 57 bool* has_ui_been_displayed, | |
| 58 bool* has_launched_handoff); | |
| 59 | |
| 60 // Starts Omaha elevated if possible and waits for it to exit. | |
| 61 // The same arguments are passed to the elevated instance. | |
| 62 HRESULT ElevateAndWait(const CString& cmd_line, DWORD* exit_code); | |
| 63 | |
| 64 // CopyOfflineManifest() and CopyOfflineFilesForApp() find and copy the offline | |
| 65 // manifest and offline files respectively, from the current module directory to | |
| 66 // the offline_dir. offline_dir is typically an unique directory under the | |
| 67 // Google\Update\Offline\ directory. | |
| 68 // The offline manifest is copied to offline_dir\<kOfflineManifestFileName>. | |
| 69 // The binaries are in the format "file.<app_id>". Each file is copied to the | |
| 70 // offline_dir under the subdirectory "<app_id>", as "file". For instance, | |
| 71 // "Installer.msi.<app_id>" is copied as "<app_id>/Installer.msi". | |
| 72 HRESULT CopyOfflineManifest(const CString& offline_dir); | |
| 73 HRESULT CopyOfflineFilesForApp(const CString& app_id, | |
| 74 const CString& offline_dir); | |
| 75 | |
| 76 // For all the applications that have been requested in the apps parameter, copy | |
| 77 // the offline binaries. | |
| 78 bool CopyOfflineFiles(bool is_machine, | |
| 79 const std::vector<CommandLineAppArgs>& apps, | |
| 80 CString* offline_dir); | |
| 81 | |
| 82 // Launches a /handoff process from the installed location to install the app. | |
| 83 HRESULT LaunchHandoffProcess(bool is_machine, | |
| 84 const CString& offline_dir, | |
| 85 const CommandLineArgs& install_args, | |
| 86 const CString& session_id, | |
| 87 HANDLE* process); | |
| 88 | |
| 89 // Waits for the process to exit and returns the exit code. | |
| 90 HRESULT WaitForProcessExit(HANDLE process, | |
| 91 SplashScreen* splash_screen, | |
| 92 bool* has_ui_been_displayed, | |
| 93 uint32* exit_code); | |
| 94 | |
| 95 // Displays an error message and reports the error as appropriate. | |
| 96 void HandleInstallError(HRESULT error, | |
| 97 int extra_code1, | |
| 98 const CString& session_id, | |
| 99 bool is_machine, | |
| 100 bool is_interactive, | |
| 101 bool is_eula_required, | |
| 102 bool is_oem_install, | |
| 103 const CString& current_version, | |
| 104 const CString& install_source, | |
| 105 const CommandLineExtraArgs& extra_args, | |
| 106 bool has_setup_succeeded, | |
| 107 bool has_launched_handoff, | |
| 108 bool* has_ui_been_displayed); | |
| 109 | |
| 110 // Returns the error text for the corresponding error value. | |
| 111 CString GetErrorText(HRESULT error, const CString& bundle_name); | |
| 112 | |
| 113 } // namespace internal | |
| 114 | |
| 115 } // namespace omaha | |
| 116 | |
| 117 #endif // OMAHA_CLIENT_INSTALL_INTERNAL_H_ | |
| OLD | NEW |