Windows Header consts
Prudence via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Sep 7 10:44:53 PDT 2015
Windows headers contain a ton of global const's for the various
messages. Seems like a very bad way to go about this.
Could one not simply put all these in an enum? e.g., enum WM {
WM_CREATE = 1, etc... }?
If so, because there are so many and so many references to them,
this can't be done easily by hand. Surely there is a way to
automate this? But because the headers are not consistently
written, a simple search and replace won't work well?
e.g.,
const WM_* -> add to enum WM;
else WM_* -> WM.*
because there is code like
static if (_WIN32_WINNT >= 0x500) {
enum {
WM_CHANGEUISTATE = 0x0127,
WM_UPDATEUISTATE = 0x0128,
WM_QUERYUISTATE = 0x0129
}
// LOWORD(wParam) values in WM_*UISTATE*
enum {
UIS_SET = 1,
UIS_CLEAR = 2,
UIS_INITIALIZE = 3
}
// HIWORD(wParam) values in WM_*UISTATE*
enum {
UISF_HIDEFOCUS = 0x1,
UISF_HIDEACCEL = 0x2
}
}
static if (_WIN32_WINNT >= 0x501) {
// HIWORD(wParam) values in WM_*UISTATE*
enum {
UISF_ACTIVE = 0x4
}
}
(unless one can define partial enums or use static if in the
enums directly(probably the case but parsing is more difficult))
I guessing one would need a D or C parser to deal with all this?
More information about the Digitalmars-d-learn
mailing list