mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-04 02:06:36 +02:00
31 lines
920 B
C++
31 lines
920 B
C++
#pragma once
|
|
|
|
class WindowCreationHandler
|
|
{
|
|
public:
|
|
WindowCreationHandler(std::function<void(HWND)> windowCreatedCallback);
|
|
~WindowCreationHandler();
|
|
|
|
private:
|
|
static inline WindowCreationHandler* s_instance = nullptr;
|
|
std::vector<HWINEVENTHOOK> m_staticWinEventHooks;
|
|
std::function<void(HWND)> m_windowCreatedCallback;
|
|
|
|
void InitHooks();
|
|
void HandleWinHookEvent(DWORD event, HWND window) noexcept;
|
|
|
|
static void CALLBACK WinHookProc(HWINEVENTHOOK winEventHook,
|
|
DWORD event,
|
|
HWND window,
|
|
LONG object,
|
|
LONG child,
|
|
DWORD eventThread,
|
|
DWORD eventTime)
|
|
{
|
|
if (s_instance)
|
|
{
|
|
s_instance->HandleWinHookEvent(event, window);
|
|
}
|
|
}
|
|
};
|