2016-05-13 54 views
3

我正在写一个简单的枚举互操作,将定义只有一小部分的共同HRESULT值,我们可以通过Win32函数获得。哪里可以找到所有由.NET框架包装的“COR_E_”HRESULT的引用?

通过的那一刻,我已经定义了我取自这些值this参考MSDN和其他来源:

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 

要完成此枚举,我想定义HRESULT值与“COR_E”preffix包装.NET框架的异常类,如this MSDN文章中所述。

我在thispinvoke.net参考,并this参考MSDN一直在寻找这些值,并且谷歌搜索,但我无法找到我想要这些值的任何名单。

我能做些什么来获得那些列表HRESULT的值?

+1

的完整列表中CorError.h SDK声明包含文件。许多错误代码实际上是winapi错误,像&H8007xxxx –

回答

4

例如,您可以在.NET框架本身的源代码中找到它们。这里是相关文件的link(正如你在评论中提到的 - 还有更多这样的文件,for example)。我也将它拷贝到这里以供参考:

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); 
} 

从IO文件:

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); 
} 
+0

真棒,我完全忘记了在线源参考!谢谢。 – ElektroStudios

+1

@ElektroStudios我应该警告你:其中很多都在'FACILITY_WIN32'('0x8007xxxx'中的'07'),它将标准的'GetLastError()'代码映射到'HRESULT'。 – andlabs

+0

'0x80131904'怎么样。这是'SqlExcetion',我没有在任何谷歌搜索结果中找到它。我想要在这个组中的所有例外。 – Ammar

相关问题