OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include <atlbase.h> | 5 #include <atlbase.h> |
6 #include <atlcom.h> | 6 #include <atlcom.h> |
7 #include <atlctl.h> | 7 #include <atlctl.h> |
8 #include <ShObjIdl.h> | 8 #include <ShObjIdl.h> |
9 #include <WinInet.h> | 9 #include <WinInet.h> |
10 | 10 |
11 #include <string> | 11 #include <string> |
12 | 12 |
13 #include "base/command_line.h" | 13 #include "base/command_line.h" |
14 #include "base/files/file_path.h" | 14 #include "base/files/file_path.h" |
15 #include "base/process/process_handle.h" | 15 #include "base/process/process_handle.h" |
16 #include "win8/delegate_execute/resource.h" // main symbols | 16 #include "win8/delegate_execute/resource.h" // main symbols |
17 | 17 |
18 using namespace ATL; | 18 using namespace ATL; |
19 | 19 |
20 EXTERN_C const GUID CLSID_CommandExecuteImpl; | 20 EXTERN_C const GUID CLSID_CommandExecuteImpl; |
21 | 21 |
22 // CommandExecuteImpl | 22 // CommandExecuteImpl |
23 // This class implements the IExecuteCommand and related interfaces for | 23 // This class implements the IExecuteCommand and related interfaces for |
24 // handling ShellExecute launches of the Chrome browser, i.e. whether to | 24 // handling ShellExecute launches of the Chrome browser, i.e. whether to |
25 // launch Chrome in metro mode or desktop mode. | 25 // launch Chrome in metro mode or desktop mode. |
26 #if defined(GOOGLE_CHROME_BUILD) | 26 // The CLSID here is a dummy CLSID not used for anything, since we register |
27 class ATL_NO_VTABLE DECLSPEC_UUID("5C65F4B0-3651-4514-B207-D10CB699B14B") | 27 // the class with a dynamic CLSID. However, a static CLSID is necessary |
| 28 // so that we can force at least one entry into ATL's object map (it will |
| 29 // treat a 0-element object map as an initialization failure case). |
| 30 class ATL_NO_VTABLE DECLSPEC_UUID("071BB5F2-85A4-424F-BFE7-5F1609BE4C2C") |
28 CommandExecuteImpl | 31 CommandExecuteImpl |
29 #else // GOOGLE_CHROME_BUILD | |
30 class ATL_NO_VTABLE DECLSPEC_UUID("A2DF06F9-A21A-44A8-8A99-8B9C84F29160") | |
31 CommandExecuteImpl | |
32 #endif // GOOGLE_CHROME_BUILD | |
33 : public CComObjectRootEx<CComSingleThreadModel>, | 32 : public CComObjectRootEx<CComSingleThreadModel>, |
34 public CComCoClass<CommandExecuteImpl, &CLSID_CommandExecuteImpl>, | 33 public CComCoClass<CommandExecuteImpl, &CLSID_CommandExecuteImpl>, |
35 public IExecuteCommand, | 34 public IExecuteCommand, |
36 public IObjectWithSiteImpl<CommandExecuteImpl>, | 35 public IObjectWithSiteImpl<CommandExecuteImpl>, |
37 public IInitializeCommand, | 36 public IInitializeCommand, |
38 public IObjectWithSelection, | 37 public IObjectWithSelection, |
39 public IExecuteCommandApplicationHostEnvironment, | 38 public IExecuteCommandApplicationHostEnvironment, |
40 public IForegroundTransfer { | 39 public IForegroundTransfer { |
41 public: | 40 public: |
42 CommandExecuteImpl(); | 41 CommandExecuteImpl(); |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 STARTUPINFO start_info_; | 99 STARTUPINFO start_info_; |
101 string16 verb_; | 100 string16 verb_; |
102 string16 display_name_; | 101 string16 display_name_; |
103 INTERNET_SCHEME launch_scheme_; | 102 INTERNET_SCHEME launch_scheme_; |
104 | 103 |
105 base::IntegrityLevel integrity_level_; | 104 base::IntegrityLevel integrity_level_; |
106 EC_HOST_UI_MODE chrome_mode_; | 105 EC_HOST_UI_MODE chrome_mode_; |
107 }; | 106 }; |
108 | 107 |
109 OBJECT_ENTRY_AUTO(__uuidof(CommandExecuteImpl), CommandExecuteImpl) | 108 OBJECT_ENTRY_AUTO(__uuidof(CommandExecuteImpl), CommandExecuteImpl) |
OLD | NEW |