1 /** 2 Windows Error Definitions 3 4 Basic standalone Windows definitions to make it easier to work with 5 the COM API. 6 7 Copyright: 8 Copyright © 2023-2025, Kitsunebi Games 9 Copyright © 2023-2025, Inochi2D Project 10 11 License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) 12 Source: $(DRUNTIMESRC core/sys/windows/_winerror.d) 13 Authors: Luna Nielsen 14 */ 15 module nulib.system.com.hresult; 16 import nulib.system.com.objbase; 17 18 alias HRESULT = int; 19 enum : HRESULT { 20 S_OK = 0x00000000, 21 S_FALSE = 0x00000001, 22 23 NOERROR = 0x00000000, 24 25 E_PENDING = 0x8000000A, 26 E_NOTIMPL = 0x80004001, 27 E_NOINTERFACE = 0x80004002, 28 E_POINTER = 0x80004003, 29 E_ABORT = 0x80004004, 30 E_FAIL = 0x80004005, 31 E_ACCESSDENIED = 0x80070005, 32 E_HANDLE = 0x80070006, 33 E_OUTOFMEMORY = 0x8007000E, 34 E_INVALIDARG = 0x80070057, 35 E_UNEXPECTED = 0x8000FFFF, 36 37 CO_E_INIT_TLS = 0x80004006, 38 CO_E_INIT_SHARED_ALLOCATOR = 0x80004007, 39 CO_E_INIT_MEMORY_ALLOCATOR = 0x80004008, 40 CO_E_INIT_CLASS_CACHE = 0x80004009, 41 CO_E_INIT_RPC_CHANNEL = 0x8000400A, 42 CO_E_INIT_TLS_SET_CHANNEL_CONTROL = 0x8000400B, 43 CO_E_INIT_TLS_CHANNEL_CONTROL = 0x8000400C, 44 CO_E_INIT_UNACCEPTED_USER_ALLOCATOR = 0x8000400D, 45 CO_E_INIT_SCM_MUTEX_EXISTS = 0x8000400E, 46 CO_E_INIT_SCM_FILE_MAPPING_EXISTS = 0x8000400F, 47 CO_E_INIT_SCM_MAP_VIEW_OF_FILE = 0x80004010, 48 CO_E_INIT_SCM_EXEC_FAILURE = 0x80004011, 49 CO_E_INIT_ONLY_SINGLE_THREADED = 0x80004012, 50 51 RPC_E_CALL_REJECTED = 0x80010001, 52 RPC_E_CALL_CANCELED = 0x80010002, 53 RPC_E_CANTPOST_INSENDCALL = 0x80010003, 54 RPC_E_CANTCALLOUT_INASYNCCALL = 0x80010004, 55 RPC_E_CANTCALLOUT_INEXTERNALCALL = 0x80010005, 56 RPC_E_CONNECTION_TERMINATED = 0x80010006, 57 RPC_E_SERVER_DIED = 0x80010007, 58 RPC_E_CLIENT_DIED = 0x80010008, 59 RPC_E_INVALID_DATAPACKET = 0x80010009, 60 RPC_E_CANTTRANSMIT_CALL = 0x8001000A, 61 RPC_E_CLIENT_CANTMARSHAL_DATA = 0x8001000B, 62 RPC_E_CLIENT_CANTUNMARSHAL_DATA = 0x8001000C, 63 RPC_E_SERVER_CANTMARSHAL_DATA = 0x8001000D, 64 RPC_E_SERVER_CANTUNMARSHAL_DATA = 0x8001000E, 65 RPC_E_INVALID_DATA = 0x8001000F, 66 RPC_E_INVALID_PARAMETER = 0x80010010, 67 RPC_E_CANTCALLOUT_AGAIN = 0x80010011, 68 RPC_E_SERVER_DIED_DNE = 0x80010012, 69 RPC_E_SYS_CALL_FAILED = 0x80010100, 70 RPC_E_OUT_OF_RESOURCES = 0x80010101, 71 RPC_E_ATTEMPTED_MULTITHREAD = 0x80010102, 72 RPC_E_NOT_REGISTERED = 0x80010103, 73 RPC_E_FAULT = 0x80010104, 74 RPC_E_SERVERFAULT = 0x80010105, 75 RPC_E_CHANGED_MODE = 0x80010106, 76 RPC_E_INVALIDMETHOD = 0x80010107, 77 RPC_E_DISCONNECTED = 0x80010108, 78 RPC_E_RETRY = 0x80010109, 79 RPC_E_SERVERCALL_RETRYLATER = 0x8001010A, 80 RPC_E_SERVERCALL_REJECTED = 0x8001010B, 81 RPC_E_INVALID_CALLDATA = 0x8001010C, 82 RPC_E_CANTCALLOUT_ININPUTSYNCCALL = 0x8001010D, 83 RPC_E_WRONG_THREAD = 0x8001010E, 84 RPC_E_THREAD_NOT_INIT = 0x8001010F, 85 RPC_E_UNEXPECTED = 0x8001FFFF, 86 87 DISP_E_UNKNOWNINTERFACE = 0x80020001, 88 DISP_E_MEMBERNOTFOUND = 0x80020003, 89 DISP_E_PARAMNOTFOUND = 0x80020004, 90 DISP_E_TYPEMISMATCH = 0x80020005, 91 DISP_E_UNKNOWNNAME = 0x80020006, 92 DISP_E_NONAMEDARGS = 0x80020007, 93 DISP_E_BADVARTYPE = 0x80020008, 94 DISP_E_EXCEPTION = 0x80020009, 95 DISP_E_OVERFLOW = 0x8002000A, 96 DISP_E_BADINDEX = 0x8002000B, 97 DISP_E_UNKNOWNLCID = 0x8002000C, 98 DISP_E_ARRAYISLOCKED = 0x8002000D, 99 DISP_E_BADPARAMCOUNT = 0x8002000E, 100 DISP_E_PARAMNOTOPTIONAL = 0x8002000F, 101 DISP_E_BADCALLEE = 0x80020010, 102 DISP_E_NOTACOLLECTION = 0x80020011, 103 DISP_E_DIVBYZERO = 0x80020012, 104 105 TYPE_E_BUFFERTOOSMALL = 0x80028016, 106 TYPE_E_INVDATAREAD = 0x80028018, 107 TYPE_E_UNSUPFORMAT = 0x80028019, 108 TYPE_E_REGISTRYACCESS = 0x8002801C, 109 TYPE_E_LIBNOTREGISTERED = 0x8002801D, 110 TYPE_E_UNDEFINEDTYPE = 0x80028027, 111 TYPE_E_QUALIFIEDNAMEDISALLOWED = 0x80028028, 112 TYPE_E_INVALIDSTATE = 0x80028029, 113 TYPE_E_WRONGTYPEKIND = 0x8002802A, 114 TYPE_E_ELEMENTNOTFOUND = 0x8002802B, 115 TYPE_E_AMBIGUOUSNAME = 0x8002802C, 116 TYPE_E_NAMECONFLICT = 0x8002802D, 117 TYPE_E_UNKNOWNLCID = 0x8002802E, 118 TYPE_E_DLLFUNCTIONNOTFOUND = 0x8002802F, 119 TYPE_E_BADMODULEKIND = 0x800288BD, 120 TYPE_E_SIZETOOBIG = 0x800288C5, 121 TYPE_E_DUPLICATEID = 0x800288C6, 122 TYPE_E_INVALIDID = 0x800288CF, 123 TYPE_E_TYPEMISMATCH = 0x80028CA0, 124 TYPE_E_OUTOFBOUNDS = 0x80028CA1, 125 TYPE_E_IOERROR = 0x80028CA2, 126 TYPE_E_CANTCREATETMPFILE = 0x80028CA3, 127 TYPE_E_CANTLOADLIBRARY = 0x80029C4A, 128 TYPE_E_INCONSISTENTPROPFUNCS = 0x80029C83, 129 TYPE_E_CIRCULARTYPE = 0x80029C84, 130 131 STG_E_INVALIDFUNCTION = 0x80030001, 132 STG_E_FILENOTFOUND = 0x80030002, 133 STG_E_PATHNOTFOUND = 0x80030003, 134 STG_E_TOOMANYOPENFILES = 0x80030004, 135 STG_E_ACCESSDENIED = 0x80030005, 136 STG_E_INVALIDHANDLE = 0x80030006, 137 STG_E_INSUFFICIENTMEMORY = 0x80030008, 138 STG_E_INVALIDPOINTER = 0x80030009, 139 STG_E_NOMOREFILES = 0x80030012, 140 STG_E_DISKISWRITEPROTECTED = 0x80030013, 141 STG_E_SEEKERROR = 0x80030019, 142 STG_E_WRITEFAULT = 0x8003001D, 143 STG_E_READFAULT = 0x8003001E, 144 STG_E_SHAREVIOLATION = 0x80030020, 145 STG_E_LOCKVIOLATION = 0x80030021, 146 STG_E_FILEALREADYEXISTS = 0x80030050, 147 STG_E_INVALIDPARAMETER = 0x80030057, 148 STG_E_MEDIUMFULL = 0x80030070, 149 STG_E_ABNORMALAPIEXIT = 0x800300FA, 150 STG_E_INVALIDHEADER = 0x800300FB, 151 STG_E_INVALIDNAME = 0x800300FC, 152 STG_E_UNKNOWN = 0x800300FD, 153 STG_E_UNIMPLEMENTEDFUNCTION = 0x800300FE, 154 STG_E_INVALIDFLAG = 0x800300FF, 155 STG_E_INUSE = 0x80030100, 156 STG_E_NOTCURRENT = 0x80030101, 157 STG_E_REVERTED = 0x80030102, 158 STG_E_CANTSAVE = 0x80030103, 159 STG_E_OLDFORMAT = 0x80030104, 160 STG_E_OLDDLL = 0x80030105, 161 STG_E_SHAREREQUIRED = 0x80030106, 162 STG_E_NOTFILEBASEDSTORAGE = 0x80030107, 163 STG_E_EXTANTMARSHALLINGS = 0x80030108, 164 STG_S_CONVERTED = 0x00030200, 165 166 OLE_E_FIRST = 0x80040000, 167 OLE_S_FIRST = 0x00040000, 168 OLE_E_OLEVERB = 0x80040000, 169 OLE_S_USEREG = 0x00040000, 170 OLE_E_ADVF = 0x80040001, 171 OLE_S_STATIC = 0x00040001, 172 OLE_E_ENUM_NOMORE = 0x80040002, 173 OLE_S_MAC_CLIPFORMAT = 0x00040002, 174 OLE_E_ADVISENOTSUPPORTED = 0x80040003, 175 OLE_E_NOCONNECTION = 0x80040004, 176 OLE_E_NOTRUNNING = 0x80040005, 177 OLE_E_NOCACHE = 0x80040006, 178 OLE_E_BLANK = 0x80040007, 179 OLE_E_CLASSDIFF = 0x80040008, 180 OLE_E_CANT_GETMONIKER = 0x80040009, 181 OLE_E_CANT_BINDTOSOURCE = 0x8004000A, 182 OLE_E_STATIC = 0x8004000B, 183 OLE_E_PROMPTSAVECANCELLED = 0x8004000C, 184 OLE_E_INVALIDRECT = 0x8004000D, 185 OLE_E_WRONGCOMPOBJ = 0x8004000E, 186 OLE_E_INVALIDHWND = 0x8004000F, 187 OLE_E_NOT_INPLACEACTIVE = 0x80040010, 188 OLE_E_CANTCONVERT = 0x80040011, 189 OLE_E_NOSTORAGE = 0x80040012, 190 191 DV_E_FORMATETC = 0x80040064, 192 DV_E_DVTARGETDEVICE = 0x80040065, 193 DV_E_STGMEDIUM = 0x80040066, 194 DV_E_STATDATA = 0x80040067, 195 DV_E_LINDEX = 0x80040068, 196 DV_E_TYMED = 0x80040069, 197 DV_E_CLIPFORMAT = 0x8004006A, 198 DV_E_DVASPECT = 0x8004006B, 199 DV_E_DVTARGETDEVICE_SIZE = 0x8004006C, 200 DV_E_NOIVIEWOBJECT = 0x8004006D, 201 202 OLE_E_LAST = 0x800400FF, 203 OLE_S_LAST = 0x000400FF, 204 DRAGDROP_E_FIRST = 0x80040100, 205 DRAGDROP_S_FIRST = 0x00040100, 206 DRAGDROP_E_NOTREGISTERED = 0x80040100, 207 DRAGDROP_S_DROP = 0x00040100, 208 DRAGDROP_E_ALREADYREGISTERED = 0x80040101, 209 DRAGDROP_S_CANCEL = 0x00040101, 210 DRAGDROP_E_INVALIDHWND = 0x80040102, 211 DRAGDROP_S_USEDEFAULTCURSORS = 0x00040102, 212 DRAGDROP_E_LAST = 0x8004010F, 213 DRAGDROP_S_LAST = 0x0004010F, 214 CLASSFACTORY_E_FIRST = 0x80040110, 215 CLASSFACTORY_S_FIRST = 0x00040110, 216 CLASS_E_NOAGGREGATION = 0x80040110, 217 CLASS_E_CLASSNOTAVAILABLE = 0x80040111, 218 CLASSFACTORY_E_LAST = 0x8004011F, 219 CLASSFACTORY_S_LAST = 0x0004011F, 220 MARSHAL_E_FIRST = 0x80040120, 221 MARSHAL_S_FIRST = 0x00040120, 222 MARSHAL_E_LAST = 0x8004012F, 223 MARSHAL_S_LAST = 0x0004012F, 224 DATA_E_FIRST = 0x80040130, 225 DATA_S_FIRST = 0x00040130, 226 DATA_S_SAMEFORMATETC = 0x00040130, 227 DATA_E_LAST = 0x8004013F, 228 DATA_S_LAST = 0x0004013F, 229 VIEW_E_FIRST = 0x80040140, 230 VIEW_S_FIRST = 0x00040140, 231 VIEW_E_DRAW = 0x80040140, 232 VIEW_S_ALREADY_FROZEN = 0x00040140, 233 VIEW_E_LAST = 0x8004014F, 234 VIEW_S_LAST = 0x0004014F, 235 REGDB_E_FIRST = 0x80040150, 236 REGDB_S_FIRST = 0x00040150, 237 REGDB_E_READREGDB = 0x80040150, 238 REGDB_E_WRITEREGDB = 0x80040151, 239 REGDB_E_KEYMISSING = 0x80040152, 240 REGDB_E_INVALIDVALUE = 0x80040153, 241 REGDB_E_CLASSNOTREG = 0x80040154, 242 REGDB_E_IIDNOTREG = 0x80040155, 243 REGDB_E_LAST = 0x8004015F, 244 REGDB_S_LAST = 0x0004015F, 245 CACHE_E_FIRST = 0x80040170, 246 CACHE_S_FIRST = 0x00040170, 247 CACHE_E_NOCACHE_UPDATED = 0x80040170, 248 CACHE_S_FORMATETC_NOTSUPPORTED = 0x00040170, 249 CACHE_S_SAMECACHE = 0x00040171, 250 CACHE_S_SOMECACHES_NOTUPDATED = 0x00040172, 251 CACHE_E_LAST = 0x8004017F, 252 CACHE_S_LAST = 0x0004017F, 253 OLEOBJ_E_FIRST = 0x80040180, 254 OLEOBJ_S_FIRST = 0x00040180, 255 OLEOBJ_E_NOVERBS = 0x80040180, 256 OLEOBJ_S_INVALIDVERB = 0x00040180, 257 OLEOBJ_E_INVALIDVERB = 0x80040181, 258 OLEOBJ_S_CANNOT_DOVERB_NOW = 0x00040181, 259 OLEOBJ_S_INVALIDHWND = 0x00040182, 260 OLEOBJ_E_LAST = 0x8004018F, 261 OLEOBJ_S_LAST = 0x0004018F, 262 CLIENTSITE_E_FIRST = 0x80040190, 263 CLIENTSITE_S_FIRST = 0x00040190, 264 CLIENTSITE_E_LAST = 0x8004019F, 265 CLIENTSITE_S_LAST = 0x0004019F, 266 INPLACE_E_NOTUNDOABLE = 0x800401A0, 267 INPLACE_E_FIRST = 0x800401A0, 268 INPLACE_S_FIRST = 0x000401A0, 269 INPLACE_S_TRUNCATED = 0x000401A0, 270 INPLACE_E_NOTOOLSPACE = 0x800401A1, 271 INPLACE_E_LAST = 0x800401AF, 272 INPLACE_S_LAST = 0x000401AF, 273 ENUM_E_FIRST = 0x800401B0, 274 ENUM_S_FIRST = 0x000401B0, 275 ENUM_E_LAST = 0x800401BF, 276 ENUM_S_LAST = 0x000401BF, 277 CONVERT10_E_FIRST = 0x800401C0, 278 CONVERT10_S_FIRST = 0x000401C0, 279 CONVERT10_E_OLESTREAM_GET = 0x800401C0, 280 CONVERT10_S_NO_PRESENTATION = 0x000401C0, 281 CONVERT10_E_OLESTREAM_PUT = 0x800401C1, 282 CONVERT10_E_OLESTREAM_FMT = 0x800401C2, 283 CONVERT10_E_OLESTREAM_BITMAP_TO_DIB = 0x800401C3, 284 CONVERT10_E_STG_FMT = 0x800401C4, 285 CONVERT10_E_STG_NO_STD_STREAM = 0x800401C5, 286 CONVERT10_E_STG_DIB_TO_BITMAP = 0x800401C6, 287 CONVERT10_E_LAST = 0x800401CF, 288 CONVERT10_S_LAST = 0x000401CF, 289 CLIPBRD_E_FIRST = 0x800401D0, 290 CLIPBRD_S_FIRST = 0x000401D0, 291 CLIPBRD_E_CANT_OPEN = 0x800401D0, 292 CLIPBRD_E_CANT_EMPTY = 0x800401D1, 293 CLIPBRD_E_CANT_SET = 0x800401D2, 294 CLIPBRD_E_BAD_DATA = 0x800401D3, 295 CLIPBRD_E_CANT_CLOSE = 0x800401D4, 296 CLIPBRD_E_LAST = 0x800401DF, 297 CLIPBRD_S_LAST = 0x000401DF, 298 MK_E_FIRST = 0x800401E0, 299 MK_S_FIRST = 0x000401E0, 300 MK_E_CONNECTMANUALLY = 0x800401E0, 301 MK_E_EXCEEDEDDEADLINE = 0x800401E1, 302 MK_E_NEEDGENERIC = 0x800401E2, 303 MK_S_REDUCED_TO_SELF = 0x000401E2, 304 MK_E_UNAVAILABLE = 0x800401E3, 305 MK_E_SYNTAX = 0x800401E4, 306 MK_S_ME = 0x000401E4, 307 MK_E_NOOBJECT = 0x800401E5, 308 MK_S_HIM = 0x000401E5, 309 MK_E_INVALIDEXTENSION = 0x800401E6, 310 MK_S_US = 0x000401E6, 311 MK_E_INTERMEDIATEINTERFACENOTSUPPORTED = 0x800401E7, 312 MK_S_MONIKERALREADYREGISTERED = 0x000401E7, 313 MK_E_NOTBINDABLE = 0x800401E8, 314 MK_E_NOTBOUND = 0x800401E9, 315 MK_E_CANTOPENFILE = 0x800401EA, 316 MK_E_MUSTBOTHERUSER = 0x800401EB, 317 MK_E_NOINVERSE = 0x800401EC, 318 MK_E_NOSTORAGE = 0x800401ED, 319 MK_E_NOPREFIX = 0x800401EE, 320 MK_E_LAST = 0x800401EF, 321 MK_S_LAST = 0x000401EF, 322 MK_E_ENUMERATION_FAILED = 0x800401EF, 323 CO_E_FIRST = 0x800401F0, 324 CO_S_FIRST = 0x000401F0, 325 CO_E_NOTINITIALIZED = 0x800401F0, 326 CO_E_ALREADYINITIALIZED = 0x800401F1, 327 CO_E_CANTDETERMINECLASS = 0x800401F2, 328 CO_E_CLASSSTRING = 0x800401F3, 329 CO_E_IIDSTRING = 0x800401F4, 330 CO_E_APPNOTFOUND = 0x800401F5, 331 CO_E_APPSINGLEUSE = 0x800401F6, 332 CO_E_ERRORINAPP = 0x800401F7, 333 CO_E_DLLNOTFOUND = 0x800401F8, 334 CO_E_ERRORINDLL = 0x800401F9, 335 CO_E_WRONGOSFORAPP = 0x800401FA, 336 CO_E_OBJNOTREG = 0x800401FB, 337 CO_E_OBJISREG = 0x800401FC, 338 CO_E_OBJNOTCONNECTED = 0x800401FD, 339 CO_E_APPDIDNTREG = 0x800401FE, 340 CO_E_LAST = 0x800401FF, 341 CO_S_LAST = 0x000401FF, 342 CO_E_RELEASED = 0x800401FF, 343 344 CO_E_CLASS_CREATE_FAILED = 0x80080001, 345 CO_E_SCM_ERROR = 0x80080002, 346 CO_E_SCM_RPC_FAILURE = 0x80080003, 347 CO_E_BAD_PATH = 0x80080004, 348 CO_E_SERVER_EXEC_FAILURE = 0x80080005, 349 CO_E_OBJSRV_RPC_FAILURE = 0x80080006, 350 MK_E_NO_NORMALIZED = 0x80080007, 351 CO_E_SERVER_STOPPING = 0x80080008, 352 MEM_E_INVALID_ROOT = 0x80080009, 353 MEM_E_INVALID_LINK = 0x80080010, 354 MEM_E_INVALID_SIZE = 0x80080011, 355 CO_S_NOTALLINTERFACES = 0x00080012, 356 357 NTE_BAD_UID = 0x80090001, 358 NTE_BAD_HASH = 0x80090002, 359 NTE_BAD_KEY = 0x80090003, 360 NTE_BAD_LEN = 0x80090004, 361 NTE_BAD_DATA = 0x80090005, 362 NTE_BAD_SIGNATURE = 0x80090006, 363 NTE_BAD_VER = 0x80090007, 364 NTE_BAD_ALGID = 0x80090008, 365 NTE_BAD_FLAGS = 0x80090009, 366 NTE_BAD_TYPE = 0x8009000A, 367 NTE_BAD_KEY_STATE = 0x8009000B, 368 NTE_BAD_HASH_STATE = 0x8009000C, 369 NTE_NO_KEY = 0x8009000D, 370 NTE_NO_MEMORY = 0x8009000E, 371 NTE_EXISTS = 0x8009000F, 372 NTE_PERM = 0x80090010, 373 NTE_NOT_FOUND = 0x80090011, 374 NTE_DOUBLE_ENCRYPT = 0x80090012, 375 NTE_BAD_PROVIDER = 0x80090013, 376 NTE_BAD_PROV_TYPE = 0x80090014, 377 NTE_BAD_PUBLIC_KEY = 0x80090015, 378 NTE_BAD_KEYSET = 0x80090016, 379 NTE_PROV_TYPE_NOT_DEF = 0x80090017, 380 NTE_PROV_TYPE_ENTRY_BAD = 0x80090018, 381 NTE_KEYSET_NOT_DEF = 0x80090019, 382 NTE_KEYSET_ENTRY_BAD = 0x8009001A, 383 NTE_PROV_TYPE_NO_MATCH = 0x8009001B, 384 NTE_SIGNATURE_FILE_BAD = 0x8009001C, 385 NTE_PROVIDER_DLL_FAIL = 0x8009001D, 386 NTE_PROV_DLL_NOT_FOUND = 0x8009001E, 387 NTE_BAD_KEYSET_PARAM = 0x8009001F, 388 NTE_FAIL = 0x80090020, 389 NTE_SYS_ERR = 0x80090021 390 } 391 392 // C Macros 393 pragma(inline, true): 394 pure nothrow @nogc: 395 bool SUCCEEDED(HRESULT Status) { return Status >= 0; } 396 bool FAILED(HRESULT Status) { return Status < 0; } 397 bool IS_ERROR(HRESULT Status) { return (Status >>> 31) == 1; } 398 ushort HRESULT_CODE(HRESULT r) { return cast(ushort) (r & 0xFFFF);} 399 ushort HRESULT_FACILITY(HRESULT r) { return cast(ushort) ((r>>16) & 0x1fff); } 400 ushort HRESULT_SEVERITY(HRESULT r) { return cast(ushort) ((r>>31) & 0x1); } 401 HRESULT MAKE_HRESULT(bool s, uint f, uint c) { return (s << 31) | (f << 16) | c; } 402 HRESULT HRESULT_FROM_NT(HRESULT x) { return x | 0x10000000; } 403 HRESULT HRESULT_FROM_WIN32(HRESULT x) { return x ? (x & 0x0000FFFF) | (7 << 16) | 0x80000000 : 0; }