您的位置:首页 > 其它

HRESULT 函数返回值详细介绍

2007-03-27 10:36 253 查看
HRESULT含义
S_OK0x00000000成功
S_FALSE0x00000001函数成功执行完成,但返回时出现错误
E_INVALIDARG0x80070057参数有错误
E_OUTOFMEMORY0x8007000E内存申请错误
E_UNEXPECTED0x8000FFFF未知的异常
E_NOTIMPL0x80004001未实现功能
E_FAIL0x80004005没有详细说明的错误。一般需要取得 Rich Error 错误信息(注1)
E_POINTER0x80004003无效的指针
E_HANDLE0x80070006无效的句柄
E_ABORT0x80004004终止操作
E_ACCESSDENIED0x80070005访问被拒绝
E_NOINTERFACE0x80004002不支持接口


图一、HRESULT 的结构

  HRESULT 其实是一个双字节的值,其最高位(bit)如果是0表示成功,1表示错误。具体参见 MSDN 之"Structure of COM Error Codes"说明。我们在程序中如果需要判断返回值,则可以使用比较运算符号;switch开关语句;也可以使用VC提供的宏:

HRESULT hr = 调用组件函数;
if( SUCCEEDED( hr ) ){...} // 如果成功
......
if( FAILED( hr ) ){...} // 如果失败
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: