【发布时间】:2010-08-29 01:10:08
【问题描述】:
我希望能够在我的 .NET 代码中使用由 COM 组件返回的 HRESULT 的标准符号名称。例如,我希望能够编写这样的代码:
try {
someComObject->DoSomething();
}
catch (COMException ex) {
if (ex.ErrorCode == E_FAIL) {
HandleFail();
}
else if (ex.ErrorCode == E_OUTOFMEMORY) {
HandleOutOfMemory();
}
else {
HandleComError(ex.ErrorCode);
}
}
但是,我在 .NET 框架中找不到定义 E_FAIL、E_OUTOFMEMORY、E_UNEXPECTED 等符号的任何地方。对于本机 Win32 应用程序,可以从
我当然可以自己定义它们,只要我需要它们,就像这样:
int E_FAIL = unchecked((int)0x80004005L);
但如果可用,我更愿意从标准位置获取定义。我想我曾经在某个地方找到了它们,但我的 MSDN 搜索现在没有找到它们。
.NET 库中是否有一组这样的定义?
【问题讨论】:
-
.NET 框架中有很多定义,都是内部的。您可以使用 Reflector 复制/粘贴它们。但是 pinvoke.net 列表可能更有用。
标签: .net comexception