COM 定义了许多宏,这些宏使使用 HRESULT 值变得更容易。
下表介绍了错误处理宏。
| 宏 | 说明 | 
|---|---|
| MAKE_HRESULT | 返回一个 HRESULT,给定构成 HRESULT 的严重性位、设施代码和错误代码。 注意:调用 MAKE_HRESULT 进行 S_OK 验证会产生性能损失。 不应定期使用 MAKE_HRESULT 来获得成功的结果。 | 
| MAKE_SCODE | 返回一个 SCODE,给定构成 SCODE 的严重性位、设施代码和错误代码。 | 
| HRESULT_CODE | 提取 HRESULT 的错误代码部分。 | 
| HRESULT_FACILITY | 提取 HRESULT 的设施代码。 | 
| HRESULT_SEVERITY | 提取 HRESULT 的严重性位。 | 
| SCODE_CODE | 提取 SCODE 的错误代码部分。 | 
| SCODE_FACILITY | 提取 SCODE 的设施代码。 | 
| SCODE_SEVERITY | 提取 SCODE 的严重性字段。 | 
| 已成功 | 测试 SCODE 或 HRESULT 的严重性位;如果严重性为零,则返回 TRUE;如果为 1,则返回 FALSE。 | 
| FAILED | 测试 SCODE 或 HRESULT 的严重性位;如果严重性为 1,则返回 TRUE;如果为 0,则返回 FALSE。 | 
| IS_ERROR | 为任何状态值的错误提供通用测试。 | 
| HRESULT_FROM_WIN32 | 将系统错误代码映射到 HRESULT 值。 | 
| HRESULT_FROM_NT | 将 NT 状态值映射到 HRESULT 值。 |