ReactOS 0.4.15-dev-7918-g2a2556c
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;
122typedef int INT32, *PINT32;
123typedef unsigned int ULONG32, *PULONG32;
124typedef unsigned int DWORD32, *PDWORD32;
125typedef unsigned int UINT32, *PUINT32;
126
127#if defined(_WIN64)
128typedef __int64 INT_PTR, *PINT_PTR;
129typedef unsigned __int64 UINT_PTR, *PUINT_PTR;
130typedef __int64 LONG_PTR, *PLONG_PTR;
131typedef unsigned __int64 ULONG_PTR, *PULONG_PTR;
132
133#if !defined(__midl) && !defined(__WIDL__)
134static inline unsigned long HandleToUlong(const void* h )
135 { return((unsigned long)(ULONG_PTR) h ); }
136static inline long HandleToLong( const void* h )
137 { return((long)(LONG_PTR) h ); }
138static inline void* ULongToHandle( const long h )
139 { return((void*) (UINT_PTR) h ); }
140static inline void* LongToHandle( const long h )
141 { return((void*) (INT_PTR) h ); }
142static inline unsigned long PtrToUlong( const void* p)
143 { return((unsigned long)(ULONG_PTR) p ); }
144static inline unsigned int PtrToUint( const void* p )
145 { return((unsigned int)(UINT_PTR) p ); }
146static inline unsigned short PtrToUshort( const void* p )
147 { return((unsigned short)(ULONG_PTR) p ); }
148static inline long PtrToLong( const void* p )
149 { return((long)(LONG_PTR) p ); }
150static inline int PtrToInt( const void* p )
151 { return((int)(INT_PTR) p ); }
152static inline short PtrToShort( const void* p )
153 { return((short)(INT_PTR) p ); }
154static inline void* IntToPtr( const int i )
155 { return( (void*)(INT_PTR)i ); }
156static inline void* UIntToPtr(const unsigned int ui)
157 { return( (void*)(UINT_PTR)ui ); }
158static inline void* LongToPtr( const long l )
159 { return( (void*)(LONG_PTR)l ); }
160static inline void* ULongToPtr( const unsigned long ul )
161 { return( (void*)(ULONG_PTR)ul ); }
162#endif /* !__midl */
163#else /* !_WIN64 */
164#if !defined(__ROS_LONG64__)
165typedef int INT_PTR, *PINT_PTR;
166typedef unsigned int UINT_PTR, *PUINT_PTR;
167#else
168typedef long INT_PTR, *PINT_PTR;
169typedef unsigned long UINT_PTR, *PUINT_PTR;
170#endif
171
172#ifndef LONG_PTR_DEFINED
173#define LONG_PTR_DEFINED
174 typedef long LONG_PTR, *PLONG_PTR;
175 typedef unsigned long ULONG_PTR, *PULONG_PTR;
176#endif
177
178#endif /* !_WIN64 */
179
185typedef unsigned __int64 ULONG64, *PULONG64;
186typedef unsigned __int64 DWORD64, *PDWORD64;
187typedef unsigned __int64 UINT64, *PUINT64;
188
189typedef signed char INT8, *PINT8;
190typedef unsigned char UINT8, *PUINT8;
191typedef signed short INT16, *PINT16;
192typedef unsigned short UINT16, *PUINT16;
193
196
197#ifdef __cplusplus
198}
199#endif
200#endif /* !RC_INVOKED */
201
202#endif /* _BASETSD_H_ */
unsigned char * PUINT8
Definition: basetsd.h:190
ULONG_PTR * PSIZE_T
Definition: basetsd.h:180
unsigned short UINT16
Definition: basetsd.h:192
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:181
KAFFINITY * PKAFFINITY
Definition: basetsd.h:195
__int64 INT64
Definition: basetsd.h:184
#define PtrToInt(p)
Definition: basetsd.h:86
int * PINT32
Definition: basetsd.h:122
long SHANDLE_PTR
Definition: basetsd.h:77
unsigned int ULONG32
Definition: basetsd.h:123
short HALF_PTR
Definition: basetsd.h:76
signed char * PINT8
Definition: basetsd.h:189
signed short INT16
Definition: basetsd.h:191
#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:194
unsigned int UINT_PTR
Definition: basetsd.h:166
ULONG_PTR DWORD_PTR
Definition: basetsd.h:182
#define PtrToUint(p)
Definition: basetsd.h:85
unsigned __int64 * PULONG64
Definition: basetsd.h:185
int INT32
Definition: basetsd.h:122
#define IntToPtr(i)
Definition: basetsd.h:89
ULONG_PTR * PDWORD_PTR
Definition: basetsd.h:182
int * PINT_PTR
Definition: basetsd.h:165
#define HandleToUlong(h)
Definition: basetsd.h:79
unsigned short UHALF_PTR
Definition: basetsd.h:75
long * PLONG_PTR
Definition: basetsd.h:174
#define ULongToHandle(h)
Definition: basetsd.h:81
signed char INT8
Definition: basetsd.h:189
__int64 LONG64
Definition: basetsd.h:183
#define UIntToPtr(ui)
Definition: basetsd.h:90
unsigned __int64 ULONG64
Definition: basetsd.h:185
unsigned int * PUINT32
Definition: basetsd.h:125
unsigned __int64 DWORD64
Definition: basetsd.h:186
LONG_PTR * PSSIZE_T
Definition: basetsd.h:181
#define ULongToPtr(ul)
Definition: basetsd.h:92
#define PtrToUlong(p)
Definition: basetsd.h:83
int INT_PTR
Definition: basetsd.h:165
unsigned __int64 UINT64
Definition: basetsd.h:187
unsigned short * PUINT16
Definition: basetsd.h:192
unsigned char UINT8
Definition: basetsd.h:190
#define PtrToUshort(p)
Definition: basetsd.h:87
unsigned int DWORD32
Definition: basetsd.h:124
long LONG_PTR
Definition: basetsd.h:174
short * PHALF_PTR
Definition: basetsd.h:76
unsigned long * PULONG_PTR
Definition: basetsd.h:175
#define LongToPtr(l)
Definition: basetsd.h:91
unsigned long ULONG_PTR
Definition: basetsd.h:175
unsigned int * PDWORD32
Definition: basetsd.h:124
signed short * PINT16
Definition: basetsd.h:191
unsigned __int64 * PUINT64
Definition: basetsd.h:187
__int64 * PINT64
Definition: basetsd.h:184
unsigned int UINT32
Definition: basetsd.h:125
unsigned short * PUHALF_PTR
Definition: basetsd.h:75
__int64 * PLONG64
Definition: basetsd.h:183
unsigned __int64 * PDWORD64
Definition: basetsd.h:186
unsigned long HANDLE_PTR
Definition: basetsd.h:78
ULONG_PTR SIZE_T
Definition: basetsd.h:180
unsigned int * PULONG32
Definition: basetsd.h:123
unsigned int * PUINT_PTR
Definition: basetsd.h:166
#define __int64
Definition: basetyps.h:16
r l[0]
Definition: byte_order.h:168
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