| Index: webrtc/modules/desktop_capture/window_capturer_win.cc
|
| diff --git a/webrtc/modules/desktop_capture/window_capturer_win.cc b/webrtc/modules/desktop_capture/window_capturer_win.cc
|
| index c7e1fd879c8e46967e4cb63155888afba68b5abc..3d96881969d83b3044230dabc554dfd5e0d747a4 100644
|
| --- a/webrtc/modules/desktop_capture/window_capturer_win.cc
|
| +++ b/webrtc/modules/desktop_capture/window_capturer_win.cc
|
| @@ -22,8 +22,6 @@ namespace webrtc {
|
|
|
| namespace {
|
|
|
| -typedef HRESULT (WINAPI *DwmIsCompositionEnabledFunc)(BOOL* enabled);
|
| -
|
| BOOL CALLBACK WindowsEnumerationHandler(HWND hwnd, LPARAM param) {
|
| WindowCapturer::WindowList* list =
|
| reinterpret_cast<WindowCapturer::WindowList*>(param);
|
| @@ -81,48 +79,25 @@ class WindowCapturerWin : public WindowCapturer {
|
| void Capture(const DesktopRegion& region) override;
|
|
|
| private:
|
| - bool IsAeroEnabled();
|
| -
|
| Callback* callback_;
|
|
|
| // HWND and HDC for the currently selected window or NULL if window is not
|
| // selected.
|
| HWND window_;
|
|
|
| - // dwmapi.dll is used to determine if desktop compositing is enabled.
|
| - HMODULE dwmapi_library_;
|
| - DwmIsCompositionEnabledFunc is_composition_enabled_func_;
|
| -
|
| DesktopSize previous_size_;
|
|
|
| + AeroChecker aero_checker_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(WindowCapturerWin);
|
| };
|
|
|
| WindowCapturerWin::WindowCapturerWin()
|
| : callback_(NULL),
|
| window_(NULL) {
|
| - // Try to load dwmapi.dll dynamically since it is not available on XP.
|
| - dwmapi_library_ = LoadLibrary(L"dwmapi.dll");
|
| - if (dwmapi_library_) {
|
| - is_composition_enabled_func_ =
|
| - reinterpret_cast<DwmIsCompositionEnabledFunc>(
|
| - GetProcAddress(dwmapi_library_, "DwmIsCompositionEnabled"));
|
| - assert(is_composition_enabled_func_);
|
| - } else {
|
| - is_composition_enabled_func_ = NULL;
|
| - }
|
| }
|
|
|
| WindowCapturerWin::~WindowCapturerWin() {
|
| - if (dwmapi_library_)
|
| - FreeLibrary(dwmapi_library_);
|
| -}
|
| -
|
| -bool WindowCapturerWin::IsAeroEnabled() {
|
| - BOOL result = FALSE;
|
| - if (is_composition_enabled_func_)
|
| - is_composition_enabled_func_(&result);
|
| - return result != FALSE;
|
| }
|
|
|
| bool WindowCapturerWin::GetWindowList(WindowList* windows) {
|
| @@ -228,7 +203,7 @@ void WindowCapturerWin::Capture(const DesktopRegion& region) {
|
| // capturing - it somehow affects what we get from BitBlt() on the subsequent
|
| // captures.
|
|
|
| - if (!IsAeroEnabled() || !previous_size_.equals(frame->size())) {
|
| + if (!aero_checker_.IsAeroEnabled() || !previous_size_.equals(frame->size())) {
|
| result = PrintWindow(window_, mem_dc, 0);
|
| }
|
|
|
|
|