According to the documentation for CreateWindowEx, the lpClassName parameter can be:
A null-terminated string or a class atom created by a previous call to the RegisterClass or RegisterClassEx function.
However in the metadata, the lpClassName parameter is just a PSTR:

The C header also just declares this parameter as LPCSTR, however, I wonder if the metadata should consider enhancing this to some sort of union type like this?
typedef union {
LPCSTR String;
ATOM Atom;
} CREATE_WINDOW_CLASS_NAME;
Does the current definition cause any issues for the other projections when someone wants to pass an ATOM for lpClassName?
cc @AArnott @kennykerr
According to the documentation for
CreateWindowEx, thelpClassNameparameter can be:However in the metadata, the
lpClassNameparameter is just aPSTR:The C header also just declares this parameter as
LPCSTR, however, I wonder if the metadata should consider enhancing this to some sort of union type like this?Does the current definition cause any issues for the other projections when someone wants to pass an
ATOMforlpClassName?cc @AArnott @kennykerr