File Annotation

Not logged in
4e2933c620 2015-04-21        kinaba: /***********************************************************************\
4e2933c620 2015-04-21        kinaba: *                               basetsd.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 API for MS-Windows 3.12             *
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: \***********************************************************************/
4e2933c620 2015-04-21        kinaba: module win32.basetsd;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: /*	This template is used in these modules to declare constant pointer types,
4e2933c620 2015-04-21        kinaba:  *	in order to support both D 1.x and 2.x.
9b639cf2d6 2015-05-05        kinaba:  *	Since removed - now supporting only D2
4e2933c620 2015-04-21        kinaba:  */
9b639cf2d6 2015-05-05        kinaba: /*template CPtr(T) {
4e2933c620 2015-04-21        kinaba: 	version (D_Version2) {
4e2933c620 2015-04-21        kinaba: 		// must use mixin so that it doesn't cause a syntax error under D1
4e2933c620 2015-04-21        kinaba: 		mixin("alias const(T)* CPtr;");
4e2933c620 2015-04-21        kinaba: 	} else {
4e2933c620 2015-04-21        kinaba: 		alias T* CPtr;
9b639cf2d6 2015-05-05        kinaba: 	}
9b639cf2d6 2015-05-05        kinaba: }*/
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: /*	[CyberShadow VP 2011.12.22] typedef is now deprecated in D2.
9b639cf2d6 2015-05-05        kinaba:  */
9b639cf2d6 2015-05-05        kinaba: template TypeDef(T) {
9b639cf2d6 2015-05-05        kinaba: 	version (D_Version2) {
9b639cf2d6 2015-05-05        kinaba: 		alias T TypeDef;
9b639cf2d6 2015-05-05        kinaba: 	} else {
9b639cf2d6 2015-05-05        kinaba: 		// must use mixin so that it doesn't cause a deprecation error under D2
9b639cf2d6 2015-05-05        kinaba: 		mixin("typedef T TypeDef;");
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // [SnakE 2009-02-23] Moved HANDLE definition here from winnt.d to avoid
4e2933c620 2015-04-21        kinaba: // 'forwatd template reference' to CPtr from winnt.d caused by a circular
4e2933c620 2015-04-21        kinaba: // import.
4e2933c620 2015-04-21        kinaba: 
9b639cf2d6 2015-05-05        kinaba: alias TypeDef!(void*) HANDLE;
9b639cf2d6 2015-05-05        kinaba: /+struct HANDLE {
9b639cf2d6 2015-05-05        kinaba:     const(void)* h;
9b639cf2d6 2015-05-05        kinaba:     alias h this;
9b639cf2d6 2015-05-05        kinaba: }+/
4e2933c620 2015-04-21        kinaba: 
9b639cf2d6 2015-05-05        kinaba: package template DECLARE_HANDLE(string name, base = HANDLE) {
9b639cf2d6 2015-05-05        kinaba:     mixin ("alias " ~ base.stringof ~ " " ~ name ~ ";");
9b639cf2d6 2015-05-05        kinaba: }
4e2933c620 2015-04-21        kinaba: alias HANDLE* PHANDLE, LPHANDLE;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: version (Win64) {
4e2933c620 2015-04-21        kinaba: 	alias long __int3264;
4e2933c620 2015-04-21        kinaba: 	const ulong ADDRESS_TAG_BIT = 0x40000000000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	alias long INT_PTR, LONG_PTR;
4e2933c620 2015-04-21        kinaba: 	alias long* PINT_PTR, PLONG_PTR;
4e2933c620 2015-04-21        kinaba: 	alias ulong UINT_PTR, ULONG_PTR, HANDLE_PTR;
4e2933c620 2015-04-21        kinaba: 	alias ulong* PUINT_PTR, PULONG_PTR;
4e2933c620 2015-04-21        kinaba: 	alias int HALF_PTR;
4e2933c620 2015-04-21        kinaba: 	alias int* PHALF_PTR;
4e2933c620 2015-04-21        kinaba: 	alias uint UHALF_PTR;
4e2933c620 2015-04-21        kinaba: 	alias uint* PUHALF_PTR;
4e2933c620 2015-04-21        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	uint HandleToULong(void* h) { return(cast(uint) cast(ULONG_PTR) h); }
9b639cf2d6 2015-05-05        kinaba: 	int HandleToLong(void* h)   { return(cast(int) cast(LONG_PTR) h); }
9b639cf2d6 2015-05-05        kinaba: 	void* ULongToHandle(uint h) { return(cast(void*) cast(UINT_PTR) h); }
9b639cf2d6 2015-05-05        kinaba: 	void* LongToHandle(int h)   { return(cast(void*) cast(INT_PTR) h); }
9b639cf2d6 2015-05-05        kinaba: 	uint PtrToUlong(void* p)    { return(cast(uint) cast(ULONG_PTR) p); }
9b639cf2d6 2015-05-05        kinaba: 	uint PtrToUint(void* p)     { return(cast(uint) cast(UINT_PTR) p); }
9b639cf2d6 2015-05-05        kinaba: 	ushort PtrToUshort(void* p) { return(cast(ushort) cast(uint) cast(ULONG_PTR) p); }
9b639cf2d6 2015-05-05        kinaba: 	int PtrToLong(void* p)      { return(cast(int) cast(LONG_PTR) p); }
9b639cf2d6 2015-05-05        kinaba: 	int PtrToInt(void* p)       { return(cast(int) cast(INT_PTR) p); }
9b639cf2d6 2015-05-05        kinaba: 	short PtrToShort(void* p)   { return(cast(short) cast(int) cast(LONG_PTR) p); }
9b639cf2d6 2015-05-05        kinaba: 	void* IntToPtr(int i)       { return(cast(void*) cast(INT_PTR) i); }
9b639cf2d6 2015-05-05        kinaba: 	void* UIntToPtr(uint ui)    { return(cast(void*) cast(UINT_PTR) ui); }
9b639cf2d6 2015-05-05        kinaba: 	void* LongToPtr(int l)      { return(cast(void*) cast(LONG_PTR) l); }
9b639cf2d6 2015-05-05        kinaba: 	void* ULongToPtr(uint ul)   { return(cast(void*) cast(ULONG_PTR) ul); }
9b639cf2d6 2015-05-05        kinaba: 
4e2933c620 2015-04-21        kinaba: } else {
4e2933c620 2015-04-21        kinaba: 	alias int __int3264;
4e2933c620 2015-04-21        kinaba: 	const uint ADDRESS_TAG_BIT = 0x80000000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	alias int INT_PTR, LONG_PTR;
4e2933c620 2015-04-21        kinaba: 	alias int* PINT_PTR, PLONG_PTR;
4e2933c620 2015-04-21        kinaba: 	alias uint UINT_PTR, ULONG_PTR, HANDLE_PTR;
4e2933c620 2015-04-21        kinaba: 	alias uint* PUINT_PTR, PULONG_PTR;
4e2933c620 2015-04-21        kinaba: 	alias short HALF_PTR;
4e2933c620 2015-04-21        kinaba: 	alias short* PHALF_PTR;
4e2933c620 2015-04-21        kinaba: 	alias ushort UHALF_PTR;
4e2933c620 2015-04-21        kinaba: 	alias ushort* PUHALF_PTR;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	uint HandleToUlong(HANDLE h)      { return cast(uint) h; }
4e2933c620 2015-04-21        kinaba: 	int HandleToLong(HANDLE h)        { return cast(int) h; }
9b639cf2d6 2015-05-05        kinaba: 	HANDLE LongToHandle(LONG_PTR h)   { return cast(HANDLE)h; }
9b639cf2d6 2015-05-05        kinaba: 	uint PtrToUlong(const(void)* p)    { return cast(uint) p; }
9b639cf2d6 2015-05-05        kinaba: 	uint PtrToUint(const(void)* p)     { return cast(uint) p; }
9b639cf2d6 2015-05-05        kinaba: 	int PtrToInt(const(void)* p)       { return cast(int) p; }
9b639cf2d6 2015-05-05        kinaba: 	ushort PtrToUshort(const(void)* p) { return cast(ushort) p; }
9b639cf2d6 2015-05-05        kinaba: 	short PtrToShort(const(void)* p)   { return cast(short) p; }
4e2933c620 2015-04-21        kinaba: 	void* IntToPtr(int i)             { return cast(void*) i; }
4e2933c620 2015-04-21        kinaba: 	void* UIntToPtr(uint ui)          { return cast(void*) ui; }
4e2933c620 2015-04-21        kinaba: 	alias IntToPtr LongToPtr;
4e2933c620 2015-04-21        kinaba: 	alias UIntToPtr ULongToPtr;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: alias UIntToPtr UintToPtr, UlongToPtr;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : UINT_PTR {
4e2933c620 2015-04-21        kinaba: 	MAXUINT_PTR = UINT_PTR.max
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : INT_PTR {
4e2933c620 2015-04-21        kinaba: 	MAXINT_PTR = INT_PTR.max,
4e2933c620 2015-04-21        kinaba: 	MININT_PTR = INT_PTR.min
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : ULONG_PTR {
4e2933c620 2015-04-21        kinaba: 	MAXULONG_PTR = ULONG_PTR.max
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : LONG_PTR {
4e2933c620 2015-04-21        kinaba: 	MAXLONG_PTR = LONG_PTR.max,
4e2933c620 2015-04-21        kinaba: 	MINLONG_PTR = LONG_PTR.min
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : UHALF_PTR {
4e2933c620 2015-04-21        kinaba: 	MAXUHALF_PTR = UHALF_PTR.max
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : HALF_PTR {
4e2933c620 2015-04-21        kinaba: 	MAXHALF_PTR = HALF_PTR.max,
4e2933c620 2015-04-21        kinaba: 	MINHALF_PTR = HALF_PTR.min
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: alias byte INT8;
4e2933c620 2015-04-21        kinaba: alias byte* PINT8;
4e2933c620 2015-04-21        kinaba: alias ubyte UINT8;
4e2933c620 2015-04-21        kinaba: alias ubyte* PUINT8;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: alias short INT16;
4e2933c620 2015-04-21        kinaba: alias short* PINT16;
4e2933c620 2015-04-21        kinaba: alias ushort UINT16;
4e2933c620 2015-04-21        kinaba: alias ushort* PUINT16;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: alias int LONG32, INT32;
4e2933c620 2015-04-21        kinaba: alias int* PLONG32, PINT32;
4e2933c620 2015-04-21        kinaba: alias uint ULONG32, DWORD32, UINT32;
4e2933c620 2015-04-21        kinaba: alias uint* PULONG32, PDWORD32, PUINT32;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: alias ULONG_PTR SIZE_T, DWORD_PTR;
4e2933c620 2015-04-21        kinaba: alias ULONG_PTR* PSIZE_T, PDWORD_PTR;
4e2933c620 2015-04-21        kinaba: alias LONG_PTR SSIZE_T;
4e2933c620 2015-04-21        kinaba: alias LONG_PTR* PSSIZE_T;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: alias long LONG64, INT64;
4e2933c620 2015-04-21        kinaba: alias long* PLONG64, PINT64;
4e2933c620 2015-04-21        kinaba: alias ulong ULONG64, DWORD64, UINT64;
4e2933c620 2015-04-21        kinaba: alias ulong* PULONG64, PDWORD64, PUINT64;