HRESULT返回值
来源:互联网 发布:淘宝售前客服绩效考核 编辑:程序博客网 时间:2024/06/05 10:59
HRESULT返回值
HRESULT返回值说明 如果函数正常执行,则返回 S_OK,同时真正的函数运行结果则通过参数指针返回。如果遇到了异常情况,则COM系统经过判断,会返回相应的错误值。
HRESULT 其实是一个双字节的值,其最高位(bit)如果是0表示成功,1表示错误。具体参见 MSDN 之”Structure of COM Error Codes”说明。我们在程序中如果需要判断返回值,则可以使用比较运算符号;switch开关语句;也可以使用VC提供的宏:
HRESULT hr = 调用组件函数; if( SUCCEEDED( hr ) ){...} // 如果成功 ...... if( FAILED( hr ) ){...} // 如果失败 ......
大多数 COM 函数以及一些接口成员函数的返回值类型均为 HRESULT 类型。HRESULT 类型的返回值反映了函数中的一些情况,其类型定义规范如下:
31 30 29 28 16 15 0
|-----|--|------------------------|-----------------------------------|
类别码 (30-31) 反映函数调用结果:
自定义标记(29) 反映结果是否为自定义标识,1 为是,0 则不是;
操作码 (16-28) 标识结果操作来源,在 Windows 平台上,其定义如下:
#define FACILITY_WINDOWS 8#define FACILITY_STORAGE 3#define FACILITY_RPC 1#define FACILITY_SSPI 9#define FACILITY_WIN32 7#define FACILITY_CONTROL 10#define FACILITY_NULL 0#define FACILITY_INTERNET 12#define FACILITY_ITF 4#define FACILITY_DISPATCH 2#define FACILITY_CERT 11
操作结果码(0-15) 反映操作的状态,WinError.h 定义了 Win32 函数所有可能返回结果。以下是一些经常用到的返回值和宏定义:
S_OK 函数执行成功,其值为 0 (注意,其值与 TRUE 相反)S_FALSE 函数执行成功,其值为 1S_FAIL 函数执行失败,失败原因不确定E_OUTOFMEMORY 函数执行失败,失败原因为内存分配不成功E_NOTIMPL 函数执行失败,成员函数没有被实现E_NOTINTERFACE 函数执行失败,组件没有实现指定的接口
不能简单地把返回值与 S_OK 和 S_FALSE 比较,而要用 SECCEEDED 和 FAILED 宏进行判断。
阅读全文
0 0
- HRESULT 返回值
- HRESULT返回值说明
- HRESULT返回值说明
- HRESULT返回值说明
- HRESULT返回值说明
- HRESULT返回值说明
- HRESULT 函数返回值
- HRESULT返回值说明
- HRESULT返回值说明
- HRESULT返回值说明
- HRESULT返回值说明
- HRESULT返回值解析
- HRESULT返回值说明
- HRESULT返回值
- HRESULT返回值说明(转)
- HRESULT返回值说明(转) .
- COM返回值HRESULT\SCODE
- HRESULT返回值说明(转)
- round robin
- 多态
- 澳大利亚与中国签署金融科技合作协议
- springboot报**springboot org.hibernate.validator.internal.engine.resolver.DefaultTraversableResolver
- 英国棒约翰分公司接受比特币支付购买披萨
- HRESULT返回值
- Python语法基础(Python3)
- 通过与政府合作帮助比特币和区块链继续走向主流
- spark streaming 接收 kafka 数据java代码WordCount示例
- 福布斯:加密货币和区块链正在如何帮助电竞实现突破
- 网桥 squid 全透明代理
- 排序算法(四)——归并排序与递归
- keep pool
- PayPal首席执行官:未来5年金融科技带来的改变将超过过去30年已经实现的变革