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.
4e2933c620 2015-04-21        kinaba:  */
4e2933c620 2015-04-21        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;
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: 
4e2933c620 2015-04-21        kinaba: alias void* HANDLE;
4e2933c620 2015-04-21        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: 
4e2933c620 2015-04-21        kinaba: 	/*	*To* functions are conditioned out in MinGW.
4e2933c620 2015-04-21        kinaba: 	 *	Presumably they're not working/tested yet.  Comment:
4e2933c620 2015-04-21        kinaba: 			TODO when WIN64 is here
4e2933c620 2015-04-21        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; }
4e2933c620 2015-04-21        kinaba: 	HANDLE LongToHandle(LONG_PTR h)   { return cast(HANDLE) h; }
4e2933c620 2015-04-21        kinaba: 	uint PtrToUlong(CPtr!(void) p)    { return cast(uint) p; }
4e2933c620 2015-04-21        kinaba: 	uint PtrToUint(CPtr!(void) p)     { return cast(uint) p; }
4e2933c620 2015-04-21        kinaba: 	int PtrToInt(CPtr!(void) p)       { return cast(int) p; }
4e2933c620 2015-04-21        kinaba: 	ushort PtrToUshort(CPtr!(void) p) { return cast(ushort) p; }
4e2933c620 2015-04-21        kinaba: 	short PtrToShort(CPtr!(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;