Diff

Not logged in

Differences From Artifact [d85b79a6d3b758cc]:

To Artifact [305164202924dd1b]:


1 < 2 /***********************************************************************\ 1 /***********************************************************************\ 3 * windef.d * 2 * windef.d * 4 * * 3 * * 5 * Windows API header module * 4 * Windows API header module * 6 * * 5 * * 7 * Translated from MinGW Windows headers * 6 * Translated from MinGW Windows headers * 8 * by Stewart Gordon * 7 * by Stewart Gordon * ................................................................................................................................................................................ 12 module win32.windef; 11 module win32.windef; 13 12 14 public import win32.winnt; 13 public import win32.winnt; 15 private import win32.w32api; 14 private import win32.w32api; 16 15 17 const size_t MAX_PATH = 260; 16 const size_t MAX_PATH = 260; 18 17 19 ushort MAKEWORD(ubyte a, ubyte b) | 18 ushort MAKEWORD(ubyte a, ubyte b) { > 19 return cast(ushort) ((b << 8) | a); > 20 } 20 { | 21 > 22 ushort MAKEWORD(ushort a, ushort b) { > 23 assert((a & 0xFF00) == 0); > 24 assert((b & 0xFF00) == 0); > 25 return MAKEWORD(cast(ubyte)a, cast(ubyte)b); > 26 } > 27 > 28 uint MAKELONG(ushort a, ushort b) { > 29 return cast(uint) ((b << 16) | a); > 30 } > 31 > 32 uint MAKELONG(uint a, uint b) { > 33 assert((a & 0xFFFF0000) == 0); > 34 assert((b & 0xFFFF0000) == 0); > 35 return MAKELONG(cast(ushort)a, cast(ushort)b); > 36 } > 37 > 38 ushort LOWORD(ulong l) { 21 return cast(ushort) ((b << 8) | a); | 39 return cast(ushort) l; > 40 } > 41 > 42 ushort HIWORD(ulong l) { > 43 return cast(ushort) (l >>> 16); 22 } 44 } 23 45 24 < 25 uint MAKELONG(ushort a, ushort b) < 26 { < > 46 ubyte LOBYTE(ushort w) { 27 return cast(uint) ((b << 16) | a); | 47 return cast(ubyte) w; 28 } 48 } 29 49 30 < 31 ushort LOWORD(uint l) < 32 { < > 50 ubyte HIBYTE(ushort w) { 33 return cast(ushort) l; | 51 return cast(ubyte) (w >>> 8); 34 } < 35 < 36 < 37 ushort HIWORD(uint l) < 38 { < 39 return cast(ushort) (l >>> 16); < 40 } 52 } 41 53 42 < 43 ubyte LOBYTE(ushort w) < 44 { < 45 return cast(ubyte) w; < 46 } < 47 < 48 < 49 ubyte HIBYTE(ushort w) < 50 { < 51 return cast(ubyte) (w >>> 8); < 52 } < 53 < 54 < 55 /+ template max(T) { | 54 template max(T) { 56 T max(T a, T b) | 55 T max(T a, T b) { 57 { < 58 return a > b ? a : b; | 56 return a > b ? a : b; 59 } | 57 } 60 } 58 } 61 59 62 template min(T) { 60 template min(T) { 63 T min(T a, T b) | 61 T min(T a, T b) { 64 { < 65 return a < b ? a : b; | 62 return a < b ? a : b; 66 } | 63 } 67 } +/ < > 64 } 68 65 69 enum NULL = null; | 66 enum void* NULL = null; 70 //~ alias null NULL; < 71 //~ const void *NULL = null; < 72 alias ubyte BYTE; | 67 alias ubyte BYTE; 73 alias ubyte *PBYTE, LPBYTE; | 68 alias ubyte* PBYTE, LPBYTE; 74 alias ushort USHORT, WORD, ATOM; | 69 alias ushort USHORT, WORD, ATOM; 75 alias ushort*PUSHORT, PWORD, LPWORD; | 70 alias ushort* PUSHORT, PWORD, LPWORD; 76 alias uint ULONG, DWORD, UINT, COLORREF; | 71 alias uint ULONG, DWORD, UINT, COLORREF; 77 alias uint *PULONG, PDWORD, LPDWORD, PUINT, LPUINT; | 72 alias uint* PULONG, PDWORD, LPDWORD, PUINT, LPUINT; 78 alias int WINBOOL, BOOL, INT, LONG, HFILE, HRESULT; | 73 alias int WINBOOL, BOOL, INT, LONG, HFILE, HRESULT; 79 alias int*PWINBOOL, LPWINBOOL, PBOOL, LPBOOL, PINT, LPINT, LPLONG; | 74 alias int* PWINBOOL, LPWINBOOL, PBOOL, LPBOOL, PINT, LPINT, LPLONG; 80 alias float FLOAT; | 75 alias float FLOAT; 81 alias float*PFLOAT; | 76 alias float* PFLOAT; 82 alias CPtr!(void) PCVOID, LPCVOID; | 77 alias const(void)* PCVOID, LPCVOID; 83 78 84 alias UINT_PTR WPARAM; 79 alias UINT_PTR WPARAM; 85 alias LONG_PTR LPARAM, LRESULT; 80 alias LONG_PTR LPARAM, LRESULT; 86 81 87 alias HANDLE HGLOBAL, HLOCAL, GLOBALHANDLE, LOCALHANDLE, HGDIOBJ, HACCEL, | 82 mixin DECLARE_HANDLE!("HGLOBAL"); 88 HBITMAP, HBRUSH, HCOLORSPACE, HDC, HGLRC, HDESK, HENHMETAFILE, HFON | 83 mixin DECLARE_HANDLE!("HLOCAL"); 89 HICON, HINSTANCE, HKEY, HMENU, HMETAFILE, HMODULE, HMONITOR, HPALET | 84 mixin DECLARE_HANDLE!("GLOBALHANDLE"); 90 HRGN, HRSRC, HSTR, HTASK, HWND, HWINSTA, HKL, HCURSOR; | 85 mixin DECLARE_HANDLE!("LOCALHANDLE"); > 86 mixin DECLARE_HANDLE!("HGDIOBJ"); > 87 mixin DECLARE_HANDLE!("HACCEL"); > 88 mixin DECLARE_HANDLE!("HBITMAP", HGDIOBJ); > 89 mixin DECLARE_HANDLE!("HBRUSH", HGDIOBJ); > 90 mixin DECLARE_HANDLE!("HCOLORSPACE"); > 91 mixin DECLARE_HANDLE!("HDC"); > 92 mixin DECLARE_HANDLE!("HGLRC"); > 93 mixin DECLARE_HANDLE!("HDESK"); > 94 mixin DECLARE_HANDLE!("HENHMETAFILE"); > 95 mixin DECLARE_HANDLE!("HFONT", HGDIOBJ); > 96 mixin DECLARE_HANDLE!("HICON"); > 97 mixin DECLARE_HANDLE!("HINSTANCE"); > 98 mixin DECLARE_HANDLE!("HKEY"); > 99 mixin DECLARE_HANDLE!("HMENU"); > 100 mixin DECLARE_HANDLE!("HMETAFILE"); > 101 mixin DECLARE_HANDLE!("HMODULE"); > 102 mixin DECLARE_HANDLE!("HMONITOR"); > 103 mixin DECLARE_HANDLE!("HPALETTE"); > 104 mixin DECLARE_HANDLE!("HPEN", HGDIOBJ); > 105 mixin DECLARE_HANDLE!("HRGN", HGDIOBJ); > 106 mixin DECLARE_HANDLE!("HRSRC"); > 107 mixin DECLARE_HANDLE!("HSTR"); > 108 mixin DECLARE_HANDLE!("HTASK"); > 109 mixin DECLARE_HANDLE!("HWND"); > 110 mixin DECLARE_HANDLE!("HWINSTA"); > 111 mixin DECLARE_HANDLE!("HKL"); > 112 mixin DECLARE_HANDLE!("HCURSOR"); 91 alias HANDLE*PHKEY; | 113 alias HKEY* PHKEY; 92 < 93 static < 94 114 95 if (WINVER >= 0x500) | 115 static if (_WIN32_WINNT >= 0x500) { 96 { < > 116 mixin DECLARE_HANDLE!("HTERMINAL"); 97 alias HANDLE HTERMINAL, HWINEVENTHOOK; | 117 mixin DECLARE_HANDLE!("HWINEVENTHOOK"); 98 } 118 } 99 119 100 alias extern (Windows) int function() FARPROC, NEARPROC, PROC; | 120 alias extern (Windows) INT_PTR function() FARPROC, NEARPROC, PROC; 101 121 102 struct RECT | 122 struct RECT { 103 { < 104 LONG left; | 123 LONG left; 105 LONG top; | 124 LONG top; 106 LONG right; | 125 LONG right; 107 LONG bottom; | 126 LONG bottom; 108 } 127 } 109 alias RECT RECTL; 128 alias RECT RECTL; 110 alias RECT*PRECT, LPRECT, PRECTL, LPRECTL; | 129 alias RECT* PRECT, LPRECT, PRECTL, LPRECTL; 111 alias CPtr!(RECT) LPCRECT, LPCRECTL; | 130 alias const(RECT)* LPCRECT, LPCRECTL; 112 131 113 struct POINT | 132 struct POINT { 114 { < 115 LONG x; | 133 LONG x; 116 LONG y; | 134 LONG y; 117 alias x e1; < 118 alias y e2; < 119 } 135 } 120 alias POINT POINTL; 136 alias POINT POINTL; 121 alias POINT*PPOINT, LPPOINT, PPOINTL, LPPOINTL; | 137 alias POINT* PPOINT, LPPOINT, PPOINTL, LPPOINTL; 122 138 123 struct SIZE | 139 struct SIZE { 124 { < 125 LONG cx; | 140 LONG cx; 126 LONG cy; | 141 LONG cy; 127 } 142 } 128 alias SIZE SIZEL; 143 alias SIZE SIZEL; 129 alias SIZE*PSIZE, LPSIZE, PSIZEL, LPSIZEL; | 144 alias SIZE* PSIZE, LPSIZE, PSIZEL, LPSIZEL; 130 145 131 struct POINTS | 146 struct POINTS { 132 { < 133 SHORT x; | 147 SHORT x; 134 SHORT y; | 148 SHORT y; 135 } 149 } 136 alias POINTS*PPOINTS, LPPOINTS; | 150 alias POINTS* PPOINTS, LPPOINTS; 137 151 138 enum : BOOL { 152 enum : BOOL { 139 FALSE = 0, | 153 FALSE = 0, 140 TRUE = 1 | 154 TRUE = 1 141 } 155 }