函数返回值HRESUIT

今天在学习PSI信息相关知识时,看到了这个返回类型时,一脸懵逼,以前从来没有见过,然后上网查了下。

 

微软官网是这么说的:

The HRESULT data type is a 32-bit value is used to describe an error or warning.

 

Note: Most MAPI methods and functions return HRESULT values to provide detailed result information. HRESULT values are also used widely in COM interface methods.

 

名称                     说明                       值

S_OK                   操作成功                  0x00000000

E_UNEXPECTED           意外的失败                0x8000FFFF

E_NOTIMPL              未实现                    0x80004001

E_OUTOFMEMORY          未能分配所需的内存        0x8007000E

E_INVALIDARG           一个或多个参数无效        0x80070057

E_NOINTERFACE          不支持此接口              0x80004002

E_POINTER              无效指针                  0x80004003

E_HANDLE               无效句柄                  0x80070006

E_ABORT                操作已中止                0x80004004

E_FAIL                 未指定的失败              0x80004005

E_ACCESSDENIED         一般的访问被拒绝错误      0x80070005

不能简单地把返回值与 S_OK 和 S_FAIL 比较,而要用 SUCCEEDED 和 FAILED 宏进行判断。

 

HRESULT 其实是一个32位的值,其最高位(bit)如果是0表示成功,1表示错误。我们在程序中如果需要判断返回值,则可以使用比较运算符号;switch开关语句;也可以使用VC提供的宏: HRESULT hr = 调用组件函数;

 

if( SUCCEEDED( hr ) ){...} // 如果成功

......

if( FAILED( hr ) ){...} // 如果失败

......

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值