1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // A helper class for updating resources in portable executable files. 6 7 #ifndef CHROME_INSTALLER_TEST_RESOURCE_UPDATER_H_ 8 #define CHROME_INSTALLER_TEST_RESOURCE_UPDATER_H_ 9 10 #include <windows.h> 11 12 #include <string> 13 #include <utility> 14 15 #include "base/basictypes.h" 16 17 namespace base { 18 class FilePath; 19 } 20 21 namespace upgrade_test { 22 23 // Updates resources in a PE image file. 24 class ResourceUpdater { 25 public: 26 ResourceUpdater(); 27 ~ResourceUpdater(); 28 29 // Loads |pe_image_path| in preparation for updating its resources. 30 bool Initialize(const base::FilePath& pe_image_path); 31 32 // Replaces the contents of the resource |name| of |type| and |language_id| 33 // with the contents of |input_file|, returning true on success. 34 bool Update(const std::wstring& name, const std::wstring& type, 35 WORD language_id, const base::FilePath& input_file); 36 37 // Commits all updates to the file on disk. 38 bool Commit(); 39 40 private: 41 HANDLE handle_; 42 DISALLOW_COPY_AND_ASSIGN(ResourceUpdater); 43 }; // class ResourceUpdater 44 45 } // namespace upgrade_test 46 47 #endif // CHROME_INSTALLER_TEST_RESOURCE_UPDATER_H_ 48