1ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org/* 2ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 3ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org * 4ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org * Use of this source code is governed by a BSD-style license 5ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org * that can be found in the LICENSE file in the root of the source 6ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org * tree. An additional intellectual property rights grant can be found 7ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org * in the file PATENTS. All contributing project authors may 8ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org * be found in the AUTHORS file in the root of the source tree. 9ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org */ 10ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org 11ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org#include "webrtc/modules/desktop_capture/win/window_capture_utils.h" 12ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org 13ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.orgnamespace webrtc { 14ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org 15ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.orgbool 16ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.orgGetCroppedWindowRect(HWND window, 17ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org DesktopRect* cropped_rect, 18ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org DesktopRect* original_rect) { 19ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org RECT rect; 20ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org if (!GetWindowRect(window, &rect)) { 21ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org return false; 22ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org } 23ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org WINDOWPLACEMENT window_placement; 24b45df1c14edcfe5efac5df2238adad62bb187b06jiayl@webrtc.org window_placement.length = sizeof(window_placement); 25ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org if (!GetWindowPlacement(window, &window_placement)) { 26ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org return false; 27ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org } 28ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org 29ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org *original_rect = DesktopRect::MakeLTRB( 30ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org rect.left, rect.top, rect.right, rect.bottom); 31ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org 32ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org if (window_placement.showCmd & SW_SHOWMAXIMIZED) { 33ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org DesktopSize border = DesktopSize(GetSystemMetrics(SM_CXSIZEFRAME), 34ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org GetSystemMetrics(SM_CYSIZEFRAME)); 35ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org *cropped_rect = DesktopRect::MakeLTRB( 36ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org rect.left + border.width(), 37ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org rect.top, 38ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org rect.right - border.width(), 39ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org rect.bottom - border.height()); 40ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org } else { 41ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org *cropped_rect = *original_rect; 42ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org } 43ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org return true; 44ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org} 45ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org 46ac1fabd3510a7083afe9b8bc100b159b9f918eeajiayl@webrtc.org} // namespace webrtc 47