import os
import sys
import time
import ctypes
from ctypes import wintypes

sys.path.insert(0, r"c:\Projects\AutoPOE2")

from src.common.win32_window import attach_to_default_desktop, find_poe2_window

user32 = ctypes.windll.user32
kernel32 = ctypes.windll.kernel32

hdesk_orig = user32.GetThreadDesktop(kernel32.GetCurrentThreadId())
name_buf = ctypes.create_unicode_buffer(256)
user32.GetUserObjectInformationW(hdesk_orig, 2, name_buf, 256, None)
print(f"Initial Desktop: {name_buf.value}")

hdesk = attach_to_default_desktop()
print(f"attach_to_default_desktop returned handle: {hex(hdesk) if hdesk else None}")

hdesk_now = user32.GetThreadDesktop(kernel32.GetCurrentThreadId())
name_buf2 = ctypes.create_unicode_buffer(256)
user32.GetUserObjectInformationW(hdesk_now, 2, name_buf2, 256, None)
print(f"Current Desktop: {name_buf2.value}")

fg = user32.GetForegroundWindow()
pid = wintypes.DWORD()
user32.GetWindowThreadProcessId(fg, ctypes.byref(pid))
title_buf = ctypes.create_unicode_buffer(512)
user32.GetWindowTextW(fg, title_buf, 512)
class_buf = ctypes.create_unicode_buffer(512)
user32.GetClassNameW(fg, class_buf, 512)
print(f"REAL Desktop Foreground HWND: {hex(fg)}, PID: {pid.value}, Title: '{title_buf.value}', Class: '{class_buf.value}'")

hwnd = find_poe2_window()
print(f"PoE2 HWND: {hex(hwnd) if hwnd else None}")
