blob: 70624e1cfcfd6a7c00a42caa27e499b24060eab3 [file] [log] [blame]
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ui/display/win/base_window_finder_win.h"
#include <objbase.h>
namespace display {
namespace win {
// Creates a BaseWindowFinderWin with the specified set of HWNDs to ignore.
BaseWindowFinderWin::BaseWindowFinderWin(const std::set<HWND>& ignore)
: ignore_(ignore) {}
BaseWindowFinderWin::~BaseWindowFinderWin() = default;
// static
BOOL CALLBACK BaseWindowFinderWin::WindowCallbackProc(HWND hwnd,
LPARAM lParam) {
// Cast must match that in as_lparam().
BaseWindowFinderWin* finder = reinterpret_cast<BaseWindowFinderWin*>(lParam);
if (finder->ignore_.find(hwnd) != finder->ignore_.end())
return TRUE;
return finder->ShouldStopIterating(hwnd) ? FALSE : TRUE;
}
} // namespace win
} // namespace display