4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: /***********************************************************************\ 4e2933c620 2015-04-21 kinaba: * windef.d * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Windows API header module * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Translated from MinGW Windows headers * 4e2933c620 2015-04-21 kinaba: * by Stewart Gordon * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Placed into public domain * 4e2933c620 2015-04-21 kinaba: \***********************************************************************/ c2b7a98c21 2011-02-23 kinaba: module win32.windef; c2b7a98c21 2011-02-23 kinaba: 4e2933c620 2015-04-21 kinaba: public import win32.winnt; 4e2933c620 2015-04-21 kinaba: private import win32.w32api; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const size_t MAX_PATH = 260; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: ushort MAKEWORD(ubyte a, ubyte b) 4e2933c620 2015-04-21 kinaba: { 4e2933c620 2015-04-21 kinaba: return cast(ushort) ((b << 8) | a); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: uint MAKELONG(ushort a, ushort b) 4e2933c620 2015-04-21 kinaba: { 4e2933c620 2015-04-21 kinaba: return cast(uint) ((b << 16) | a); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: ushort LOWORD(uint l) 4e2933c620 2015-04-21 kinaba: { 4e2933c620 2015-04-21 kinaba: return cast(ushort) l; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: ushort HIWORD(uint l) 4e2933c620 2015-04-21 kinaba: { 4e2933c620 2015-04-21 kinaba: return cast(ushort) (l >>> 16); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: ubyte LOBYTE(ushort w) 4e2933c620 2015-04-21 kinaba: { 4e2933c620 2015-04-21 kinaba: return cast(ubyte) w; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: ubyte HIBYTE(ushort w) 4e2933c620 2015-04-21 kinaba: { 4e2933c620 2015-04-21 kinaba: return cast(ubyte) (w >>> 8); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: /+ template max(T) { 4e2933c620 2015-04-21 kinaba: T max(T a, T b) 4e2933c620 2015-04-21 kinaba: { 4e2933c620 2015-04-21 kinaba: return a > b ? a : b; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: template min(T) { 4e2933c620 2015-04-21 kinaba: T min(T a, T b) 4e2933c620 2015-04-21 kinaba: { 4e2933c620 2015-04-21 kinaba: return a < b ? a : b; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: } +/ 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum NULL = null; 4e2933c620 2015-04-21 kinaba: //~ alias null NULL; 4e2933c620 2015-04-21 kinaba: //~ const void *NULL = null; 4e2933c620 2015-04-21 kinaba: alias ubyte BYTE; 4e2933c620 2015-04-21 kinaba: alias ubyte *PBYTE, LPBYTE; 4e2933c620 2015-04-21 kinaba: alias ushort USHORT, WORD, ATOM; 4e2933c620 2015-04-21 kinaba: alias ushort*PUSHORT, PWORD, LPWORD; 4e2933c620 2015-04-21 kinaba: alias uint ULONG, DWORD, UINT, COLORREF; 4e2933c620 2015-04-21 kinaba: alias uint *PULONG, PDWORD, LPDWORD, PUINT, LPUINT; 4e2933c620 2015-04-21 kinaba: alias int WINBOOL, BOOL, INT, LONG, HFILE, HRESULT; 4e2933c620 2015-04-21 kinaba: alias int*PWINBOOL, LPWINBOOL, PBOOL, LPBOOL, PINT, LPINT, LPLONG; 4e2933c620 2015-04-21 kinaba: alias float FLOAT; 4e2933c620 2015-04-21 kinaba: alias float*PFLOAT; 4e2933c620 2015-04-21 kinaba: alias CPtr!(void) PCVOID, LPCVOID; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: alias UINT_PTR WPARAM; 4e2933c620 2015-04-21 kinaba: alias LONG_PTR LPARAM, LRESULT; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: alias HANDLE HGLOBAL, HLOCAL, GLOBALHANDLE, LOCALHANDLE, HGDIOBJ, HACCEL, 4e2933c620 2015-04-21 kinaba: HBITMAP, HBRUSH, HCOLORSPACE, HDC, HGLRC, HDESK, HENHMETAFILE, HFONT, 4e2933c620 2015-04-21 kinaba: HICON, HINSTANCE, HKEY, HMENU, HMETAFILE, HMODULE, HMONITOR, HPALETTE, HPEN, 4e2933c620 2015-04-21 kinaba: HRGN, HRSRC, HSTR, HTASK, HWND, HWINSTA, HKL, HCURSOR; 4e2933c620 2015-04-21 kinaba: alias HANDLE*PHKEY; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: static 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: if (WINVER >= 0x500) 4e2933c620 2015-04-21 kinaba: { 4e2933c620 2015-04-21 kinaba: alias HANDLE HTERMINAL, HWINEVENTHOOK; 4e2933c620 2015-04-21 kinaba: } c2b7a98c21 2011-02-23 kinaba: 4e2933c620 2015-04-21 kinaba: alias extern (Windows) int function() FARPROC, NEARPROC, PROC; c2b7a98c21 2011-02-23 kinaba: 4e2933c620 2015-04-21 kinaba: struct RECT 4e2933c620 2015-04-21 kinaba: { 4e2933c620 2015-04-21 kinaba: LONG left; 4e2933c620 2015-04-21 kinaba: LONG top; 4e2933c620 2015-04-21 kinaba: LONG right; 4e2933c620 2015-04-21 kinaba: LONG bottom; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias RECT RECTL; 4e2933c620 2015-04-21 kinaba: alias RECT*PRECT, LPRECT, PRECTL, LPRECTL; 4e2933c620 2015-04-21 kinaba: alias CPtr!(RECT) LPCRECT, LPCRECTL; c2b7a98c21 2011-02-23 kinaba: 4e2933c620 2015-04-21 kinaba: struct POINT 4e2933c620 2015-04-21 kinaba: { 4e2933c620 2015-04-21 kinaba: LONG x; 4e2933c620 2015-04-21 kinaba: LONG y; 4e2933c620 2015-04-21 kinaba: alias x e1; 4e2933c620 2015-04-21 kinaba: alias y e2; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias POINT POINTL; 4e2933c620 2015-04-21 kinaba: alias POINT*PPOINT, LPPOINT, PPOINTL, LPPOINTL; c2b7a98c21 2011-02-23 kinaba: 4e2933c620 2015-04-21 kinaba: struct SIZE 4e2933c620 2015-04-21 kinaba: { 4e2933c620 2015-04-21 kinaba: LONG cx; 4e2933c620 2015-04-21 kinaba: LONG cy; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias SIZE SIZEL; 4e2933c620 2015-04-21 kinaba: alias SIZE*PSIZE, LPSIZE, PSIZEL, LPSIZEL; c2b7a98c21 2011-02-23 kinaba: 4e2933c620 2015-04-21 kinaba: struct POINTS 4e2933c620 2015-04-21 kinaba: { 4e2933c620 2015-04-21 kinaba: SHORT x; 4e2933c620 2015-04-21 kinaba: SHORT y; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias POINTS*PPOINTS, LPPOINTS; c2b7a98c21 2011-02-23 kinaba: 4e2933c620 2015-04-21 kinaba: enum : BOOL { 4e2933c620 2015-04-21 kinaba: FALSE = 0, 4e2933c620 2015-04-21 kinaba: TRUE = 1 4e2933c620 2015-04-21 kinaba: }