| 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 |