OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_INSTALLER_UTIL_SELF_REG_WORK_ITEM_H__ | 5 #ifndef CHROME_INSTALLER_UTIL_SELF_REG_WORK_ITEM_H__ |
6 #define CHROME_INSTALLER_UTIL_SELF_REG_WORK_ITEM_H__ | 6 #define CHROME_INSTALLER_UTIL_SELF_REG_WORK_ITEM_H__ |
7 | 7 |
8 #include <windows.h> | 8 #include <windows.h> |
9 #include <string> | 9 #include <string> |
10 | 10 |
11 #include "chrome/installer/util/work_item.h" | 11 #include "chrome/installer/util/work_item.h" |
12 | 12 |
13 // Registers or unregisters the DLL at the given path. | 13 // Registers or unregisters the DLL at the given path. |
14 class SelfRegWorkItem : public WorkItem { | 14 class SelfRegWorkItem : public WorkItem { |
15 public: | 15 public: |
16 ~SelfRegWorkItem() override; | 16 ~SelfRegWorkItem() override; |
17 | 17 |
| 18 bool Do() override; |
| 19 void Rollback() override; |
| 20 |
18 private: | 21 private: |
19 friend class WorkItem; | 22 friend class WorkItem; |
20 | 23 |
21 // Constructs a work item that will call upon a self-registering DLL to | 24 // Constructs a work item that will call upon a self-registering DLL to |
22 // register itself. | 25 // register itself. |
23 // dll_path: The path to the DLL. | 26 // dll_path: The path to the DLL. |
24 // do_register: Whether this action is to register or unregister the DLL. | 27 // do_register: Whether this action is to register or unregister the DLL. |
25 // user_level_registration: If true, then the exports called | 28 // user_level_registration: If true, then the exports called |
26 // "DllRegisterUserServer" and "DllUnregisterUserServer" will be called to | 29 // "DllRegisterUserServer" and "DllUnregisterUserServer" will be called to |
27 // register and unregister the DLL. If false, the default exports named | 30 // register and unregister the DLL. If false, the default exports named |
28 // "DllRegisterServer" and "DllUnregisterUserServer" will be used. | 31 // "DllRegisterServer" and "DllUnregisterUserServer" will be used. |
29 SelfRegWorkItem(const std::wstring& dll_path, bool do_register, | 32 SelfRegWorkItem(const std::wstring& dll_path, bool do_register, |
30 bool user_level_registration); | 33 bool user_level_registration); |
31 | 34 |
32 // WorkItem: | |
33 bool DoImpl() override; | |
34 void RollbackImpl() override; | |
35 | |
36 // Examines the DLL at dll_path looking for either DllRegisterServer (if | 35 // Examines the DLL at dll_path looking for either DllRegisterServer (if |
37 // do_register is true) or DllUnregisterServer (if do_register is false). | 36 // do_register is true) or DllUnregisterServer (if do_register is false). |
38 // Returns true if the DLL exports the function and it a call to it | 37 // Returns true if the DLL exports the function and it a call to it |
39 // succeeds, false otherwise. | 38 // succeeds, false otherwise. |
40 bool RegisterDll(bool do_register); | 39 bool RegisterDll(bool do_register); |
41 | 40 |
42 // The path to the dll to be registered. | 41 // The path to the dll to be registered. |
43 std::wstring dll_path_; | 42 std::wstring dll_path_; |
44 | 43 |
45 // Whether this work item will register or unregister the dll. The rollback | 44 // Whether this work item will register or unregister the dll. The rollback |
46 // action just inverts this parameter. | 45 // action just inverts this parameter. |
47 bool do_register_; | 46 bool do_register_; |
48 | 47 |
49 // Whether to use alternate export names on the DLL that will perform | 48 // Whether to use alternate export names on the DLL that will perform |
50 // user level registration. | 49 // user level registration. |
51 bool user_level_registration_; | 50 bool user_level_registration_; |
52 }; | 51 }; |
53 | 52 |
54 #endif // CHROME_INSTALLER_UTIL_SELF_REG_WORK_ITEM_H__ | 53 #endif // CHROME_INSTALLER_UTIL_SELF_REG_WORK_ITEM_H__ |
OLD | NEW |