1. Handled WM_SETCURSOR explicitly in the window procedure, setting IDC_HAND
when dragging/hovering and returning 1 to prevent Windows from displaying
an hourglass/wait cursor.
2. Pre-allocated persistent memory DC, DIB section, and buffer pointer in
_init_gdi_resources() instead of allocating and freeing them 60 times/sec
in draw_frame(), eliminating GDI handle churn.
3. Added cleanup of DIB/DC handles and class unregistration in destroy().