intsafe.h (44120B) - Raw
1 /** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6 7 #ifndef _INTSAFE_H_INCLUDED_ 8 #define _INTSAFE_H_INCLUDED_ 9 10 #include <winapifamily.h> 11 12 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) 13 14 #include <wtypesbase.h> 15 #include <specstrings.h> 16 17 #define INTSAFE_E_ARITHMETIC_OVERFLOW ((HRESULT)0x80070216) 18 19 #ifndef S_OK 20 #define S_OK ((HRESULT)0) 21 #endif 22 23 #ifdef __clang__ 24 #if __has_builtin(__builtin_add_overflow) 25 #define __MINGW_INTSAFE_WORKS 26 #endif 27 #elif __GNUC__ >= 5 28 #define __MINGW_INTSAFE_WORKS 29 #endif 30 31 #ifdef __MINGW_INTSAFE_WORKS 32 33 #ifndef __MINGW_INTSAFE_API 34 #define __MINGW_INTSAFE_API FORCEINLINE 35 #endif 36 37 /** If CHAR is unsigned, use static inline for functions that operate 38 on chars. This avoids the risk of linking to the wrong function when 39 different translation units with different types of chars are linked 40 together, and code using signed chars will not be affected. */ 41 #ifndef __MINGW_INTSAFE_CHAR_API 42 #ifdef __CHAR_UNSIGNED__ 43 #define __MINGW_INTSAFE_CHAR_API static inline 44 #else 45 #define __MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_API 46 #endif 47 #endif 48 49 #define __MINGW_INTSAFE_BODY(operation, x, y, overflow) \ 50 { \ 51 if (__builtin_##operation##_overflow(x, y, result)) \ 52 { \ 53 *result = overflow; \ 54 return INTSAFE_E_ARITHMETIC_OVERFLOW; \ 55 } \ 56 return S_OK; \ 57 } 58 59 #define __MINGW_INTSAFE_CONV_UCHAR(name, type_src, type_dest) \ 60 HRESULT name(type_src operand, type_dest * result) \ 61 __MINGW_INTSAFE_BODY(add, operand, 0, 0) 62 63 #define __MINGW_INTSAFE_CONV(name, type_src, type_dest) \ 64 HRESULT name(type_src operand, type_dest * result) \ 65 __MINGW_INTSAFE_BODY(add, operand, 0, ~0) 66 67 #define __MINGW_INTSAFE_MATH(name, type, operation) \ 68 HRESULT name(type x, type y, type * result) \ 69 __MINGW_INTSAFE_BODY(operation, x, y, ~0) 70 71 #ifdef __CHAR_UNSIGNED__ 72 #define __MINGW_INTSAFE_CONV_CHAR __MINGW_INTSAFE_CONV_UCHAR 73 #else 74 #define __MINGW_INTSAFE_CONV_CHAR __MINGW_INTSAFE_CONV 75 #endif 76 77 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UInt8ToInt8, UINT8, INT8) 78 __MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(UInt8ToChar, UINT8, CHAR) 79 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ByteToInt8, BYTE, INT8) 80 __MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(ByteToChar, BYTE, CHAR) 81 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(Int8ToUChar, INT8, UCHAR) 82 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int8ToUInt8, INT8, UINT8) 83 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int8ToUShort, INT8, USHORT) 84 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int8ToUInt, INT8, UINT) 85 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int8ToULong, INT8, ULONG) 86 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int8ToUIntPtr, INT8, UINT_PTR) 87 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int8ToULongPtr, INT8, ULONG_PTR) 88 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int8ToULongLong, INT8, ULONGLONG) 89 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(UShortToUChar, USHORT, UCHAR) 90 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UShortToUInt8, USHORT, UINT8) 91 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UShortToByte, USHORT, BYTE) 92 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UShortToInt8, USHORT, INT8) 93 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UShortToShort, USHORT, SHORT) 94 __MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(UShortToChar, USHORT, CHAR) 95 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(WordToUChar, WORD, UCHAR) 96 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(WordToByte, WORD, BYTE) 97 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(WordToShort, WORD, SHORT) 98 __MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(WordToChar, WORD, CHAR) 99 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(ShortToUChar, SHORT, UCHAR) 100 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ShortToUInt8, SHORT, UINT8) 101 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ShortToByte, SHORT, BYTE) 102 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ShortToInt8, SHORT, INT8) 103 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ShortToUShort, SHORT, USHORT) 104 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ShortToWord, SHORT, WORD) 105 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ShortToUInt, SHORT, UINT) 106 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ShortToULong, SHORT, ULONG) 107 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ShortToUIntPtr, SHORT, UINT_PTR) 108 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ShortToULongPtr, SHORT, ULONG_PTR) 109 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ShortToDWordPtr, SHORT, DWORD_PTR) 110 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ShortToULongLong, SHORT, ULONGLONG) 111 __MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(ShortToChar, SHORT, CHAR) 112 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(UIntToUChar, UINT, UCHAR) 113 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntToUInt8, UINT, UINT8) 114 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntToByte, UINT, BYTE) 115 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntToInt8, UINT, INT8) 116 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntToUShort, UINT, USHORT) 117 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntToWord, UINT, WORD) 118 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntToShort, UINT, SHORT) 119 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntToLong, UINT, LONG) 120 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntToInt, UINT, INT) 121 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntToIntPtr, UINT, INT_PTR) 122 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntToPtrdiffT, UINT, ptrdiff_t) 123 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntToLongPtr, UINT, LONG_PTR) 124 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntToSSIZET, UINT, SSIZE_T) 125 __MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(UIntToChar, UINT, CHAR) 126 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(ULongToUChar, ULONG, UCHAR) 127 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToUInt8, ULONG, UINT8) 128 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToByte, ULONG, BYTE) 129 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToInt8, ULONG, INT8) 130 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToUShort, ULONG, USHORT) 131 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToWord, ULONG, WORD) 132 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToShort, ULONG, SHORT) 133 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToUInt, ULONG, UINT) 134 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToLong, ULONG, LONG) 135 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToInt, ULONG, INT) 136 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToUIntPtr, ULONG, UINT_PTR) 137 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToIntPtr, ULONG, INT_PTR) 138 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToPtrdiffT, ULONG, ptrdiff_t) 139 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToLongPtr, ULONG, LONG_PTR) 140 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongToSSIZET, ULONG, SSIZE_T) 141 __MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(ULongToChar, ULONG, CHAR) 142 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(DWordToUChar, DWORD, UCHAR) 143 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordToByte, DWORD, BYTE) 144 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordToUShort, DWORD, USHORT) 145 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordToWord, DWORD, WORD) 146 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordToShort, DWORD, SHORT) 147 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordToUInt, DWORD, UINT) 148 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordToLong, DWORD, LONG) 149 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordToInt, DWORD, INT) 150 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordToUIntPtr, DWORD, UINT_PTR) 151 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordToIntPtr, DWORD, INT_PTR) 152 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordToPtrdiffT, DWORD, ptrdiff_t) 153 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordToLongPtr, DWORD, LONG_PTR) 154 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordToSSIZET, DWORD, SSIZE_T) 155 __MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(DWordToChar, DWORD, CHAR) 156 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(LongToUChar, LONG, UCHAR) 157 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToUInt8, LONG, UINT8) 158 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToByte, LONG, BYTE) 159 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToInt8, LONG, INT8) 160 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToUShort, LONG, USHORT) 161 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToWord, LONG, WORD) 162 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToShort, LONG, SHORT) 163 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToUInt, LONG, UINT) 164 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToULong, LONG, ULONG) 165 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToDWord, LONG, DWORD) 166 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToInt, LONG, INT) 167 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToUIntPtr, LONG, UINT_PTR) 168 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToSizeT, LONG, size_t) 169 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToULongPtr, LONG, ULONG_PTR) 170 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToDWordPtr, LONG, DWORD_PTR) 171 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToIntPtr, LONG, INT_PTR) 172 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToPtrdiffT, LONG, ptrdiff_t) 173 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongToULongLong, LONG, ULONGLONG) 174 __MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(LongToChar, LONG, CHAR) 175 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(IntToUChar, INT, UCHAR) 176 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToUInt8, INT, UINT8) 177 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToByte, INT, BYTE) 178 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToInt8, INT, INT8) 179 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToUShort, INT, USHORT) 180 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToWord, INT, WORD) 181 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToShort, INT, SHORT) 182 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToUInt, INT, UINT) 183 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToULong, INT, ULONG) 184 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToDWord, INT, DWORD) 185 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToUIntPtr, INT, UINT_PTR) 186 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToSizeT, INT, size_t) 187 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToULongPtr, INT, ULONG_PTR) 188 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToDWordPtr, INT, DWORD_PTR) 189 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntToULongLong, INT, ULONGLONG) 190 __MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(IntToChar, INT, CHAR) 191 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(UIntPtrToUChar, UINT_PTR, UCHAR) 192 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToUInt8, UINT_PTR, UINT8) 193 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToInt8, UINT_PTR, INT8) 194 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToUInt16, UINT_PTR, UINT16) 195 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToUShort, UINT_PTR, USHORT) 196 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToInt16, UINT_PTR, INT16) 197 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToShort, UINT_PTR, SHORT) 198 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToUInt, UINT_PTR, UINT) 199 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToULong, UINT_PTR, ULONG) 200 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToDWord, UINT_PTR, DWORD) 201 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToLong, UINT_PTR, LONG) 202 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToInt, UINT_PTR, INT) 203 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToIntPtr, UINT_PTR, INT_PTR) 204 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToLongPtr, UINT_PTR, LONG_PTR) 205 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToSSIZET, UINT_PTR, SSIZE_T) 206 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToInt64, UINT_PTR, INT64) 207 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(UIntPtrToLongLong, UINT_PTR, LONGLONG) 208 __MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(UIntPtrToChar, UINT_PTR, CHAR) 209 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToUInt, size_t, UINT) 210 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToULong, size_t, ULONG) 211 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToDWord, size_t, DWORD) 212 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToLong, size_t, LONG) 213 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToInt, size_t, INT) 214 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToIntPtr, size_t, INT_PTR) 215 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToPtrdiffT, size_t, ptrdiff_t) 216 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToLongPtr, size_t, LONG_PTR) 217 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToSSIZET, size_t, SSIZE_T) 218 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToInt64, size_t, INT64) 219 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SizeTToUInt32, size_t, UINT32) 220 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(ULongPtrToUChar, ULONG_PTR, UCHAR) 221 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToUInt8, ULONG_PTR, UINT8) 222 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToInt8, ULONG_PTR, INT8) 223 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToUShort, ULONG_PTR, USHORT) 224 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToShort, ULONG_PTR, SHORT) 225 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToUInt, ULONG_PTR, UINT) 226 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToULong, ULONG_PTR, ULONG) 227 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToDWord, ULONG_PTR, DWORD) 228 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToLong, ULONG_PTR, LONG) 229 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToInt, ULONG_PTR, INT) 230 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToUIntPtr, ULONG_PTR, UINT_PTR) 231 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToIntPtr, ULONG_PTR, INT_PTR) 232 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToPtrdiffT, ULONG_PTR, ptrdiff_t) 233 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToLongPtr, ULONG_PTR, LONG_PTR) 234 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToSSIZET, ULONG_PTR, SSIZE_T) 235 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToInt64, ULONG_PTR, INT64) 236 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongPtrToLongLong, ULONG_PTR, LONGLONG) 237 __MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(ULongPtrToChar, ULONG_PTR, CHAR) 238 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordPtrToUInt, DWORD_PTR, UINT) 239 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordPtrToULong, DWORD_PTR, ULONG) 240 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordPtrToDWord, DWORD_PTR, DWORD) 241 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordPtrToLong, DWORD_PTR, LONG) 242 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordPtrToInt, DWORD_PTR, INT) 243 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordPtrToUIntPtr, DWORD_PTR, UINT_PTR) 244 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordPtrToIntPtr, DWORD_PTR, INT_PTR) 245 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordPtrToPtrdiffT, DWORD_PTR, ptrdiff_t) 246 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordPtrToLongPtr, DWORD_PTR, LONG_PTR) 247 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordPtrToSSIZET, DWORD_PTR, SSIZE_T) 248 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(DWordPtrToInt64, DWORD_PTR, INT64) 249 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(IntPtrToUChar, INT_PTR, UCHAR) 250 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToUInt8, INT_PTR, UINT8) 251 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToInt8, INT_PTR, INT8) 252 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToUShort, INT_PTR, USHORT) 253 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToShort, INT_PTR, SHORT) 254 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToUInt, INT_PTR, UINT) 255 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToULong, INT_PTR, ULONG) 256 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToDWord, INT_PTR, DWORD) 257 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToLong, INT_PTR, LONG) 258 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToInt, INT_PTR, INT) 259 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToUIntPtr, INT_PTR, UINT_PTR) 260 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToSizeT, INT_PTR, size_t) 261 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToULongPtr, INT_PTR, ULONG_PTR) 262 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToDWordPtr, INT_PTR, DWORD_PTR) 263 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToLongPtr, INT_PTR, LONG_PTR) 264 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(IntPtrToULongLong, INT_PTR, ULONGLONG) 265 __MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(IntPtrToChar, INT_PTR, CHAR) 266 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToUInt, ptrdiff_t, UINT) 267 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToULong, ptrdiff_t, ULONG) 268 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToDWord, ptrdiff_t, DWORD) 269 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToLong, ptrdiff_t, LONG) 270 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToInt, ptrdiff_t, INT) 271 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToUIntPtr, ptrdiff_t, UINT_PTR) 272 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToSizeT, ptrdiff_t, size_t) 273 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToULongPtr, ptrdiff_t, ULONG_PTR) 274 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(PtrdiffTToDWordPtr, ptrdiff_t, DWORD_PTR) 275 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(LongPtrToUChar, LONG_PTR, UCHAR) 276 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToUInt8, LONG_PTR, UINT8) 277 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToInt8, LONG_PTR, INT8) 278 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToUShort, LONG_PTR, USHORT) 279 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToShort, LONG_PTR, SHORT) 280 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToUInt, LONG_PTR, UINT) 281 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToULong, LONG_PTR, ULONG) 282 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToDWord, LONG_PTR, DWORD) 283 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToLong, LONG_PTR, LONG) 284 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToInt, LONG_PTR, INT) 285 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToUIntPtr, LONG_PTR, UINT_PTR) 286 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToSizeT, LONG_PTR, size_t) 287 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToULongPtr, LONG_PTR, ULONG_PTR) 288 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToDWordPtr, LONG_PTR, DWORD_PTR) 289 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToIntPtr, LONG_PTR, INT_PTR) 290 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongPtrToULongLong, LONG_PTR, ULONGLONG) 291 __MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(LongPtrToChar, LONG_PTR, CHAR) 292 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SSIZETToUInt, SSIZE_T, UINT) 293 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SSIZETToULong, SSIZE_T, ULONG) 294 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SSIZETToDWord, SSIZE_T, DWORD) 295 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SSIZETToLong, SSIZE_T, LONG) 296 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SSIZETToInt, SSIZE_T, INT) 297 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SSIZETToUIntPtr, SSIZE_T, UINT_PTR) 298 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SSIZETToSizeT, SSIZE_T, size_t) 299 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SSIZETToULongPtr, SSIZE_T, ULONG_PTR) 300 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SSIZETToDWordPtr, SSIZE_T, DWORD_PTR) 301 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(SSIZETToIntPtr, SSIZE_T, INT_PTR) 302 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(ULongLongToUChar, ULONGLONG, UCHAR) 303 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToUInt8, ULONGLONG, UINT8) 304 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToInt8, ULONGLONG, INT8) 305 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToUShort, ULONGLONG, USHORT) 306 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToShort, ULONGLONG, SHORT) 307 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToUInt, ULONGLONG, UINT) 308 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToULong, ULONGLONG, ULONG) 309 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToDWord, ULONGLONG, DWORD) 310 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToLong, ULONGLONG, LONG) 311 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToInt, ULONGLONG, INT) 312 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToUIntPtr, ULONGLONG, UINT_PTR) 313 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToSizeT, ULONGLONG, size_t) 314 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToULongPtr, ULONGLONG, ULONG_PTR) 315 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToDWordPtr, ULONGLONG, DWORD_PTR) 316 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToIntPtr, ULONGLONG, INT_PTR) 317 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToPtrdiffT, ULONGLONG, ptrdiff_t) 318 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToLongPtr, ULONGLONG, LONG_PTR) 319 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToSSIZET, ULONGLONG, SSIZE_T) 320 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToInt64, ULONGLONG, INT64) 321 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(ULongLongToLongLong, ULONGLONG, LONGLONG) 322 __MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(ULongLongToChar, ULONGLONG, CHAR) 323 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToUInt, INT64, UINT) 324 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToULong, INT64, ULONG) 325 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToDWord, INT64, DWORD) 326 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToLong, INT64, LONG) 327 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToInt, INT64, INT) 328 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToUIntPtr, INT64, UINT_PTR) 329 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToSizeT, INT64, size_t) 330 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToULongPtr, INT64, ULONG_PTR) 331 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToDWordPtr, INT64, DWORD_PTR) 332 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToIntPtr, INT64, INT_PTR) 333 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToPtrdiffT, INT64, ptrdiff_t) 334 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToLongPtr, INT64, LONG_PTR) 335 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToSSIZET, INT64, SSIZE_T) 336 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(Int64ToULongLong, INT64, ULONGLONG) 337 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV_UCHAR(LongLongToUChar, LONGLONG, UCHAR) 338 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToUInt8, LONGLONG, UINT8) 339 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToInt8, LONGLONG, INT8) 340 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToUShort, LONGLONG, USHORT) 341 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToShort, LONGLONG, SHORT) 342 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToUInt, LONGLONG, UINT) 343 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToULong, LONGLONG, ULONG) 344 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToLong, LONGLONG, LONG) 345 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToInt, LONGLONG, INT) 346 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToIntPtr, LONGLONG, INT_PTR) 347 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToLongPtr, LONGLONG, LONG_PTR) 348 __MINGW_INTSAFE_API __MINGW_INTSAFE_CONV(LongLongToULongLong, LONGLONG, ULONGLONG) 349 __MINGW_INTSAFE_CHAR_API __MINGW_INTSAFE_CONV_CHAR(LongLongToChar, LONGLONG, CHAR) 350 351 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UInt8Add, UINT8, add) 352 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(Int8Add, INT8, add) 353 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UShortAdd, USHORT, add) 354 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(WordAdd, WORD, add) 355 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ShortAdd, SHORT, add) 356 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UIntAdd, UINT, add) 357 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongAdd, ULONG, add) 358 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(DWordAdd, DWORD, add) 359 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongAdd, LONG, add) 360 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(IntAdd, INT, add) 361 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UIntPtrAdd, UINT_PTR, add) 362 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SizeTAdd, size_t, add) 363 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongPtrAdd, ULONG_PTR, add) 364 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(DWordPtrAdd, DWORD_PTR, add) 365 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(IntPtrAdd, INT_PTR, add) 366 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(PtrdiffTAdd, ptrdiff_t, add) 367 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongPtrAdd, LONG_PTR, add) 368 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SIZETAdd, SIZE_T, add) 369 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SSIZETAdd, SSIZE_T, add) 370 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongLongAdd, ULONGLONG, add) 371 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongAdd, LONGLONG, add) 372 373 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UInt8Sub, UINT8, sub) 374 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(Int8Sub, INT8, sub) 375 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UShortSub, USHORT, sub) 376 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(WordSub, WORD, sub) 377 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ShortSub, SHORT, sub) 378 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UIntSub, UINT, sub) 379 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongSub, ULONG, sub) 380 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(DWordSub, DWORD, sub) 381 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongSub, LONG, sub) 382 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(IntSub, INT, sub) 383 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UIntPtrSub, UINT_PTR, sub) 384 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SizeTSub, size_t, sub) 385 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongPtrSub, ULONG_PTR, sub) 386 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(DWordPtrSub, DWORD_PTR, sub) 387 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(IntPtrSub, INT_PTR, sub) 388 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(PtrdiffTSub, ptrdiff_t, sub) 389 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongPtrSub, LONG_PTR, sub) 390 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SIZETSub, SIZE_T, sub) 391 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SSIZETSub, SSIZE_T, sub) 392 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongLongSub, ULONGLONG, sub) 393 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongSub, LONGLONG, sub) 394 395 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UInt8Mult, UINT8, mul) 396 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(Int8Mult, INT8, mul) 397 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UShortMult, USHORT, mul) 398 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(WordMult, WORD, mul) 399 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ShortMult, SHORT, mul) 400 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UIntMult, UINT, mul) 401 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongMult, ULONG, mul) 402 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(DWordMult, DWORD, mul) 403 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongMult, LONG, mul) 404 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(IntMult, INT, mul) 405 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(UIntPtrMult, UINT_PTR, mul) 406 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SizeTMult, size_t, mul) 407 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongPtrMult, ULONG_PTR, mul) 408 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(DWordPtrMult, DWORD_PTR, mul) 409 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(IntPtrMult, INT_PTR, mul) 410 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(PtrdiffTMult, ptrdiff_t, mul) 411 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongPtrMult, LONG_PTR, mul) 412 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SIZETMult, SIZE_T, mul) 413 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(SSIZETMult, SSIZE_T, mul) 414 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongLongMult, ULONGLONG, mul) 415 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul) 416 417 #define Int8ToByte Int8ToUInt8 418 #define Int8ToUInt16 Int8ToUShort 419 #define Int8ToWord Int8ToUShort 420 #define Int8ToUInt32 Int8ToUInt 421 #define Int8ToDWord Int8ToULong 422 #define Int8ToDWordPtr Int8ToULongPtr 423 #define Int8ToDWordLong Int8ToULongLong 424 #define Int8ToULong64 Int8ToULongLong 425 #define Int8ToDWord64 Int8ToULongLong 426 #define Int8ToUInt64 Int8ToULongLong 427 #define Int8ToSizeT Int8ToUIntPtr 428 #define Int8ToSIZET Int8ToULongPtr 429 #define ShortToUInt16 ShortToUShort 430 #define ShortToUInt32 ShortToUInt 431 #define ShortToDWord ShortToULong 432 #define ShortToDWordLong ShortToULongLong 433 #define ShortToULong64 ShortToULongLong 434 #define ShortToDWord64 ShortToULongLong 435 #define ShortToUInt64 ShortToULongLong 436 #define ShortToSizeT ShortToUIntPtr 437 #define ShortToSIZET ShortToULongPtr 438 #define Int16ToChar ShortToChar 439 #define Int16ToInt8 ShortToInt8 440 #define Int16ToUChar ShortToUChar 441 #define Int16ToUInt8 ShortToUInt8 442 #define Int16ToByte ShortToUInt8 443 #define Int16ToUShort ShortToUShort 444 #define Int16ToUInt16 ShortToUShort 445 #define Int16ToWord ShortToUShort 446 #define Int16ToUInt ShortToUInt 447 #define Int16ToUInt32 ShortToUInt 448 #define Int16ToUIntPtr ShortToUIntPtr 449 #define Int16ToULong ShortToULong 450 #define Int16ToULongPtr ShortToULongPtr 451 #define Int16ToDWord ShortToULong 452 #define Int16ToDWordPtr ShortToULongPtr 453 #define Int16ToULongLong ShortToULongLong 454 #define Int16ToDWordLong ShortToULongLong 455 #define Int16ToULong64 ShortToULongLong 456 #define Int16ToDWord64 ShortToULongLong 457 #define Int16ToUInt64 ShortToULongLong 458 #define Int16ToSizeT ShortToUIntPtr 459 #define Int16ToSIZET ShortToULongPtr 460 #define UShortToInt16 UShortToShort 461 #define UInt16ToChar UShortToChar 462 #define UInt16ToInt8 UShortToInt8 463 #define UInt16ToUChar UShortToUChar 464 #define UInt16ToUInt8 UShortToUInt8 465 #define UInt16ToByte UShortToUInt8 466 #define UInt16ToShort UShortToShort 467 #define UInt16ToInt16 UShortToShort 468 #define WordToInt8 UShortToInt8 469 #define WordToUInt8 UShortToUInt8 470 #define WordToInt16 UShortToShort 471 #define IntToInt16 IntToShort 472 #define IntToUInt16 IntToUShort 473 #define IntToDWordLong IntToULongLong 474 #define IntToULong64 IntToULongLong 475 #define IntToDWord64 IntToULongLong 476 #define IntToUInt64 IntToULongLong 477 #define IntToSIZET IntToULongPtr 478 #define Int32ToChar IntToChar 479 #define Int32ToInt8 IntToInt8 480 #define Int32ToUChar IntToUChar 481 #define Int32ToByte IntToUInt8 482 #define Int32ToUInt8 IntToUInt8 483 #define Int32ToShort IntToShort 484 #define Int32ToInt16 IntToShort 485 #define Int32ToUShort IntToUShort 486 #define Int32ToUInt16 IntToUShort 487 #define Int32ToWord IntToUShort 488 #define Int32ToUInt IntToUInt 489 #define Int32ToUInt32 IntToUInt 490 #define Int32ToUIntPtr IntToUIntPtr 491 #define Int32ToULong IntToULong 492 #define Int32ToULongPtr IntToULongPtr 493 #define Int32ToDWord IntToULong 494 #define Int32ToDWordPtr IntToULongPtr 495 #define Int32ToULongLong IntToULongLong 496 #define Int32ToDWordLong IntToULongLong 497 #define Int32ToULong64 IntToULongLong 498 #define Int32ToDWord64 IntToULongLong 499 #define Int32ToUInt64 IntToULongLong 500 #define Int32ToSizeT IntToUIntPtr 501 #define Int32ToSIZET IntToULongPtr 502 #define IntPtrToByte IntPtrToUInt8 503 #define IntPtrToInt16 IntPtrToShort 504 #define IntPtrToUInt16 IntPtrToUShort 505 #define IntPtrToWord IntPtrToUShort 506 #define IntPtrToInt32 IntPtrToInt 507 #define IntPtrToUInt32 IntPtrToUInt 508 #define IntPtrToDWordLong IntPtrToULongLong 509 #define IntPtrToULong64 IntPtrToULongLong 510 #define IntPtrToDWord64 IntPtrToULongLong 511 #define IntPtrToUInt64 IntPtrToULongLong 512 #define IntPtrToSIZET IntPtrToULongPtr 513 #define UIntToInt16 UIntToShort 514 #define UIntToUInt16 UIntToUShort 515 #define UIntToInt32 UIntToInt 516 #define UInt32ToChar UIntToChar 517 #define UInt32ToInt8 UIntToInt8 518 #define UInt32ToUChar UIntToUChar 519 #define UInt32ToUInt8 UIntToUInt8 520 #define UInt32ToByte UInt32ToUInt8 521 #define UInt32ToShort UIntToShort 522 #define UInt32ToInt16 UIntToShort 523 #define UInt32ToUShort UIntToUShort 524 #define UInt32ToUInt16 UIntToUShort 525 #define UInt32ToWord UIntToUShort 526 #define UInt32ToInt UIntToInt 527 #define UInt32ToIntPtr UIntToIntPtr 528 #define UInt32ToInt32 UIntToInt 529 #define UInt32ToLong UIntToLong 530 #define UInt32ToLongPtr UIntToLongPtr 531 #define UInt32ToPtrdiffT UIntToPtrdiffT 532 #define UInt32ToSSIZET UIntToSSIZET 533 #define UIntPtrToByte UIntPtrToUInt8 534 #define UIntPtrToWord UIntPtrToUShort 535 #define UIntPtrToInt32 UIntPtrToInt 536 #define UIntPtrToUInt32 UIntPtrToUInt 537 #define UIntPtrToLong64 UIntPtrToLongLong 538 #define UIntPtrToPtrdiffT UIntPtrToIntPtr 539 #define LongToInt16 LongToShort 540 #define LongToUInt16 LongToUShort 541 #define LongToInt32 LongToInt 542 #define LongToUInt32 LongToUInt 543 #define LongToDWordLong LongToULongLong 544 #define LongToULong64 LongToULongLong 545 #define LongToDWord64 LongToULongLong 546 #define LongToUInt64 LongToULongLong 547 #define LongToSIZET LongToULongPtr 548 #define LongPtrToByte LongPtrToUInt8 549 #define LongPtrToInt16 LongPtrToShort 550 #define LongPtrToUInt16 LongPtrToUShort 551 #define LongPtrToWord LongPtrToUShort 552 #define LongPtrToInt32 LongPtrToInt 553 #define LongPtrToUInt32 LongPtrToUInt 554 #define LongPtrToDWordLong LongPtrToULongLong 555 #define LongPtrToULong64 LongPtrToULongLong 556 #define LongPtrToDWord64 LongPtrToULongLong 557 #define LongPtrToUInt64 LongPtrToULongLong 558 #define LongPtrToSIZET LongPtrToULongPtr 559 #define ULongToInt16 ULongToShort 560 #define ULongToUInt16 ULongToUShort 561 #define ULongToInt32 ULongToInt 562 #define ULongToUInt32 ULongToUInt 563 #define ULongPtrToByte ULongPtrToUInt8 564 #define ULongPtrToInt16 ULongPtrToShort 565 #define ULongPtrToUInt16 ULongPtrToUShort 566 #define ULongPtrToWord ULongPtrToUShort 567 #define ULongPtrToInt32 ULongPtrToInt 568 #define ULongPtrToUInt32 ULongPtrToUInt 569 #define ULongPtrToLong64 ULongPtrToLongLong 570 #define DWordToInt8 ULongToInt8 571 #define DWordToUInt8 ULongToUInt8 572 #define DWordToInt16 ULongToShort 573 #define DWordToUInt16 ULongToUShort 574 #define DWordToInt32 ULongToInt 575 #define DWordToUInt32 ULongToUInt 576 #define DWordPtrToInt8 ULongPtrToInt8 577 #define DWordPtrToUChar ULongPtrToUChar 578 #define DWordPtrToChar ULongPtrToChar 579 #define DWordPtrToUInt8 ULongPtrToUInt8 580 #define DWordPtrToByte ULongPtrToUInt8 581 #define DWordPtrToShort ULongPtrToShort 582 #define DWordPtrToInt16 ULongPtrToShort 583 #define DWordPtrToUShort ULongPtrToUShort 584 #define DWordPtrToUInt16 ULongPtrToUShort 585 #define DWordPtrToWord ULongPtrToUShort 586 #define DWordPtrToInt32 ULongPtrToInt 587 #define DWordPtrToUInt32 ULongPtrToUInt 588 #define DWordPtrToLongLong ULongPtrToLongLong 589 #define DWordPtrToLong64 ULongPtrToLongLong 590 #define LongLongToByte LongLongToUInt8 591 #define LongLongToInt16 LongLongToShort 592 #define LongLongToUInt16 LongLongToUShort 593 #define LongLongToWord LongLongToUShort 594 #define LongLongToInt32 LongLongToInt 595 #define LongLongToUInt32 LongLongToUInt 596 #define LongLongToUIntPtr Int64ToUIntPtr 597 #define LongLongToULongPtr Int64ToULongPtr 598 #define LongLongToDWord LongLongToULong 599 #define LongLongToDWordPtr LongLongToULongPtr 600 #define LongLongToDWordLong LongLongToULongLong 601 #define LongLongToULong64 LongLongToULongLong 602 #define LongLongToDWord64 LongLongToULongLong 603 #define LongLongToUInt64 LongLongToULongLong 604 #define LongLongToPtrdiffT LongLongToIntPtr 605 #define LongLongToSizeT LongLongToUIntPtr 606 #define LongLongToSSIZET LongLongToLongPtr 607 #define LongLongToSIZET LongLongToULongPtr 608 #define Long64ToChar LongLongToChar 609 #define Long64ToInt8 LongLongToInt8 610 #define Long64ToUChar LongLongToUChar 611 #define Long64ToUInt8 LongLongToUInt8 612 #define Long64ToByte LongLongToUInt8 613 #define Long64ToShort LongLongToShort 614 #define Long64ToInt16 LongLongToShort 615 #define Long64ToUShort LongLongToUShort 616 #define Long64ToUInt16 LongLongToUShort 617 #define Long64ToWord LongLongToUShort 618 #define Long64ToInt LongLongToInt 619 #define Long64ToInt32 LongLongToInt 620 #define Long64ToIntPtr LongLongToIntPtr 621 #define Long64ToUInt LongLongToUInt 622 #define Long64ToUInt32 LongLongToUInt 623 #define Long64ToUIntPtr LongLongToUIntPtr 624 #define Long64ToLong LongLongToLong 625 #define Long64ToLongPtr LongLongToLongPtr 626 #define Long64ToULong LongLongToULong 627 #define Long64ToULongPtr LongLongToULongPtr 628 #define Long64ToDWord LongLongToULong 629 #define Long64ToDWordPtr LongLongToULongPtr 630 #define Long64ToULongLong LongLongToULongLong 631 #define Long64ToPtrdiffT LongLongToIntPtr 632 #define Long64ToSizeT LongLongToUIntPtr 633 #define Long64ToSSIZET LongLongToLongPtr 634 #define Long64ToSIZET LongLongToULongPtr 635 #define Int64ToChar LongLongToChar 636 #define Int64ToInt8 LongLongToInt8 637 #define Int64ToUChar LongLongToUChar 638 #define Int64ToUInt8 LongLongToUInt8 639 #define Int64ToByte LongLongToUInt8 640 #define Int64ToShort LongLongToShort 641 #define Int64ToInt16 LongLongToShort 642 #define Int64ToUShort LongLongToUShort 643 #define Int64ToUInt16 LongLongToUShort 644 #define Int64ToWord LongLongToUShort 645 #define Int64ToInt32 LongLongToInt 646 #define Int64ToUInt32 LongLongToUInt 647 #define Int64ToDWordLong LongLongToULongLong 648 #define Int64ToULong64 LongLongToULongLong 649 #define Int64ToDWord64 LongLongToULongLong 650 #define Int64ToUInt64 LongLongToULongLong 651 #define Int64ToSIZET LongLongToULongPtr 652 #define ULongLongToByte ULongLongToUInt8 653 #define ULongLongToInt16 ULongLongToShort 654 #define ULongLongToUInt16 ULongLongToUShort 655 #define ULongLongToWord ULongLongToUShort 656 #define ULongLongToInt32 ULongLongToInt 657 #define ULongLongToUInt32 ULongLongToUInt 658 #define ULongLongToLong64 ULongLongToLongLong 659 #define ULongLongToSIZET ULongLongToULongPtr 660 #define DWordLongToChar ULongLongToChar 661 #define DWordLongToInt8 ULongLongToInt8 662 #define DWordLongToUChar ULongLongToUChar 663 #define DWordLongToUInt8 ULongLongToUInt8 664 #define DWordLongToByte ULongLongToUInt8 665 #define DWordLongToShort ULongLongToShort 666 #define DWordLongToInt16 ULongLongToShort 667 #define DWordLongToUShort ULongLongToUShort 668 #define DWordLongToUInt16 ULongLongToUShort 669 #define DWordLongToWord ULongLongToUShort 670 #define DWordLongToInt ULongLongToInt 671 #define DWordLongToInt32 ULongLongToInt 672 #define DWordLongToIntPtr ULongLongToIntPtr 673 #define DWordLongToUInt ULongLongToUInt 674 #define DWordLongToUInt32 ULongLongToUInt 675 #define DWordLongToUIntPtr ULongLongToUIntPtr 676 #define DWordLongToLong ULongLongToLong 677 #define DWordLongToLongPtr ULongLongToLongPtr 678 #define DWordLongToULong ULongLongToULong 679 #define DWordLongToULongPtr ULongLongToULongPtr 680 #define DWordLongToDWord ULongLongToULong 681 #define DWordLongToDWordPtr ULongLongToULongPtr 682 #define DWordLongToLongLong ULongLongToLongLong 683 #define DWordLongToLong64 ULongLongToLongLong 684 #define DWordLongToInt64 ULongLongToLongLong 685 #define DWordLongToPtrdiffT ULongLongToIntPtr 686 #define DWordLongToSizeT ULongLongToUIntPtr 687 #define DWordLongToSSIZET ULongLongToLongPtr 688 #define DWordLongToSIZET ULongLongToULongPtr 689 #define ULong64ToChar ULongLongToChar 690 #define ULong64ToInt8 ULongLongToInt8 691 #define ULong64ToUChar ULongLongToUChar 692 #define ULong64ToUInt8 ULongLongToUInt8 693 #define ULong64ToByte ULongLongToUInt8 694 #define ULong64ToShort ULongLongToShort 695 #define ULong64ToInt16 ULongLongToShort 696 #define ULong64ToUShort ULongLongToUShort 697 #define ULong64ToUInt16 ULongLongToUShort 698 #define ULong64ToWord ULongLongToUShort 699 #define ULong64ToInt ULongLongToInt 700 #define ULong64ToInt32 ULongLongToInt 701 #define ULong64ToIntPtr ULongLongToIntPtr 702 #define ULong64ToUInt ULongLongToUInt 703 #define ULong64ToUInt32 ULongLongToUInt 704 #define ULong64ToUIntPtr ULongLongToUIntPtr 705 #define ULong64ToLong ULongLongToLong 706 #define ULong64ToLongPtr ULongLongToLongPtr 707 #define ULong64ToULong ULongLongToULong 708 #define ULong64ToULongPtr ULongLongToULongPtr 709 #define ULong64ToDWord ULongLongToULong 710 #define ULong64ToDWordPtr ULongLongToULongPtr 711 #define ULong64ToLongLong ULongLongToLongLong 712 #define ULong64ToLong64 ULongLongToLongLong 713 #define ULong64ToInt64 ULongLongToLongLong 714 #define ULong64ToPtrdiffT ULongLongToIntPtr 715 #define ULong64ToSizeT ULongLongToUIntPtr 716 #define ULong64ToSSIZET ULongLongToLongPtr 717 #define ULong64ToSIZET ULongLongToULongPtr 718 #define DWord64ToChar ULongLongToChar 719 #define DWord64ToInt8 ULongLongToInt8 720 #define DWord64ToUChar ULongLongToUChar 721 #define DWord64ToUInt8 ULongLongToUInt8 722 #define DWord64ToByte ULongLongToUInt8 723 #define DWord64ToShort ULongLongToShort 724 #define DWord64ToInt16 ULongLongToShort 725 #define DWord64ToUShort ULongLongToUShort 726 #define DWord64ToUInt16 ULongLongToUShort 727 #define DWord64ToWord ULongLongToUShort 728 #define DWord64ToInt ULongLongToInt 729 #define DWord64ToInt32 ULongLongToInt 730 #define DWord64ToIntPtr ULongLongToIntPtr 731 #define DWord64ToUInt ULongLongToUInt 732 #define DWord64ToUInt32 ULongLongToUInt 733 #define DWord64ToUIntPtr ULongLongToUIntPtr 734 #define DWord64ToLong ULongLongToLong 735 #define DWord64ToLongPtr ULongLongToLongPtr 736 #define DWord64ToULong ULongLongToULong 737 #define DWord64ToULongPtr ULongLongToULongPtr 738 #define DWord64ToDWord ULongLongToULong 739 #define DWord64ToDWordPtr ULongLongToULongPtr 740 #define DWord64ToLongLong ULongLongToLongLong 741 #define DWord64ToLong64 ULongLongToLongLong 742 #define DWord64ToInt64 ULongLongToLongLong 743 #define DWord64ToPtrdiffT ULongLongToIntPtr 744 #define DWord64ToSizeT ULongLongToUIntPtr 745 #define DWord64ToSSIZET ULongLongToLongPtr 746 #define DWord64ToSIZET ULongLongToULongPtr 747 #define UInt64ToChar ULongLongToChar 748 #define UInt64ToInt8 ULongLongToInt8 749 #define UInt64ToUChar ULongLongToUChar 750 #define UInt64ToUInt8 ULongLongToUInt8 751 #define UInt64ToByte ULongLongToUInt8 752 #define UInt64ToShort ULongLongToShort 753 #define UInt64ToInt16 ULongLongToShort 754 #define UInt64ToUShort ULongLongToUShort 755 #define UInt64ToUInt16 ULongLongToUShort 756 #define UInt64ToWord ULongLongToUShort 757 #define UInt64ToInt ULongLongToInt 758 #define UInt64ToInt32 ULongLongToInt 759 #define UInt64ToIntPtr ULongLongToIntPtr 760 #define UInt64ToUInt ULongLongToUInt 761 #define UInt64ToUInt32 ULongLongToUInt 762 #define UInt64ToUIntPtr ULongLongToUIntPtr 763 #define UInt64ToLong ULongLongToLong 764 #define UInt64ToLongPtr ULongLongToLongPtr 765 #define UInt64ToULong ULongLongToULong 766 #define UInt64ToULongPtr ULongLongToULongPtr 767 #define UInt64ToDWord ULongLongToULong 768 #define UInt64ToDWordPtr ULongLongToULongPtr 769 #define UInt64ToLongLong ULongLongToLongLong 770 #define UInt64ToLong64 ULongLongToLongLong 771 #define UInt64ToInt64 ULongLongToLongLong 772 #define UInt64ToPtrdiffT ULongLongToIntPtr 773 #define UInt64ToSizeT ULongLongToUIntPtr 774 #define UInt64ToSSIZET ULongLongToLongPtr 775 #define UInt64ToSIZET ULongLongToULongPtr 776 #define PtrdiffTToChar IntPtrToChar 777 #define PtrdiffTToInt8 IntPtrToInt8 778 #define PtrdiffTToUChar IntPtrToUChar 779 #define PtrdiffTToUInt8 IntPtrToUInt8 780 #define PtrdiffTToByte IntPtrToUInt8 781 #define PtrdiffTToShort IntPtrToShort 782 #define PtrdiffTToInt16 IntPtrToShort 783 #define PtrdiffTToUShort IntPtrToUShort 784 #define PtrdiffTToUInt16 IntPtrToUShort 785 #define PtrdiffTToWord IntPtrToUShort 786 #define PtrdiffTToInt32 IntPtrToInt 787 #define PtrdiffTToUInt32 IntPtrToUInt 788 #define PtrdiffTToLongPtr IntPtrToLongPtr 789 #define PtrdiffTToULongLong IntPtrToULongLong 790 #define PtrdiffTToDWordLong IntPtrToULongLong 791 #define PtrdiffTToULong64 IntPtrToULongLong 792 #define PtrdiffTToDWord64 IntPtrToULongLong 793 #define PtrdiffTToUInt64 IntPtrToULongLong 794 #define PtrdiffTToSIZET IntPtrToULongPtr 795 #define SizeTToInt8 UIntPtrToInt8 796 #define SizeTToUChar UIntPtrToUChar 797 #define SizeTToChar UIntPtrToChar 798 #define SizeTToUInt8 UIntPtrToUInt8 799 #define SizeTToByte UIntPtrToUInt8 800 #define SizeTToShort UIntPtrToShort 801 #define SizeTToInt16 UIntPtrToShort 802 #define SizeTToUShort UIntPtrToUShort 803 #define SizeTToUInt16 UIntPtrToUShort 804 #define SizeTToWord UIntPtrToUShort 805 #define SizeTToInt32 UIntPtrToInt 806 #define SizeTToLongLong UIntPtrToLongLong 807 #define SizeTToLong64 UIntPtrToLongLong 808 #define SSIZETToInt8 LongPtrToInt8 809 #define SSIZETToUChar LongPtrToUChar 810 #define SSIZETToChar LongPtrToChar 811 #define SSIZETToUInt8 LongPtrToUInt8 812 #define SSIZETToByte LongPtrToUInt8 813 #define SSIZETToShort LongPtrToShort 814 #define SSIZETToInt16 LongPtrToShort 815 #define SSIZETToUShort LongPtrToUShort 816 #define SSIZETToUInt16 LongPtrToUShort 817 #define SSIZETToWord LongPtrToUShort 818 #define SSIZETToInt32 LongPtrToInt 819 #define SSIZETToUInt32 LongPtrToUInt 820 #define SSIZETToULongLong LongPtrToULongLong 821 #define SSIZETToDWordLong LongPtrToULongLong 822 #define SSIZETToULong64 LongPtrToULongLong 823 #define SSIZETToDWord64 LongPtrToULongLong 824 #define SSIZETToUInt64 LongPtrToULongLong 825 #define SSIZETToSIZET LongPtrToULongPtr 826 #define SIZETToInt8 ULongPtrToInt8 827 #define SIZETToUChar ULongPtrToUChar 828 #define SIZETToChar ULongPtrToChar 829 #define SIZETToUInt8 ULongPtrToUInt8 830 #define SIZETToByte ULongPtrToUInt8 831 #define SIZETToShort ULongPtrToShort 832 #define SIZETToInt16 ULongPtrToShort 833 #define SIZETToUShort ULongPtrToUShort 834 #define SIZETToUInt16 ULongPtrToUShort 835 #define SIZETToWord ULongPtrToUShort 836 #define SIZETToInt ULongPtrToInt 837 #define SIZETToInt32 ULongPtrToInt 838 #define SIZETToIntPtr ULongPtrToIntPtr 839 #define SIZETToUInt ULongPtrToUInt 840 #define SIZETToUInt32 ULongPtrToUInt 841 #define SIZETToUIntPtr ULongPtrToUIntPtr 842 #define SIZETToLong ULongPtrToLong 843 #define SIZETToLongPtr ULongPtrToLongPtr 844 #define SIZETToULong ULongPtrToULong 845 #define SIZETToDWord ULongPtrToULong 846 #define SIZETToLongLong ULongPtrToLongLong 847 #define SIZETToLong64 ULongPtrToLongLong 848 #define SIZETToInt64 ULongPtrToLongLong 849 #define SIZETToPtrdiffT ULongPtrToIntPtr 850 #define SIZETToSSIZET ULongPtrToLongPtr 851 852 #define UInt16Add UShortAdd 853 #define UInt32Add UIntAdd 854 #define DWordLongAdd ULongLongAdd 855 #define ULong64Add ULongLongAdd 856 #define DWord64Add ULongLongAdd 857 #define UInt64Add ULongLongAdd 858 #define UInt16Sub UShortSub 859 #define UInt32Sub UIntSub 860 #define DWordLongSub ULongLongSub 861 #define ULong64Sub ULongLongSub 862 #define DWord64Sub ULongLongSub 863 #define UInt64Sub ULongLongSub 864 #define UInt16Mult UShortMult 865 #define UInt32Mult UIntMult 866 #define DWordLongMult ULongLongMult 867 #define ULong64Mult ULongLongMult 868 #define DWord64Mult ULongLongMult 869 #define UInt64Mult ULongLongMult 870 #define Int16Add ShortAdd 871 #define Int32Add IntAdd 872 #define Long32Add IntAdd 873 #define Long64Add LongLongAdd 874 #define Int64Add LongLongAdd 875 #define Int16Sub ShortSub 876 #define Int32Sub IntSub 877 #define Long32Sub IntSub 878 #define Long64Sub LongLongSub 879 #define Int64Sub LongLongSub 880 #define Int16Mult ShortMult 881 #define Int32Mult IntMult 882 #define Long32Mult IntMult 883 #define Long64Mult LongLongMult 884 #define Int64Mult LongLongMult 885 886 #endif /* __MINGW_INTSAFE_WORKS */ 887 #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ 888 #endif /* _INTSAFE_H_INCLUDED_ */