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 #ifndef REMOTING_HOST_DAEMON_INSTALLER_WIN_H_ | 5 #ifndef REMOTING_HOST_DAEMON_INSTALLER_WIN_H_ |
6 #define REMOTING_HOST_DAEMON_INSTALLER_WIN_H_ | 6 #define REMOTING_HOST_DAEMON_INSTALLER_WIN_H_ |
7 | 7 |
8 #include <objbase.h> | 8 #include <objbase.h> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
11 #include "base/callback.h" | 11 #include "base/callback.h" |
12 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
13 | 13 |
14 namespace remoting { | 14 namespace remoting { |
15 | 15 |
16 class DaemonInstallerWin { | 16 class DaemonInstallerWin { |
17 public: | 17 public: |
18 typedef base::Callback<void (HRESULT result)> CompletionCallback; | 18 typedef base::Callback<void (HRESULT result)> CompletionCallback; |
19 | 19 |
20 virtual ~DaemonInstallerWin(); | 20 virtual ~DaemonInstallerWin(); |
21 | 21 |
22 // Initiates download and installation of the Chromoting Host. | 22 // Initiates download and installation of the Chromoting Host. |
23 virtual void Install() = 0; | 23 virtual void Install() = 0; |
24 | 24 |
25 // Creates an instance of the Chromoting Host installer passing the completion | 25 // Creates an instance of the Chromoting Host installer passing the completion |
26 // callback to be called when the installation finishes. In case of an error | 26 // callback to be called when the installation finishes. In case of an error |
27 // returns NULL and passed the error code to |done|. | 27 // returns nullptr and passed the error code to |done|. |
28 static scoped_ptr<DaemonInstallerWin> Create(HWND window_handle, | 28 static scoped_ptr<DaemonInstallerWin> Create(HWND window_handle, |
29 CompletionCallback done); | 29 CompletionCallback done); |
30 | 30 |
31 protected: | 31 protected: |
32 DaemonInstallerWin(const CompletionCallback& done); | 32 DaemonInstallerWin(const CompletionCallback& done); |
33 | 33 |
34 // Invokes the completion callback to report the installation result. | 34 // Invokes the completion callback to report the installation result. |
35 void Done(HRESULT result); | 35 void Done(HRESULT result); |
36 | 36 |
37 private: | 37 private: |
38 // The completion callback that should be called to report the installation | 38 // The completion callback that should be called to report the installation |
39 // result. | 39 // result. |
40 CompletionCallback done_; | 40 CompletionCallback done_; |
41 | 41 |
42 DISALLOW_COPY_AND_ASSIGN(DaemonInstallerWin); | 42 DISALLOW_COPY_AND_ASSIGN(DaemonInstallerWin); |
43 }; | 43 }; |
44 | 44 |
45 // Returns the first top-level (i.e. WS_OVERLAPPED or WS_POPUP) window in | 45 // Returns the first top-level (i.e. WS_OVERLAPPED or WS_POPUP) window in |
46 // the chain of parents of |window|. Returns |window| if it represents | 46 // the chain of parents of |window|. Returns |window| if it represents |
47 // a top-level window. Returns NULL when |window| is NULL. | 47 // a top-level window. Returns nullptr when |window| is nullptr. |
48 HWND GetTopLevelWindow(HWND window); | 48 HWND GetTopLevelWindow(HWND window); |
49 | 49 |
50 } // namespace remoting | 50 } // namespace remoting |
51 | 51 |
52 #endif // REMOTING_HOST_DAEMON_INSTALLER_WIN_H_ | 52 #endif // REMOTING_HOST_DAEMON_INSTALLER_WIN_H_ |
OLD | NEW |