comparison dep/animone/src/win/win32.cc @ 342:adb79bdde329

dep/animone: fix tons of issues for example, the window ID stuff was just... completely wrong. since we're supporting multiple different window systems, it *has* to be a union rather than just a single integer type. HWND is also not a DWORD, it's a pointer(!), so now it's stored as a std::uintptr_t. (this probably breaks things)
author Paper <paper@paper.us.eu.org>
date Thu, 20 Jun 2024 03:03:05 -0400
parents a7d4e5107531
children
comparison
equal deleted inserted replaced
341:052ec053ee37 342:adb79bdde329
61 return false; 61 return false;
62 62
63 return true; 63 return true;
64 } 64 }
65 65
66 static bool VerifyClassName(const std::wstring& name) { 66 static bool VerifyClassName(const std::string& name) {
67 static const std::set<std::wstring> invalid_names = { 67 static const std::set<std::string> invalid_names = {
68 // System classes 68 // System classes
69 "#32770", // Dialog box 69 "#32770", // Dialog box
70 "CabinetWClass", // Windows Explorer 70 "CabinetWClass", // Windows Explorer
71 "ComboLBox", 71 "ComboLBox",
72 "DDEMLEvent", 72 "DDEMLEvent",
91 if (!VerifyWindowStyle(hwnd)) 91 if (!VerifyWindowStyle(hwnd))
92 return TRUE; 92 return TRUE;
93 93
94 Window window; 94 Window window;
95 window.platform = WindowPlatform::Win32; 95 window.platform = WindowPlatform::Win32;
96 window.id = static_cast<unsigned int>(reinterpret_cast<ULONG_PTR>(hwnd)); 96 window.id.win32 = reinterpret_cast<std::uintptr_t>(hwnd);
97 window.text = ToUtf8String(GetWindowText(hwnd)); 97 window.text = ToUtf8String(GetWindowText(hwnd));
98 window.class_name = ToUtf8String(GetWindowClassName(hwnd)); 98 window.class_name = ToUtf8String(GetWindowClassName(hwnd));
99 if (!VerifyClassName(window.class_name)) 99 if (!VerifyClassName(window.class_name))
100 return TRUE; 100 return TRUE;
101 101