c# - 我在哪里可以找到 .NET 框架包装的所有 "COR_E_"HRESULT 的引用?

标签 c# .net vb.net winapi hresult

我正在为互操作编写一个简单的枚举,它将只定义一小部分常见的 HRESULT 我们可以通过 Win32 函数获得的值。

目前,我已经定义了从 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

要完成此枚举,我想定义带有“COR_E”前缀的HRESULT 值,这些值由.NET Framework 包装' s 在 this 中解释的异常类 MSDN 文章。

我一直在 this 中搜索这些值 pinvoke.net 引用和 this MSDN 引用以及谷歌搜索,但我找不到我想要的那些值的任何列表。

我怎样才能获得那些 HRESULT 值的列表?

最佳答案

例如,您可以在 .NET Framework 本身的源代码中找到它们。这是 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);
}

关于c# - 我在哪里可以找到 .NET 框架包装的所有 "COR_E_"HRESULT 的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37205883/

相关文章:

c# - 为什么我不能在 Quartz.net 中为同一个触发器安排多个作业?

c# - 调用方法时如何在 C# 代码中激活 UAC?

c# - 检查事件处理程序是否存在

c# - 如何在 XAML 中分配 Control 类型的属性 - 错误

.net - 如何将输入发送到控制台,就像用户正在打字一样?

sql - 将 SQL 列结果翻译成文本

c# - 如何从返回到文本框的 SQL 查询中将数字四舍五入到小数点后两位

c# - 如何使用 EmbeddedNavigator 在 DevExpress GridView 中保存行更改

c# - 在 UserControl 中居中标签

c# - WPF ListView 将 SelectedItem 与相同的项目混淆