resource_updater.h revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
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 17namespace base { 18class FilePath; 19} 20 21namespace upgrade_test { 22 23// Updates resources in a PE image file. 24class 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