comparison dynamin/c/windows.d @ 14:e6e201c3a439

Remove ANSI functions from Windows binding and convert inner tabs to spaces in 4 files. Big spacing cleanup in Windows binding.
author Jordan Miner <jminer7@gmail.com>
date Sat, 18 Jul 2009 02:35:24 -0500
parents a3a2aa21fc52
children 63cbfb167240
comparison
equal deleted inserted replaced
13:a3a2aa21fc52 14:e6e201c3a439
13 13
14 version(build) { pragma(link, gdi32, comdlg32, shell32, ole32, winmm); } 14 version(build) { pragma(link, gdi32, comdlg32, shell32, ole32, winmm); }
15 15
16 extern(Windows): 16 extern(Windows):
17 17
18 version = UNICODE; 18 alias char* LPSTR;
19 alias char* LPSTR;
20 alias wchar* LPWSTR; 19 alias wchar* LPWSTR;
21 alias char* LPCSTR; 20 alias char* LPCSTR;
22 alias wchar* LPCWSTR; 21 alias wchar* LPCWSTR;
23 version(UNICODE) { 22 // unicode
24 alias wchar TCHAR; 23 alias wchar TCHAR;
25 alias LPWSTR LPTSTR; 24 alias LPWSTR LPTSTR;
26 alias LPCWSTR LPCTSTR; 25 alias LPCWSTR LPCTSTR;
27 } else { 26
28 alias char TCHAR; 27 alias VOID* HANDLE;
29 alias LPSTR LPTSTR; 28 alias HANDLE HBITMAP;
30 alias LPCSTR LPCTSTR; 29 alias HANDLE HBRUSH;
31 } 30 alias HANDLE HICON;
32 31 alias HICON HCURSOR;
33 alias VOID* HANDLE; 32 alias HANDLE HDC;
34 alias HANDLE HBITMAP; 33 alias HANDLE HGDIOBJ;
35 alias HANDLE HBRUSH; 34 alias HANDLE HGLOBAL;
36 alias HANDLE HICON; 35 alias int HFILE;
37 alias HICON HCURSOR; 36 alias HANDLE HFONT;
38 alias HANDLE HDC; 37 alias HANDLE HINSTANCE;
39 alias HANDLE HGDIOBJ; 38 alias HANDLE HKEY;
40 alias HANDLE HGLOBAL; 39 alias HANDLE HMENU;
41 alias int HFILE;
42 alias HANDLE HFONT;
43 alias HANDLE HINSTANCE;
44 alias HANDLE HKEY;
45 alias HANDLE HMENU;
46 alias HINSTANCE HMODULE; 40 alias HINSTANCE HMODULE;
47 alias int HRESULT; 41 alias int HRESULT;
48 alias HANDLE HRGN; 42 alias HANDLE HRGN;
49 alias HANDLE HTHEME; 43 alias HANDLE HTHEME;
50 alias HANDLE HWND; 44 alias HANDLE HWND;
51 45
52 version(Win64) { 46 version(Win64) {
53 alias int HALF_PTR; 47 alias int HALF_PTR;
54 alias uint UHALF_PTR; 48 alias uint UHALF_PTR;
55 alias long INT_PTR; 49 alias long INT_PTR;
56 alias ulong UINT_PTR; 50 alias ulong UINT_PTR;
57 alias long LONG_PTR; 51 alias long LONG_PTR;
58 alias ulong ULONG_PTR; 52 alias ulong ULONG_PTR;
59 } else { 53 } else {
60 alias short HALF_PTR; 54 alias short HALF_PTR;
61 alias ushort UHALF_PTR; 55 alias ushort UHALF_PTR;
62 alias int INT_PTR; 56 alias int INT_PTR;
63 alias uint UINT_PTR; 57 alias uint UINT_PTR;
64 alias int LONG_PTR; 58 alias int LONG_PTR;
65 alias uint ULONG_PTR; 59 alias uint ULONG_PTR;
66 } 60 }
67 61
68 alias INT_PTR function() FARPROC; 62 alias INT_PTR function() FARPROC;
69 alias int BOOL; 63 alias int BOOL;
70 alias ubyte BYTE; 64 alias ubyte BYTE;
71 alias char CHAR; 65 alias char CHAR;
72 alias wchar WCHAR; 66 alias wchar WCHAR;
73 alias uint DWORD; 67 alias uint DWORD;
74 alias ulong DWORDLONG; 68 alias ulong DWORDLONG;
75 alias uint DWORD32; 69 alias uint DWORD32;
76 alias ulong DWORD64; 70 alias ulong DWORD64;
77 alias float FLOAT; 71 alias float FLOAT;
78 alias int INT; 72 alias int INT;
79 alias int INT32; 73 alias int INT32;
80 alias long INT64; 74 alias long INT64;
81 alias int LONG; 75 alias int LONG;
82 alias int LONG32; 76 alias int LONG32;
83 alias long LONG64; 77 alias long LONG64;
84 alias UINT_PTR WPARAM; 78 alias UINT_PTR WPARAM;
85 alias LONG_PTR LPARAM; 79 alias LONG_PTR LPARAM;
86 alias LONG_PTR LRESULT; 80 alias LONG_PTR LRESULT;
87 alias char UCHAR; 81 alias char UCHAR;
88 alias uint UINT; 82 alias uint UINT;
89 alias uint UINT32; 83 alias uint UINT32;
90 alias ulong UINT64; 84 alias ulong UINT64;
91 alias uint ULONG; 85 alias uint ULONG;
92 alias uint ULONG32; 86 alias uint ULONG32;
93 alias ulong ULONG64; 87 alias ulong ULONG64;
94 alias short SHORT; 88 alias short SHORT;
95 alias ushort USHORT; 89 alias ushort USHORT;
96 alias void VOID; 90 alias void VOID;
97 alias ushort WORD; 91 alias ushort WORD;
98 alias WORD ATOM; 92 alias WORD ATOM;
99 alias ULONG_PTR SIZE_T; 93 alias ULONG_PTR SIZE_T;
100 alias DWORD COLORREF; 94 alias DWORD COLORREF;
101 alias LONG NTSTATUS; 95 alias LONG NTSTATUS;
102 96
103 const HRESULT S_OK = 0; 97 const HRESULT S_OK = 0;
104 const HRESULT S_FALSE = 1; 98 const HRESULT S_FALSE = 1;
105 const HRESULT NOERROR = 0; 99 const HRESULT NOERROR = 0;
106 100
107 const int MAX_PATH = 260; 101 const int MAX_PATH = 260;
108 102
120 LPWSTR MAKEINTRESOURCE(int i) { return cast(LPWSTR)cast(WORD)i; } 114 LPWSTR MAKEINTRESOURCE(int i) { return cast(LPWSTR)cast(WORD)i; }
121 BYTE GetRValue(DWORD rgb) { return LOBYTE(rgb); } 115 BYTE GetRValue(DWORD rgb) { return LOBYTE(rgb); }
122 BYTE GetGValue(DWORD rgb) { return LOBYTE(cast(WORD)rgb >> 8); } 116 BYTE GetGValue(DWORD rgb) { return LOBYTE(cast(WORD)rgb >> 8); }
123 BYTE GetBValue(DWORD rgb) { return LOBYTE(rgb >> 16); } 117 BYTE GetBValue(DWORD rgb) { return LOBYTE(rgb >> 16); }
124 118
125 int MessageBoxA(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType);
126 int MessageBoxW(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType); 119 int MessageBoxW(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType);
127 120
128 DWORD GetLastError(); 121 DWORD GetLastError();
129 122
130 int MultiByteToWideChar( 123 int MultiByteToWideChar(
155 BOOL HeapFree(HANDLE hHeap, DWORD dwFlags, VOID* lpMem); 148 BOOL HeapFree(HANDLE hHeap, DWORD dwFlags, VOID* lpMem);
156 149
157 SIZE_T HeapSize(HANDLE hHeap, DWORD dwFlags, /*const*/ VOID* lpMem); 150 SIZE_T HeapSize(HANDLE hHeap, DWORD dwFlags, /*const*/ VOID* lpMem);
158 151
159 enum { 152 enum {
160 HEAP_ZERO_MEMORY = 0x0008, 153 HEAP_ZERO_MEMORY = 0x0008,
161 HEAP_REALLOC_IN_PLACE_ONLY = 0x0010 154 HEAP_REALLOC_IN_PLACE_ONLY = 0x0010
162 } 155 }
163 156
164 HGLOBAL GlobalAlloc(UINT uFlags, SIZE_T dwBytes); 157 HGLOBAL GlobalAlloc(UINT uFlags, SIZE_T dwBytes);
165 158
170 VOID* GlobalLock(HGLOBAL hMem); 163 VOID* GlobalLock(HGLOBAL hMem);
171 164
172 BOOL GlobalUnlock(HGLOBAL hMem); 165 BOOL GlobalUnlock(HGLOBAL hMem);
173 166
174 enum { 167 enum {
175 GMEM_FIXED = 0x0000, 168 GMEM_FIXED = 0x0000,
176 GMEM_MOVEABLE = 0x0002, 169 GMEM_MOVEABLE = 0x0002,
177 GMEM_ZEROINIT = 0x0040, 170 GMEM_ZEROINIT = 0x0040,
178 GPTR = 0x0040, 171 GPTR = 0x0040,
179 GHND = 0x0042 172 GHND = 0x0042
180 } 173 }
181 //}}} 174 //}}}
182 175
183 //{{{ window functions 176 //{{{ window functions
184 enum { 177 enum {
185 CS_VREDRAW = 0x0001, 178 CS_VREDRAW = 0x0001,
186 CS_HREDRAW = 0x0002, 179 CS_HREDRAW = 0x0002,
187 CS_DBLCLKS = 0x0008, 180 CS_DBLCLKS = 0x0008,
188 CS_OWNDC = 0x0020, 181 CS_OWNDC = 0x0020,
189 CS_CLASSDC = 0x0040, 182 CS_CLASSDC = 0x0040,
190 CS_PARENTDC = 0x0080, 183 CS_PARENTDC = 0x0080,
191 CS_NOCLOSE = 0x0200, 184 CS_NOCLOSE = 0x0200,
192 CS_SAVEBITS = 0x0800, 185 CS_SAVEBITS = 0x0800,
193 CS_BYTEALIGNCLIENT = 0x1000, 186 CS_BYTEALIGNCLIENT = 0x1000,
194 CS_BYTEALIGNWINDOW = 0x2000, 187 CS_BYTEALIGNWINDOW = 0x2000,
195 CS_GLOBALCLASS = 0x4000, 188 CS_GLOBALCLASS = 0x4000,
196 //Windows XP required 189 //Windows XP required
197 CS_DROPSHADOW = 0x00020000 190 CS_DROPSHADOW = 0x00020000
198 191
199 } 192 }
200 ATOM RegisterClassExA(/*const*/ WNDCLASSEX* lpwcx);
201 ATOM RegisterClassExW(/*const*/ WNDCLASSEX* lpwcx); 193 ATOM RegisterClassExW(/*const*/ WNDCLASSEX* lpwcx);
202 194
203 LRESULT DefWindowProcW(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); 195 LRESULT DefWindowProcW(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
204 196
205 //{{{ window styles 197 //{{{ window styles
206 enum { 198 enum {
207 WS_OVERLAPPED = 0x00000000, 199 WS_OVERLAPPED = 0x00000000,
208 WS_MAXIMIZEBOX = 0x00010000, 200 WS_MAXIMIZEBOX = 0x00010000,
209 WS_TABSTOP = 0x00010000, 201 WS_TABSTOP = 0x00010000,
210 WS_GROUP = 0x00020000, 202 WS_GROUP = 0x00020000,
211 WS_MINIMIZEBOX = 0x00020000, 203 WS_MINIMIZEBOX = 0x00020000,
212 WS_THICKFRAME = 0x00040000, 204 WS_THICKFRAME = 0x00040000,
213 WS_SYSMENU = 0x00080000, 205 WS_SYSMENU = 0x00080000,
214 WS_HSCROLL = 0x00100000, 206 WS_HSCROLL = 0x00100000,
215 WS_VSCROLL = 0x00200000, 207 WS_VSCROLL = 0x00200000,
216 WS_DLGFRAME = 0x00400000, 208 WS_DLGFRAME = 0x00400000,
217 WS_BORDER = 0x00800000, 209 WS_BORDER = 0x00800000,
218 WS_CAPTION = 0x00C00000, 210 WS_CAPTION = 0x00C00000,
219 WS_MAXIMIZE = 0x01000000, 211 WS_MAXIMIZE = 0x01000000,
220 WS_CLIPCHILDREN = 0x02000000, 212 WS_CLIPCHILDREN = 0x02000000,
221 WS_CLIPSIBLINGS = 0x04000000, 213 WS_CLIPSIBLINGS = 0x04000000,
222 WS_DISABLED = 0x08000000, 214 WS_DISABLED = 0x08000000,
223 WS_VISIBLE = 0x10000000, 215 WS_VISIBLE = 0x10000000,
224 WS_MINIMIZE = 0x20000000, 216 WS_MINIMIZE = 0x20000000,
225 WS_CHILD = 0x40000000, 217 WS_CHILD = 0x40000000,
226 WS_POPUP = 0x80000000, 218 WS_POPUP = 0x80000000,
227 WS_OVERLAPPEDWINDOW = WS_OVERLAPPED | 219 WS_OVERLAPPEDWINDOW = WS_OVERLAPPED |
228 WS_CAPTION | 220 WS_CAPTION |
229 WS_SYSMENU | 221 WS_SYSMENU |
230 WS_THICKFRAME | 222 WS_THICKFRAME |
231 WS_MINIMIZEBOX | 223 WS_MINIMIZEBOX |
232 WS_MAXIMIZEBOX, 224 WS_MAXIMIZEBOX,
233 WS_POPUPWINDOW = WS_POPUP | 225 WS_POPUPWINDOW = WS_POPUP |
234 WS_BORDER | 226 WS_BORDER |
235 WS_SYSMENU, 227 WS_SYSMENU,
236 WS_CHILDWINDOW = WS_CHILD, 228 WS_CHILDWINDOW = WS_CHILD,
237 WS_TILED = WS_OVERLAPPED, 229 WS_TILED = WS_OVERLAPPED,
238 WS_ICONIC = WS_MINIMIZE, 230 WS_ICONIC = WS_MINIMIZE,
239 WS_SIZEBOX = WS_THICKFRAME, 231 WS_SIZEBOX = WS_THICKFRAME,
240 WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW 232 WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW
241 } 233 }
242 //}}} 234 //}}}
243 235
244 //{{{ extended window styles 236 //{{{ extended window styles
245 enum { 237 enum {
246 WS_EX_DLGMODALFRAME = 0x00000001, 238 WS_EX_DLGMODALFRAME = 0x00000001,
247 WS_EX_TOPMOST = 0x00000008, 239 WS_EX_TOPMOST = 0x00000008,
248 WS_EX_TOOLWINDOW = 0x00000080, 240 WS_EX_TOOLWINDOW = 0x00000080,
249 WS_EX_WINDOWEDGE = 0x00000100, 241 WS_EX_WINDOWEDGE = 0x00000100,
250 WS_EX_CLIENTEDGE = 0x00000200, 242 WS_EX_CLIENTEDGE = 0x00000200,
251 WS_EX_CONTROLPARENT = 0x00010000, 243 WS_EX_CONTROLPARENT = 0x00010000,
252 WS_EX_STATICEDGE = 0x00020000, 244 WS_EX_STATICEDGE = 0x00020000,
253 WS_EX_APPWINDOW = 0x00040000, 245 WS_EX_APPWINDOW = 0x00040000,
254 WS_EX_LAYERED = 0x00080000, 246 WS_EX_LAYERED = 0x00080000,
255 WS_EX_OVERLAPPEDWINDOW = WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE, 247 WS_EX_OVERLAPPEDWINDOW = WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE,
256 WS_EX_COMPOSITED = 0x02000000 248 WS_EX_COMPOSITED = 0x02000000
257 } 249 }
258 //}}} 250 //}}}
259 251
260 //{{{ CreateWindowEx() 252 //{{{ CreateWindowEx()
261 HWND CreateWindowExA(
262 DWORD dwExStyle,
263 LPCSTR lpClassName,
264 LPCSTR lpWindowName,
265 DWORD dwStyle,
266 int x,
267 int y,
268 int nWidth,
269 int nHeight,
270 HWND hWndParent,
271 HMENU hMenu,
272 HINSTANCE hInstance,
273 VOID* lpParam);
274 HWND CreateWindowExW( 253 HWND CreateWindowExW(
275 DWORD dwExStyle, 254 DWORD dwExStyle,
276 LPCWSTR lpClassName, 255 LPCWSTR lpClassName,
277 LPCWSTR lpWindowName, 256 LPCWSTR lpWindowName,
278 DWORD dwStyle, 257 DWORD dwStyle,
292 271
293 BOOL ScreenToClient(HWND hWnd, POINT* lpPoint); 272 BOOL ScreenToClient(HWND hWnd, POINT* lpPoint);
294 273
295 //{{{ messages 274 //{{{ messages
296 enum { 275 enum {
297 WM_NULL = 0x0000, 276 WM_NULL = 0x0000,
298 WM_CREATE = 0x0001, 277 WM_CREATE = 0x0001,
299 WM_DESTROY = 0x0002, 278 WM_DESTROY = 0x0002,
300 WM_MOVE = 0x0003, 279 WM_MOVE = 0x0003,
301 WM_SIZE = 0x0005, 280 WM_SIZE = 0x0005,
302 WM_ACTIVATE = 0x0006, 281 WM_ACTIVATE = 0x0006,
303 WM_SETFOCUS = 0x0007, 282 WM_SETFOCUS = 0x0007,
304 WM_KILLFOCUS = 0x0008, 283 WM_KILLFOCUS = 0x0008,
305 WM_ENABLE = 0x000A, 284 WM_ENABLE = 0x000A,
306 WM_SETREDRAW = 0x000B, 285 WM_SETREDRAW = 0x000B,
307 WM_SETTEXT = 0x000C, 286 WM_SETTEXT = 0x000C,
308 WM_GETTEXT = 0x000D, 287 WM_GETTEXT = 0x000D,
309 WM_GETTEXTLENGTH = 0x000E, 288 WM_GETTEXTLENGTH = 0x000E,
310 WM_PAINT = 0x000F, 289 WM_PAINT = 0x000F,
311 WM_CLOSE = 0x0010, 290 WM_CLOSE = 0x0010,
312 WM_QUERYENDSESSION = 0x0011, 291 WM_QUERYENDSESSION = 0x0011,
313 WM_QUERYOPEN = 0x0013, 292 WM_QUERYOPEN = 0x0013,
314 WM_ENDSESSION = 0x0016, 293 WM_ENDSESSION = 0x0016,
315 WM_QUIT = 0x0012, 294 WM_QUIT = 0x0012,
316 WM_ERASEBKGND = 0x0014, 295 WM_ERASEBKGND = 0x0014,
317 WM_SYSCOLORCHANGE = 0x0015, 296 WM_SYSCOLORCHANGE = 0x0015,
318 WM_SHOWWINDOW = 0x0018, 297 WM_SHOWWINDOW = 0x0018,
319 WM_WININICHANGE = 0x001A, 298 WM_WININICHANGE = 0x001A,
320 WM_SETTINGCHANGE = WM_WININICHANGE, 299 WM_SETTINGCHANGE = WM_WININICHANGE,
321 WM_DEVMODECHANGE = 0x001B, 300 WM_DEVMODECHANGE = 0x001B,
322 WM_ACTIVATEAPP = 0x001C, 301 WM_ACTIVATEAPP = 0x001C,
323 WM_FONTCHANGE = 0x001D, 302 WM_FONTCHANGE = 0x001D,
324 WM_TIMECHANGE = 0x001E, 303 WM_TIMECHANGE = 0x001E,
325 WM_CANCELMODE = 0x001F, 304 WM_CANCELMODE = 0x001F,
326 WM_SETCURSOR = 0x0020, 305 WM_SETCURSOR = 0x0020,
327 WM_MOUSEACTIVATE = 0x0021, 306 WM_MOUSEACTIVATE = 0x0021,
328 WM_CHILDACTIVATE = 0x0022, 307 WM_CHILDACTIVATE = 0x0022,
329 WM_QUEUESYNC = 0x0023, 308 WM_QUEUESYNC = 0x0023,
330 WM_GETMINMAXINFO = 0x0024, 309 WM_GETMINMAXINFO = 0x0024,
331 WM_PAINTICON = 0x0026, 310 WM_PAINTICON = 0x0026,
332 WM_ICONERASEBKGND = 0x0027, 311 WM_ICONERASEBKGND = 0x0027,
333 WM_NEXTDLGCTL = 0x0028, 312 WM_NEXTDLGCTL = 0x0028,
334 WM_SPOOLERSTATUS = 0x002A, 313 WM_SPOOLERSTATUS = 0x002A,
335 WM_DRAWITEM = 0x002B, 314 WM_DRAWITEM = 0x002B,
336 WM_MEASUREITEM = 0x002C, 315 WM_MEASUREITEM = 0x002C,
337 WM_DELETEITEM = 0x002D, 316 WM_DELETEITEM = 0x002D,
338 WM_VKEYTOITEM = 0x002E, 317 WM_VKEYTOITEM = 0x002E,
339 WM_CHARTOITEM = 0x002F, 318 WM_CHARTOITEM = 0x002F,
340 WM_SETFONT = 0x0030, 319 WM_SETFONT = 0x0030,
341 WM_GETFONT = 0x0031, 320 WM_GETFONT = 0x0031,
342 WM_SETHOTKEY = 0x0032, 321 WM_SETHOTKEY = 0x0032,
343 WM_GETHOTKEY = 0x0033, 322 WM_GETHOTKEY = 0x0033,
344 WM_QUERYDRAGICON = 0x0037, 323 WM_QUERYDRAGICON = 0x0037,
345 WM_COMPAREITEM = 0x0039, 324 WM_COMPAREITEM = 0x0039,
346 WM_GETOBJECT = 0x003D, 325 WM_GETOBJECT = 0x003D,
347 WM_COMPACTING = 0x0041, 326 WM_COMPACTING = 0x0041,
348 WM_WINDOWPOSCHANGING = 0x0046, 327 WM_WINDOWPOSCHANGING = 0x0046,
349 WM_WINDOWPOSCHANGED = 0x0047, 328 WM_WINDOWPOSCHANGED = 0x0047,
350 WM_POWER = 0x0048, 329 WM_POWER = 0x0048,
351 WM_COPYDATA = 0x004A, 330 WM_COPYDATA = 0x004A,
352 WM_CANCELJOURNAL = 0x004B, 331 WM_CANCELJOURNAL = 0x004B,
353 WM_NOTIFY = 0x004E, 332 WM_NOTIFY = 0x004E,
354 WM_INPUTLANGCHANGEREQUEST = 0x0050, 333 WM_INPUTLANGCHANGEREQUEST = 0x0050,
355 WM_INPUTLANGCHANGE = 0x0051, 334 WM_INPUTLANGCHANGE = 0x0051,
356 WM_TCARD = 0x0052, 335 WM_TCARD = 0x0052,
357 WM_HELP = 0x0053, 336 WM_HELP = 0x0053,
358 WM_USERCHANGED = 0x0054, 337 WM_USERCHANGED = 0x0054,
359 WM_NOTIFYFORMAT = 0x0055, 338 WM_NOTIFYFORMAT = 0x0055,
360 WM_CONTEXTMENU = 0x007B, 339 WM_CONTEXTMENU = 0x007B,
361 WM_STYLECHANGING = 0x007C, 340 WM_STYLECHANGING = 0x007C,
362 WM_STYLECHANGED = 0x007D, 341 WM_STYLECHANGED = 0x007D,
363 WM_DISPLAYCHANGE = 0x007E, 342 WM_DISPLAYCHANGE = 0x007E,
364 WM_GETICON = 0x007F, 343 WM_GETICON = 0x007F,
365 WM_SETICON = 0x0080, 344 WM_SETICON = 0x0080,
366 WM_NCCREATE = 0x0081, 345 WM_NCCREATE = 0x0081,
367 WM_NCDESTROY = 0x0082, 346 WM_NCDESTROY = 0x0082,
368 WM_NCCALCSIZE = 0x0083, 347 WM_NCCALCSIZE = 0x0083,
369 WM_NCHITTEST = 0x0084, 348 WM_NCHITTEST = 0x0084,
370 WM_NCPAINT = 0x0085, 349 WM_NCPAINT = 0x0085,
371 WM_NCACTIVATE = 0x0086, 350 WM_NCACTIVATE = 0x0086,
372 WM_GETDLGCODE = 0x0087, 351 WM_GETDLGCODE = 0x0087,
373 WM_SYNCPAINT = 0x0088, 352 WM_SYNCPAINT = 0x0088,
374 WM_NCMOUSEMOVE = 0x00A0, 353 WM_NCMOUSEMOVE = 0x00A0,
375 WM_NCLBUTTONDOWN = 0x00A1, 354 WM_NCLBUTTONDOWN = 0x00A1,
376 WM_NCLBUTTONUP = 0x00A2, 355 WM_NCLBUTTONUP = 0x00A2,
377 WM_NCLBUTTONDBLCLK = 0x00A3, 356 WM_NCLBUTTONDBLCLK = 0x00A3,
378 WM_NCRBUTTONDOWN = 0x00A4, 357 WM_NCRBUTTONDOWN = 0x00A4,
379 WM_NCRBUTTONUP = 0x00A5, 358 WM_NCRBUTTONUP = 0x00A5,
380 WM_NCRBUTTONDBLCLK = 0x00A6, 359 WM_NCRBUTTONDBLCLK = 0x00A6,
381 WM_NCMBUTTONDOWN = 0x00A7, 360 WM_NCMBUTTONDOWN = 0x00A7,
382 WM_NCMBUTTONUP = 0x00A8, 361 WM_NCMBUTTONUP = 0x00A8,
383 WM_NCMBUTTONDBLCLK = 0x00A9, 362 WM_NCMBUTTONDBLCLK = 0x00A9,
384 WM_NCXBUTTONDOWN = 0x00AB, 363 WM_NCXBUTTONDOWN = 0x00AB,
385 WM_NCXBUTTONUP = 0x00AC, 364 WM_NCXBUTTONUP = 0x00AC,
386 WM_NCXBUTTONDBLCLK = 0x00AD, 365 WM_NCXBUTTONDBLCLK = 0x00AD,
387 WM_INPUT = 0x00FF, 366 WM_INPUT = 0x00FF,
388 WM_KEYDOWN = 0x0100, 367 WM_KEYDOWN = 0x0100,
389 WM_KEYUP = 0x0101, 368 WM_KEYUP = 0x0101,
390 WM_CHAR = 0x0102, 369 WM_CHAR = 0x0102,
391 WM_DEADCHAR = 0x0103, 370 WM_DEADCHAR = 0x0103,
392 WM_SYSKEYDOWN = 0x0104, 371 WM_SYSKEYDOWN = 0x0104,
393 WM_SYSKEYUP = 0x0105, 372 WM_SYSKEYUP = 0x0105,
394 WM_SYSCHAR = 0x0106, 373 WM_SYSCHAR = 0x0106,
395 WM_SYSDEADCHAR = 0x0107, 374 WM_SYSDEADCHAR = 0x0107,
396 WM_UNICHAR = 0x0109, 375 WM_UNICHAR = 0x0109,
397 WM_IME_STARTCOMPOSITION = 0x010D, 376 WM_IME_STARTCOMPOSITION = 0x010D,
398 WM_IME_ENDCOMPOSITION = 0x010E, 377 WM_IME_ENDCOMPOSITION = 0x010E,
399 WM_IME_COMPOSITION = 0x010F, 378 WM_IME_COMPOSITION = 0x010F,
400 WM_IME_KEYLAST = 0x010F, 379 WM_IME_KEYLAST = 0x010F,
401 WM_INITDIALOG = 0x0110, 380 WM_INITDIALOG = 0x0110,
402 WM_COMMAND = 0x0111, 381 WM_COMMAND = 0x0111,
403 WM_SYSCOMMAND = 0x0112, 382 WM_SYSCOMMAND = 0x0112,
404 WM_TIMER = 0x0113, 383 WM_TIMER = 0x0113,
405 WM_HSCROLL = 0x0114, 384 WM_HSCROLL = 0x0114,
406 WM_VSCROLL = 0x0115, 385 WM_VSCROLL = 0x0115,
407 WM_INITMENU = 0x0116, 386 WM_INITMENU = 0x0116,
408 WM_INITMENUPOPUP = 0x0117, 387 WM_INITMENUPOPUP = 0x0117,
409 WM_MENUSELECT = 0x011F, 388 WM_MENUSELECT = 0x011F,
410 WM_MENUCHAR = 0x0120, 389 WM_MENUCHAR = 0x0120,
411 WM_ENTERIDLE = 0x0121, 390 WM_ENTERIDLE = 0x0121,
412 WM_MENURBUTTONUP = 0x0122, 391 WM_MENURBUTTONUP = 0x0122,
413 WM_MENUDRAG = 0x0123, 392 WM_MENUDRAG = 0x0123,
414 WM_MENUGETOBJECT = 0x0124, 393 WM_MENUGETOBJECT = 0x0124,
415 WM_UNINITMENUPOPUP = 0x0125, 394 WM_UNINITMENUPOPUP = 0x0125,
416 WM_MENUCOMMAND = 0x0126, 395 WM_MENUCOMMAND = 0x0126,
417 WM_CHANGEUISTATE = 0x0127, 396 WM_CHANGEUISTATE = 0x0127,
418 WM_UPDATEUISTATE = 0x0128, 397 WM_UPDATEUISTATE = 0x0128,
419 WM_QUERYUISTATE = 0x0129, 398 WM_QUERYUISTATE = 0x0129,
420 WM_CTLCOLORMSGBOX = 0x0132, 399 WM_CTLCOLORMSGBOX = 0x0132,
421 WM_CTLCOLOREDIT = 0x0133, 400 WM_CTLCOLOREDIT = 0x0133,
422 WM_CTLCOLORLISTBOX = 0x0134, 401 WM_CTLCOLORLISTBOX = 0x0134,
423 WM_CTLCOLORBTN = 0x0135, 402 WM_CTLCOLORBTN = 0x0135,
424 WM_CTLCOLORDLG = 0x0136, 403 WM_CTLCOLORDLG = 0x0136,
425 WM_CTLCOLORSCROLLBAR = 0x0137, 404 WM_CTLCOLORSCROLLBAR = 0x0137,
426 WM_CTLCOLORSTATIC = 0x0138, 405 WM_CTLCOLORSTATIC = 0x0138,
427 WM_MOUSEFIRST = 0x0200, 406 WM_MOUSEFIRST = 0x0200,
428 WM_MOUSEMOVE = 0x0200, 407 WM_MOUSEMOVE = 0x0200,
429 WM_LBUTTONDOWN = 0x0201, 408 WM_LBUTTONDOWN = 0x0201,
430 WM_LBUTTONUP = 0x0202, 409 WM_LBUTTONUP = 0x0202,
431 WM_LBUTTONDBLCLK = 0x0203, 410 WM_LBUTTONDBLCLK = 0x0203,
432 WM_RBUTTONDOWN = 0x0204, 411 WM_RBUTTONDOWN = 0x0204,
433 WM_RBUTTONUP = 0x0205, 412 WM_RBUTTONUP = 0x0205,
434 WM_RBUTTONDBLCLK = 0x0206, 413 WM_RBUTTONDBLCLK = 0x0206,
435 WM_MBUTTONDOWN = 0x0207, 414 WM_MBUTTONDOWN = 0x0207,
436 WM_MBUTTONUP = 0x0208, 415 WM_MBUTTONUP = 0x0208,
437 WM_MBUTTONDBLCLK = 0x0209, 416 WM_MBUTTONDBLCLK = 0x0209,
438 WM_MOUSEWHEEL = 0x020A, 417 WM_MOUSEWHEEL = 0x020A,
439 WM_XBUTTONDOWN = 0x020B, 418 WM_XBUTTONDOWN = 0x020B,
440 WM_XBUTTONUP = 0x020C, 419 WM_XBUTTONUP = 0x020C,
441 WM_XBUTTONDBLCLK = 0x020D, 420 WM_XBUTTONDBLCLK = 0x020D,
442 WM_PARENTNOTIFY = 0x0210, 421 WM_PARENTNOTIFY = 0x0210,
443 WM_ENTERMENULOOP = 0x0211, 422 WM_ENTERMENULOOP = 0x0211,
444 WM_EXITMENULOOP = 0x0212, 423 WM_EXITMENULOOP = 0x0212,
445 WM_NEXTMENU = 0x0213, 424 WM_NEXTMENU = 0x0213,
446 WM_SIZING = 0x0214, 425 WM_SIZING = 0x0214,
447 WM_CAPTURECHANGED = 0x0215, 426 WM_CAPTURECHANGED = 0x0215,
448 WM_MOVING = 0x0216, 427 WM_MOVING = 0x0216,
449 WM_POWERBROADCAST = 0x0218, 428 WM_POWERBROADCAST = 0x0218,
450 WM_DEVICECHANGE = 0x0219, 429 WM_DEVICECHANGE = 0x0219,
451 WM_MDICREATE = 0x0220, 430 WM_MDICREATE = 0x0220,
452 WM_MDIDESTROY = 0x0221, 431 WM_MDIDESTROY = 0x0221,
453 WM_MDIACTIVATE = 0x0222, 432 WM_MDIACTIVATE = 0x0222,
454 WM_MDIRESTORE = 0x0223, 433 WM_MDIRESTORE = 0x0223,
455 WM_MDINEXT = 0x0224, 434 WM_MDINEXT = 0x0224,
456 WM_MDIMAXIMIZE = 0x0225, 435 WM_MDIMAXIMIZE = 0x0225,
457 WM_MDITILE = 0x0226, 436 WM_MDITILE = 0x0226,
458 WM_MDICASCADE = 0x0227, 437 WM_MDICASCADE = 0x0227,
459 WM_MDIICONARRANGE = 0x0228, 438 WM_MDIICONARRANGE = 0x0228,
460 WM_MDIGETACTIVE = 0x0229, 439 WM_MDIGETACTIVE = 0x0229,
461 WM_MDISETMENU = 0x0230, 440 WM_MDISETMENU = 0x0230,
462 WM_ENTERSIZEMOVE = 0x0231, 441 WM_ENTERSIZEMOVE = 0x0231,
463 WM_EXITSIZEMOVE = 0x0232, 442 WM_EXITSIZEMOVE = 0x0232,
464 WM_DROPFILES = 0x0233, 443 WM_DROPFILES = 0x0233,
465 WM_MDIREFRESHMENU = 0x0234, 444 WM_MDIREFRESHMENU = 0x0234,
466 WM_IME_SETCONTEXT = 0x0281, 445 WM_IME_SETCONTEXT = 0x0281,
467 WM_IME_NOTIFY = 0x0282, 446 WM_IME_NOTIFY = 0x0282,
468 WM_IME_CONTROL = 0x0283, 447 WM_IME_CONTROL = 0x0283,
469 WM_IME_COMPOSITIONFULL = 0x0284, 448 WM_IME_COMPOSITIONFULL = 0x0284,
470 WM_IME_SELECT = 0x0285, 449 WM_IME_SELECT = 0x0285,
471 WM_IME_CHAR = 0x0286, 450 WM_IME_CHAR = 0x0286,
472 WM_IME_REQUEST = 0x0288, 451 WM_IME_REQUEST = 0x0288,
473 WM_IME_KEYDOWN = 0x0290, 452 WM_IME_KEYDOWN = 0x0290,
474 WM_IME_KEYUP = 0x0291, 453 WM_IME_KEYUP = 0x0291,
475 WM_MOUSEHOVER = 0x02A1, 454 WM_MOUSEHOVER = 0x02A1,
476 WM_MOUSELEAVE = 0x02A3, 455 WM_MOUSELEAVE = 0x02A3,
477 WM_NCMOUSEHOVER = 0x02A0, 456 WM_NCMOUSEHOVER = 0x02A0,
478 WM_NCMOUSELEAVE = 0x02A2, 457 WM_NCMOUSELEAVE = 0x02A2,
479 WM_WTSSESSION_CHANGE = 0x02B1, 458 WM_WTSSESSION_CHANGE = 0x02B1,
480 WM_TABLET_FIRST = 0x02C0, 459 WM_TABLET_FIRST = 0x02C0,
481 WM_TABLET_LAST = 0x02DF, 460 WM_TABLET_LAST = 0x02DF,
482 WM_CUT = 0x0300, 461 WM_CUT = 0x0300,
483 WM_COPY = 0x0301, 462 WM_COPY = 0x0301,
484 WM_PASTE = 0x0302, 463 WM_PASTE = 0x0302,
485 WM_CLEAR = 0x0303, 464 WM_CLEAR = 0x0303,
486 WM_UNDO = 0x0304, 465 WM_UNDO = 0x0304,
487 WM_RENDERFORMAT = 0x0305, 466 WM_RENDERFORMAT = 0x0305,
488 WM_RENDERALLFORMATS = 0x0306, 467 WM_RENDERALLFORMATS = 0x0306,
489 WM_DESTROYCLIPBOARD = 0x0307, 468 WM_DESTROYCLIPBOARD = 0x0307,
490 WM_DRAWCLIPBOARD = 0x0308, 469 WM_DRAWCLIPBOARD = 0x0308,
491 WM_PAINTCLIPBOARD = 0x0309, 470 WM_PAINTCLIPBOARD = 0x0309,
492 WM_VSCROLLCLIPBOARD = 0x030A, 471 WM_VSCROLLCLIPBOARD = 0x030A,
493 WM_SIZECLIPBOARD = 0x030B, 472 WM_SIZECLIPBOARD = 0x030B,
494 WM_ASKCBFORMATNAME = 0x030C, 473 WM_ASKCBFORMATNAME = 0x030C,
495 WM_CHANGECBCHAIN = 0x030D, 474 WM_CHANGECBCHAIN = 0x030D,
496 WM_HSCROLLCLIPBOARD = 0x030E, 475 WM_HSCROLLCLIPBOARD = 0x030E,
497 WM_QUERYNEWPALETTE = 0x030F, 476 WM_QUERYNEWPALETTE = 0x030F,
498 WM_PALETTEISCHANGING = 0x0310, 477 WM_PALETTEISCHANGING = 0x0310,
499 WM_PALETTECHANGED = 0x0311, 478 WM_PALETTECHANGED = 0x0311,
500 WM_HOTKEY = 0x0312, 479 WM_HOTKEY = 0x0312,
501 WM_PRINT = 0x0317, 480 WM_PRINT = 0x0317,
502 WM_PRINTCLIENT = 0x0318, 481 WM_PRINTCLIENT = 0x0318,
503 WM_APPCOMMAND = 0x0319, 482 WM_APPCOMMAND = 0x0319,
504 WM_THEMECHANGED = 0x031A, 483 WM_THEMECHANGED = 0x031A,
505 WM_HANDHELDFIRST = 0x0358, 484 WM_HANDHELDFIRST = 0x0358,
506 WM_HANDHELDLAST = 0x035F, 485 WM_HANDHELDLAST = 0x035F,
507 WM_AFXFIRST = 0x0360, 486 WM_AFXFIRST = 0x0360,
508 WM_AFXLAST = 0x037F, 487 WM_AFXLAST = 0x037F,
509 WM_PENWINFIRST = 0x0380, 488 WM_PENWINFIRST = 0x0380,
510 WM_PENWINLAST = 0x038F, 489 WM_PENWINLAST = 0x038F,
511 WM_APP = 0x8000, 490 WM_APP = 0x8000,
512 WM_USER = 0x0400 491 WM_USER = 0x0400
513 } 492 }
514 enum { 493 enum {
515 PBT_APMQUERYSUSPEND = 0x0000, 494 PBT_APMQUERYSUSPEND = 0x0000,
516 PBT_APMQUERYSTANDBY = 0x0001, 495 PBT_APMQUERYSTANDBY = 0x0001,
517 PBT_APMQUERYSUSPENDFAILED = 0x0002, 496 PBT_APMQUERYSUSPENDFAILED = 0x0002,
528 PBT_APMRESUMEAUTOMATIC = 0x0012 507 PBT_APMRESUMEAUTOMATIC = 0x0012
529 } 508 }
530 //}}} 509 //}}}
531 510
532 enum { 511 enum {
533 MK_LBUTTON = 0x0001, 512 MK_LBUTTON = 0x0001,
534 MK_RBUTTON = 0x0002, 513 MK_RBUTTON = 0x0002,
535 MK_SHIFT = 0x0004, 514 MK_SHIFT = 0x0004,
536 MK_CONTROL = 0x0008, 515 MK_CONTROL = 0x0008,
537 MK_MBUTTON = 0x0010, 516 MK_MBUTTON = 0x0010,
538 MK_XBUTTON1 = 0x0020, 517 MK_XBUTTON1 = 0x0020,
539 MK_XBUTTON2 = 0x0040 518 MK_XBUTTON2 = 0x0040
540 } 519 }
541 520
542 enum { 521 enum {
543 WMSZ_LEFT = 1, 522 WMSZ_LEFT = 1,
544 WMSZ_RIGHT = 2, 523 WMSZ_RIGHT = 2,
545 WMSZ_TOP = 3, 524 WMSZ_TOP = 3,
546 WMSZ_TOPLEFT = 4, 525 WMSZ_TOPLEFT = 4,
547 WMSZ_TOPRIGHT = 5, 526 WMSZ_TOPRIGHT = 5,
548 WMSZ_BOTTOM = 6, 527 WMSZ_BOTTOM = 6,
549 WMSZ_BOTTOMLEFT = 7, 528 WMSZ_BOTTOMLEFT = 7,
550 WMSZ_BOTTOMRIGHT = 8 529 WMSZ_BOTTOMRIGHT = 8
551 } 530 }
552 531
553 enum { 532 enum {
554 SIZE_RESTORED = 0, 533 SIZE_RESTORED = 0,
557 SIZE_MAXSHOW = 3, 536 SIZE_MAXSHOW = 3,
558 SIZE_MAXHIDE = 4 537 SIZE_MAXHIDE = 4
559 } 538 }
560 539
561 enum { 540 enum {
562 SW_HIDE = 0, 541 SW_HIDE = 0,
563 SW_SHOWNORMAL = 1, 542 SW_SHOWNORMAL = 1,
564 SW_NORMAL = 1, 543 SW_NORMAL = 1,
565 SW_SHOWMINIMIZED = 2, 544 SW_SHOWMINIMIZED = 2,
566 SW_SHOWMAXIMIZED = 3, 545 SW_SHOWMAXIMIZED = 3,
567 SW_MAXIMIZE = 3, 546 SW_MAXIMIZE = 3,
568 SW_SHOWNOACTIVATE = 4, 547 SW_SHOWNOACTIVATE = 4,
569 SW_SHOW = 5, 548 SW_SHOW = 5,
570 SW_MINIMIZE = 6, 549 SW_MINIMIZE = 6,
571 SW_SHOWMINNOACTIVE = 7, 550 SW_SHOWMINNOACTIVE = 7,
572 SW_SHOWNA = 8, 551 SW_SHOWNA = 8,
573 SW_RESTORE = 9, 552 SW_RESTORE = 9,
574 SW_SHOWDEFAULT = 10, 553 SW_SHOWDEFAULT = 10,
575 SW_FORCEMINIMIZE = 11, 554 SW_FORCEMINIMIZE = 11,
576 SW_MAX = 11 555 SW_MAX = 11
577 } 556 }
578 557
579 enum { 558 enum {
580 GWL_STYLE = -16, 559 GWL_STYLE = -16,
581 GWL_EXSTYLE = -20 560 GWL_EXSTYLE = -20
582 } 561 }
583 562
584 DWORD GetClassLongA(HWND hWnd, int nIndex);
585 DWORD GetClassLongW(HWND hWnd, int nIndex); 563 DWORD GetClassLongW(HWND hWnd, int nIndex);
586 564
587 DWORD SetClassLongA(HWND hWnd, int nIndex, LONG dwNewLong);
588 DWORD SetClassLongW(HWND hWnd, int nIndex, LONG dwNewLong); 565 DWORD SetClassLongW(HWND hWnd, int nIndex, LONG dwNewLong);
589 566
590 ULONG_PTR GetClassLongPtrA(HWND hWnd, int nIndex);
591 ULONG_PTR GetClassLongPtrW(HWND hWnd, int nIndex); 567 ULONG_PTR GetClassLongPtrW(HWND hWnd, int nIndex);
592 568
593 ULONG_PTR SetClassLongPtrA(HWND hWnd, int nIndex, LONG_PTR dwNewLong);
594 ULONG_PTR SetClassLongPtrW(HWND hWnd, int nIndex, LONG_PTR dwNewLong); 569 ULONG_PTR SetClassLongPtrW(HWND hWnd, int nIndex, LONG_PTR dwNewLong);
595 570
596 LONG GetWindowLongA(HWND hWnd, int nIndex);
597 LONG GetWindowLongW(HWND hWnd, int nIndex); 571 LONG GetWindowLongW(HWND hWnd, int nIndex);
598 572
599 LONG SetWindowLongA(HWND hWnd, int nIndex, LONG dwNewLong);
600 LONG SetWindowLongW(HWND hWnd, int nIndex, LONG dwNewLong); 573 LONG SetWindowLongW(HWND hWnd, int nIndex, LONG dwNewLong);
601 574
602 LONG_PTR GetWindowLongPtrA(HWND hWnd, int nIndex);
603 LONG_PTR GetWindowLongPtrW(HWND hWnd, int nIndex); 575 LONG_PTR GetWindowLongPtrW(HWND hWnd, int nIndex);
604 576
605 LONG_PTR SetWindowLongPtrA(HWND hWnd, int nIndex, LONG_PTR dwNewLong);
606 LONG_PTR SetWindowLongPtrW(HWND hWnd, int nIndex, LONG_PTR dwNewLong); 577 LONG_PTR SetWindowLongPtrW(HWND hWnd, int nIndex, LONG_PTR dwNewLong);
607 578
608 BOOL ShowWindow(HWND hWnd, int nCmdShow); 579 BOOL ShowWindow(HWND hWnd, int nCmdShow);
609 580
610 //Windows 98 required 581 //Windows 98 required
617 BOOL GetWindowRect(HWND hWnd, RECT* lpRect); 588 BOOL GetWindowRect(HWND hWnd, RECT* lpRect);
618 589
619 BOOL GetClientRect(HWND hWnd, RECT* lpRect); 590 BOOL GetClientRect(HWND hWnd, RECT* lpRect);
620 591
621 enum { 592 enum {
622 SWP_NOSIZE = 0x0001, 593 SWP_NOSIZE = 0x0001,
623 SWP_NOMOVE = 0x0002, 594 SWP_NOMOVE = 0x0002,
624 SWP_NOZORDER = 0x0004, 595 SWP_NOZORDER = 0x0004,
625 SWP_NOACTIVATE = 0x0010, 596 SWP_NOACTIVATE = 0x0010,
626 SWP_FRAMECHANGED = 0x0020 597 SWP_FRAMECHANGED = 0x0020
627 } 598 }
628 599
629 BOOL SetWindowPos(HWND hWnd, HWND hWndInsertAfter, int x, int y, int cx, int cy, UINT uFlags); 600 BOOL SetWindowPos(HWND hWnd, HWND hWndInsertAfter, int x, int y, int cx, int cy, UINT uFlags);
630 601
632 603
633 int SetWindowRgn(HWND hWnd, HRGN hRgn, BOOL bRedraw); 604 int SetWindowRgn(HWND hWnd, HRGN hRgn, BOOL bRedraw);
634 605
635 enum { 606 enum {
636 ULW_COLORKEY = 0x00000001, 607 ULW_COLORKEY = 0x00000001,
637 ULW_ALPHA = 0x00000002, 608 ULW_ALPHA = 0x00000002,
638 ULW_OPAQUE = 0x00000004 609 ULW_OPAQUE = 0x00000004
639 } 610 }
640 611
641 BOOL UpdateLayeredWindow( 612 BOOL UpdateLayeredWindow(
642 HWND hWnd, 613 HWND hWnd,
643 HDC hdcDst, 614 HDC hdcDst,
657 628
658 BOOL EnableWindow(HWND hWnd, BOOL bEnable); 629 BOOL EnableWindow(HWND hWnd, BOOL bEnable);
659 630
660 enum { 631 enum {
661 GW_HWNDFIRST = 0, 632 GW_HWNDFIRST = 0,
662 GW_HWNDLAST = 1, 633 GW_HWNDLAST = 1,
663 GW_HWNDNEXT = 2, 634 GW_HWNDNEXT = 2,
664 GW_HWNDPREV = 3, 635 GW_HWNDPREV = 3,
665 GW_OWNER = 4, 636 GW_OWNER = 4,
666 GW_CHILD = 5 637 GW_CHILD = 5
667 } 638 }
668 639
669 HWND GetWindow(HWND hWnd, UINT uCmd); 640 HWND GetWindow(HWND hWnd, UINT uCmd);
670 641
671 BOOL GetWindowInfo(HWND hwnd, WINDOWINFO* pwi); 642 BOOL GetWindowInfo(HWND hwnd, WINDOWINFO* pwi);
672 643
673 int GetWindowTextLength(HWND hWnd); 644 int GetWindowTextLength(HWND hWnd);
674 645
675 int GetWindowTextA(HWND hWnd, LPSTR lpString, int nMaxCount);
676 int GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount); 646 int GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount);
677 647
678 BOOL SetWindowTextA(HWND hWnd, LPCSTR lpString);
679 BOOL SetWindowTextW(HWND hWnd, LPCWSTR lpString); 648 BOOL SetWindowTextW(HWND hWnd, LPCWSTR lpString);
680 649
681 UINT GetWindowModuleFileNameA(HWND hWnd, LPSTR lpszFileName, UINT cchFileNameMax);
682 UINT GetWindowModuleFileNameW(HWND hWnd, LPWSTR lpszFileName, UINT cchFileNameMax); 650 UINT GetWindowModuleFileNameW(HWND hWnd, LPWSTR lpszFileName, UINT cchFileNameMax);
683 651
684 BOOL SetPropA(HWND hWnd, LPCSTR lpString, HANDLE hData);
685 BOOL SetPropW(HWND hWnd, LPCWSTR lpString, HANDLE hData); 652 BOOL SetPropW(HWND hWnd, LPCWSTR lpString, HANDLE hData);
686 653
687 HANDLE GetPropA(HWND hWnd, LPCSTR lpString);
688 HANDLE GetPropW(HWND hWnd, LPCWSTR lpString); 654 HANDLE GetPropW(HWND hWnd, LPCWSTR lpString);
689 655
690 HANDLE RemovePropA(HWND hWnd, LPCSTR lpString);
691 HANDLE RemovePropW(HWND hWnd, LPCWSTR lpString); 656 HANDLE RemovePropW(HWND hWnd, LPCWSTR lpString);
692 657
693 DWORD CommDlgExtendedError(); 658 DWORD CommDlgExtendedError();
694 enum { FNERR_BUFFERTOOSMALL = 0x3003 } 659 enum { FNERR_BUFFERTOOSMALL = 0x3003 }
695 660
696 enum { 661 enum {
697 OFN_READONLY = 0x00000001, 662 OFN_READONLY = 0x00000001,
698 OFN_OVERWRITEPROMPT = 0x00000002, 663 OFN_OVERWRITEPROMPT = 0x00000002,
699 OFN_HIDEREADONLY = 0x00000004, 664 OFN_HIDEREADONLY = 0x00000004,
700 OFN_NOCHANGEDIR = 0x00000008, 665 OFN_NOCHANGEDIR = 0x00000008,
701 OFN_SHOWHELP = 0x00000010, 666 OFN_SHOWHELP = 0x00000010,
702 OFN_ENABLEHOOK = 0x00000020, 667 OFN_ENABLEHOOK = 0x00000020,
703 OFN_ENABLETEMPLATE = 0x00000040, 668 OFN_ENABLETEMPLATE = 0x00000040,
704 OFN_ENABLETEMPLATEHANDLE = 0x00000080, 669 OFN_ENABLETEMPLATEHANDLE = 0x00000080,
705 OFN_NOVALIDATE = 0x00000100, 670 OFN_NOVALIDATE = 0x00000100,
706 OFN_ALLOWMULTISELECT = 0x00000200, 671 OFN_ALLOWMULTISELECT = 0x00000200,
707 OFN_EXTENSIONDIFFERENT = 0x00000400, 672 OFN_EXTENSIONDIFFERENT = 0x00000400,
708 OFN_PATHMUSTEXIST = 0x00000800, 673 OFN_PATHMUSTEXIST = 0x00000800,
709 OFN_FILEMUSTEXIST = 0x00001000, 674 OFN_FILEMUSTEXIST = 0x00001000,
710 OFN_CREATEPROMPT = 0x00002000, 675 OFN_CREATEPROMPT = 0x00002000,
711 OFN_SHAREAWARE = 0x00004000, 676 OFN_SHAREAWARE = 0x00004000,
712 OFN_NOREADONLYRETURN = 0x00008000, 677 OFN_NOREADONLYRETURN = 0x00008000,
713 OFN_NOTESTFILECREATE = 0x00010000, 678 OFN_NOTESTFILECREATE = 0x00010000,
714 OFN_NONETWORKBUTTON = 0x00020000, 679 OFN_NONETWORKBUTTON = 0x00020000,
715 OFN_NOLONGNAMES = 0x00040000, 680 OFN_NOLONGNAMES = 0x00040000,
716 OFN_EXPLORER = 0x00080000, 681 OFN_EXPLORER = 0x00080000,
717 OFN_NODEREFERENCELINKS = 0x00100000, 682 OFN_NODEREFERENCELINKS = 0x00100000,
718 OFN_LONGNAMES = 0x00200000, 683 OFN_LONGNAMES = 0x00200000,
719 OFN_ENABLEINCLUDENOTIFY = 0x00400000, 684 OFN_ENABLEINCLUDENOTIFY = 0x00400000,
720 OFN_ENABLESIZING = 0x00800000, 685 OFN_ENABLESIZING = 0x00800000,
721 OFN_DONTADDTORECENT = 0x02000000, 686 OFN_DONTADDTORECENT = 0x02000000,
722 OFN_FORCESHOWHIDDEN = 0x10000000 687 OFN_FORCESHOWHIDDEN = 0x10000000
723 } 688 }
724 689
725 BOOL GetOpenFileNameA(OPENFILENAME* lpofn);
726 BOOL GetOpenFileNameW(OPENFILENAME* lpofn); 690 BOOL GetOpenFileNameW(OPENFILENAME* lpofn);
727 691
728 BOOL GetSaveFileNameA(OPENFILENAME* lpofn);
729 BOOL GetSaveFileNameW(OPENFILENAME* lpofn); 692 BOOL GetSaveFileNameW(OPENFILENAME* lpofn);
730 693
731 //}}} 694 //}}}
732 695
733 //{{{ painting functions 696 //{{{ painting functions
783 } 746 }
784 747
785 BOOL BitBlt(HDC hdc, int x, int y, int cx, int cy, HDC hdcSrc, int x1, int y1, DWORD rop); 748 BOOL BitBlt(HDC hdc, int x, int y, int cx, int cy, HDC hdcSrc, int x1, int y1, DWORD rop);
786 749
787 enum { 750 enum {
788 AC_SRC_OVER = 0x00, 751 AC_SRC_OVER = 0x00,
789 AC_SRC_ALPHA = 0x01 752 AC_SRC_ALPHA = 0x01
790 } 753 }
791 754
792 int EnumFontFamiliesExA(
793 HDC hdc, LOGFONT* lpLogfont,
794 FONTENUMPROCA lpProc, LPARAM lParam, DWORD dwFlags);
795 int EnumFontFamiliesExW( 755 int EnumFontFamiliesExW(
796 HDC hdc, LOGFONT* lpLogfont, 756 HDC hdc, LOGFONT* lpLogfont,
797 FONTENUMPROCW lpProc, LPARAM lParam, DWORD dwFlags); 757 FONTENUMPROCW lpProc, LPARAM lParam, DWORD dwFlags);
798 758
799 alias int function(ENUMLOGFONTEX*, TEXTMETRIC*, DWORD, LPARAM) FONTENUMPROCA; 759 alias int function(ENUMLOGFONTEX*, TEXTMETRIC*, DWORD, LPARAM) FONTENUMPROCA;
800 alias int function(ENUMLOGFONTEX*, TEXTMETRIC*, DWORD, LPARAM) FONTENUMPROCW; 760 alias int function(ENUMLOGFONTEX*, TEXTMETRIC*, DWORD, LPARAM) FONTENUMPROCW;
801 //}}} 761 //}}}
802 762
803 //{{{ message functions 763 //{{{ message functions
804 BOOL GetMessageA(MSG* lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax);
805 BOOL GetMessageW(MSG* lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax); 764 BOOL GetMessageW(MSG* lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax);
806 765
807 BOOL TranslateMessage(MSG* lpMsg); 766 BOOL TranslateMessage(MSG* lpMsg);
808 767
809 LRESULT DispatchMessageA(MSG* lpMsg);
810 LRESULT DispatchMessageW(MSG* lpMsg); 768 LRESULT DispatchMessageW(MSG* lpMsg);
811
812 BOOL PostMessageA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
813 769
814 BOOL PostMessageW(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); 770 BOOL PostMessageW(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
815 771
816 void PostQuitMessage(int nExitCode); 772 void PostQuitMessage(int nExitCode);
817 773
822 BOOL ReplyMessage(LRESULT lResult); 778 BOOL ReplyMessage(LRESULT lResult);
823 //}}} 779 //}}}
824 780
825 //{{{ clipboard functions 781 //{{{ clipboard functions
826 enum { 782 enum {
827 CF_TEXT = 1, 783 CF_TEXT = 1,
828 CF_BITMAP = 2, 784 CF_BITMAP = 2,
829 CF_METAFILEPICT = 3, 785 CF_METAFILEPICT = 3,
830 CF_SYLK = 4, 786 CF_SYLK = 4,
831 CF_DIF = 5, 787 CF_DIF = 5,
832 CF_TIFF = 6, 788 CF_TIFF = 6,
833 CF_OEMTEXT = 7, 789 CF_OEMTEXT = 7,
834 CF_DIB = 8, 790 CF_DIB = 8,
835 CF_PALETTE = 9, 791 CF_PALETTE = 9,
836 CF_PENDATA = 10, 792 CF_PENDATA = 10,
837 CF_RIFF = 11, 793 CF_RIFF = 11,
838 CF_WAVE = 12, 794 CF_WAVE = 12,
839 CF_UNICODETEXT = 13, 795 CF_UNICODETEXT = 13,
840 CF_ENHMETAFILE = 14, 796 CF_ENHMETAFILE = 14,
841 CF_HDROP = 15, 797 CF_HDROP = 15,
842 CF_LOCALE = 16 798 CF_LOCALE = 16
843 } 799 }
844 800
845 BOOL OpenClipboard(HWND hWndNewOwner); 801 BOOL OpenClipboard(HWND hWndNewOwner);
846 802
847 BOOL CloseClipboard(); 803 BOOL CloseClipboard();
864 HWND SetCapture(HWND hWnd); 820 HWND SetCapture(HWND hWnd);
865 821
866 BOOL ReleaseCapture(); 822 BOOL ReleaseCapture();
867 823
868 enum { 824 enum {
869 TME_HOVER = 0x00000001, 825 TME_HOVER = 0x00000001,
870 TME_LEAVE = 0x00000002, 826 TME_LEAVE = 0x00000002,
871 TME_NONCLIENT = 0x00000010 827 TME_NONCLIENT = 0x00000010
872 } 828 }
873 BOOL TrackMouseEvent(TRACKMOUSEEVENT* lpEventTrack); 829 BOOL TrackMouseEvent(TRACKMOUSEEVENT* lpEventTrack);
874 830
875 HCURSOR SetCursor(HCURSOR hCursor); 831 HCURSOR SetCursor(HCURSOR hCursor);
878 //}}} 834 //}}}
879 835
880 //{{{ keyboard functions 836 //{{{ keyboard functions
881 //{{{ keys 837 //{{{ keys
882 enum { 838 enum {
883 VK_LBUTTON = 0x01, 839 VK_LBUTTON = 0x01,
884 VK_RBUTTON = 0x02, 840 VK_RBUTTON = 0x02,
885 VK_CANCEL = 0x03, 841 VK_CANCEL = 0x03,
886 VK_MBUTTON = 0x04, 842 VK_MBUTTON = 0x04,
887 VK_XBUTTON1 = 0x05, 843 VK_XBUTTON1 = 0x05,
888 VK_XBUTTON2 = 0x06, 844 VK_XBUTTON2 = 0x06,
889 VK_BACK = 0x08, 845 VK_BACK = 0x08,
890 VK_TAB = 0x09, 846 VK_TAB = 0x09,
891 VK_CLEAR = 0x0C, 847 VK_CLEAR = 0x0C,
892 VK_RETURN = 0x0D, 848 VK_RETURN = 0x0D,
893 VK_SHIFT = 0x10, 849 VK_SHIFT = 0x10,
894 VK_CONTROL = 0x11, 850 VK_CONTROL = 0x11,
895 VK_MENU = 0x12, 851 VK_MENU = 0x12,
896 VK_PAUSE = 0x13, 852 VK_PAUSE = 0x13,
897 VK_CAPITAL = 0x14, 853 VK_CAPITAL = 0x14,
898 VK_KANA = 0x15, 854 VK_KANA = 0x15,
899 VK_HANGEUL = 0x15, 855 VK_HANGEUL = 0x15,
900 VK_HANGUL = 0x15, 856 VK_HANGUL = 0x15,
901 VK_JUNJA = 0x17, 857 VK_JUNJA = 0x17,
902 VK_FINAL = 0x18, 858 VK_FINAL = 0x18,
903 VK_HANJA = 0x19, 859 VK_HANJA = 0x19,
904 VK_KANJI = 0x19, 860 VK_KANJI = 0x19,
905 VK_ESCAPE = 0x1B, 861 VK_ESCAPE = 0x1B,
906 VK_CONVERT = 0x1C, 862 VK_CONVERT = 0x1C,
907 VK_NONCONVERT = 0x1D, 863 VK_NONCONVERT = 0x1D,
908 VK_ACCEPT = 0x1E, 864 VK_ACCEPT = 0x1E,
909 VK_MODECHANGE = 0x1F, 865 VK_MODECHANGE = 0x1F,
910 VK_SPACE = 0x20, 866 VK_SPACE = 0x20,
911 VK_PRIOR = 0x21, 867 VK_PRIOR = 0x21,
912 VK_NEXT = 0x22, 868 VK_NEXT = 0x22,
913 VK_END = 0x23, 869 VK_END = 0x23,
914 VK_HOME = 0x24, 870 VK_HOME = 0x24,
915 VK_LEFT = 0x25, 871 VK_LEFT = 0x25,
916 VK_UP = 0x26, 872 VK_UP = 0x26,
917 VK_RIGHT = 0x27, 873 VK_RIGHT = 0x27,
918 VK_DOWN = 0x28, 874 VK_DOWN = 0x28,
919 VK_SELECT = 0x29, 875 VK_SELECT = 0x29,
920 VK_PRINT = 0x2A, 876 VK_PRINT = 0x2A,
921 VK_EXECUTE = 0x2B, 877 VK_EXECUTE = 0x2B,
922 VK_SNAPSHOT = 0x2C, 878 VK_SNAPSHOT = 0x2C,
923 VK_INSERT = 0x2D, 879 VK_INSERT = 0x2D,
924 VK_DELETE = 0x2E, 880 VK_DELETE = 0x2E,
925 VK_HELP = 0x2F, 881 VK_HELP = 0x2F,
926 VK_LWIN = 0x5B, 882 VK_LWIN = 0x5B,
927 VK_RWIN = 0x5C, 883 VK_RWIN = 0x5C,
928 VK_APPS = 0x5D, 884 VK_APPS = 0x5D,
929 VK_SLEEP = 0x5F, 885 VK_SLEEP = 0x5F,
930 VK_NUMPAD0 = 0x60, 886 VK_NUMPAD0 = 0x60,
931 VK_NUMPAD1 = 0x61, 887 VK_NUMPAD1 = 0x61,
932 VK_NUMPAD2 = 0x62, 888 VK_NUMPAD2 = 0x62,
933 VK_NUMPAD3 = 0x63, 889 VK_NUMPAD3 = 0x63,
934 VK_NUMPAD4 = 0x64, 890 VK_NUMPAD4 = 0x64,
935 VK_NUMPAD5 = 0x65, 891 VK_NUMPAD5 = 0x65,
936 VK_NUMPAD6 = 0x66, 892 VK_NUMPAD6 = 0x66,
937 VK_NUMPAD7 = 0x67, 893 VK_NUMPAD7 = 0x67,
938 VK_NUMPAD8 = 0x68, 894 VK_NUMPAD8 = 0x68,
939 VK_NUMPAD9 = 0x69, 895 VK_NUMPAD9 = 0x69,
940 VK_MULTIPLY = 0x6A, 896 VK_MULTIPLY = 0x6A,
941 VK_ADD = 0x6B, 897 VK_ADD = 0x6B,
942 VK_SEPARATOR = 0x6C, 898 VK_SEPARATOR = 0x6C,
943 VK_SUBTRACT = 0x6D, 899 VK_SUBTRACT = 0x6D,
944 VK_DECIMAL = 0x6E, 900 VK_DECIMAL = 0x6E,
945 VK_DIVIDE = 0x6F, 901 VK_DIVIDE = 0x6F,
946 VK_F1 = 0x70, 902 VK_F1 = 0x70,
947 VK_F2 = 0x71, 903 VK_F2 = 0x71,
948 VK_F3 = 0x72, 904 VK_F3 = 0x72,
949 VK_F4 = 0x73, 905 VK_F4 = 0x73,
950 VK_F5 = 0x74, 906 VK_F5 = 0x74,
951 VK_F6 = 0x75, 907 VK_F6 = 0x75,
952 VK_F7 = 0x76, 908 VK_F7 = 0x76,
953 VK_F8 = 0x77, 909 VK_F8 = 0x77,
954 VK_F9 = 0x78, 910 VK_F9 = 0x78,
955 VK_F10 = 0x79, 911 VK_F10 = 0x79,
956 VK_F11 = 0x7A, 912 VK_F11 = 0x7A,
957 VK_F12 = 0x7B, 913 VK_F12 = 0x7B,
958 VK_F13 = 0x7C, 914 VK_F13 = 0x7C,
959 VK_F14 = 0x7D, 915 VK_F14 = 0x7D,
960 VK_F15 = 0x7E, 916 VK_F15 = 0x7E,
961 VK_F16 = 0x7F, 917 VK_F16 = 0x7F,
962 VK_F17 = 0x80, 918 VK_F17 = 0x80,
963 VK_F18 = 0x81, 919 VK_F18 = 0x81,
964 VK_F19 = 0x82, 920 VK_F19 = 0x82,
965 VK_F20 = 0x83, 921 VK_F20 = 0x83,
966 VK_F21 = 0x84, 922 VK_F21 = 0x84,
967 VK_F22 = 0x85, 923 VK_F22 = 0x85,
968 VK_F23 = 0x86, 924 VK_F23 = 0x86,
969 VK_F24 = 0x87, 925 VK_F24 = 0x87,
970 VK_NUMLOCK = 0x90, 926 VK_NUMLOCK = 0x90,
971 VK_SCROLL = 0x91, 927 VK_SCROLL = 0x91,
972 VK_OEM_NEC_EQUAL = 0x92, 928 VK_OEM_NEC_EQUAL = 0x92,
973 VK_OEM_FJ_JISHO = 0x92, 929 VK_OEM_FJ_JISHO = 0x92,
974 VK_OEM_FJ_MASSHOU = 0x93, 930 VK_OEM_FJ_MASSHOU = 0x93,
975 VK_OEM_FJ_TOUROKU = 0x94, 931 VK_OEM_FJ_TOUROKU = 0x94,
976 VK_OEM_FJ_LOYA = 0x95, 932 VK_OEM_FJ_LOYA = 0x95,
977 VK_OEM_FJ_ROYA = 0x96, 933 VK_OEM_FJ_ROYA = 0x96,
978 VK_LSHIFT = 0xA0, 934 VK_LSHIFT = 0xA0,
979 VK_RSHIFT = 0xA1, 935 VK_RSHIFT = 0xA1,
980 VK_LCONTROL = 0xA2, 936 VK_LCONTROL = 0xA2,
981 VK_RCONTROL = 0xA3, 937 VK_RCONTROL = 0xA3,
982 VK_LMENU = 0xA4, 938 VK_LMENU = 0xA4,
983 VK_RMENU = 0xA5, 939 VK_RMENU = 0xA5,
984 VK_BROWSER_BACK = 0xA6, 940 VK_BROWSER_BACK = 0xA6,
985 VK_BROWSER_FORWARD = 0xA7, 941 VK_BROWSER_FORWARD = 0xA7,
986 VK_BROWSER_REFRESH = 0xA8, 942 VK_BROWSER_REFRESH = 0xA8,
987 VK_BROWSER_STOP = 0xA9, 943 VK_BROWSER_STOP = 0xA9,
988 VK_BROWSER_SEARCH = 0xAA, 944 VK_BROWSER_SEARCH = 0xAA,
989 VK_BROWSER_FAVORITES = 0xAB, 945 VK_BROWSER_FAVORITES = 0xAB,
990 VK_BROWSER_HOME = 0xAC, 946 VK_BROWSER_HOME = 0xAC,
991 VK_VOLUME_MUTE = 0xAD, 947 VK_VOLUME_MUTE = 0xAD,
992 VK_VOLUME_DOWN = 0xAE, 948 VK_VOLUME_DOWN = 0xAE,
993 VK_VOLUME_UP = 0xAF, 949 VK_VOLUME_UP = 0xAF,
994 VK_MEDIA_NEXT_TRACK = 0xB0, 950 VK_MEDIA_NEXT_TRACK = 0xB0,
995 VK_MEDIA_PREV_TRACK = 0xB1, 951 VK_MEDIA_PREV_TRACK = 0xB1,
996 VK_MEDIA_STOP = 0xB2, 952 VK_MEDIA_STOP = 0xB2,
997 VK_MEDIA_PLAY_PAUSE = 0xB3, 953 VK_MEDIA_PLAY_PAUSE = 0xB3,
998 VK_LAUNCH_MAIL = 0xB4, 954 VK_LAUNCH_MAIL = 0xB4,
999 VK_LAUNCH_MEDIA_SELECT = 0xB5, 955 VK_LAUNCH_MEDIA_SELECT = 0xB5,
1000 VK_LAUNCH_APP1 = 0xB6, 956 VK_LAUNCH_APP1 = 0xB6,
1001 VK_LAUNCH_APP2 = 0xB7, 957 VK_LAUNCH_APP2 = 0xB7,
1002 VK_OEM_1 = 0xBA, 958 VK_OEM_1 = 0xBA,
1003 VK_OEM_PLUS = 0xBB, 959 VK_OEM_PLUS = 0xBB,
1004 VK_OEM_COMMA = 0xBC, 960 VK_OEM_COMMA = 0xBC,
1005 VK_OEM_MINUS = 0xBD, 961 VK_OEM_MINUS = 0xBD,
1006 VK_OEM_PERIOD = 0xBE, 962 VK_OEM_PERIOD = 0xBE,
1007 VK_OEM_2 = 0xBF, 963 VK_OEM_2 = 0xBF,
1008 VK_OEM_3 = 0xC0, 964 VK_OEM_3 = 0xC0,
1009 VK_OEM_4 = 0xDB, 965 VK_OEM_4 = 0xDB,
1010 VK_OEM_5 = 0xDC, 966 VK_OEM_5 = 0xDC,
1011 VK_OEM_6 = 0xDD, 967 VK_OEM_6 = 0xDD,
1012 VK_OEM_7 = 0xDE, 968 VK_OEM_7 = 0xDE,
1013 VK_OEM_8 = 0xDF, 969 VK_OEM_8 = 0xDF,
1014 VK_OEM_AX = 0xE1, 970 VK_OEM_AX = 0xE1,
1015 VK_OEM_102 = 0xE2, 971 VK_OEM_102 = 0xE2,
1016 VK_ICO_HELP = 0xE3, 972 VK_ICO_HELP = 0xE3,
1017 VK_ICO_00 = 0xE4, 973 VK_ICO_00 = 0xE4,
1018 VK_PROCESSKEY = 0xE5, 974 VK_PROCESSKEY = 0xE5,
1019 VK_ICO_CLEAR = 0xE6, 975 VK_ICO_CLEAR = 0xE6,
1020 VK_PACKET = 0xE7, 976 VK_PACKET = 0xE7,
1021 VK_OEM_RESET = 0xE9, 977 VK_OEM_RESET = 0xE9,
1022 VK_OEM_JUMP = 0xEA, 978 VK_OEM_JUMP = 0xEA,
1023 VK_OEM_PA1 = 0xEB, 979 VK_OEM_PA1 = 0xEB,
1024 VK_OEM_PA2 = 0xEC, 980 VK_OEM_PA2 = 0xEC,
1025 VK_OEM_PA3 = 0xED, 981 VK_OEM_PA3 = 0xED,
1026 VK_OEM_WSCTRL = 0xEE, 982 VK_OEM_WSCTRL = 0xEE,
1027 VK_OEM_CUSEL = 0xEF, 983 VK_OEM_CUSEL = 0xEF,
1028 VK_OEM_ATTN = 0xF0, 984 VK_OEM_ATTN = 0xF0,
1029 VK_OEM_FINISH = 0xF1, 985 VK_OEM_FINISH = 0xF1,
1030 VK_OEM_COPY = 0xF2, 986 VK_OEM_COPY = 0xF2,
1031 VK_OEM_AUTO = 0xF3, 987 VK_OEM_AUTO = 0xF3,
1032 VK_OEM_ENLW = 0xF4, 988 VK_OEM_ENLW = 0xF4,
1033 VK_OEM_BACKTAB = 0xF5, 989 VK_OEM_BACKTAB = 0xF5,
1034 VK_ATTN = 0xF6, 990 VK_ATTN = 0xF6,
1035 VK_CRSEL = 0xF7, 991 VK_CRSEL = 0xF7,
1036 VK_EXSEL = 0xF8, 992 VK_EXSEL = 0xF8,
1037 VK_EREOF = 0xF9, 993 VK_EREOF = 0xF9,
1038 VK_PLAY = 0xFA, 994 VK_PLAY = 0xFA,
1039 VK_ZOOM = 0xFB, 995 VK_ZOOM = 0xFB,
1040 VK_NONAME = 0xFC, 996 VK_NONAME = 0xFC,
1041 VK_PA1 = 0xFD, 997 VK_PA1 = 0xFD,
1042 VK_OEM_CLEAR = 0xFE 998 VK_OEM_CLEAR = 0xFE
1043 } 999 }
1044 //}}} 1000 //}}}
1045 1001
1046 SHORT GetKeyState(int nVirtKey); 1002 SHORT GetKeyState(int nVirtKey);
1047 //}}} 1003 //}}}
1048 1004
1049 //{{{ system functions 1005 //{{{ system functions
1050 //const LPTSTR IDC_ARROW = cast(LPTSTR)32512u; 1006 //const LPTSTR IDC_ARROW = cast(LPTSTR)32512u;
1051 //const LPTSTR IDC_IBEAM = cast(LPTSTR)32513u; 1007 //const LPTSTR IDC_IBEAM = cast(LPTSTR)32513u;
1052 //const LPTSTR IDC_WAIT = cast(LPTSTR)32514u; 1008 //const LPTSTR IDC_WAIT = cast(LPTSTR)32514u;
1053 //const LPTSTR IDC_CROSS = cast(LPTSTR)32515u; 1009 //const LPTSTR IDC_CROSS = cast(LPTSTR)32515u;
1054 //const LPTSTR IDC_UPARROW = cast(LPTSTR)32516u; 1010 //const LPTSTR IDC_UPARROW = cast(LPTSTR)32516u;
1055 //const LPTSTR IDC_SIZE = cast(LPTSTR)32640u; 1011 //const LPTSTR IDC_SIZE = cast(LPTSTR)32640u;
1056 //const LPTSTR IDC_ICON = cast(LPTSTR)32641u; 1012 //const LPTSTR IDC_ICON = cast(LPTSTR)32641u;
1057 //const LPTSTR IDC_SIZENWSE = cast(LPTSTR)32642u; 1013 //const LPTSTR IDC_SIZENWSE = cast(LPTSTR)32642u;
1058 //const LPTSTR IDC_SIZENESW = cast(LPTSTR)32643u; 1014 //const LPTSTR IDC_SIZENESW = cast(LPTSTR)32643u;
1059 //const LPTSTR IDC_SIZEWE = cast(LPTSTR)32644u; 1015 //const LPTSTR IDC_SIZEWE = cast(LPTSTR)32644u;
1060 //const LPTSTR IDC_SIZENS = cast(LPTSTR)32645u; 1016 //const LPTSTR IDC_SIZENS = cast(LPTSTR)32645u;
1061 //const LPTSTR IDC_SIZEALL = cast(LPTSTR)32646u; 1017 //const LPTSTR IDC_SIZEALL = cast(LPTSTR)32646u;
1062 //const LPTSTR IDC_NO = cast(LPTSTR)32648u; 1018 //const LPTSTR IDC_NO = cast(LPTSTR)32648u;
1063 //const LPTSTR IDC_HAND = cast(LPTSTR)32649u; 1019 //const LPTSTR IDC_HAND = cast(LPTSTR)32649u;
1064 //const LPTSTR IDC_APPSTARTING = cast(LPTSTR)32650u; 1020 //const LPTSTR IDC_APPSTARTING = cast(LPTSTR)32650u;
1065 //const LPTSTR IDC_HELP = cast(LPTSTR)32651u; 1021 //const LPTSTR IDC_HELP = cast(LPTSTR)32651u;
1066 1022
1067 //const LPTSTR IDI_APPLICATION = cast(LPTSTR)32512; 1023 //const LPTSTR IDI_APPLICATION = cast(LPTSTR)32512;
1068 //const LPTSTR IDI_HAND = cast(LPTSTR)32513; 1024 //const LPTSTR IDI_HAND = cast(LPTSTR)32513;
1069 //const LPTSTR IDI_QUESTION = cast(LPTSTR)32514; 1025 //const LPTSTR IDI_QUESTION = cast(LPTSTR)32514;
1070 //const LPTSTR IDI_EXCLAMATION = cast(LPTSTR)32515; 1026 //const LPTSTR IDI_EXCLAMATION = cast(LPTSTR)32515;
1071 //const LPTSTR IDI_ASTERISK = cast(LPTSTR)32516; 1027 //const LPTSTR IDI_ASTERISK = cast(LPTSTR)32516;
1072 //const LPTSTR IDI_WINLOGO = cast(LPTSTR)32517; 1028 //const LPTSTR IDI_WINLOGO = cast(LPTSTR)32517;
1073 //const LPTSTR IDI_WARNING = IDI_EXCLAMATION; 1029 //const LPTSTR IDI_WARNING = IDI_EXCLAMATION;
1074 //const LPTSTR IDI_ERROR = IDI_HAND; 1030 //const LPTSTR IDI_ERROR = IDI_HAND;
1075 //const LPTSTR IDI_INFORMATION = IDI_ASTERISK; 1031 //const LPTSTR IDI_INFORMATION = IDI_ASTERISK;
1076 1032
1077 enum { 1033 enum {
1078 OIC_SAMPLE = 32512, 1034 OIC_SAMPLE = 32512,
1079 OIC_HAND = 32513, 1035 OIC_HAND = 32513,
1102 OCR_APPSTARTING = 32650 1058 OCR_APPSTARTING = 32650
1103 } 1059 }
1104 1060
1105 enum { 1061 enum {
1106 IMAGE_BITMAP = 0, 1062 IMAGE_BITMAP = 0,
1107 IMAGE_ICON = 1, 1063 IMAGE_ICON = 1,
1108 IMAGE_CURSOR = 2 1064 IMAGE_CURSOR = 2
1109 } 1065 }
1110 1066
1111 enum { 1067 enum {
1112 LR_DEFAULTCOLOR = 0x0000, 1068 LR_DEFAULTCOLOR = 0x0000,
1113 LR_MONOCHROME = 0x0001, 1069 LR_MONOCHROME = 0x0001,
1114 LR_COLOR = 0x0002, 1070 LR_COLOR = 0x0002,
1115 LR_COPYRETURNORG = 0x0004, 1071 LR_COPYRETURNORG = 0x0004,
1116 LR_COPYDELETEORG = 0x0008, 1072 LR_COPYDELETEORG = 0x0008,
1117 LR_LOADFROMFILE = 0x0010, 1073 LR_LOADFROMFILE = 0x0010,
1118 LR_LOADTRANSPARENT = 0x0020, 1074 LR_LOADTRANSPARENT = 0x0020,
1119 LR_DEFAULTSIZE = 0x0040, 1075 LR_DEFAULTSIZE = 0x0040,
1120 LR_VGACOLOR = 0x0080, 1076 LR_VGACOLOR = 0x0080,
1121 LR_LOADMAP3DCOLORS = 0x1000, 1077 LR_LOADMAP3DCOLORS = 0x1000,
1122 LR_CREATEDIBSECTION = 0x2000, 1078 LR_CREATEDIBSECTION = 0x2000,
1123 LR_COPYFROMRESOURCE = 0x4000, 1079 LR_COPYFROMRESOURCE = 0x4000,
1124 LR_SHARED = 0x8000 1080 LR_SHARED = 0x8000
1125 } 1081 }
1126 1082
1127 HANDLE LoadImageA(
1128 HINSTANCE hInst,
1129 LPCSTR name,
1130 UINT type,
1131 int cx,
1132 int cy,
1133 UINT fuLoad);
1134 HANDLE LoadImageW( 1083 HANDLE LoadImageW(
1135 HINSTANCE hInst, 1084 HINSTANCE hInst,
1136 LPCWSTR name, 1085 LPCWSTR name,
1137 UINT type, 1086 UINT type,
1138 int cx, 1087 int cx,
1145 BOOL fIcon, 1094 BOOL fIcon,
1146 DWORD dwVer); 1095 DWORD dwVer);
1147 1096
1148 enum { 1097 enum {
1149 SPI_GETNONCLIENTMETRICS = 0x0029, 1098 SPI_GETNONCLIENTMETRICS = 0x0029,
1150 SPI_GETWORKAREA = 0x0030, 1099 SPI_GETWORKAREA = 0x0030,
1151 SPI_GETWHEELSCROLLLINES = 0x0068 1100 SPI_GETWHEELSCROLLLINES = 0x0068
1152 } 1101 }
1153 1102
1154 BOOL SystemParametersInfoA(UINT uiAction, UINT uiParam, VOID* pvParam, UINT fWinIni);
1155 BOOL SystemParametersInfoW(UINT uiAction, UINT uiParam, VOID* pvParam, UINT fWinIni); 1103 BOOL SystemParametersInfoW(UINT uiAction, UINT uiParam, VOID* pvParam, UINT fWinIni);
1156 1104
1157 enum { 1105 enum {
1158 COLOR_SCROLLBAR = 0, 1106 COLOR_SCROLLBAR = 0,
1159 COLOR_BACKGROUND = 1, 1107 COLOR_BACKGROUND = 1,
1293 1241
1294 int GetSystemMetrics(int nIndex); 1242 int GetSystemMetrics(int nIndex);
1295 1243
1296 VOID GetSystemInfo(SYSTEM_INFO* lpSystemInfo); 1244 VOID GetSystemInfo(SYSTEM_INFO* lpSystemInfo);
1297 1245
1298 BOOL GetVersionExA(OSVERSIONINFO* lpVersionInformation);
1299 BOOL GetVersionExW(OSVERSIONINFO* lpVersionInformation); 1246 BOOL GetVersionExW(OSVERSIONINFO* lpVersionInformation);
1300 1247
1301 HMODULE GetModuleHandleA(LPCSTR lpModuleName);
1302 HMODULE GetModuleHandleW(LPCWSTR lpModuleName); 1248 HMODULE GetModuleHandleW(LPCWSTR lpModuleName);
1303 1249
1304 HMODULE LoadLibraryA(LPCSTR lpLibFileName);
1305 HMODULE LoadLibraryW(LPCWSTR lpLibFileName); 1250 HMODULE LoadLibraryW(LPCWSTR lpLibFileName);
1306 1251
1307 FARPROC GetProcAddress(HMODULE hModule, LPCSTR lpProcName); 1252 FARPROC GetProcAddress(HMODULE hModule, LPCSTR lpProcName);
1308 1253
1309 //Requires Internet Explorer 4.0 (but will work on Windows 95 with IE 4) 1254 //Requires Internet Explorer 4.0 (but will work on Windows 95 with IE 4)
1310 BOOL SHGetSpecialFolderPathA(HWND hWndOwner, LPSTR lpszPath, int nFolder, BOOL fCreate);
1311 BOOL SHGetSpecialFolderPathW(HWND hWndOwner, LPWSTR lpszPath, int nFolder, BOOL fCreate); 1255 BOOL SHGetSpecialFolderPathW(HWND hWndOwner, LPWSTR lpszPath, int nFolder, BOOL fCreate);
1312 1256
1313 BOOL QueryPerformanceFrequency(ulong* lpFrequency); 1257 BOOL QueryPerformanceFrequency(ulong* lpFrequency);
1314 1258
1315 BOOL QueryPerformanceCounter(ulong* lpPerformanceCount); 1259 BOOL QueryPerformanceCounter(ulong* lpPerformanceCount);
1356 1300
1357 BOOL GetConsoleMode(HANDLE hConsoleHandle, DWORD* lpMode); 1301 BOOL GetConsoleMode(HANDLE hConsoleHandle, DWORD* lpMode);
1358 1302
1359 BOOL SetConsoleMode(HANDLE hConsoleHandle, DWORD dwMode); 1303 BOOL SetConsoleMode(HANDLE hConsoleHandle, DWORD dwMode);
1360 1304
1361 DWORD GetConsoleTitleA(LPSTR lpConsoleTitle, DWORD nSize);
1362 DWORD GetConsoleTitleW(LPWSTR lpConsoleTitle, DWORD nSize); 1305 DWORD GetConsoleTitleW(LPWSTR lpConsoleTitle, DWORD nSize);
1363 1306
1364 BOOL SetConsoleTitleA(LPCSTR lpConsoleTitle);
1365 BOOL SetConsoleTitleW(LPCWSTR lpConsoleTitle); 1307 BOOL SetConsoleTitleW(LPCWSTR lpConsoleTitle);
1366 1308
1367 BOOL ReadConsoleA(
1368 HANDLE hConsoleInput,
1369 LPSTR lpBuffer,
1370 DWORD nNumberOfCharsToRead,
1371 DWORD* lpNumberOfCharsRead,
1372 VOID* lpReserved);
1373 BOOL ReadConsoleW( 1309 BOOL ReadConsoleW(
1374 HANDLE hConsoleInput, 1310 HANDLE hConsoleInput,
1375 LPWSTR lpBuffer, 1311 LPWSTR lpBuffer,
1376 DWORD nNumberOfCharsToRead, 1312 DWORD nNumberOfCharsToRead,
1377 DWORD* lpNumberOfCharsRead, 1313 DWORD* lpNumberOfCharsRead,
1378 VOID* lpReserved); 1314 VOID* lpReserved);
1379 1315
1380 BOOL WriteConsoleA(
1381 HANDLE hConsoleOutput,
1382 LPCSTR lpBuffer,
1383 DWORD nNumberOfCharsToWrite,
1384 DWORD* lpNumberOfCharsWritten,
1385 VOID* lpReserved);
1386 BOOL WriteConsoleW( 1316 BOOL WriteConsoleW(
1387 HANDLE hConsoleOutput, 1317 HANDLE hConsoleOutput,
1388 LPCWSTR lpBuffer, 1318 LPCWSTR lpBuffer,
1389 DWORD nNumberOfCharsToWrite, 1319 DWORD nNumberOfCharsToWrite,
1390 DWORD* lpNumberOfCharsWritten, 1320 DWORD* lpNumberOfCharsWritten,
1391 VOID* lpReserved); 1321 VOID* lpReserved);
1392 1322
1393 enum { 1323 enum {
1394 FOREGROUND_BLUE = 0x0001, 1324 FOREGROUND_BLUE = 0x0001,
1395 FOREGROUND_GREEN = 0x0002, 1325 FOREGROUND_GREEN = 0x0002,
1396 FOREGROUND_RED = 0x0004, 1326 FOREGROUND_RED = 0x0004,
1397 FOREGROUND_INTENSITY = 0x0008, 1327 FOREGROUND_INTENSITY = 0x0008,
1398 BACKGROUND_BLUE = 0x0010, 1328 BACKGROUND_BLUE = 0x0010,
1399 BACKGROUND_GREEN = 0x0020, 1329 BACKGROUND_GREEN = 0x0020,
1400 BACKGROUND_RED = 0x0040, 1330 BACKGROUND_RED = 0x0040,
1401 BACKGROUND_INTENSITY = 0x0080 1331 BACKGROUND_INTENSITY = 0x0080
1402 } 1332 }
1403 1333
1404 BOOL SetConsoleTextAttribute(HANDLE hConsoleOutput, WORD wAttributes); 1334 BOOL SetConsoleTextAttribute(HANDLE hConsoleOutput, WORD wAttributes);
1405 1335
1435 VOID* CoTaskMemRealloc(VOID* pv, SIZE_T cb); 1365 VOID* CoTaskMemRealloc(VOID* pv, SIZE_T cb);
1436 void CoTaskMemFree(VOID* pv); 1366 void CoTaskMemFree(VOID* pv);
1437 1367
1438 enum { 1368 enum {
1439 BIF_RETURNONLYFSDIRS = 0x0001, 1369 BIF_RETURNONLYFSDIRS = 0x0001,
1440 BIF_EDITBOX = 0x0010, 1370 BIF_EDITBOX = 0x0010,
1441 BIF_NEWDIALOGSTYLE = 0x0040, 1371 BIF_NEWDIALOGSTYLE = 0x0040,
1442 BIF_USENEWUI = (BIF_NEWDIALOGSTYLE | BIF_EDITBOX) 1372 BIF_USENEWUI = (BIF_NEWDIALOGSTYLE | BIF_EDITBOX)
1443 } 1373 }
1444 1374
1445 ITEMIDLIST* SHBrowseForFolderA(BROWSEINFO* lpbi);
1446 ITEMIDLIST* SHBrowseForFolderW(BROWSEINFO* lpbi); 1375 ITEMIDLIST* SHBrowseForFolderW(BROWSEINFO* lpbi);
1447 1376
1448 BOOL SHGetPathFromIDListA(ITEMIDLIST* pidl, LPSTR pszPath);
1449 BOOL SHGetPathFromIDListW(ITEMIDLIST* pidl, LPWSTR pszPath); 1377 BOOL SHGetPathFromIDListW(ITEMIDLIST* pidl, LPWSTR pszPath);
1450 1378
1451 HRESULT SHGetFolderPathA(HWND hwnd, int csidl, HANDLE hToken, DWORD dwFlags, LPSTR pszPath);
1452 HRESULT SHGetFolderPathW(HWND hwnd, int csidl, HANDLE hToken, DWORD dwFlags, LPWSTR pszPath); 1379 HRESULT SHGetFolderPathW(HWND hwnd, int csidl, HANDLE hToken, DWORD dwFlags, LPWSTR pszPath);
1453 1380
1454 HRESULT SHGetDesktopFolder(IShellFolder** ppshf); 1381 HRESULT SHGetDesktopFolder(IShellFolder** ppshf);
1455 1382
1456 struct GUID { 1383 struct GUID {
1593 MMRESULT waveOutGetPlaybackRate(HWAVEOUT hwo, DWORD* pdwRate); 1520 MMRESULT waveOutGetPlaybackRate(HWAVEOUT hwo, DWORD* pdwRate);
1594 MMRESULT waveOutSetPlaybackRate(HWAVEOUT hwo, DWORD dwRate); 1521 MMRESULT waveOutSetPlaybackRate(HWAVEOUT hwo, DWORD dwRate);
1595 1522
1596 //}}} 1523 //}}}
1597 1524
1598 version(UNICODE) { 1525 //{{{ alias ...W -> ...
1599 alias MessageBoxW MessageBox; 1526 alias MessageBoxW MessageBox;
1600 alias RegisterClassExW RegisterClassEx; 1527 alias RegisterClassExW RegisterClassEx;
1601 alias CreateWindowExW CreateWindowEx; 1528 alias CreateWindowExW CreateWindowEx;
1602 alias DefWindowProcW DefWindowProc; 1529 alias DefWindowProcW DefWindowProc;
1603 alias GetWindowLongW GetWindowLong; 1530 alias GetWindowLongW GetWindowLong;
1604 alias SetWindowLongW SetWindowLong; 1531 alias SetWindowLongW SetWindowLong;
1605 alias GetWindowLongPtrW GetWindowLongPtr; 1532 alias GetWindowLongPtrW GetWindowLongPtr;
1606 alias SetWindowLongPtrW SetWindowLongPtr; 1533 alias SetWindowLongPtrW SetWindowLongPtr;
1607 alias GetWindowTextW GetWindowText; 1534 alias GetWindowTextW GetWindowText;
1608 alias SetWindowTextW SetWindowText; 1535 alias SetWindowTextW SetWindowText;
1609 alias GetWindowModuleFileNameW GetWindowModuleFileName; 1536 alias GetWindowModuleFileNameW GetWindowModuleFileName;
1610 alias SetPropW SetProp; 1537 alias SetPropW SetProp;
1611 alias GetPropW GetProp; 1538 alias GetPropW GetProp;
1612 alias RemovePropW RemoveProp; 1539 alias RemovePropW RemoveProp;
1613 alias GetOpenFileNameW GetOpenFileName; 1540 alias GetOpenFileNameW GetOpenFileName;
1614 alias GetSaveFileNameW GetSaveFileName; 1541 alias GetSaveFileNameW GetSaveFileName;
1615 alias GetMessageW GetMessage; 1542 alias GetMessageW GetMessage;
1616 alias DispatchMessageW DispatchMessage; 1543 alias DispatchMessageW DispatchMessage;
1617 alias PostMessageW PostMessage; 1544 alias PostMessageW PostMessage;
1618 alias SendMessageW SendMessage; 1545 alias SendMessageW SendMessage;
1619 alias LoadImageW LoadImage; 1546 alias LoadImageW LoadImage;
1620 alias GetObjectW GetObject; 1547 alias GetObjectW GetObject;
1621 alias EnumFontFamiliesExW EnumFontFamiliesEx; 1548 alias EnumFontFamiliesExW EnumFontFamiliesEx;
1622 alias SystemParametersInfoW SystemParametersInfo; 1549 alias SystemParametersInfoW SystemParametersInfo;
1623 alias GetVersionExW GetVersionEx; 1550 alias GetVersionExW GetVersionEx;
1624 alias GetModuleHandleW GetModuleHandle; 1551 alias GetModuleHandleW GetModuleHandle;
1625 alias LoadLibraryW LoadLibrary; 1552 alias LoadLibraryW LoadLibrary;
1626 alias SHGetSpecialFolderPathW SHGetSpecialFolderPath; 1553 alias SHGetSpecialFolderPathW SHGetSpecialFolderPath;
1627 alias GetConsoleTitleW GetConsoleTitle; 1554 alias GetConsoleTitleW GetConsoleTitle;
1628 alias SetConsoleTitleW SetConsoleTitle; 1555 alias SetConsoleTitleW SetConsoleTitle;
1629 alias ReadConsoleW ReadConsole; 1556 alias ReadConsoleW ReadConsole;
1630 alias WriteConsoleW WriteConsole; 1557 alias WriteConsoleW WriteConsole;
1631 alias SHBrowseForFolderW SHBrowseForFolder; 1558 alias SHBrowseForFolderW SHBrowseForFolder;
1632 alias SHGetPathFromIDListW SHGetPathFromIDList; 1559 alias SHGetPathFromIDListW SHGetPathFromIDList;
1633 alias SHGetFolderPathW SHGetFolderPath; 1560 alias SHGetFolderPathW SHGetFolderPath;
1634 1561
1635 alias LOGFONTW LOGFONT; 1562 alias LOGFONTW LOGFONT;
1636 alias NONCLIENTMETRICSW NONCLIENTMETRICS; 1563 alias NONCLIENTMETRICSW NONCLIENTMETRICS;
1637 alias ENUMLOGFONTEXW ENUMLOGFONTEX; 1564 alias ENUMLOGFONTEXW ENUMLOGFONTEX;
1638 alias TEXTMETRICW TEXTMETRIC; 1565 alias TEXTMETRICW TEXTMETRIC;
1639 alias OSVERSIONINFOW OSVERSIONINFO; 1566 alias OSVERSIONINFOW OSVERSIONINFO;
1640 } else { 1567 //}}}
1641 alias MessageBoxA MessageBox;
1642 alias RegisterClassExA RegisterClassEx;
1643 alias CreateWindowExA CreateWindowEx;
1644 alias DefWindowProcA DefWindowProc;
1645 alias GetWindowLongA GetWindowLong;
1646 alias SetWindowLongA SetWindowLong;
1647 alias GetWindowLongPtrA GetWindowLongPtr;
1648 alias SetWindowLongPtrA SetWindowLongPtr;
1649 alias GetWindowTextA GetWindowText;
1650 alias SetWindowTextA SetWindowText;
1651 alias GetWindowModuleFileNameA GetWindowModuleFileName;
1652 alias SetPropA SetProp;
1653 alias GetPropA GetProp;
1654 alias RemovePropA RemoveProp;
1655 alias GetOpenFileNameA GetOpenFileName;
1656 alias GetSaveFileNameA GetSaveFileName;
1657 alias GetMessageA GetMessage;
1658 alias DispatchMessageA DispatchMessage;
1659 alias PostMessageA PostMessage;
1660 alias SendMessageA SendMessage;
1661 alias LoadImageA LoadImage;
1662 alias EnumFontFamiliesExA EnumFontFamiliesEx;
1663 alias SystemParametersInfoA SystemParametersInfo;
1664 alias GetVersionExA GetVersionEx;
1665 alias GetModuleHandleA GetModuleHandle;
1666 alias LoadLibraryA LoadLibrary;
1667 alias SHGetSpecialFolderPathA SHGetSpecialFolderPath;
1668 alias GetConsoleTitleA GetConsoleTitle;
1669 alias SetConsoleTitleA SetConsoleTitle;
1670 alias ReadConsoleA ReadConsole;
1671 alias WriteConsoleA WriteConsole;
1672 alias SHBrowseForFolderA SHBrowseForFolder;
1673 alias SHGetPathFromIDListA SHGetPathFromIDList;
1674 alias SHGetFolderPathA SHGetFolderPath;
1675 }
1676 1568
1677 struct POINT { 1569 struct POINT {
1678 LONG x; 1570 LONG x;
1679 LONG y; 1571 LONG y;
1680 } 1572 }
1694 BYTE SourceConstantAlpha; 1586 BYTE SourceConstantAlpha;
1695 BYTE AlphaFormat; 1587 BYTE AlphaFormat;
1696 } 1588 }
1697 const int LF_FACESIZE = 32; 1589 const int LF_FACESIZE = 32;
1698 struct LOGFONTW { 1590 struct LOGFONTW {
1699 LONG lfHeight; 1591 LONG lfHeight;
1700 LONG lfWidth; 1592 LONG lfWidth;
1701 LONG lfEscapement; 1593 LONG lfEscapement;
1702 LONG lfOrientation; 1594 LONG lfOrientation;
1703 LONG lfWeight; 1595 LONG lfWeight;
1704 BYTE lfItalic; 1596 BYTE lfItalic;
1705 BYTE lfUnderline; 1597 BYTE lfUnderline;
1706 BYTE lfStrikeOut; 1598 BYTE lfStrikeOut;
1707 BYTE lfCharSet; 1599 BYTE lfCharSet;
1708 BYTE lfOutPrecision; 1600 BYTE lfOutPrecision;
1709 BYTE lfClipPrecision; 1601 BYTE lfClipPrecision;
1710 BYTE lfQuality; 1602 BYTE lfQuality;
1711 BYTE lfPitchAndFamily; 1603 BYTE lfPitchAndFamily;
1712 WCHAR[LF_FACESIZE] lfFaceName; 1604 WCHAR[LF_FACESIZE] lfFaceName;
1713 } 1605 }
1714 struct NONCLIENTMETRICSW { 1606 struct NONCLIENTMETRICSW {
1715 UINT cbSize; 1607 UINT cbSize;
1716 int iBorderWidth; 1608 int iBorderWidth;
1728 LOGFONTW lfStatusFont; 1620 LOGFONTW lfStatusFont;
1729 LOGFONTW lfMessageFont; 1621 LOGFONTW lfMessageFont;
1730 } 1622 }
1731 const int LF_FULLFACESIZE = 64; 1623 const int LF_FULLFACESIZE = 64;
1732 struct ENUMLOGFONTEXW { 1624 struct ENUMLOGFONTEXW {
1733 LOGFONT elfLogFont; 1625 LOGFONT elfLogFont;
1734 WCHAR[LF_FULLFACESIZE] elfFullName; 1626 WCHAR[LF_FULLFACESIZE] elfFullName;
1735 WCHAR[LF_FACESIZE] elfStyle; 1627 WCHAR[LF_FACESIZE] elfStyle;
1736 WCHAR[LF_FACESIZE] elfScript; 1628 WCHAR[LF_FACESIZE] elfScript;
1737 } 1629 }
1738 struct TEXTMETRICW { 1630 struct TEXTMETRICW {
1739 LONG tmHeight; 1631 LONG tmHeight;
1740 LONG tmAscent; 1632 LONG tmAscent;
1741 LONG tmDescent; 1633 LONG tmDescent;
1763 BYTE rgbRed; 1655 BYTE rgbRed;
1764 BYTE rgbReserved; 1656 BYTE rgbReserved;
1765 } 1657 }
1766 struct BITMAPINFO { 1658 struct BITMAPINFO {
1767 BITMAPINFOHEADER bmiHeader; 1659 BITMAPINFOHEADER bmiHeader;
1768 RGBQUAD[1] bmiColors; 1660 RGBQUAD[1] bmiColors;
1769 } 1661 }
1770 struct BITMAPINFOHEADER { 1662 struct BITMAPINFOHEADER {
1771 DWORD biSize; 1663 DWORD biSize;
1772 LONG biWidth; 1664 LONG biWidth;
1773 LONG biHeight; 1665 LONG biHeight;
1803 LPARAM lParam; 1695 LPARAM lParam;
1804 DWORD time; 1696 DWORD time;
1805 POINT pt; 1697 POINT pt;
1806 } 1698 }
1807 struct WNDCLASSEX { 1699 struct WNDCLASSEX {
1808 UINT cbSize; 1700 UINT cbSize;
1809 UINT style; 1701 UINT style;
1810 WNDPROC lpfnWndProc; 1702 WNDPROC lpfnWndProc;
1811 int cbClsExtra; 1703 int cbClsExtra;
1812 int cbWndExtra; 1704 int cbWndExtra;
1813 HINSTANCE hInstance; 1705 HINSTANCE hInstance;
1814 HICON hIcon; 1706 HICON hIcon;
1815 HCURSOR hCursor; 1707 HCURSOR hCursor;
1816 HBRUSH hbrBackground; 1708 HBRUSH hbrBackground;
1817 LPCTSTR lpszMenuName; 1709 LPCTSTR lpszMenuName;
1818 LPCTSTR lpszClassName; 1710 LPCTSTR lpszClassName;
1819 HICON hIconSm; 1711 HICON hIconSm;
1820 } 1712 }
1821 struct WINDOWINFO { 1713 struct WINDOWINFO {
1822 DWORD cbSize; 1714 DWORD cbSize;
1823 RECT rcWindow; 1715 RECT rcWindow;
1824 RECT rcClient; 1716 RECT rcClient;
1829 UINT cyWindowBorders; 1721 UINT cyWindowBorders;
1830 ATOM atomWindowType; 1722 ATOM atomWindowType;
1831 WORD wCreatorVersion; 1723 WORD wCreatorVersion;
1832 } 1724 }
1833 struct PAINTSTRUCT { 1725 struct PAINTSTRUCT {
1834 HDC hdc; 1726 HDC hdc;
1835 BOOL fErase; 1727 BOOL fErase;
1836 RECT rcPaint; 1728 RECT rcPaint;
1837 BOOL fRestore; 1729 BOOL fRestore;
1838 BOOL fIncUpdate; 1730 BOOL fIncUpdate;
1839 BYTE[32] rgbReserved; 1731 BYTE[32] rgbReserved;
1840 } 1732 }
1841 struct TRACKMOUSEEVENT { 1733 struct TRACKMOUSEEVENT {
1842 DWORD cbSize; 1734 DWORD cbSize;
1843 DWORD dwFlags; 1735 DWORD dwFlags;
1844 HWND hWndTrack; 1736 HWND hWndTrack;
1845 DWORD dwHoverTime; 1737 DWORD dwHoverTime;
1846 } 1738 }
1847 struct OPENFILENAME { 1739 struct OPENFILENAME {
1848 DWORD lStructSize; 1740 DWORD lStructSize;
1849 HWND hWndOwner; 1741 HWND hWndOwner;
1850 HINSTANCE hInstance; 1742 HINSTANCE hInstance;
1851 LPCTSTR lpstrFilter; 1743 LPCTSTR lpstrFilter;
1852 LPTSTR lpstrCustomFilter; 1744 LPTSTR lpstrCustomFilter;
1853 DWORD nMaxCustFilter; 1745 DWORD nMaxCustFilter;
1854 DWORD nFilterIndex; 1746 DWORD nFilterIndex;
1855 LPTSTR lpstrFile; 1747 LPTSTR lpstrFile;
1856 DWORD nMaxFile; 1748 DWORD nMaxFile;
1857 LPTSTR lpstrFileTitle; 1749 LPTSTR lpstrFileTitle;
1858 DWORD nMaxFileTitle; 1750 DWORD nMaxFileTitle;
1859 LPCTSTR lpstrInitialDir; 1751 LPCTSTR lpstrInitialDir;
1860 LPCTSTR lpstrTitle; 1752 LPCTSTR lpstrTitle;
1861 DWORD Flags; 1753 DWORD Flags;
1862 WORD nFileOffset; 1754 WORD nFileOffset;
1863 WORD nFileExtension; 1755 WORD nFileExtension;
1864 LPCTSTR lpstrDefExt; 1756 LPCTSTR lpstrDefExt;
1865 LPARAM lCustData; 1757 LPARAM lCustData;
1866 LPOFNHOOKPROC lpfnHook; 1758 LPOFNHOOKPROC lpfnHook;
1867 LPCTSTR lpTemplateName; 1759 LPCTSTR lpTemplateName;
1868 // if(_WIN32_WINNT >= 0x0500) 1760 // if(_WIN32_WINNT >= 0x0500)
1869 //void* pvReserved; 1761 //void* pvReserved;
1870 //DWORD dwReserved; 1762 //DWORD dwReserved;
1871 //DWORD FlagsEx; 1763 //DWORD FlagsEx;
1872 } 1764 }
1873 struct SHITEMID { 1765 struct SHITEMID {
1874 USHORT cb; 1766 USHORT cb;
1875 BYTE[1] abID; 1767 BYTE[1] abID;
1876 } 1768 }
1877 struct ITEMIDLIST { 1769 struct ITEMIDLIST {
1878 SHITEMID mkid; 1770 SHITEMID mkid;
1879 } 1771 }
1880 struct BROWSEINFO { 1772 struct BROWSEINFO {
1881 HWND hwndOwner; 1773 HWND hwndOwner;
1882 ITEMIDLIST* pidlRoot; 1774 ITEMIDLIST* pidlRoot;
1883 LPTSTR pszDisplayName; 1775 LPTSTR pszDisplayName;
1884 LPCTSTR lpszTitle; 1776 LPCTSTR lpszTitle;
1885 UINT ulFlags; 1777 UINT ulFlags;
1886 BFFCALLBACK lpfn; 1778 BFFCALLBACK lpfn;
1887 LPARAM lParam; 1779 LPARAM lParam;
1888 int iImage; 1780 int iImage;
1889 } 1781 }
1890 struct OVERLAPPED { 1782 struct OVERLAPPED {
1891 ULONG_PTR Internal; 1783 ULONG_PTR Internal;
1892 ULONG_PTR InternalHigh; 1784 ULONG_PTR InternalHigh;
1893 union { 1785 union {