This change returns translated position in the newly added overload MouseCursorMonitor::Callback::OnMouseCursorPosition(DesktopVector) callback. Meanwhile it also reduces the duplicate logic in Windows capturer implementations. So except for the deprecated logic in MouseCursorMonitorWin, all GetSystemMetrics() function calls are merged into GetScreenRect(), GetFullscreenRect() and GetFullscreenTopLeft() functions. Bug: webrtc:7950 Change-Id: Ic2a85a80b6947367bdd20d8f96f11e0f5c269006 Reviewed-on: https://chromium-review.googlesource.com/581951 Reviewed-by: Jamie Walch <jamiewalch@chromium.org> Reviewed-by: Zijie He <zijiehe@chromium.org> Commit-Queue: Zijie He <zijiehe@chromium.org> Cr-Commit-Position: refs/heads/master@{#19157}
44 lines
1.4 KiB
C++
44 lines
1.4 KiB
C++
/*
|
|
* Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
#include <windows.h>
|
|
|
|
#include "webrtc/modules/desktop_capture/desktop_geometry.h"
|
|
#include "webrtc/rtc_base/constructormagic.h"
|
|
|
|
namespace webrtc {
|
|
|
|
// Output the window rect, with the left/right/bottom frame border cropped if
|
|
// the window is maximized. |cropped_rect| is the cropped rect relative to the
|
|
// desktop. |original_rect| is the original rect returned from GetWindowRect.
|
|
// Returns true if all API calls succeeded. The returned DesktopRect is in
|
|
// system coordinates, i.e. the primary monitor on the system always starts from
|
|
// (0, 0).
|
|
bool GetCroppedWindowRect(HWND window,
|
|
DesktopRect* cropped_rect,
|
|
DesktopRect* original_rect);
|
|
|
|
typedef HRESULT (WINAPI *DwmIsCompositionEnabledFunc)(BOOL* enabled);
|
|
class AeroChecker {
|
|
public:
|
|
AeroChecker();
|
|
~AeroChecker();
|
|
|
|
bool IsAeroEnabled();
|
|
|
|
private:
|
|
HMODULE dwmapi_library_;
|
|
DwmIsCompositionEnabledFunc func_;
|
|
|
|
RTC_DISALLOW_COPY_AND_ASSIGN(AeroChecker);
|
|
};
|
|
|
|
} // namespace webrtc
|