2 Star 0 Fork 0

程序员锡哥/winapi

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
error.go 1.19 KB
一键复制 编辑 原始数据 按行查看 历史
/*
错误相关,包括 Windows Error Code 和 HRESULT
*/
// +build windows
package winapi
import (
"fmt"
)
// 1. Windows Error Code
type WinErrorCode uint32
func (this WinErrorCode) Error() string {
var flags uint32 = FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ARGUMENT_ARRAY | FORMAT_MESSAGE_IGNORE_INSERTS
str, err := FormatMessage(flags, nil, uint32(this), 0, nil)
n := uint32(this)
if err == nil {
return fmt.Sprintf("winapi error: %d(0x%08X) - ", n, n) + str
} else {
return fmt.Sprintf("winapi error: %d(0x%08X)", n, n)
}
}
// 2. HRESULT
type HRESULT int32
const (
S_OK HRESULT = 0
S_FALSE HRESULT = 1
E_NOTIMPL HRESULT = (0x80004001 & 0x7FFFFFFF) | (^0x7FFFFFFF)
)
func (hr HRESULT) Succeeded() bool {
return hr >= 0
}
func (hr HRESULT) Failed() bool {
return hr < 0
}
func (hr HRESULT) Error() string {
var flags uint32 = FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ARGUMENT_ARRAY | FORMAT_MESSAGE_IGNORE_INSERTS
str, err := FormatMessage(flags, nil, uint32(int32(hr)), 0, nil)
if err == nil {
return fmt.Sprintf("error: HRESULT = %d(0x%08X) - ", int32(hr), uint32(hr)) + str
} else {
return fmt.Sprintf("error: HRESULT = %d(0x%08X)", int32(hr), uint32(hr))
}
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/msgy/winapi.git
git@gitee.com:msgy/winapi.git
msgy
winapi
winapi
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385