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