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 | |
21 private: | 18 private: |
22 friend class WorkItem; | 19 friend class WorkItem; |
23 | 20 |
24 // Constructs a work item that will call upon a self-registering DLL to | 21 // Constructs a work item that will call upon a self-registering DLL to |
25 // register itself. | 22 // register itself. |
26 // dll_path: The path to the DLL. | 23 // dll_path: The path to the DLL. |
27 // do_register: Whether this action is to register or unregister the DLL. | 24 // do_register: Whether this action is to register or unregister the DLL. |
28 // user_level_registration: If true, then the exports called | 25 // user_level_registration: If true, then the exports called |
29 // "DllRegisterUserServer" and "DllUnregisterUserServer" will be called to | 26 // "DllRegisterUserServer" and "DllUnregisterUserServer" will be called to |
30 // register and unregister the DLL. If false, the default exports named | 27 // register and unregister the DLL. If false, the default exports named |
31 // "DllRegisterServer" and "DllUnregisterUserServer" will be used. | 28 // "DllRegisterServer" and "DllUnregisterUserServer" will be used. |
32 SelfRegWorkItem(const std::wstring& dll_path, bool do_register, | 29 SelfRegWorkItem(const std::wstring& dll_path, bool do_register, |
33 bool user_level_registration); | 30 bool user_level_registration); |
34 | 31 |
| 32 // WorkItem: |
| 33 bool DoImpl() override; |
| 34 void RollbackImpl() override; |
| 35 |
35 // Examines the DLL at dll_path looking for either DllRegisterServer (if | 36 // Examines the DLL at dll_path looking for either DllRegisterServer (if |
36 // do_register is true) or DllUnregisterServer (if do_register is false). | 37 // do_register is true) or DllUnregisterServer (if do_register is false). |
37 // Returns true if the DLL exports the function and it a call to it | 38 // Returns true if the DLL exports the function and it a call to it |
38 // succeeds, false otherwise. | 39 // succeeds, false otherwise. |
39 bool RegisterDll(bool do_register); | 40 bool RegisterDll(bool do_register); |
40 | 41 |
41 // The path to the dll to be registered. | 42 // The path to the dll to be registered. |
42 std::wstring dll_path_; | 43 std::wstring dll_path_; |
43 | 44 |
44 // Whether this work item will register or unregister the dll. The rollback | 45 // Whether this work item will register or unregister the dll. The rollback |
45 // action just inverts this parameter. | 46 // action just inverts this parameter. |
46 bool do_register_; | 47 bool do_register_; |
47 | 48 |
48 // Whether to use alternate export names on the DLL that will perform | 49 // Whether to use alternate export names on the DLL that will perform |
49 // user level registration. | 50 // user level registration. |
50 bool user_level_registration_; | 51 bool user_level_registration_; |
51 }; | 52 }; |
52 | 53 |
53 #endif // CHROME_INSTALLER_UTIL_SELF_REG_WORK_ITEM_H__ | 54 #endif // CHROME_INSTALLER_UTIL_SELF_REG_WORK_ITEM_H__ |
OLD | NEW |