diff 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
line wrap: on
line diff
--- a/dep/animone/src/win/win32.cc	Wed Jun 19 23:21:19 2024 -0400
+++ b/dep/animone/src/win/win32.cc	Thu Jun 20 03:03:05 2024 -0400
@@ -63,8 +63,8 @@
 	return true;
 }
 
-static bool VerifyClassName(const std::wstring& name) {
-	static const std::set<std::wstring> invalid_names = {
+static bool VerifyClassName(const std::string& name) {
+	static const std::set<std::string> invalid_names = {
 	    // System classes
 	    "#32770",        // Dialog box
 	    "CabinetWClass", // Windows Explorer
@@ -93,7 +93,7 @@
 
 	Window window;
 	window.platform = WindowPlatform::Win32;
-	window.id = static_cast<unsigned int>(reinterpret_cast<ULONG_PTR>(hwnd));
+	window.id.win32 = reinterpret_cast<std::uintptr_t>(hwnd);
 	window.text = ToUtf8String(GetWindowText(hwnd));
 	window.class_name = ToUtf8String(GetWindowClassName(hwnd));
 	if (!VerifyClassName(window.class_name))