Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(164)

Side by Side Diff: remoting/host/clipboard_win.cc

Issue 1864213002: Convert //remoting to use std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Mac IWYU Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « remoting/host/clipboard_mac.mm ('k') | remoting/host/clipboard_x11.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "remoting/host/clipboard.h" 5 #include "remoting/host/clipboard.h"
6 6
7 #include <windows.h> 7 #include <windows.h>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "base/macros.h" 11 #include "base/macros.h"
12 #include "base/memory/ptr_util.h"
12 #include "base/strings/string16.h" 13 #include "base/strings/string16.h"
13 #include "base/strings/utf_string_conversions.h" 14 #include "base/strings/utf_string_conversions.h"
14 #include "base/threading/platform_thread.h" 15 #include "base/threading/platform_thread.h"
15 #include "base/win/message_window.h" 16 #include "base/win/message_window.h"
16 #include "base/win/scoped_hglobal.h" 17 #include "base/win/scoped_hglobal.h"
17 #include "base/win/windows_version.h" 18 #include "base/win/windows_version.h"
18 #include "remoting/base/constants.h" 19 #include "remoting/base/constants.h"
19 #include "remoting/base/util.h" 20 #include "remoting/base/util.h"
20 #include "remoting/proto/event.pb.h" 21 #include "remoting/proto/event.pb.h"
21 #include "remoting/protocol/clipboard_stub.h" 22 #include "remoting/protocol/clipboard_stub.h"
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 } // namespace 104 } // namespace
104 105
105 namespace remoting { 106 namespace remoting {
106 107
107 class ClipboardWin : public Clipboard { 108 class ClipboardWin : public Clipboard {
108 public: 109 public:
109 ClipboardWin(); 110 ClipboardWin();
110 ~ClipboardWin() override; 111 ~ClipboardWin() override;
111 112
112 void Start( 113 void Start(
113 scoped_ptr<protocol::ClipboardStub> client_clipboard) override; 114 std::unique_ptr<protocol::ClipboardStub> client_clipboard) override;
114 void InjectClipboardEvent( 115 void InjectClipboardEvent(
115 const protocol::ClipboardEvent& event) override; 116 const protocol::ClipboardEvent& event) override;
116 117
117 private: 118 private:
118 void OnClipboardUpdate(); 119 void OnClipboardUpdate();
119 120
120 // Handles messages received by |window_|. 121 // Handles messages received by |window_|.
121 bool HandleMessage(UINT message, 122 bool HandleMessage(UINT message,
122 WPARAM wparam, 123 WPARAM wparam,
123 LPARAM lparam, 124 LPARAM lparam,
124 LRESULT* result); 125 LRESULT* result);
125 126
126 scoped_ptr<protocol::ClipboardStub> client_clipboard_; 127 std::unique_ptr<protocol::ClipboardStub> client_clipboard_;
127 AddClipboardFormatListenerFn* add_clipboard_format_listener_; 128 AddClipboardFormatListenerFn* add_clipboard_format_listener_;
128 RemoveClipboardFormatListenerFn* remove_clipboard_format_listener_; 129 RemoveClipboardFormatListenerFn* remove_clipboard_format_listener_;
129 130
130 // Used to subscribe to WM_CLIPBOARDUPDATE messages. 131 // Used to subscribe to WM_CLIPBOARDUPDATE messages.
131 scoped_ptr<base::win::MessageWindow> window_; 132 std::unique_ptr<base::win::MessageWindow> window_;
132 133
133 DISALLOW_COPY_AND_ASSIGN(ClipboardWin); 134 DISALLOW_COPY_AND_ASSIGN(ClipboardWin);
134 }; 135 };
135 136
136 ClipboardWin::ClipboardWin() 137 ClipboardWin::ClipboardWin()
137 : add_clipboard_format_listener_(nullptr), 138 : add_clipboard_format_listener_(nullptr),
138 remove_clipboard_format_listener_(nullptr) { 139 remove_clipboard_format_listener_(nullptr) {
139 } 140 }
140 141
141 ClipboardWin::~ClipboardWin() { 142 ClipboardWin::~ClipboardWin() {
142 if (window_ && remove_clipboard_format_listener_) 143 if (window_ && remove_clipboard_format_listener_)
143 (*remove_clipboard_format_listener_)(window_->hwnd()); 144 (*remove_clipboard_format_listener_)(window_->hwnd());
144 } 145 }
145 146
146 void ClipboardWin::Start( 147 void ClipboardWin::Start(
147 scoped_ptr<protocol::ClipboardStub> client_clipboard) { 148 std::unique_ptr<protocol::ClipboardStub> client_clipboard) {
148 DCHECK(!add_clipboard_format_listener_); 149 DCHECK(!add_clipboard_format_listener_);
149 DCHECK(!remove_clipboard_format_listener_); 150 DCHECK(!remove_clipboard_format_listener_);
150 DCHECK(!window_); 151 DCHECK(!window_);
151 152
152 client_clipboard_.swap(client_clipboard); 153 client_clipboard_.swap(client_clipboard);
153 154
154 // user32.dll is statically linked. 155 // user32.dll is statically linked.
155 HMODULE user32 = GetModuleHandle(L"user32.dll"); 156 HMODULE user32 = GetModuleHandle(L"user32.dll");
156 CHECK(user32); 157 CHECK(user32);
157 158
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 UINT message, WPARAM wparam, LPARAM lparam, LRESULT* result) { 267 UINT message, WPARAM wparam, LPARAM lparam, LRESULT* result) {
267 if (message == WM_CLIPBOARDUPDATE) { 268 if (message == WM_CLIPBOARDUPDATE) {
268 OnClipboardUpdate(); 269 OnClipboardUpdate();
269 *result = 0; 270 *result = 0;
270 return true; 271 return true;
271 } 272 }
272 273
273 return false; 274 return false;
274 } 275 }
275 276
276 scoped_ptr<Clipboard> Clipboard::Create() { 277 std::unique_ptr<Clipboard> Clipboard::Create() {
277 return make_scoped_ptr(new ClipboardWin()); 278 return base::WrapUnique(new ClipboardWin());
278 } 279 }
279 280
280 } // namespace remoting 281 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/host/clipboard_mac.mm ('k') | remoting/host/clipboard_x11.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698