- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / installer / test / resource_updater.h
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_