您的当前位置:首页正文

HRESULT是什么类型

2024-01-01 来源:汇智旅游网
HRESULT是什么类型

HRESULT 是⼀种简单的数据类型,可以判断函数执⾏的结果。HRESULT 常被⽤作COM调⽤的返回值。充分利⽤HRESULT返回信息可以帮助提⾼我

们的代码质量,提供程序的健壮性。

HRESULT 其实是⼀个类型定义:typedef LONG HRESULT ;

1.HRESULT 返回值有哪些、及其含义:

S_OK 操作成功 0x00000000

S_FALSE 函数调⽤成功 #define S_FALSE ((HRESULT)1L)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

2.HRESULT使⽤⽅法:

其中最常⽤的是S_OK,S_FALSE,E_FAIL.

S_OK 操作成功,调⽤成功。需要⽤SUCCEEDED(hr) 来判断。其值为 0#define SUCCEEDED(hr) (((HRESULT)(hr)) >= 0)

S_FALSE 函数调⽤成功,可以处理有问题。需要⽤(hr == S_FALSE)来判断。其值为 1E_FAIL 未指定的失败,⼀般来讲是函数调⽤错误。需要⽤(hr == E_FAIL) 来判断。从以上分析可以看出,FAILED 泛指⼀切错误。#define FAILED(hr) (((HRESULT)(hr)) < 0)

因篇幅问题不能全部显示,请点此查看更多更全内容