On Mon Nov 20 14:47:33 2023 +0000, Alexandre Julliard wrote:
Why isn't this using an atom like the normal class name? And why does it need new requests as opposed to extending `set_class_info`?
1. The idea behind using an enum instead of an atom was that there's a fixed set of builtin user32 window classes that can set "real" window class for an HWND, and looking up the atom each time was added complexity. We could store an atom instead though if you'd prefer that, although AFAIU that'd require a lookup each time since I don't think class atoms stay constant.
2. `set_class_info` is per window class, and my understanding was that that request was meant to set information for a specific window class. The real window class value is a per-HWND thing, meaning multiple HWNDs of the same window class could have different real class values. Pulling in the information to do this inside of `set_class_info` seems tricky, since we can't access the `struct window` without importing the definition into `server/class.c`.