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 "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/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 return; | 188 return; |
189 | 189 |
190 // Currently we only handle UTF-8 text. | 190 // Currently we only handle UTF-8 text. |
191 if (event.mime_type().compare(kMimeTypeTextUtf8) != 0) | 191 if (event.mime_type().compare(kMimeTypeTextUtf8) != 0) |
192 return; | 192 return; |
193 if (!StringIsUtf8(event.data().c_str(), event.data().length())) { | 193 if (!StringIsUtf8(event.data().c_str(), event.data().length())) { |
194 LOG(ERROR) << "ClipboardEvent: data is not UTF-8 encoded."; | 194 LOG(ERROR) << "ClipboardEvent: data is not UTF-8 encoded."; |
195 return; | 195 return; |
196 } | 196 } |
197 | 197 |
198 base::string16 text = UTF8ToUTF16(ReplaceLfByCrLf(event.data())); | 198 base::string16 text = base::UTF8ToUTF16(ReplaceLfByCrLf(event.data())); |
199 | 199 |
200 ScopedClipboard clipboard; | 200 ScopedClipboard clipboard; |
201 if (!clipboard.Init(window_->hwnd())) { | 201 if (!clipboard.Init(window_->hwnd())) { |
202 LOG(WARNING) << "Couldn't open the clipboard."; | 202 LOG(WARNING) << "Couldn't open the clipboard."; |
203 return; | 203 return; |
204 } | 204 } |
205 | 205 |
206 clipboard.Empty(); | 206 clipboard.Empty(); |
207 | 207 |
208 HGLOBAL text_global = | 208 HGLOBAL text_global = |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
245 base::win::ScopedHGlobal<WCHAR> text_lock(text_global); | 245 base::win::ScopedHGlobal<WCHAR> text_lock(text_global); |
246 if (!text_lock.get()) { | 246 if (!text_lock.get()) { |
247 LOG(WARNING) << "Couldn't lock clipboard data: " << GetLastError(); | 247 LOG(WARNING) << "Couldn't lock clipboard data: " << GetLastError(); |
248 return; | 248 return; |
249 } | 249 } |
250 text.assign(text_lock.get()); | 250 text.assign(text_lock.get()); |
251 } | 251 } |
252 | 252 |
253 protocol::ClipboardEvent event; | 253 protocol::ClipboardEvent event; |
254 event.set_mime_type(kMimeTypeTextUtf8); | 254 event.set_mime_type(kMimeTypeTextUtf8); |
255 event.set_data(ReplaceCrLfByLf(UTF16ToUTF8(text))); | 255 event.set_data(ReplaceCrLfByLf(base::UTF16ToUTF8(text))); |
256 | 256 |
257 if (client_clipboard_.get()) { | 257 if (client_clipboard_.get()) { |
258 client_clipboard_->InjectClipboardEvent(event); | 258 client_clipboard_->InjectClipboardEvent(event); |
259 } | 259 } |
260 } | 260 } |
261 } | 261 } |
262 | 262 |
263 bool ClipboardWin::HandleMessage( | 263 bool ClipboardWin::HandleMessage( |
264 UINT message, WPARAM wparam, LPARAM lparam, LRESULT* result) { | 264 UINT message, WPARAM wparam, LPARAM lparam, LRESULT* result) { |
265 if (message == WM_CLIPBOARDUPDATE) { | 265 if (message == WM_CLIPBOARDUPDATE) { |
266 OnClipboardUpdate(); | 266 OnClipboardUpdate(); |
267 *result = 0; | 267 *result = 0; |
268 return true; | 268 return true; |
269 } | 269 } |
270 | 270 |
271 return false; | 271 return false; |
272 } | 272 } |
273 | 273 |
274 scoped_ptr<Clipboard> Clipboard::Create() { | 274 scoped_ptr<Clipboard> Clipboard::Create() { |
275 return scoped_ptr<Clipboard>(new ClipboardWin()); | 275 return scoped_ptr<Clipboard>(new ClipboardWin()); |
276 } | 276 } |
277 | 277 |
278 } // namespace remoting | 278 } // namespace remoting |
OLD | NEW |