ReactOS 0.4.15-dev-5893-g1bb4167
basetsd.h
Go to the documentation of this file.
1#ifndef _BASETSD_H_
2#define _BASETSD_H_
3#pragma once
4
5#ifdef __GNUC__
6#include <msvctarget.h>
7#endif
8
9#if defined(__LP64__) || (!defined(_M_AMD64) && defined(__WINESRC__))
10#if !defined(__ROS_LONG64__)
11#define __ROS_LONG64__
12#endif
13#endif
14
15#ifdef __GNUC__
16#ifndef __int64
17#define __int64 long long
18#endif
19#endif
20
21#if defined(_MSC_VER) && (_MSC_VER < 1300)
22#error Old MSVC compiler version.
23#endif
24
25#ifdef _MAC
26#error Not supported.
27#endif
28
29#if defined(_MSC_VER) && !defined(MIDL_PASS) && !defined(RC_INVOKED)
30 #define POINTER_64 __ptr64
31 #if defined(_WIN64)
32 #define POINTER_32 __ptr32
33 #else
34 #define POINTER_32
35 #endif
36#else
37 #define POINTER_64
38 #define POINTER_32
39#endif /* defined(_MSC_VER) && !defined(MIDL_PASS) && !defined(RC_INVOKED) */
40
41#if defined(_M_MRX000) || defined(_M_AMD64) || defined(_M_IA64)
42 typedef unsigned __int64 POINTER_64_INT;
43#else
44 typedef unsigned long POINTER_64_INT;
45#endif
46
47#if defined(_IA64_) || defined(_AMD64_)
48 #define FIRMWARE_PTR
49#else
50 #define FIRMWARE_PTR POINTER_32
51#endif
52
53#if 0 /* Not supported yet */
54#define POINTER_SIGNED __sptr
55#define POINTER_UNSIGNED __uptr
56#else
57#define POINTER_SIGNED
58#define POINTER_UNSIGNED
59#endif
60
61#define SPOINTER_32 POINTER_SIGNED POINTER_32
62#define UPOINTER_32 POINTER_UNSIGNED POINTER_32
63
64#if defined(_WIN64)
65#define __int3264 __int64
66typedef __int64 SHANDLE_PTR;
67typedef unsigned __int64 HANDLE_PTR;
68typedef unsigned int UHALF_PTR, *PUHALF_PTR;
69typedef int HALF_PTR, *PHALF_PTR;
70#define ADDRESS_TAG_BIT 0x40000000000UI64
71#define Handle32ToHandle( h ) ((HANDLE)(LONG_PTR)(LONG)(h))
72#else /* !_WIN64 */
73#define __int3264 __int32
74#define ADDRESS_TAG_BIT 0x80000000UL
75typedef unsigned short UHALF_PTR, *PUHALF_PTR;
76typedef short HALF_PTR, *PHALF_PTR;
77typedef long SHANDLE_PTR;
78typedef unsigned long HANDLE_PTR;
79#define HandleToUlong( h ) ((ULONG)(ULONG_PTR)(h) )
80#define HandleToLong( h ) ((LONG)(LONG_PTR) (h) )
81#define ULongToHandle( h) ((HANDLE)(ULONG_PTR) (h))
82#define LongToHandle( h) ((HANDLE)(LONG_PTR) (h))
83#define PtrToUlong( p ) ((ULONG)(ULONG_PTR) (p) )
84#define PtrToLong( p ) ((LONG)(LONG_PTR) (p) )
85#define PtrToUint( p ) ((UINT)(UINT_PTR) (p) )
86#define PtrToInt( p ) ((INT)(INT_PTR) (p) )
87#define PtrToUshort( p ) ((unsigned short)(ULONG_PTR)(p) )
88#define PtrToShort( p ) ((short)(LONG_PTR)(p) )
89#define IntToPtr( i ) ((VOID*)(INT_PTR)((int)i))
90#define UIntToPtr( ui ) ((VOID*)(UINT_PTR)((unsigned int)ui))
91#define LongToPtr( l ) ((VOID*)(LONG_PTR)((long)l))
92#define ULongToPtr( ul ) ((VOID*)(ULONG_PTR)((unsigned long)ul))
93#endif /* !_WIN64 */
94
95#define HandleToULong(h) HandleToUlong(h)
96
97#define UlongToHandle(ul) ULongToHandle(ul)
98#define UlongToPtr(ul) ULongToPtr(ul)
99#define UintToPtr(ui) UIntToPtr(ui)
100#define MAXUINT_PTR (~((UINT_PTR)0))
101#define MAXINT_PTR ((INT_PTR)(MAXUINT_PTR >> 1))
102#define MININT_PTR (~MAXINT_PTR)
103#define MAXULONG_PTR (~((ULONG_PTR)0))
104#define MAXLONG_PTR ((LONG_PTR)(MAXULONG_PTR >> 1))
105#define MINLONG_PTR (~MAXLONG_PTR)
106#define MAXUHALF_PTR ((UHALF_PTR)~0)
107#define MAXHALF_PTR ((HALF_PTR)(MAXUHALF_PTR >> 1))
108#define MINHALF_PTR (~MAXHALF_PTR)
109
110#if _WIN32_WINNT >= 0x0600
111
112#define MAXUINT ((UINT)~((UINT)0))
113#define MAXULONGLONG ((ULONGLONG)~((ULONGLONG)0))
114
115#endif
116
117#ifndef RC_INVOKED
118#ifdef __cplusplus
119extern "C" {
120#endif
121typedef int LONG32, *PLONG32;
122#ifndef XFree86Server
123typedef int INT32, *PINT32;
124#endif /* ndef XFree86Server */
125typedef unsigned int ULONG32, *PULONG32;
126typedef unsigned int DWORD32, *PDWORD32;
127typedef unsigned int UINT32, *PUINT32;
128
129#if defined(_WIN64)
130typedef __int64 INT_PTR, *PINT_PTR;
131typedef unsigned __int64 UINT_PTR, *PUINT_PTR;
132typedef __int64 LONG_PTR, *PLONG_PTR;
133typedef unsigned __int64 ULONG_PTR, *PULONG_PTR;
134
135#if !defined(__midl) && !defined(__WIDL__)
136static inline unsigned long HandleToUlong(const void* h )
137 { return((unsigned long)(ULONG_PTR) h ); }
138static inline long HandleToLong( const void* h )
139 { return((long)(LONG_PTR) h ); }
140static inline void* ULongToHandle( const long h )
141 { return((void*) (UINT_PTR) h ); }
142static inline void* LongToHandle( const long h )
143 { return((void*) (INT_PTR) h ); }
144static inline unsigned long PtrToUlong( const void* p)
145 { return((unsigned long)(ULONG_PTR) p ); }
146static inline unsigned int PtrToUint( const void* p )
147 { return((unsigned int)(UINT_PTR) p ); }
148static inline unsigned short PtrToUshort( const void* p )
149 { return((unsigned short)(ULONG_PTR) p ); }
150static inline long PtrToLong( const void* p )
151 { return((long)(LONG_PTR) p ); }
152static inline int PtrToInt( const void* p )
153 { return((int)(INT_PTR) p ); }
154static inline short PtrToShort( const void* p )
155 { return((short)(INT_PTR) p ); }
156static inline void* IntToPtr( const int i )
157 { return( (void*)(INT_PTR)i ); }
158static inline void* UIntToPtr(const unsigned int ui)
159 { return( (void*)(UINT_PTR)ui ); }
160static inline void* LongToPtr( const long l )
161 { return( (void*)(LONG_PTR)l ); }
162static inline void* ULongToPtr( const unsigned long ul )
163 { return( (void*)(ULONG_PTR)ul ); }
164#endif /* !__midl */
165#else /* !_WIN64 */
166#if !defined(__ROS_LONG64__)
167typedef int INT_PTR, *PINT_PTR;
168typedef unsigned int UINT_PTR, *PUINT_PTR;
169#else
170typedef long INT_PTR, *PINT_PTR;
171typedef unsigned long UINT_PTR, *PUINT_PTR;
172#endif
173
174#ifndef LONG_PTR_DEFINED
175#define LONG_PTR_DEFINED
176 typedef long LONG_PTR, *PLONG_PTR;
177 typedef unsigned long ULONG_PTR, *PULONG_PTR;
178#endif
179
180#endif /* !_WIN64 */
181
187typedef unsigned __int64 ULONG64, *PULONG64;
188typedef unsigned __int64 DWORD64, *PDWORD64;
189typedef unsigned __int64 UINT64, *PUINT64;
190
191typedef signed char INT8, *PINT8;
192typedef unsigned char UINT8, *PUINT8;
193typedef signed short INT16, *PINT16;
194typedef unsigned short UINT16, *PUINT16;
195
198
199#ifdef __cplusplus
200}
201#endif
202#endif /* !RC_INVOKED */
203
204#endif /* _BASETSD_H_ */
unsigned char * PUINT8
Definition: basetsd.h:192
ULONG_PTR * PSIZE_T
Definition: basetsd.h:182
unsigned short UINT16
Definition: basetsd.h:194
int LONG32
Definition: basetsd.h:121
int * PLONG32
Definition: basetsd.h:121
#define PtrToShort(p)
Definition: basetsd.h:88
LONG_PTR SSIZE_T
Definition: basetsd.h:183
KAFFINITY * PKAFFINITY
Definition: basetsd.h:197
__int64 INT64
Definition: basetsd.h:186
#define PtrToInt(p)
Definition: basetsd.h:86
int * PINT32
Definition: basetsd.h:123
long SHANDLE_PTR
Definition: basetsd.h:77
unsigned int ULONG32
Definition: basetsd.h:125
short HALF_PTR
Definition: basetsd.h:76
signed char * PINT8
Definition: basetsd.h:191
signed short INT16
Definition: basetsd.h:193
#define HandleToLong(h)
Definition: basetsd.h:80
unsigned long POINTER_64_INT
Definition: basetsd.h:44
#define LongToHandle(h)
Definition: basetsd.h:82
#define PtrToLong(p)
Definition: basetsd.h:84
ULONG_PTR KAFFINITY
Definition: basetsd.h:196
unsigned int UINT_PTR
Definition: basetsd.h:168
ULONG_PTR DWORD_PTR
Definition: basetsd.h:184
#define PtrToUint(p)
Definition: basetsd.h:85
unsigned __int64 * PULONG64
Definition: basetsd.h:187
int INT32
Definition: basetsd.h:123
#define IntToPtr(i)
Definition: basetsd.h:89
ULONG_PTR * PDWORD_PTR
Definition: basetsd.h:184
int * PINT_PTR
Definition: basetsd.h:167
#define HandleToUlong(h)
Definition: basetsd.h:79
unsigned short UHALF_PTR
Definition: basetsd.h:75
long * PLONG_PTR
Definition: basetsd.h:176
#define ULongToHandle(h)
Definition: basetsd.h:81
signed char INT8
Definition: basetsd.h:191
__int64 LONG64
Definition: basetsd.h:185
#define UIntToPtr(ui)
Definition: basetsd.h:90
unsigned __int64 ULONG64
Definition: basetsd.h:187
unsigned int * PUINT32
Definition: basetsd.h:127
unsigned __int64 DWORD64
Definition: basetsd.h:188
LONG_PTR * PSSIZE_T
Definition: basetsd.h:183
#define ULongToPtr(ul)
Definition: basetsd.h:92
#define PtrToUlong(p)
Definition: basetsd.h:83
int INT_PTR
Definition: basetsd.h:167
unsigned __int64 UINT64
Definition: basetsd.h:189
unsigned short * PUINT16
Definition: basetsd.h:194
unsigned char UINT8
Definition: basetsd.h:192
#define PtrToUshort(p)
Definition: basetsd.h:87
unsigned int DWORD32
Definition: basetsd.h:126
long LONG_PTR
Definition: basetsd.h:176
short * PHALF_PTR
Definition: basetsd.h:76
unsigned long * PULONG_PTR
Definition: basetsd.h:177
#define LongToPtr(l)
Definition: basetsd.h:91
unsigned long ULONG_PTR
Definition: basetsd.h:177
unsigned int * PDWORD32
Definition: basetsd.h:126
signed short * PINT16
Definition: basetsd.h:193
unsigned __int64 * PUINT64
Definition: basetsd.h:189
__int64 * PINT64
Definition: basetsd.h:186
unsigned int UINT32
Definition: basetsd.h:127
unsigned short * PUHALF_PTR
Definition: basetsd.h:75
__int64 * PLONG64
Definition: basetsd.h:185
unsigned __int64 * PDWORD64
Definition: basetsd.h:188
unsigned long HANDLE_PTR
Definition: basetsd.h:78
ULONG_PTR SIZE_T
Definition: basetsd.h:182
unsigned int * PULONG32
Definition: basetsd.h:125
unsigned int * PUINT_PTR
Definition: basetsd.h:168
#define __int64
Definition: basetyps.h:16
r l[0]
Definition: byte_order.h:167
ULONG_PTR KAFFINITY
Definition: compat.h:85
GLfloat GLfloat p
Definition: glext.h:8902
GLfloat GLfloat GLfloat GLfloat h
Definition: glext.h:7723
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
unsigned __int3264 UINT_PTR
Definition: mstsclib_h.h:274
UINT ui
Definition: oleauto.h:49
int32_t INT_PTR
Definition: typedefs.h:64
uint32_t ULONG_PTR
Definition: typedefs.h:65