4

I'm writing a simple Enum for interop that will define only a little percentage of the common HRESULT values that we can get by a Win32 function.

By the moment, I have defined these values that I taken from this MSDN reference and other sources:

E_ABORT = &H80004004
E_ACCESSDENIED = &H80070005
E_FAIL = &H80004005
E_HANDLE = &H80070006
E_INVALIDARG = &H80070057
E_NOINTERFACE = &H80004002
E_NOTIMPL = &H80004001
E_OUTOFMEMORY = &H8007000E
E_PENDING = &H8000000A
E_POINTER = &H80004003
E_UNEXPECTED = &H8000FFFF
S_FALSE = &H1
S_OK = &H0

To complete this Enum, I would like to define the HRESULT values with "COR_E" prefix that are wrapped by .NET Framework's Exception classes as explained in this MSDN article.

I've been searching for those values in this pinvoke.net reference and this MSDN reference and also Googling, but I can't find any list of those values I want.

What can I do to get a list of those HRESULT values?.

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
ElektroStudios
  • 19,105
  • 33
  • 200
  • 417
  • 1
    The complete list is declared in the CorError.h SDK include file. Many error codes are actually winapi errors, like &H8007xxxx – Hans Passant May 13 '16 at 09:32

2 Answers2

4

You can find them in a source code of .NET framework itself for example. Here is the link to relevant file (as you mention in comments - there are more such files, for example). I'll also copy it here for reference:

internal static class __HResults
{
    internal const int RO_E_CLOSED = unchecked((int)0x80000013);
    internal const int E_BOUNDS = unchecked((int)0x8000000B);
    internal const int E_CHANGED_STATE = unchecked((int)0x8000000C);
    internal const int E_FAIL = unchecked((int)0x80004005); 
    internal const int E_POINTER = unchecked((int)0x80004003); 
    internal const int E_NOTIMPL = unchecked((int)0x80004001);
    internal const int REGDB_E_CLASSNOTREG = unchecked((int)0x80040154);
    internal const int COR_E_AMBIGUOUSMATCH = unchecked((int)0x8000211D); 
    internal const int COR_E_APPDOMAINUNLOADED = unchecked((int)0x80131014); 
    internal const int COR_E_APPLICATION = unchecked((int)0x80131600); 
    internal const int COR_E_ARGUMENT = unchecked((int)0x80070057); 
    internal const int COR_E_ARGUMENTOUTOFRANGE = unchecked((int)0x80131502); 
    internal const int COR_E_ARITHMETIC = unchecked((int)0x80070216); 
    internal const int COR_E_ARRAYTYPEMISMATCH = unchecked((int)0x80131503);      
    internal const int COR_E_BADIMAGEFORMAT = unchecked((int)0x8007000B);     
    internal const int COR_E_TYPEUNLOADED = unchecked((int)0x80131013); 
    internal const int COR_E_CANNOTUNLOADAPPDOMAIN = unchecked((int)0x80131015); 
    internal const int COR_E_COMEMULATE = unchecked((int)0x80131535); 
    internal const int COR_E_CONTEXTMARSHAL = unchecked((int)0x80131504); 
    internal const int COR_E_DATAMISALIGNED = unchecked((int)0x80131541);
    internal const int COR_E_TIMEOUT = unchecked((int)0x80131505);        
    internal const int COR_E_CUSTOMATTRIBUTEFORMAT = unchecked((int)0x80131605); 
    internal const int COR_E_DIVIDEBYZERO = unchecked((int)0x80020012); // DISP_E_DIVBYZERO
    internal const int COR_E_DUPLICATEWAITOBJECT = unchecked((int)0x80131529);
    internal const int COR_E_EXCEPTION = unchecked((int)0x80131500); 
    internal const int COR_E_EXECUTIONENGINE = unchecked((int)0x80131506); 
    internal const int COR_E_FIELDACCESS = unchecked((int)0x80131507); 
    internal const int COR_E_FORMAT = unchecked((int)0x80131537); 
    internal const int COR_E_INDEXOUTOFRANGE = unchecked((int)0x80131508); 
    internal const int COR_E_INSUFFICIENTMEMORY = unchecked((int)0x8013153D);
    internal const int COR_E_INSUFFICIENTEXECUTIONSTACK = unchecked((int)0x80131578);
    internal const int COR_E_INVALIDCAST = unchecked((int)0x80004002); 
    internal const int COR_E_INVALIDCOMOBJECT = unchecked((int)0x80131527);
    internal const int COR_E_INVALIDFILTERCRITERIA = unchecked((int)0x80131601); 
    internal const int COR_E_INVALIDOLEVARIANTTYPE = unchecked((int)0x80131531);   
    internal const int COR_E_INVALIDOPERATION = unchecked((int)0x80131509); 
    internal const int COR_E_INVALIDPROGRAM = unchecked((int)0x8013153A); 
    internal const int COR_E_KEYNOTFOUND = unchecked((int)0x80131577);
    internal const int COR_E_MARSHALDIRECTIVE = unchecked((int)0x80131535); 
    internal const int COR_E_MEMBERACCESS = unchecked((int)0x8013151A); 
    internal const int COR_E_METHODACCESS = unchecked((int)0x80131510); 
    internal const int COR_E_MISSINGFIELD = unchecked((int)0x80131511); 
    internal const int COR_E_MISSINGMANIFESTRESOURCE = unchecked((int)0x80131532);
    internal const int COR_E_MISSINGMEMBER = unchecked((int)0x80131512);
    internal const int COR_E_MISSINGMETHOD = unchecked((int)0x80131513); 
    internal const int COR_E_MISSINGSATELLITEASSEMBLY = unchecked((int)0x80131536);
    internal const int COR_E_MULTICASTNOTSUPPORTED = unchecked((int)0x80131514); 
    internal const int COR_E_NOTFINITENUMBER = unchecked((int)0x80131528);
    internal const int COR_E_PLATFORMNOTSUPPORTED = unchecked((int)0x80131539); 
    internal const int COR_E_NOTSUPPORTED = unchecked((int)0x80131515); 
    internal const int COR_E_NULLREFERENCE = unchecked((int)0x80004003); 
    internal const int COR_E_OBJECTDISPOSED = unchecked((int)0x80131622);
    internal const int COR_E_OPERATIONCANCELED = unchecked((int)0x8013153B);
    internal const int COR_E_OUTOFMEMORY = unchecked((int)0x8007000E); 
    internal const int COR_E_OVERFLOW = unchecked((int)0x80131516); 
    internal const int COR_E_RANK = unchecked((int)0x80131517); 
    internal const int COR_E_REFLECTIONTYPELOAD    = unchecked((int)0x80131602); 
    internal const int COR_E_RUNTIMEWRAPPED = unchecked((int)0x8013153E);
    internal const int COR_E_SAFEARRAYRANKMISMATCH = unchecked((int)0x80131538); 
    internal const int COR_E_SAFEARRAYTYPEMISMATCH = unchecked((int)0x80131533); 
    internal const int COR_E_SAFEHANDLEMISSINGATTRIBUTE = unchecked((int)0x80131623);
    internal const int COR_E_SECURITY = unchecked((int)0x8013150A); 
    internal const int COR_E_SERIALIZATION = unchecked((int)0x8013150C);
    internal const int COR_E_SEMAPHOREFULL = unchecked((int)0x8013152B);
    internal const int COR_E_WAITHANDLECANNOTBEOPENED = unchecked((int)0x8013152C);
    internal const int COR_E_ABANDONEDMUTEX = unchecked((int)0x8013152D);
    internal const int COR_E_STACKOVERFLOW = unchecked((int)0x800703E9); 
    internal const int COR_E_SYNCHRONIZATIONLOCK = unchecked((int)0x80131518); 
    internal const int COR_E_SYSTEM = unchecked((int)0x80131501); 
    internal const int COR_E_TARGET = unchecked((int)0x80131603); 
    internal const int COR_E_TARGETINVOCATION = unchecked((int)0x80131604); 
    internal const int COR_E_TARGETPARAMCOUNT = unchecked((int)0x8002000e);
    internal const int COR_E_THREADABORTED = unchecked((int)0x80131530); 
    internal const int COR_E_THREADINTERRUPTED = unchecked((int)0x80131519); 
    internal const int COR_E_THREADSTATE = unchecked((int)0x80131520); 
    internal const int COR_E_THREADSTOP = unchecked((int)0x80131521); 
    internal const int COR_E_THREADSTART = unchecked((int)0x80131525);
    internal const int COR_E_TYPEACCESS = unchecked((int)0x80131543);
    internal const int COR_E_TYPEINITIALIZATION = unchecked((int)0x80131534); 
    internal const int COR_E_TYPELOAD = unchecked((int)0x80131522); 
    internal const int COR_E_ENTRYPOINTNOTFOUND = unchecked((int)0x80131523); 
    internal const int COR_E_DLLNOTFOUND = unchecked((int)0x80131524); 
    internal const int COR_E_UNAUTHORIZEDACCESS = unchecked((int)0x80070005); 
    internal const int COR_E_UNSUPPORTEDFORMAT = unchecked((int)0x80131523); 
    internal const int COR_E_VERIFICATION = unchecked((int)0x8013150D); 
    internal const int COR_E_HOSTPROTECTION = unchecked((int)0x80131640);
    internal const int CORSEC_E_MIN_GRANT_FAIL = unchecked((int)0x80131417);
    internal const int CORSEC_E_NO_EXEC_PERM = unchecked((int)0x80131418);
    internal const int CORSEC_E_POLICY_EXCEPTION = unchecked((int)0x80131416);
    internal const int CORSEC_E_XMLSYNTAX = unchecked((int)0x80131418);
    internal const int NTE_FAIL = unchecked((int)0x80090020); 
    internal const int CORSEC_E_CRYPTO = unchecked((int)0x80131430);
    internal const int CORSEC_E_CRYPTO_UNEX_OPER = unchecked((int)0x80131431);
    internal const int DISP_E_OVERFLOW = unchecked((int)0x8002000a);
    internal const int FUSION_E_REF_DEF_MISMATCH = unchecked((int)0x80131040);
    internal const int FUSION_E_INVALID_NAME = unchecked((int)0x80131047);
    internal const int TYPE_E_TYPEMISMATCH = unchecked((int)0x80028ca0);
}

From IO file:

internal static class __HResults
{
    // These use an error code from WinError.h
    public const int COR_E_ENDOFSTREAM = unchecked((int)0x80070026);  // OS defined
    public const int COR_E_FILELOAD = unchecked((int)0x80131621);
    public const int COR_E_FILENOTFOUND = unchecked((int)0x80070002);
    public const int COR_E_DIRECTORYNOTFOUND = unchecked((int)0x80070003);
    public const int COR_E_PATHTOOLONG = unchecked((int)0x800700CE);

    public const int COR_E_IO = unchecked((int)0x80131620);
}
Evk
  • 98,527
  • 8
  • 141
  • 191
  • Awesome, I totally forgot the online source reference!. Thankyou. – ElektroStudios May 13 '16 at 09:17
  • 1
    @ElektroStudios I should warn you: a lot of those are in `FACILITY_WIN32` (the `07` in `0x8007xxxx`), which map standard `GetLastError()` codes to `HRESULT`s. – andlabs May 13 '16 at 15:30
  • What about `0x80131904`. This is `SqlExcetion` and I did not found it in any google result. I want all exceptions in this group. – Ammar Mar 14 '17 at 07:28
1

As commented by Hans Passant, the SDK's CorError.h is the ultimate reference.

The error codes are also very conviniently summarised in this blog post
Yi Zhang's MSDN Blog: Interpreting HRESULTS returned from .NET/CLR: 0x8013XXXX.

I have this page bookmarked and it's the first place I turn to for interpreting HRESULTs.

valiano
  • 16,433
  • 7
  • 64
  • 79