File Annotation

Not logged in
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: 
9b639cf2d6 2015-05-05        kinaba: ushort MAKEWORD(ubyte a, ubyte b) {
9b639cf2d6 2015-05-05        kinaba: 	return cast(ushort) ((b << 8) | a);
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: ushort MAKEWORD(ushort a, ushort b) {
9b639cf2d6 2015-05-05        kinaba:     assert((a & 0xFF00) == 0);
9b639cf2d6 2015-05-05        kinaba:     assert((b & 0xFF00) == 0);
9b639cf2d6 2015-05-05        kinaba:     return MAKEWORD(cast(ubyte)a, cast(ubyte)b);
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: uint MAKELONG(ushort a, ushort b) {
9b639cf2d6 2015-05-05        kinaba: 	return cast(uint) ((b << 16) | a);
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: uint MAKELONG(uint a, uint b) {
9b639cf2d6 2015-05-05        kinaba:     assert((a & 0xFFFF0000) == 0);
9b639cf2d6 2015-05-05        kinaba:     assert((b & 0xFFFF0000) == 0);
9b639cf2d6 2015-05-05        kinaba:     return MAKELONG(cast(ushort)a, cast(ushort)b);
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: ushort LOWORD(ulong l) {
9b639cf2d6 2015-05-05        kinaba: 	return cast(ushort) l;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: ushort HIWORD(ulong l) {
9b639cf2d6 2015-05-05        kinaba: 	return cast(ushort) (l >>> 16);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
9b639cf2d6 2015-05-05        kinaba: ubyte LOBYTE(ushort w) {
9b639cf2d6 2015-05-05        kinaba: 	return cast(ubyte) w;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
9b639cf2d6 2015-05-05        kinaba: ubyte HIBYTE(ushort w) {
9b639cf2d6 2015-05-05        kinaba: 	return cast(ubyte) (w >>> 8);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
9b639cf2d6 2015-05-05        kinaba: template max(T) {
9b639cf2d6 2015-05-05        kinaba: 	T max(T a, T b) {
9b639cf2d6 2015-05-05        kinaba: 		return a > b ? a : b;
9b639cf2d6 2015-05-05        kinaba: 	}
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: template min(T) {
9b639cf2d6 2015-05-05        kinaba: 	T min(T a, T b) {
9b639cf2d6 2015-05-05        kinaba: 		return a < b ? a : b;
9b639cf2d6 2015-05-05        kinaba: 	}
9b639cf2d6 2015-05-05        kinaba: }
4e2933c620 2015-04-21        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum void* NULL = null;
9b639cf2d6 2015-05-05        kinaba: alias ubyte        BYTE;
9b639cf2d6 2015-05-05        kinaba: alias ubyte*       PBYTE, LPBYTE;
9b639cf2d6 2015-05-05        kinaba: alias ushort       USHORT, WORD, ATOM;
9b639cf2d6 2015-05-05        kinaba: alias ushort*      PUSHORT, PWORD, LPWORD;
9b639cf2d6 2015-05-05        kinaba: alias uint         ULONG, DWORD, UINT, COLORREF;
9b639cf2d6 2015-05-05        kinaba: alias uint*        PULONG, PDWORD, LPDWORD, PUINT, LPUINT;
9b639cf2d6 2015-05-05        kinaba: alias int          WINBOOL, BOOL, INT, LONG, HFILE, HRESULT;
9b639cf2d6 2015-05-05        kinaba: alias int*         PWINBOOL, LPWINBOOL, PBOOL, LPBOOL, PINT, LPINT, LPLONG;
9b639cf2d6 2015-05-05        kinaba: alias float        FLOAT;
9b639cf2d6 2015-05-05        kinaba: alias float*       PFLOAT;
9b639cf2d6 2015-05-05        kinaba: alias const(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: 
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HGLOBAL");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HLOCAL");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("GLOBALHANDLE");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("LOCALHANDLE");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HGDIOBJ");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HACCEL");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HBITMAP", HGDIOBJ);
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HBRUSH", HGDIOBJ);
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HCOLORSPACE");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HDC");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HGLRC");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HDESK");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HENHMETAFILE");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HFONT", HGDIOBJ);
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HICON");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HINSTANCE");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HKEY");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HMENU");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HMETAFILE");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HMODULE");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HMONITOR");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HPALETTE");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HPEN", HGDIOBJ);
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HRGN", HGDIOBJ);
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HRSRC");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HSTR");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HTASK");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HWND");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HWINSTA");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HKL");
9b639cf2d6 2015-05-05        kinaba: mixin DECLARE_HANDLE!("HCURSOR");
9b639cf2d6 2015-05-05        kinaba: alias HKEY* PHKEY;
4e2933c620 2015-04-21        kinaba: 
9b639cf2d6 2015-05-05        kinaba: static if (_WIN32_WINNT >= 0x500) {
9b639cf2d6 2015-05-05        kinaba: 	mixin DECLARE_HANDLE!("HTERMINAL");
9b639cf2d6 2015-05-05        kinaba: 	mixin DECLARE_HANDLE!("HWINEVENTHOOK");
4e2933c620 2015-04-21        kinaba: }
c2b7a98c21 2011-02-23        kinaba: 
9b639cf2d6 2015-05-05        kinaba: alias extern (Windows) INT_PTR function() FARPROC, NEARPROC, PROC;
c2b7a98c21 2011-02-23        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct RECT {
9b639cf2d6 2015-05-05        kinaba: 	LONG left;
9b639cf2d6 2015-05-05        kinaba: 	LONG top;
9b639cf2d6 2015-05-05        kinaba: 	LONG right;
9b639cf2d6 2015-05-05        kinaba: 	LONG bottom;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias RECT RECTL;
9b639cf2d6 2015-05-05        kinaba: alias RECT*        PRECT, LPRECT, PRECTL, LPRECTL;
9b639cf2d6 2015-05-05        kinaba: alias const(RECT)* LPCRECT, LPCRECTL;
c2b7a98c21 2011-02-23        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct POINT {
9b639cf2d6 2015-05-05        kinaba: 	LONG x;
9b639cf2d6 2015-05-05        kinaba: 	LONG y;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias POINT POINTL;
9b639cf2d6 2015-05-05        kinaba: alias POINT* PPOINT, LPPOINT, PPOINTL, LPPOINTL;
c2b7a98c21 2011-02-23        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct SIZE {
9b639cf2d6 2015-05-05        kinaba: 	LONG cx;
9b639cf2d6 2015-05-05        kinaba: 	LONG cy;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SIZE SIZEL;
9b639cf2d6 2015-05-05        kinaba: alias SIZE* PSIZE, LPSIZE, PSIZEL, LPSIZEL;
c2b7a98c21 2011-02-23        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct POINTS {
9b639cf2d6 2015-05-05        kinaba: 	SHORT x;
9b639cf2d6 2015-05-05        kinaba: 	SHORT y;
4e2933c620 2015-04-21        kinaba: }
9b639cf2d6 2015-05-05        kinaba: alias POINTS* PPOINTS, LPPOINTS;
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : BOOL {
9b639cf2d6 2015-05-05        kinaba: 	FALSE = 0,
9b639cf2d6 2015-05-05        kinaba: 	TRUE  = 1
4e2933c620 2015-04-21        kinaba: }