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

Side by Side Diff: remoting/host/win/rdp_client_window.cc

Issue 2033683003: Removing Chromoting's dependence on the sas.dll (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixed some formatting Created 4 years, 6 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
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/win/rdp_client_window.h" 5 #include "remoting/host/win/rdp_client_window.h"
6 6
7 #include <wtsdefs.h> 7 #include <wtsdefs.h>
8 8
9 #include <list> 9 #include <list>
10 10
11 #include "base/lazy_instance.h" 11 #include "base/lazy_instance.h"
12 #include "base/logging.h" 12 #include "base/logging.h"
13 #include "base/macros.h" 13 #include "base/macros.h"
14 #include "base/strings/string16.h" 14 #include "base/strings/string16.h"
15 #include "base/strings/utf_string_conversions.h" 15 #include "base/strings/utf_string_conversions.h"
16 #include "base/threading/thread_local.h" 16 #include "base/threading/thread_local.h"
17 #include "base/win/scoped_bstr.h" 17 #include "base/win/scoped_bstr.h"
18 18
19 namespace remoting { 19 namespace remoting {
20 20
21 namespace { 21 namespace {
22 22
23 // RDP connection disconnect reasons codes that should not be interpreted as 23 // RDP session disconnect reason codes that should not be interpreted as errors.
24 // errors.
25 const long kDisconnectReasonNoInfo = 0; 24 const long kDisconnectReasonNoInfo = 0;
26 const long kDisconnectReasonLocalNotError = 1; 25 const long kDisconnectReasonLocalNotError = 1;
27 const long kDisconnectReasonRemoteByUser = 2; 26 const long kDisconnectReasonRemoteByUser = 2;
28 const long kDisconnectReasonByServer = 3; 27 const long kDisconnectReasonByServer = 3;
29 28
30 // Maximum length of a window class name including the terminating nullptr. 29 // Maximum length of a window class name including the terminating nullptr.
31 const int kMaxWindowClassLength = 256; 30 const int kMaxWindowClassLength = 256;
32 31
33 // Each member of the array returned by GetKeyboardState() contains status data 32 // Each member of the array returned by GetKeyboardState() contains status data
34 // for a virtual key. If the high-order bit is 1, the key is down; otherwise, it 33 // for a virtual key. If the high-order bit is 1, the key is down; otherwise, it
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 143
145 void RdpClientWindow::Disconnect() { 144 void RdpClientWindow::Disconnect() {
146 if (m_hWnd) 145 if (m_hWnd)
147 SendMessage(WM_CLOSE); 146 SendMessage(WM_CLOSE);
148 } 147 }
149 148
150 void RdpClientWindow::InjectSas() { 149 void RdpClientWindow::InjectSas() {
151 if (!m_hWnd) 150 if (!m_hWnd)
152 return; 151 return;
153 152
154 // Fins the window handling the keyboard input. 153 // Find the window handling the keyboard input.
155 HWND input_window = FindWindowRecursively(m_hWnd, kRdpInputWindowClass); 154 HWND input_window = FindWindowRecursively(m_hWnd, kRdpInputWindowClass);
156 if (!input_window) { 155 if (!input_window) {
157 LOG(ERROR) << "Failed to find the window handling the keyboard input."; 156 LOG(ERROR) << "Failed to find the window handling the keyboard input.";
158 return; 157 return;
159 } 158 }
160 159
161 VLOG(3) << "Injecting Ctrl+Alt+End to emulate SAS."; 160 VLOG(3) << "Injecting Ctrl+Alt+End to emulate SAS.";
162 161
163 BYTE keyboard_state[kKeyboardStateLength]; 162 BYTE keyboard_state[kKeyboardStateLength];
164 if (!GetKeyboardState(keyboard_state)) { 163 if (!GetKeyboardState(keyboard_state)) {
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after
517 return CallNextHookEx(hook, code, wparam, lparam); 516 return CallNextHookEx(hook, code, wparam, lparam);
518 517
519 // Close the window once all pending window messages are processed. 518 // Close the window once all pending window messages are processed.
520 HWND window = reinterpret_cast<HWND>(wparam); 519 HWND window = reinterpret_cast<HWND>(wparam);
521 LOG(WARNING) << "RDP: closing a window: " << std::hex << window << std::dec; 520 LOG(WARNING) << "RDP: closing a window: " << std::hex << window << std::dec;
522 ::PostMessage(window, WM_CLOSE, 0, 0); 521 ::PostMessage(window, WM_CLOSE, 0, 0);
523 return 0; 522 return 0;
524 } 523 }
525 524
526 } // namespace remoting 525 } // namespace remoting
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698