#pragma once #include using HRESULT = int32_t; #define _HRESULT_TYPEDEF_(_sc) ((HRESULT)_sc) #define SEVERITY_ERROR 1 #define FACILITY_CONTROL 10 inline constexpr HRESULT MAKE_SCODE( uint32_t sev, uint32_t fac, uint32_t code ) { return (HRESULT)( ( (uint32_t)( sev ) << 31 ) | ( (unsigned long)( fac ) << 16 ) | ( (unsigned long)( code ) ) ); }; // ==== Copy-pasted from coreclr-master\src\pal\inc\rt\palrt.h ==== #define S_OK _HRESULT_TYPEDEF_(0x00000000L) #define S_FALSE _HRESULT_TYPEDEF_(0x00000001L) #define E_NOTIMPL _HRESULT_TYPEDEF_(0x80004001L) #define E_NOINTERFACE _HRESULT_TYPEDEF_(0x80004002L) #define E_UNEXPECTED _HRESULT_TYPEDEF_(0x8000FFFFL) #define E_OUTOFMEMORY _HRESULT_TYPEDEF_(0x8007000EL) #define E_INVALIDARG _HRESULT_TYPEDEF_(0x80070057L) #define E_POINTER _HRESULT_TYPEDEF_(0x80004003L) #define E_HANDLE _HRESULT_TYPEDEF_(0x80070006L) #define E_ABORT _HRESULT_TYPEDEF_(0x80004004L) #define E_FAIL _HRESULT_TYPEDEF_(0x80004005L) #define E_ACCESSDENIED _HRESULT_TYPEDEF_(0x80070005L) #define E_PENDING _HRESULT_TYPEDEF_(0x8000000AL) #define DISP_E_PARAMNOTFOUND _HRESULT_TYPEDEF_(0x80020004L) #define DISP_E_TYPEMISMATCH _HRESULT_TYPEDEF_(0x80020005L) #define DISP_E_BADVARTYPE _HRESULT_TYPEDEF_(0x80020008L) #define DISP_E_OVERFLOW _HRESULT_TYPEDEF_(0x8002000AL) #define DISP_E_DIVBYZERO _HRESULT_TYPEDEF_(0x80020012L) #define CLASS_E_CLASSNOTAVAILABLE _HRESULT_TYPEDEF_(0x80040111L) #define CLASS_E_NOAGGREGATION _HRESULT_TYPEDEF_(0x80040110L) #define CO_E_CLASSSTRING _HRESULT_TYPEDEF_(0x800401F3L) #define MK_E_SYNTAX _HRESULT_TYPEDEF_(0x800401E4L) #define STG_E_INVALIDFUNCTION _HRESULT_TYPEDEF_(0x80030001L) #define STG_E_FILENOTFOUND _HRESULT_TYPEDEF_(0x80030002L) #define STG_E_PATHNOTFOUND _HRESULT_TYPEDEF_(0x80030003L) #define STG_E_WRITEFAULT _HRESULT_TYPEDEF_(0x8003001DL) #define STG_E_FILEALREADYEXISTS _HRESULT_TYPEDEF_(0x80030050L) #define STG_E_ABNORMALAPIEXIT _HRESULT_TYPEDEF_(0x800300FAL) #define NTE_BAD_UID _HRESULT_TYPEDEF_(0x80090001L) #define NTE_BAD_HASH _HRESULT_TYPEDEF_(0x80090002L) #define NTE_BAD_KEY _HRESULT_TYPEDEF_(0x80090003L) #define NTE_BAD_LEN _HRESULT_TYPEDEF_(0x80090004L) #define NTE_BAD_DATA _HRESULT_TYPEDEF_(0x80090005L) #define NTE_BAD_SIGNATURE _HRESULT_TYPEDEF_(0x80090006L) #define NTE_BAD_VER _HRESULT_TYPEDEF_(0x80090007L) #define NTE_BAD_ALGID _HRESULT_TYPEDEF_(0x80090008L) #define NTE_BAD_FLAGS _HRESULT_TYPEDEF_(0x80090009L) #define NTE_BAD_TYPE _HRESULT_TYPEDEF_(0x8009000AL) #define NTE_BAD_KEY_STATE _HRESULT_TYPEDEF_(0x8009000BL) #define NTE_BAD_HASH_STATE _HRESULT_TYPEDEF_(0x8009000CL) #define NTE_NO_KEY _HRESULT_TYPEDEF_(0x8009000DL) #define NTE_NO_MEMORY _HRESULT_TYPEDEF_(0x8009000EL) #define NTE_SIGNATURE_FILE_BAD _HRESULT_TYPEDEF_(0x8009001CL) #define NTE_FAIL _HRESULT_TYPEDEF_(0x80090020L) #define CRYPT_E_HASH_VALUE _HRESULT_TYPEDEF_(0x80091007L) #define TYPE_E_SIZETOOBIG _HRESULT_TYPEDEF_(0x800288C5L) #define TYPE_E_DUPLICATEID _HRESULT_TYPEDEF_(0x800288C6L) #define STD_CTL_SCODE(n) MAKE_SCODE(SEVERITY_ERROR, FACILITY_CONTROL, n) #define CTL_E_OVERFLOW STD_CTL_SCODE(6) #define CTL_E_OUTOFMEMORY STD_CTL_SCODE(7) #define CTL_E_DIVISIONBYZERO STD_CTL_SCODE(11) #define CTL_E_OUTOFSTACKSPACE STD_CTL_SCODE(28) #define CTL_E_FILENOTFOUND STD_CTL_SCODE(53) #define CTL_E_DEVICEIOERROR STD_CTL_SCODE(57) #define CTL_E_PERMISSIONDENIED STD_CTL_SCODE(70) #define CTL_E_PATHFILEACCESSERROR STD_CTL_SCODE(75) #define CTL_E_PATHNOTFOUND STD_CTL_SCODE(76) #define INET_E_CANNOT_CONNECT _HRESULT_TYPEDEF_(0x800C0004L) #define INET_E_RESOURCE_NOT_FOUND _HRESULT_TYPEDEF_(0x800C0005L) #define INET_E_OBJECT_NOT_FOUND _HRESULT_TYPEDEF_(0x800C0006L) #define INET_E_DATA_NOT_AVAILABLE _HRESULT_TYPEDEF_(0x800C0007L) #define INET_E_DOWNLOAD_FAILURE _HRESULT_TYPEDEF_(0x800C0008L) #define INET_E_CONNECTION_TIMEOUT _HRESULT_TYPEDEF_(0x800C000BL) #define INET_E_UNKNOWN_PROTOCOL _HRESULT_TYPEDEF_(0x800C000DL) #define DBG_PRINTEXCEPTION_C _HRESULT_TYPEDEF_(0x40010006L) // ==== Done pasting ==== inline constexpr bool SUCCEEDED( HRESULT hr ) { return hr >= 0; } inline constexpr bool FAILED( HRESULT hr ) { return hr < 0; }