go fmt
diff --git a/advapi32.go b/advapi32.go
index 0128355..6eeca54 100644
--- a/advapi32.go
+++ b/advapi32.go
@@ -5,217 +5,217 @@
package w32
import (
- "fmt"
- "syscall"
- "unsafe"
+ "fmt"
+ "syscall"
+ "unsafe"
)
var (
- modadvapi32 = syscall.NewLazyDLL("advapi32.dll")
+ modadvapi32 = syscall.NewLazyDLL("advapi32.dll")
- procRegOpenKeyEx = modadvapi32.NewProc("RegOpenKeyExW")
- procRegCloseKey = modadvapi32.NewProc("RegCloseKey")
- procRegGetValue = modadvapi32.NewProc("RegGetValueW")
- procRegEnumKeyEx = modadvapi32.NewProc("RegEnumKeyExW")
- procRegSetKeyValue = modadvapi32.NewProc("RegSetKeyValueW")
- procOpenEventLog = modadvapi32.NewProc("OpenEventLogW")
- procReadEventLog = modadvapi32.NewProc("ReadEventLogW")
- procCloseEventLog = modadvapi32.NewProc("CloseEventLog")
- procOpenSCManager = modadvapi32.NewProc("OpenSCManagerW")
- procCloseServiceHandle = modadvapi32.NewProc("CloseServiceHandle")
- procOpenService = modadvapi32.NewProc("OpenServiceW")
- procStartService = modadvapi32.NewProc("StartServiceW")
- procControlService = modadvapi32.NewProc("ControlService")
+ procRegOpenKeyEx = modadvapi32.NewProc("RegOpenKeyExW")
+ procRegCloseKey = modadvapi32.NewProc("RegCloseKey")
+ procRegGetValue = modadvapi32.NewProc("RegGetValueW")
+ procRegEnumKeyEx = modadvapi32.NewProc("RegEnumKeyExW")
+ procRegSetKeyValue = modadvapi32.NewProc("RegSetKeyValueW")
+ procOpenEventLog = modadvapi32.NewProc("OpenEventLogW")
+ procReadEventLog = modadvapi32.NewProc("ReadEventLogW")
+ procCloseEventLog = modadvapi32.NewProc("CloseEventLog")
+ procOpenSCManager = modadvapi32.NewProc("OpenSCManagerW")
+ procCloseServiceHandle = modadvapi32.NewProc("CloseServiceHandle")
+ procOpenService = modadvapi32.NewProc("OpenServiceW")
+ procStartService = modadvapi32.NewProc("StartServiceW")
+ procControlService = modadvapi32.NewProc("ControlService")
)
func RegOpenKeyEx(hKey HKEY, subKey string, samDesired uint32) HKEY {
- var result HKEY
- ret, _, _ := procRegOpenKeyEx.Call(
- uintptr(hKey),
- uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(subKey))),
- uintptr(0),
- uintptr(samDesired),
- uintptr(unsafe.Pointer(&result)))
+ var result HKEY
+ ret, _, _ := procRegOpenKeyEx.Call(
+ uintptr(hKey),
+ uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(subKey))),
+ uintptr(0),
+ uintptr(samDesired),
+ uintptr(unsafe.Pointer(&result)))
- if ret != ERROR_SUCCESS {
- panic(fmt.Sprintf("RegOpenKeyEx(%d, %s, %d) failed", hKey, subKey, samDesired))
- }
- return result
+ if ret != ERROR_SUCCESS {
+ panic(fmt.Sprintf("RegOpenKeyEx(%d, %s, %d) failed", hKey, subKey, samDesired))
+ }
+ return result
}
func RegCloseKey(hKey HKEY) {
- ret, _, _ := procRegCloseKey.Call(
- uintptr(hKey))
+ ret, _, _ := procRegCloseKey.Call(
+ uintptr(hKey))
- if ret != ERROR_SUCCESS {
- panic(fmt.Sprintf("RegCloseKey(%d) failed", hKey))
- }
+ if ret != ERROR_SUCCESS {
+ panic(fmt.Sprintf("RegCloseKey(%d) failed", hKey))
+ }
}
func RegGetString(hKey HKEY, subKey string, value string) string {
- var bufLen uint32
- procRegGetValue.Call(
- uintptr(hKey),
- uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(subKey))),
- uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(value))),
- uintptr(RRF_RT_REG_SZ),
- 0,
- 0,
- uintptr(unsafe.Pointer(&bufLen)))
+ var bufLen uint32
+ procRegGetValue.Call(
+ uintptr(hKey),
+ uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(subKey))),
+ uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(value))),
+ uintptr(RRF_RT_REG_SZ),
+ 0,
+ 0,
+ uintptr(unsafe.Pointer(&bufLen)))
- if bufLen == 0 {
- return ""
- }
+ if bufLen == 0 {
+ return ""
+ }
- buf := make([]uint16, bufLen)
- ret, _, _ := procRegGetValue.Call(
- uintptr(hKey),
- uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(subKey))),
- uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(value))),
- uintptr(RRF_RT_REG_SZ),
- 0,
- uintptr(unsafe.Pointer(&buf[0])),
- uintptr(unsafe.Pointer(&bufLen)))
+ buf := make([]uint16, bufLen)
+ ret, _, _ := procRegGetValue.Call(
+ uintptr(hKey),
+ uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(subKey))),
+ uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(value))),
+ uintptr(RRF_RT_REG_SZ),
+ 0,
+ uintptr(unsafe.Pointer(&buf[0])),
+ uintptr(unsafe.Pointer(&bufLen)))
- if ret != ERROR_SUCCESS {
- return ""
- }
+ if ret != ERROR_SUCCESS {
+ return ""
+ }
- return syscall.UTF16ToString(buf)
+ return syscall.UTF16ToString(buf)
}
func RegSetKeyValue(hKey HKEY, subKey string, valueName string, dwType DWORD, data uintptr, cbData uint16) (errno int) {
- ret, _, _ := procRegSetKeyValue.Call(
- uintptr(hKey),
- uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(subKey))),
- uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(valueName))),
- uintptr(dwType),
- data,
- uintptr(cbData))
+ ret, _, _ := procRegSetKeyValue.Call(
+ uintptr(hKey),
+ uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(subKey))),
+ uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(valueName))),
+ uintptr(dwType),
+ data,
+ uintptr(cbData))
- return int(ret)
+ return int(ret)
}
func RegEnumKeyEx(hKey HKEY, index DWORD) string {
- var bufLen uint32 = 255
- buf := make([]uint16, bufLen)
- procRegEnumKeyEx.Call(
- uintptr(hKey),
- uintptr(index),
- uintptr(unsafe.Pointer(&buf[0])),
- uintptr(unsafe.Pointer(&bufLen)),
- 0,
- 0,
- 0,
- 0)
- return syscall.UTF16ToString(buf)
+ var bufLen uint32 = 255
+ buf := make([]uint16, bufLen)
+ procRegEnumKeyEx.Call(
+ uintptr(hKey),
+ uintptr(index),
+ uintptr(unsafe.Pointer(&buf[0])),
+ uintptr(unsafe.Pointer(&bufLen)),
+ 0,
+ 0,
+ 0,
+ 0)
+ return syscall.UTF16ToString(buf)
}
func OpenEventLog(servername, sourcename *uint16) HANDLE {
- ret, _, _ := procOpenEventLog.Call(
- uintptr(unsafe.Pointer(servername)),
- uintptr(unsafe.Pointer(sourcename)))
+ ret, _, _ := procOpenEventLog.Call(
+ uintptr(unsafe.Pointer(servername)),
+ uintptr(unsafe.Pointer(sourcename)))
- return HANDLE(ret)
+ return HANDLE(ret)
}
func ReadEventLog(eventlog HANDLE, readflags, recordoffset uint32, buffer []byte, numberofbytestoread uint32, bytesread, minnumberofbytesneeded *uint32) bool {
- ret, _, _ := procReadEventLog.Call(
- uintptr(eventlog),
- uintptr(readflags),
- uintptr(recordoffset),
- uintptr(unsafe.Pointer(&buffer[0])),
- uintptr(numberofbytestoread),
- uintptr(unsafe.Pointer(bytesread)),
- uintptr(unsafe.Pointer(minnumberofbytesneeded)))
+ ret, _, _ := procReadEventLog.Call(
+ uintptr(eventlog),
+ uintptr(readflags),
+ uintptr(recordoffset),
+ uintptr(unsafe.Pointer(&buffer[0])),
+ uintptr(numberofbytestoread),
+ uintptr(unsafe.Pointer(bytesread)),
+ uintptr(unsafe.Pointer(minnumberofbytesneeded)))
- return ret != 0
+ return ret != 0
}
func CloseEventLog(eventlog HANDLE) bool {
- ret, _, _ := procCloseEventLog.Call(
- uintptr(eventlog))
+ ret, _, _ := procCloseEventLog.Call(
+ uintptr(eventlog))
- return ret != 0
+ return ret != 0
}
func OpenSCManager(lpMachineName, lpDatabaseName string, dwDesiredAccess DWORD) (HANDLE, error) {
- var p1, p2 uintptr
- if len(lpMachineName) > 0 {
- p1 = uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpMachineName)))
- }
- if len(lpDatabaseName) > 0 {
- p2 = uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpDatabaseName)))
- }
- ret, _, _ := procOpenSCManager.Call(
- p1,
- p2,
- uintptr(dwDesiredAccess))
+ var p1, p2 uintptr
+ if len(lpMachineName) > 0 {
+ p1 = uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpMachineName)))
+ }
+ if len(lpDatabaseName) > 0 {
+ p2 = uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpDatabaseName)))
+ }
+ ret, _, _ := procOpenSCManager.Call(
+ p1,
+ p2,
+ uintptr(dwDesiredAccess))
- if ret == 0 {
- return 0, syscall.GetLastError()
- }
+ if ret == 0 {
+ return 0, syscall.GetLastError()
+ }
- return HANDLE(ret), nil
+ return HANDLE(ret), nil
}
func CloseServiceHandle(hSCObject HANDLE) error {
- ret, _, _ := procCloseServiceHandle.Call(uintptr(hSCObject))
- if ret == 0 {
- return syscall.GetLastError()
- }
- return nil
+ ret, _, _ := procCloseServiceHandle.Call(uintptr(hSCObject))
+ if ret == 0 {
+ return syscall.GetLastError()
+ }
+ return nil
}
func OpenService(hSCManager HANDLE, lpServiceName string, dwDesiredAccess DWORD) (HANDLE, error) {
- ret, _, _ := procOpenService.Call(
- uintptr(hSCManager),
- uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpServiceName))),
- uintptr(dwDesiredAccess))
+ ret, _, _ := procOpenService.Call(
+ uintptr(hSCManager),
+ uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpServiceName))),
+ uintptr(dwDesiredAccess))
- if ret == 0 {
- return 0, syscall.GetLastError()
- }
+ if ret == 0 {
+ return 0, syscall.GetLastError()
+ }
- return HANDLE(ret), nil
+ return HANDLE(ret), nil
}
func StartService(hService HANDLE, lpServiceArgVectors []string) error {
- l := len(lpServiceArgVectors)
- var ret uintptr
- if l == 0 {
- ret, _, _ = procStartService.Call(
- uintptr(hService),
- 0,
- 0)
- } else {
- lpArgs := make([]uintptr, l)
- for i := 0; i < l; i++ {
- lpArgs[i] = uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpServiceArgVectors[i])))
- }
+ l := len(lpServiceArgVectors)
+ var ret uintptr
+ if l == 0 {
+ ret, _, _ = procStartService.Call(
+ uintptr(hService),
+ 0,
+ 0)
+ } else {
+ lpArgs := make([]uintptr, l)
+ for i := 0; i < l; i++ {
+ lpArgs[i] = uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpServiceArgVectors[i])))
+ }
- ret, _, _ = procStartService.Call(
- uintptr(hService),
- uintptr(l),
- uintptr(unsafe.Pointer(&lpArgs[0])))
- }
+ ret, _, _ = procStartService.Call(
+ uintptr(hService),
+ uintptr(l),
+ uintptr(unsafe.Pointer(&lpArgs[0])))
+ }
- if ret == 0 {
- return syscall.GetLastError()
- }
+ if ret == 0 {
+ return syscall.GetLastError()
+ }
- return nil
+ return nil
}
func ControlService(hService HANDLE, dwControl DWORD, lpServiceStatus *SERVICE_STATUS) bool {
- if lpServiceStatus == nil {
- panic("ControlService:lpServiceStatus cannot be nil")
- }
+ if lpServiceStatus == nil {
+ panic("ControlService:lpServiceStatus cannot be nil")
+ }
- ret, _, _ := procControlService.Call(
- uintptr(hService),
- uintptr(dwControl),
- uintptr(unsafe.Pointer(lpServiceStatus)))
+ ret, _, _ := procControlService.Call(
+ uintptr(hService),
+ uintptr(dwControl),
+ uintptr(unsafe.Pointer(lpServiceStatus)))
- return ret != 0
+ return ret != 0
}
diff --git a/comctl32.go b/comctl32.go
index 34ab204..2724ee4 100644
--- a/comctl32.go
+++ b/comctl32.go
@@ -5,105 +5,105 @@
package w32
import (
- "syscall"
- "unsafe"
+ "syscall"
+ "unsafe"
)
var (
- modcomctl32 = syscall.NewLazyDLL("comctl32.dll")
+ modcomctl32 = syscall.NewLazyDLL("comctl32.dll")
- procInitCommonControlsEx = modcomctl32.NewProc("InitCommonControlsEx")
- procImageList_Create = modcomctl32.NewProc("ImageList_Create")
- procImageList_Destroy = modcomctl32.NewProc("ImageList_Destroy")
- procImageList_GetImageCount = modcomctl32.NewProc("ImageList_GetImageCount")
- procImageList_SetImageCount = modcomctl32.NewProc("ImageList_SetImageCount")
- procImageList_Add = modcomctl32.NewProc("ImageList_Add")
- procImageList_ReplaceIcon = modcomctl32.NewProc("ImageList_ReplaceIcon")
- procImageList_Remove = modcomctl32.NewProc("ImageList_Remove")
- procTrackMouseEvent = modcomctl32.NewProc("_TrackMouseEvent")
+ procInitCommonControlsEx = modcomctl32.NewProc("InitCommonControlsEx")
+ procImageList_Create = modcomctl32.NewProc("ImageList_Create")
+ procImageList_Destroy = modcomctl32.NewProc("ImageList_Destroy")
+ procImageList_GetImageCount = modcomctl32.NewProc("ImageList_GetImageCount")
+ procImageList_SetImageCount = modcomctl32.NewProc("ImageList_SetImageCount")
+ procImageList_Add = modcomctl32.NewProc("ImageList_Add")
+ procImageList_ReplaceIcon = modcomctl32.NewProc("ImageList_ReplaceIcon")
+ procImageList_Remove = modcomctl32.NewProc("ImageList_Remove")
+ procTrackMouseEvent = modcomctl32.NewProc("_TrackMouseEvent")
)
func InitCommonControlsEx(lpInitCtrls *INITCOMMONCONTROLSEX) bool {
- ret, _, _ := procInitCommonControlsEx.Call(
- uintptr(unsafe.Pointer(lpInitCtrls)))
+ ret, _, _ := procInitCommonControlsEx.Call(
+ uintptr(unsafe.Pointer(lpInitCtrls)))
- return ret != 0
+ return ret != 0
}
func ImageList_Create(cx, cy int, flags uint, cInitial, cGrow int) HIMAGELIST {
- ret, _, _ := procImageList_Create.Call(
- uintptr(cx),
- uintptr(cy),
- uintptr(flags),
- uintptr(cInitial),
- uintptr(cGrow))
+ ret, _, _ := procImageList_Create.Call(
+ uintptr(cx),
+ uintptr(cy),
+ uintptr(flags),
+ uintptr(cInitial),
+ uintptr(cGrow))
- if ret == 0 {
- panic("Create image list failed")
- }
+ if ret == 0 {
+ panic("Create image list failed")
+ }
- return HIMAGELIST(ret)
+ return HIMAGELIST(ret)
}
func ImageList_Destroy(himl HIMAGELIST) bool {
- ret, _, _ := procImageList_Destroy.Call(
- uintptr(himl))
+ ret, _, _ := procImageList_Destroy.Call(
+ uintptr(himl))
- return ret != 0
+ return ret != 0
}
func ImageList_GetImageCount(himl HIMAGELIST) int {
- ret, _, _ := procImageList_GetImageCount.Call(
- uintptr(himl))
+ ret, _, _ := procImageList_GetImageCount.Call(
+ uintptr(himl))
- return int(ret)
+ return int(ret)
}
func ImageList_SetImageCount(himl HIMAGELIST, uNewCount uint) bool {
- ret, _, _ := procImageList_SetImageCount.Call(
- uintptr(himl),
- uintptr(uNewCount))
+ ret, _, _ := procImageList_SetImageCount.Call(
+ uintptr(himl),
+ uintptr(uNewCount))
- return ret != 0
+ return ret != 0
}
func ImageList_Add(himl HIMAGELIST, hbmImage, hbmMask HBITMAP) int {
- ret, _, _ := procImageList_Add.Call(
- uintptr(himl),
- uintptr(hbmImage),
- uintptr(hbmMask))
+ ret, _, _ := procImageList_Add.Call(
+ uintptr(himl),
+ uintptr(hbmImage),
+ uintptr(hbmMask))
- return int(ret)
+ return int(ret)
}
func ImageList_ReplaceIcon(himl HIMAGELIST, i int, hicon HICON) int {
- ret, _, _ := procImageList_ReplaceIcon.Call(
- uintptr(himl),
- uintptr(i),
- uintptr(hicon))
+ ret, _, _ := procImageList_ReplaceIcon.Call(
+ uintptr(himl),
+ uintptr(i),
+ uintptr(hicon))
- return int(ret)
+ return int(ret)
}
func ImageList_AddIcon(himl HIMAGELIST, hicon HICON) int {
- return ImageList_ReplaceIcon(himl, -1, hicon)
+ return ImageList_ReplaceIcon(himl, -1, hicon)
}
func ImageList_Remove(himl HIMAGELIST, i int) bool {
- ret, _, _ := procImageList_Remove.Call(
- uintptr(himl),
- uintptr(i))
+ ret, _, _ := procImageList_Remove.Call(
+ uintptr(himl),
+ uintptr(i))
- return ret != 0
+ return ret != 0
}
func ImageList_RemoveAll(himl HIMAGELIST) bool {
- return ImageList_Remove(himl, -1)
+ return ImageList_Remove(himl, -1)
}
func TrackMouseEvent(tme *TRACKMOUSEEVENT) bool {
- ret, _, _ := procTrackMouseEvent.Call(
- uintptr(unsafe.Pointer(tme)))
+ ret, _, _ := procTrackMouseEvent.Call(
+ uintptr(unsafe.Pointer(tme)))
- return ret != 0
+ return ret != 0
}
diff --git a/comdlg32.go b/comdlg32.go
index c63c147..9849d89 100644
--- a/comdlg32.go
+++ b/comdlg32.go
@@ -5,34 +5,34 @@
package w32
import (
- "syscall"
- "unsafe"
+ "syscall"
+ "unsafe"
)
var (
- modcomdlg32 = syscall.NewLazyDLL("comdlg32.dll")
+ modcomdlg32 = syscall.NewLazyDLL("comdlg32.dll")
- procGetSaveFileName = modcomdlg32.NewProc("GetSaveFileNameW")
- procGetOpenFileName = modcomdlg32.NewProc("GetOpenFileNameW")
- procCommDlgExtendedError = modcomdlg32.NewProc("CommDlgExtendedError")
+ procGetSaveFileName = modcomdlg32.NewProc("GetSaveFileNameW")
+ procGetOpenFileName = modcomdlg32.NewProc("GetOpenFileNameW")
+ procCommDlgExtendedError = modcomdlg32.NewProc("CommDlgExtendedError")
)
func GetOpenFileName(ofn *OPENFILENAME) bool {
- ret, _, _ := procGetOpenFileName.Call(
- uintptr(unsafe.Pointer(ofn)))
+ ret, _, _ := procGetOpenFileName.Call(
+ uintptr(unsafe.Pointer(ofn)))
- return ret != 0
+ return ret != 0
}
func GetSaveFileName(ofn *OPENFILENAME) bool {
- ret, _, _ := procGetSaveFileName.Call(
- uintptr(unsafe.Pointer(ofn)))
+ ret, _, _ := procGetSaveFileName.Call(
+ uintptr(unsafe.Pointer(ofn)))
- return ret != 0
+ return ret != 0
}
func CommDlgExtendedError() uint {
- ret, _, _ := procCommDlgExtendedError.Call()
+ ret, _, _ := procCommDlgExtendedError.Call()
- return uint(ret)
+ return uint(ret)
}
diff --git a/constants.go b/constants.go
index 7a3280c..63642b4 100644
--- a/constants.go
+++ b/constants.go
@@ -5,2325 +5,2325 @@
package w32
const (
- FALSE = 0
- TRUE = 1
+ FALSE = 0
+ TRUE = 1
)
const (
- NO_ERROR = 0
- ERROR_SUCCESS = 0
- ERROR_FILE_NOT_FOUND = 2
- ERROR_PATH_NOT_FOUND = 3
- ERROR_ACCESS_DENIED = 5
- ERROR_INVALID_HANDLE = 6
- ERROR_BAD_FORMAT = 11
- ERROR_INVALID_NAME = 123
- ERROR_MORE_DATA = 234
- ERROR_NO_MORE_ITEMS = 259
- ERROR_INVALID_SERVICE_CONTROL = 1052
- ERROR_SERVICE_REQUEST_TIMEOUT = 1053
- ERROR_SERVICE_NO_THREAD = 1054
- ERROR_SERVICE_DATABASE_LOCKED = 1055
- ERROR_SERVICE_ALREADY_RUNNING = 1056
- ERROR_SERVICE_DISABLED = 1058
- ERROR_SERVICE_DOES_NOT_EXIST = 1060
- ERROR_SERVICE_CANNOT_ACCEPT_CTRL = 1061
- ERROR_SERVICE_NOT_ACTIVE = 1062
- ERROR_DATABASE_DOES_NOT_EXIST = 1065
- ERROR_SERVICE_DEPENDENCY_FAIL = 1068
- ERROR_SERVICE_LOGON_FAILED = 1069
- ERROR_SERVICE_MARKED_FOR_DELETE = 1072
- ERROR_SERVICE_DEPENDENCY_DELETED = 1075
+ NO_ERROR = 0
+ ERROR_SUCCESS = 0
+ ERROR_FILE_NOT_FOUND = 2
+ ERROR_PATH_NOT_FOUND = 3
+ ERROR_ACCESS_DENIED = 5
+ ERROR_INVALID_HANDLE = 6
+ ERROR_BAD_FORMAT = 11
+ ERROR_INVALID_NAME = 123
+ ERROR_MORE_DATA = 234
+ ERROR_NO_MORE_ITEMS = 259
+ ERROR_INVALID_SERVICE_CONTROL = 1052
+ ERROR_SERVICE_REQUEST_TIMEOUT = 1053
+ ERROR_SERVICE_NO_THREAD = 1054
+ ERROR_SERVICE_DATABASE_LOCKED = 1055
+ ERROR_SERVICE_ALREADY_RUNNING = 1056
+ ERROR_SERVICE_DISABLED = 1058
+ ERROR_SERVICE_DOES_NOT_EXIST = 1060
+ ERROR_SERVICE_CANNOT_ACCEPT_CTRL = 1061
+ ERROR_SERVICE_NOT_ACTIVE = 1062
+ ERROR_DATABASE_DOES_NOT_EXIST = 1065
+ ERROR_SERVICE_DEPENDENCY_FAIL = 1068
+ ERROR_SERVICE_LOGON_FAILED = 1069
+ ERROR_SERVICE_MARKED_FOR_DELETE = 1072
+ ERROR_SERVICE_DEPENDENCY_DELETED = 1075
)
const (
- SE_ERR_FNF = 2
- SE_ERR_PNF = 3
- SE_ERR_ACCESSDENIED = 5
- SE_ERR_OOM = 8
- SE_ERR_DLLNOTFOUND = 32
- SE_ERR_SHARE = 26
- SE_ERR_ASSOCINCOMPLETE = 27
- SE_ERR_DDETIMEOUT = 28
- SE_ERR_DDEFAIL = 29
- SE_ERR_DDEBUSY = 30
- SE_ERR_NOASSOC = 31
+ SE_ERR_FNF = 2
+ SE_ERR_PNF = 3
+ SE_ERR_ACCESSDENIED = 5
+ SE_ERR_OOM = 8
+ SE_ERR_DLLNOTFOUND = 32
+ SE_ERR_SHARE = 26
+ SE_ERR_ASSOCINCOMPLETE = 27
+ SE_ERR_DDETIMEOUT = 28
+ SE_ERR_DDEFAIL = 29
+ SE_ERR_DDEBUSY = 30
+ SE_ERR_NOASSOC = 31
)
const (
- CW_USEDEFAULT = ^0x7fffffff
+ CW_USEDEFAULT = ^0x7fffffff
)
// ShowWindow constants
const (
- SW_HIDE = 0
- SW_NORMAL = 1
- SW_SHOWNORMAL = 1
- SW_SHOWMINIMIZED = 2
- SW_MAXIMIZE = 3
- SW_SHOWMAXIMIZED = 3
- SW_SHOWNOACTIVATE = 4
- SW_SHOW = 5
- SW_MINIMIZE = 6
- SW_SHOWMINNOACTIVE = 7
- SW_SHOWNA = 8
- SW_RESTORE = 9
- SW_SHOWDEFAULT = 10
- SW_FORCEMINIMIZE = 11
+ SW_HIDE = 0
+ SW_NORMAL = 1
+ SW_SHOWNORMAL = 1
+ SW_SHOWMINIMIZED = 2
+ SW_MAXIMIZE = 3
+ SW_SHOWMAXIMIZED = 3
+ SW_SHOWNOACTIVATE = 4
+ SW_SHOW = 5
+ SW_MINIMIZE = 6
+ SW_SHOWMINNOACTIVE = 7
+ SW_SHOWNA = 8
+ SW_RESTORE = 9
+ SW_SHOWDEFAULT = 10
+ SW_FORCEMINIMIZE = 11
)
// Window class styles
const (
- CS_VREDRAW = 0x00000001
- CS_HREDRAW = 0x00000002
- CS_KEYCVTWINDOW = 0x00000004
- CS_DBLCLKS = 0x00000008
- CS_OWNDC = 0x00000020
- CS_CLASSDC = 0x00000040
- CS_PARENTDC = 0x00000080
- CS_NOKEYCVT = 0x00000100
- CS_NOCLOSE = 0x00000200
- CS_SAVEBITS = 0x00000800
- CS_BYTEALIGNCLIENT = 0x00001000
- CS_BYTEALIGNWINDOW = 0x00002000
- CS_GLOBALCLASS = 0x00004000
- CS_IME = 0x00010000
- CS_DROPSHADOW = 0x00020000
+ CS_VREDRAW = 0x00000001
+ CS_HREDRAW = 0x00000002
+ CS_KEYCVTWINDOW = 0x00000004
+ CS_DBLCLKS = 0x00000008
+ CS_OWNDC = 0x00000020
+ CS_CLASSDC = 0x00000040
+ CS_PARENTDC = 0x00000080
+ CS_NOKEYCVT = 0x00000100
+ CS_NOCLOSE = 0x00000200
+ CS_SAVEBITS = 0x00000800
+ CS_BYTEALIGNCLIENT = 0x00001000
+ CS_BYTEALIGNWINDOW = 0x00002000
+ CS_GLOBALCLASS = 0x00004000
+ CS_IME = 0x00010000
+ CS_DROPSHADOW = 0x00020000
)
// Predefined cursor constants
const (
- IDC_ARROW = 32512
- IDC_IBEAM = 32513
- IDC_WAIT = 32514
- IDC_CROSS = 32515
- IDC_UPARROW = 32516
- IDC_SIZENWSE = 32642
- IDC_SIZENESW = 32643
- IDC_SIZEWE = 32644
- IDC_SIZENS = 32645
- IDC_SIZEALL = 32646
- IDC_NO = 32648
- IDC_HAND = 32649
- IDC_APPSTARTING = 32650
- IDC_HELP = 32651
- IDC_ICON = 32641
- IDC_SIZE = 32640
+ IDC_ARROW = 32512
+ IDC_IBEAM = 32513
+ IDC_WAIT = 32514
+ IDC_CROSS = 32515
+ IDC_UPARROW = 32516
+ IDC_SIZENWSE = 32642
+ IDC_SIZENESW = 32643
+ IDC_SIZEWE = 32644
+ IDC_SIZENS = 32645
+ IDC_SIZEALL = 32646
+ IDC_NO = 32648
+ IDC_HAND = 32649
+ IDC_APPSTARTING = 32650
+ IDC_HELP = 32651
+ IDC_ICON = 32641
+ IDC_SIZE = 32640
)
// Predefined icon constants
const (
- IDI_APPLICATION = 32512
- IDI_HAND = 32513
- IDI_QUESTION = 32514
- IDI_EXCLAMATION = 32515
- IDI_ASTERISK = 32516
- IDI_WINLOGO = 32517
- IDI_WARNING = IDI_EXCLAMATION
- IDI_ERROR = IDI_HAND
- IDI_INFORMATION = IDI_ASTERISK
+ IDI_APPLICATION = 32512
+ IDI_HAND = 32513
+ IDI_QUESTION = 32514
+ IDI_EXCLAMATION = 32515
+ IDI_ASTERISK = 32516
+ IDI_WINLOGO = 32517
+ IDI_WARNING = IDI_EXCLAMATION
+ IDI_ERROR = IDI_HAND
+ IDI_INFORMATION = IDI_ASTERISK
)
// Button style constants
const (
- BS_3STATE = 5
- BS_AUTO3STATE = 6
- BS_AUTOCHECKBOX = 3
- BS_AUTORADIOBUTTON = 9
- BS_BITMAP = 128
- BS_BOTTOM = 0X800
- BS_CENTER = 0X300
- BS_CHECKBOX = 2
- BS_DEFPUSHBUTTON = 1
- BS_GROUPBOX = 7
- BS_ICON = 64
- BS_LEFT = 256
- BS_LEFTTEXT = 32
- BS_MULTILINE = 0X2000
- BS_NOTIFY = 0X4000
- BS_OWNERDRAW = 0XB
- BS_PUSHBUTTON = 0
- BS_PUSHLIKE = 4096
- BS_RADIOBUTTON = 4
- BS_RIGHT = 512
- BS_RIGHTBUTTON = 32
- BS_TEXT = 0
- BS_TOP = 0X400
- BS_USERBUTTON = 8
- BS_VCENTER = 0XC00
- BS_FLAT = 0X8000
+ BS_3STATE = 5
+ BS_AUTO3STATE = 6
+ BS_AUTOCHECKBOX = 3
+ BS_AUTORADIOBUTTON = 9
+ BS_BITMAP = 128
+ BS_BOTTOM = 0X800
+ BS_CENTER = 0X300
+ BS_CHECKBOX = 2
+ BS_DEFPUSHBUTTON = 1
+ BS_GROUPBOX = 7
+ BS_ICON = 64
+ BS_LEFT = 256
+ BS_LEFTTEXT = 32
+ BS_MULTILINE = 0X2000
+ BS_NOTIFY = 0X4000
+ BS_OWNERDRAW = 0XB
+ BS_PUSHBUTTON = 0
+ BS_PUSHLIKE = 4096
+ BS_RADIOBUTTON = 4
+ BS_RIGHT = 512
+ BS_RIGHTBUTTON = 32
+ BS_TEXT = 0
+ BS_TOP = 0X400
+ BS_USERBUTTON = 8
+ BS_VCENTER = 0XC00
+ BS_FLAT = 0X8000
)
// Button state constants
const (
- BST_CHECKED = 1
- BST_INDETERMINATE = 2
- BST_UNCHECKED = 0
- BST_FOCUS = 8
- BST_PUSHED = 4
+ BST_CHECKED = 1
+ BST_INDETERMINATE = 2
+ BST_UNCHECKED = 0
+ BST_FOCUS = 8
+ BST_PUSHED = 4
)
// Predefined brushes constants
const (
- COLOR_3DDKSHADOW = 21
- COLOR_3DFACE = 15
- COLOR_3DHILIGHT = 20
- COLOR_3DHIGHLIGHT = 20
- COLOR_3DLIGHT = 22
- COLOR_BTNHILIGHT = 20
- COLOR_3DSHADOW = 16
- COLOR_ACTIVEBORDER = 10
- COLOR_ACTIVECAPTION = 2
- COLOR_APPWORKSPACE = 12
- COLOR_BACKGROUND = 1
- COLOR_DESKTOP = 1
- COLOR_BTNFACE = 15
- COLOR_BTNHIGHLIGHT = 20
- COLOR_BTNSHADOW = 16
- COLOR_BTNTEXT = 18
- COLOR_CAPTIONTEXT = 9
- COLOR_GRAYTEXT = 17
- COLOR_HIGHLIGHT = 13
- COLOR_HIGHLIGHTTEXT = 14
- COLOR_INACTIVEBORDER = 11
- COLOR_INACTIVECAPTION = 3
- COLOR_INACTIVECAPTIONTEXT = 19
- COLOR_INFOBK = 24
- COLOR_INFOTEXT = 23
- COLOR_MENU = 4
- COLOR_MENUTEXT = 7
- COLOR_SCROLLBAR = 0
- COLOR_WINDOW = 5
- COLOR_WINDOWFRAME = 6
- COLOR_WINDOWTEXT = 8
- COLOR_HOTLIGHT = 26
- COLOR_GRADIENTACTIVECAPTION = 27
- COLOR_GRADIENTINACTIVECAPTION = 28
+ COLOR_3DDKSHADOW = 21
+ COLOR_3DFACE = 15
+ COLOR_3DHILIGHT = 20
+ COLOR_3DHIGHLIGHT = 20
+ COLOR_3DLIGHT = 22
+ COLOR_BTNHILIGHT = 20
+ COLOR_3DSHADOW = 16
+ COLOR_ACTIVEBORDER = 10
+ COLOR_ACTIVECAPTION = 2
+ COLOR_APPWORKSPACE = 12
+ COLOR_BACKGROUND = 1
+ COLOR_DESKTOP = 1
+ COLOR_BTNFACE = 15
+ COLOR_BTNHIGHLIGHT = 20
+ COLOR_BTNSHADOW = 16
+ COLOR_BTNTEXT = 18
+ COLOR_CAPTIONTEXT = 9
+ COLOR_GRAYTEXT = 17
+ COLOR_HIGHLIGHT = 13
+ COLOR_HIGHLIGHTTEXT = 14
+ COLOR_INACTIVEBORDER = 11
+ COLOR_INACTIVECAPTION = 3
+ COLOR_INACTIVECAPTIONTEXT = 19
+ COLOR_INFOBK = 24
+ COLOR_INFOTEXT = 23
+ COLOR_MENU = 4
+ COLOR_MENUTEXT = 7
+ COLOR_SCROLLBAR = 0
+ COLOR_WINDOW = 5
+ COLOR_WINDOWFRAME = 6
+ COLOR_WINDOWTEXT = 8
+ COLOR_HOTLIGHT = 26
+ COLOR_GRADIENTACTIVECAPTION = 27
+ COLOR_GRADIENTINACTIVECAPTION = 28
)
// Button message constants
const (
- BM_CLICK = 245
- BM_GETCHECK = 240
- BM_GETIMAGE = 246
- BM_GETSTATE = 242
- BM_SETCHECK = 241
- BM_SETIMAGE = 247
- BM_SETSTATE = 243
- BM_SETSTYLE = 244
+ BM_CLICK = 245
+ BM_GETCHECK = 240
+ BM_GETIMAGE = 246
+ BM_GETSTATE = 242
+ BM_SETCHECK = 241
+ BM_SETIMAGE = 247
+ BM_SETSTATE = 243
+ BM_SETSTYLE = 244
)
// Button notifications
const (
- BN_CLICKED = 0
- BN_PAINT = 1
- BN_HILITE = 2
- BN_PUSHED = BN_HILITE
- BN_UNHILITE = 3
- BN_UNPUSHED = BN_UNHILITE
- BN_DISABLE = 4
- BN_DOUBLECLICKED = 5
- BN_DBLCLK = BN_DOUBLECLICKED
- BN_SETFOCUS = 6
- BN_KILLFOCUS = 7
+ BN_CLICKED = 0
+ BN_PAINT = 1
+ BN_HILITE = 2
+ BN_PUSHED = BN_HILITE
+ BN_UNHILITE = 3
+ BN_UNPUSHED = BN_UNHILITE
+ BN_DISABLE = 4
+ BN_DOUBLECLICKED = 5
+ BN_DBLCLK = BN_DOUBLECLICKED
+ BN_SETFOCUS = 6
+ BN_KILLFOCUS = 7
)
// GetWindowLong and GetWindowLongPtr constants
const (
- GWL_EXSTYLE = -20
- GWL_STYLE = -16
- GWL_WNDPROC = -4
- GWLP_WNDPROC = -4
- GWL_HINSTANCE = -6
- GWLP_HINSTANCE = -6
- GWL_HWNDPARENT = -8
- GWLP_HWNDPARENT = -8
- GWL_ID = -12
- GWLP_ID = -12
- GWL_USERDATA = -21
- GWLP_USERDATA = -21
+ GWL_EXSTYLE = -20
+ GWL_STYLE = -16
+ GWL_WNDPROC = -4
+ GWLP_WNDPROC = -4
+ GWL_HINSTANCE = -6
+ GWLP_HINSTANCE = -6
+ GWL_HWNDPARENT = -8
+ GWLP_HWNDPARENT = -8
+ GWL_ID = -12
+ GWLP_ID = -12
+ GWL_USERDATA = -21
+ GWLP_USERDATA = -21
)
// Window style constants
const (
- WS_OVERLAPPED = 0X00000000
- WS_POPUP = 0X80000000
- WS_CHILD = 0X40000000
- WS_MINIMIZE = 0X20000000
- WS_VISIBLE = 0X10000000
- WS_DISABLED = 0X08000000
- WS_CLIPSIBLINGS = 0X04000000
- WS_CLIPCHILDREN = 0X02000000
- WS_MAXIMIZE = 0X01000000
- WS_CAPTION = 0X00C00000
- WS_BORDER = 0X00800000
- WS_DLGFRAME = 0X00400000
- WS_VSCROLL = 0X00200000
- WS_HSCROLL = 0X00100000
- WS_SYSMENU = 0X00080000
- WS_THICKFRAME = 0X00040000
- WS_GROUP = 0X00020000
- WS_TABSTOP = 0X00010000
- WS_MINIMIZEBOX = 0X00020000
- WS_MAXIMIZEBOX = 0X00010000
- WS_TILED = 0X00000000
- WS_ICONIC = 0X20000000
- WS_SIZEBOX = 0X00040000
- WS_OVERLAPPEDWINDOW = 0X00000000 | 0X00C00000 | 0X00080000 | 0X00040000 | 0X00020000 | 0X00010000
- WS_POPUPWINDOW = 0X80000000 | 0X00800000 | 0X00080000
- WS_CHILDWINDOW = 0X40000000
+ WS_OVERLAPPED = 0X00000000
+ WS_POPUP = 0X80000000
+ WS_CHILD = 0X40000000
+ WS_MINIMIZE = 0X20000000
+ WS_VISIBLE = 0X10000000
+ WS_DISABLED = 0X08000000
+ WS_CLIPSIBLINGS = 0X04000000
+ WS_CLIPCHILDREN = 0X02000000
+ WS_MAXIMIZE = 0X01000000
+ WS_CAPTION = 0X00C00000
+ WS_BORDER = 0X00800000
+ WS_DLGFRAME = 0X00400000
+ WS_VSCROLL = 0X00200000
+ WS_HSCROLL = 0X00100000
+ WS_SYSMENU = 0X00080000
+ WS_THICKFRAME = 0X00040000
+ WS_GROUP = 0X00020000
+ WS_TABSTOP = 0X00010000
+ WS_MINIMIZEBOX = 0X00020000
+ WS_MAXIMIZEBOX = 0X00010000
+ WS_TILED = 0X00000000
+ WS_ICONIC = 0X20000000
+ WS_SIZEBOX = 0X00040000
+ WS_OVERLAPPEDWINDOW = 0X00000000 | 0X00C00000 | 0X00080000 | 0X00040000 | 0X00020000 | 0X00010000
+ WS_POPUPWINDOW = 0X80000000 | 0X00800000 | 0X00080000
+ WS_CHILDWINDOW = 0X40000000
)
// Extended window style constants
const (
- WS_EX_DLGMODALFRAME = 0X00000001
- WS_EX_NOPARENTNOTIFY = 0X00000004
- WS_EX_TOPMOST = 0X00000008
- WS_EX_ACCEPTFILES = 0X00000010
- WS_EX_TRANSPARENT = 0X00000020
- WS_EX_MDICHILD = 0X00000040
- WS_EX_TOOLWINDOW = 0X00000080
- WS_EX_WINDOWEDGE = 0X00000100
- WS_EX_CLIENTEDGE = 0X00000200
- WS_EX_CONTEXTHELP = 0X00000400
- WS_EX_RIGHT = 0X00001000
- WS_EX_LEFT = 0X00000000
- WS_EX_RTLREADING = 0X00002000
- WS_EX_LTRREADING = 0X00000000
- WS_EX_LEFTSCROLLBAR = 0X00004000
- WS_EX_RIGHTSCROLLBAR = 0X00000000
- WS_EX_CONTROLPARENT = 0X00010000
- WS_EX_STATICEDGE = 0X00020000
- WS_EX_APPWINDOW = 0X00040000
- WS_EX_OVERLAPPEDWINDOW = 0X00000100 | 0X00000200
- WS_EX_PALETTEWINDOW = 0X00000100 | 0X00000080 | 0X00000008
- WS_EX_LAYERED = 0X00080000
- WS_EX_NOINHERITLAYOUT = 0X00100000
- WS_EX_LAYOUTRTL = 0X00400000
- WS_EX_NOACTIVATE = 0X08000000
+ WS_EX_DLGMODALFRAME = 0X00000001
+ WS_EX_NOPARENTNOTIFY = 0X00000004
+ WS_EX_TOPMOST = 0X00000008
+ WS_EX_ACCEPTFILES = 0X00000010
+ WS_EX_TRANSPARENT = 0X00000020
+ WS_EX_MDICHILD = 0X00000040
+ WS_EX_TOOLWINDOW = 0X00000080
+ WS_EX_WINDOWEDGE = 0X00000100
+ WS_EX_CLIENTEDGE = 0X00000200
+ WS_EX_CONTEXTHELP = 0X00000400
+ WS_EX_RIGHT = 0X00001000
+ WS_EX_LEFT = 0X00000000
+ WS_EX_RTLREADING = 0X00002000
+ WS_EX_LTRREADING = 0X00000000
+ WS_EX_LEFTSCROLLBAR = 0X00004000
+ WS_EX_RIGHTSCROLLBAR = 0X00000000
+ WS_EX_CONTROLPARENT = 0X00010000
+ WS_EX_STATICEDGE = 0X00020000
+ WS_EX_APPWINDOW = 0X00040000
+ WS_EX_OVERLAPPEDWINDOW = 0X00000100 | 0X00000200
+ WS_EX_PALETTEWINDOW = 0X00000100 | 0X00000080 | 0X00000008
+ WS_EX_LAYERED = 0X00080000
+ WS_EX_NOINHERITLAYOUT = 0X00100000
+ WS_EX_LAYOUTRTL = 0X00400000
+ WS_EX_NOACTIVATE = 0X08000000
)
// Window message constants
const (
- WM_APP = 32768
- WM_ACTIVATE = 6
- WM_ACTIVATEAPP = 28
- WM_AFXFIRST = 864
- WM_AFXLAST = 895
- WM_ASKCBFORMATNAME = 780
- WM_CANCELJOURNAL = 75
- WM_CANCELMODE = 31
- WM_CAPTURECHANGED = 533
- WM_CHANGECBCHAIN = 781
- WM_CHAR = 258
- WM_CHARTOITEM = 47
- WM_CHILDACTIVATE = 34
- WM_CLEAR = 771
- WM_CLOSE = 16
- WM_COMMAND = 273
- WM_COMMNOTIFY = 68 /* OBSOLETE */
- WM_COMPACTING = 65
- WM_COMPAREITEM = 57
- WM_CONTEXTMENU = 123
- WM_COPY = 769
- WM_COPYDATA = 74
- WM_CREATE = 1
- WM_CTLCOLORBTN = 309
- WM_CTLCOLORDLG = 310
- WM_CTLCOLOREDIT = 307
- WM_CTLCOLORLISTBOX = 308
- WM_CTLCOLORMSGBOX = 306
- WM_CTLCOLORSCROLLBAR = 311
- WM_CTLCOLORSTATIC = 312
- WM_CUT = 768
- WM_DEADCHAR = 259
- WM_DELETEITEM = 45
- WM_DESTROY = 2
- WM_DESTROYCLIPBOARD = 775
- WM_DEVICECHANGE = 537
- WM_DEVMODECHANGE = 27
- WM_DISPLAYCHANGE = 126
- WM_DRAWCLIPBOARD = 776
- WM_DRAWITEM = 43
- WM_DROPFILES = 563
- WM_ENABLE = 10
- WM_ENDSESSION = 22
- WM_ENTERIDLE = 289
- WM_ENTERMENULOOP = 529
- WM_ENTERSIZEMOVE = 561
- WM_ERASEBKGND = 20
- WM_EXITMENULOOP = 530
- WM_EXITSIZEMOVE = 562
- WM_FONTCHANGE = 29
- WM_GETDLGCODE = 135
- WM_GETFONT = 49
- WM_GETHOTKEY = 51
- WM_GETICON = 127
- WM_GETMINMAXINFO = 36
- WM_GETTEXT = 13
- WM_GETTEXTLENGTH = 14
- WM_HANDHELDFIRST = 856
- WM_HANDHELDLAST = 863
- WM_HELP = 83
- WM_HOTKEY = 786
- WM_HSCROLL = 276
- WM_HSCROLLCLIPBOARD = 782
- WM_ICONERASEBKGND = 39
- WM_INITDIALOG = 272
- WM_INITMENU = 278
- WM_INITMENUPOPUP = 279
- WM_INPUT = 0X00FF
- WM_INPUTLANGCHANGE = 81
- WM_INPUTLANGCHANGEREQUEST = 80
- WM_KEYDOWN = 256
- WM_KEYUP = 257
- WM_KILLFOCUS = 8
- WM_MDIACTIVATE = 546
- WM_MDICASCADE = 551
- WM_MDICREATE = 544
- WM_MDIDESTROY = 545
- WM_MDIGETACTIVE = 553
- WM_MDIICONARRANGE = 552
- WM_MDIMAXIMIZE = 549
- WM_MDINEXT = 548
- WM_MDIREFRESHMENU = 564
- WM_MDIRESTORE = 547
- WM_MDISETMENU = 560
- WM_MDITILE = 550
- WM_MEASUREITEM = 44
- WM_GETOBJECT = 0X003D
- WM_CHANGEUISTATE = 0X0127
- WM_UPDATEUISTATE = 0X0128
- WM_QUERYUISTATE = 0X0129
- WM_UNINITMENUPOPUP = 0X0125
- WM_MENURBUTTONUP = 290
- WM_MENUCOMMAND = 0X0126
- WM_MENUGETOBJECT = 0X0124
- WM_MENUDRAG = 0X0123
- WM_APPCOMMAND = 0X0319
- WM_MENUCHAR = 288
- WM_MENUSELECT = 287
- WM_MOVE = 3
- WM_MOVING = 534
- WM_NCACTIVATE = 134
- WM_NCCALCSIZE = 131
- WM_NCCREATE = 129
- WM_NCDESTROY = 130
- WM_NCHITTEST = 132
- WM_NCLBUTTONDBLCLK = 163
- WM_NCLBUTTONDOWN = 161
- WM_NCLBUTTONUP = 162
- WM_NCMBUTTONDBLCLK = 169
- WM_NCMBUTTONDOWN = 167
- WM_NCMBUTTONUP = 168
- WM_NCXBUTTONDOWN = 171
- WM_NCXBUTTONUP = 172
- WM_NCXBUTTONDBLCLK = 173
- WM_NCMOUSEHOVER = 0X02A0
- WM_NCMOUSELEAVE = 0X02A2
- WM_NCMOUSEMOVE = 160
- WM_NCPAINT = 133
- WM_NCRBUTTONDBLCLK = 166
- WM_NCRBUTTONDOWN = 164
- WM_NCRBUTTONUP = 165
- WM_NEXTDLGCTL = 40
- WM_NEXTMENU = 531
- WM_NOTIFY = 78
- WM_NOTIFYFORMAT = 85
- WM_NULL = 0
- WM_PAINT = 15
- WM_PAINTCLIPBOARD = 777
- WM_PAINTICON = 38
- WM_PALETTECHANGED = 785
- WM_PALETTEISCHANGING = 784
- WM_PARENTNOTIFY = 528
- WM_PASTE = 770
- WM_PENWINFIRST = 896
- WM_PENWINLAST = 911
- WM_POWER = 72
- WM_POWERBROADCAST = 536
- WM_PRINT = 791
- WM_PRINTCLIENT = 792
- WM_QUERYDRAGICON = 55
- WM_QUERYENDSESSION = 17
- WM_QUERYNEWPALETTE = 783
- WM_QUERYOPEN = 19
- WM_QUEUESYNC = 35
- WM_QUIT = 18
- WM_RENDERALLFORMATS = 774
- WM_RENDERFORMAT = 773
- WM_SETCURSOR = 32
- WM_SETFOCUS = 7
- WM_SETFONT = 48
- WM_SETHOTKEY = 50
- WM_SETICON = 128
- WM_SETREDRAW = 11
- WM_SETTEXT = 12
- WM_SETTINGCHANGE = 26
- WM_SHOWWINDOW = 24
- WM_SIZE = 5
- WM_SIZECLIPBOARD = 779
- WM_SIZING = 532
- WM_SPOOLERSTATUS = 42
- WM_STYLECHANGED = 125
- WM_STYLECHANGING = 124
- WM_SYSCHAR = 262
- WM_SYSCOLORCHANGE = 21
- WM_SYSCOMMAND = 274
- WM_SYSDEADCHAR = 263
- WM_SYSKEYDOWN = 260
- WM_SYSKEYUP = 261
- WM_TCARD = 82
- WM_THEMECHANGED = 794
- WM_TIMECHANGE = 30
- WM_TIMER = 275
- WM_UNDO = 772
- WM_USER = 1024
- WM_USERCHANGED = 84
- WM_VKEYTOITEM = 46
- WM_VSCROLL = 277
- WM_VSCROLLCLIPBOARD = 778
- WM_WINDOWPOSCHANGED = 71
- WM_WINDOWPOSCHANGING = 70
- WM_WININICHANGE = 26
- WM_KEYFIRST = 256
- WM_KEYLAST = 264
- WM_SYNCPAINT = 136
- WM_MOUSEACTIVATE = 33
- WM_MOUSEMOVE = 512
- WM_LBUTTONDOWN = 513
- WM_LBUTTONUP = 514
- WM_LBUTTONDBLCLK = 515
- WM_RBUTTONDOWN = 516
- WM_RBUTTONUP = 517
- WM_RBUTTONDBLCLK = 518
- WM_MBUTTONDOWN = 519
- WM_MBUTTONUP = 520
- WM_MBUTTONDBLCLK = 521
- WM_MOUSEWHEEL = 522
- WM_MOUSEFIRST = 512
- WM_XBUTTONDOWN = 523
- WM_XBUTTONUP = 524
- WM_XBUTTONDBLCLK = 525
- WM_MOUSELAST = 525
- WM_MOUSEHOVER = 0X2A1
- WM_MOUSELEAVE = 0X2A3
- WM_CLIPBOARDUPDATE = 0x031D
+ WM_APP = 32768
+ WM_ACTIVATE = 6
+ WM_ACTIVATEAPP = 28
+ WM_AFXFIRST = 864
+ WM_AFXLAST = 895
+ WM_ASKCBFORMATNAME = 780
+ WM_CANCELJOURNAL = 75
+ WM_CANCELMODE = 31
+ WM_CAPTURECHANGED = 533
+ WM_CHANGECBCHAIN = 781
+ WM_CHAR = 258
+ WM_CHARTOITEM = 47
+ WM_CHILDACTIVATE = 34
+ WM_CLEAR = 771
+ WM_CLOSE = 16
+ WM_COMMAND = 273
+ WM_COMMNOTIFY = 68 /* OBSOLETE */
+ WM_COMPACTING = 65
+ WM_COMPAREITEM = 57
+ WM_CONTEXTMENU = 123
+ WM_COPY = 769
+ WM_COPYDATA = 74
+ WM_CREATE = 1
+ WM_CTLCOLORBTN = 309
+ WM_CTLCOLORDLG = 310
+ WM_CTLCOLOREDIT = 307
+ WM_CTLCOLORLISTBOX = 308
+ WM_CTLCOLORMSGBOX = 306
+ WM_CTLCOLORSCROLLBAR = 311
+ WM_CTLCOLORSTATIC = 312
+ WM_CUT = 768
+ WM_DEADCHAR = 259
+ WM_DELETEITEM = 45
+ WM_DESTROY = 2
+ WM_DESTROYCLIPBOARD = 775
+ WM_DEVICECHANGE = 537
+ WM_DEVMODECHANGE = 27
+ WM_DISPLAYCHANGE = 126
+ WM_DRAWCLIPBOARD = 776
+ WM_DRAWITEM = 43
+ WM_DROPFILES = 563
+ WM_ENABLE = 10
+ WM_ENDSESSION = 22
+ WM_ENTERIDLE = 289
+ WM_ENTERMENULOOP = 529
+ WM_ENTERSIZEMOVE = 561
+ WM_ERASEBKGND = 20
+ WM_EXITMENULOOP = 530
+ WM_EXITSIZEMOVE = 562
+ WM_FONTCHANGE = 29
+ WM_GETDLGCODE = 135
+ WM_GETFONT = 49
+ WM_GETHOTKEY = 51
+ WM_GETICON = 127
+ WM_GETMINMAXINFO = 36
+ WM_GETTEXT = 13
+ WM_GETTEXTLENGTH = 14
+ WM_HANDHELDFIRST = 856
+ WM_HANDHELDLAST = 863
+ WM_HELP = 83
+ WM_HOTKEY = 786
+ WM_HSCROLL = 276
+ WM_HSCROLLCLIPBOARD = 782
+ WM_ICONERASEBKGND = 39
+ WM_INITDIALOG = 272
+ WM_INITMENU = 278
+ WM_INITMENUPOPUP = 279
+ WM_INPUT = 0X00FF
+ WM_INPUTLANGCHANGE = 81
+ WM_INPUTLANGCHANGEREQUEST = 80
+ WM_KEYDOWN = 256
+ WM_KEYUP = 257
+ WM_KILLFOCUS = 8
+ WM_MDIACTIVATE = 546
+ WM_MDICASCADE = 551
+ WM_MDICREATE = 544
+ WM_MDIDESTROY = 545
+ WM_MDIGETACTIVE = 553
+ WM_MDIICONARRANGE = 552
+ WM_MDIMAXIMIZE = 549
+ WM_MDINEXT = 548
+ WM_MDIREFRESHMENU = 564
+ WM_MDIRESTORE = 547
+ WM_MDISETMENU = 560
+ WM_MDITILE = 550
+ WM_MEASUREITEM = 44
+ WM_GETOBJECT = 0X003D
+ WM_CHANGEUISTATE = 0X0127
+ WM_UPDATEUISTATE = 0X0128
+ WM_QUERYUISTATE = 0X0129
+ WM_UNINITMENUPOPUP = 0X0125
+ WM_MENURBUTTONUP = 290
+ WM_MENUCOMMAND = 0X0126
+ WM_MENUGETOBJECT = 0X0124
+ WM_MENUDRAG = 0X0123
+ WM_APPCOMMAND = 0X0319
+ WM_MENUCHAR = 288
+ WM_MENUSELECT = 287
+ WM_MOVE = 3
+ WM_MOVING = 534
+ WM_NCACTIVATE = 134
+ WM_NCCALCSIZE = 131
+ WM_NCCREATE = 129
+ WM_NCDESTROY = 130
+ WM_NCHITTEST = 132
+ WM_NCLBUTTONDBLCLK = 163
+ WM_NCLBUTTONDOWN = 161
+ WM_NCLBUTTONUP = 162
+ WM_NCMBUTTONDBLCLK = 169
+ WM_NCMBUTTONDOWN = 167
+ WM_NCMBUTTONUP = 168
+ WM_NCXBUTTONDOWN = 171
+ WM_NCXBUTTONUP = 172
+ WM_NCXBUTTONDBLCLK = 173
+ WM_NCMOUSEHOVER = 0X02A0
+ WM_NCMOUSELEAVE = 0X02A2
+ WM_NCMOUSEMOVE = 160
+ WM_NCPAINT = 133
+ WM_NCRBUTTONDBLCLK = 166
+ WM_NCRBUTTONDOWN = 164
+ WM_NCRBUTTONUP = 165
+ WM_NEXTDLGCTL = 40
+ WM_NEXTMENU = 531
+ WM_NOTIFY = 78
+ WM_NOTIFYFORMAT = 85
+ WM_NULL = 0
+ WM_PAINT = 15
+ WM_PAINTCLIPBOARD = 777
+ WM_PAINTICON = 38
+ WM_PALETTECHANGED = 785
+ WM_PALETTEISCHANGING = 784
+ WM_PARENTNOTIFY = 528
+ WM_PASTE = 770
+ WM_PENWINFIRST = 896
+ WM_PENWINLAST = 911
+ WM_POWER = 72
+ WM_POWERBROADCAST = 536
+ WM_PRINT = 791
+ WM_PRINTCLIENT = 792
+ WM_QUERYDRAGICON = 55
+ WM_QUERYENDSESSION = 17
+ WM_QUERYNEWPALETTE = 783
+ WM_QUERYOPEN = 19
+ WM_QUEUESYNC = 35
+ WM_QUIT = 18
+ WM_RENDERALLFORMATS = 774
+ WM_RENDERFORMAT = 773
+ WM_SETCURSOR = 32
+ WM_SETFOCUS = 7
+ WM_SETFONT = 48
+ WM_SETHOTKEY = 50
+ WM_SETICON = 128
+ WM_SETREDRAW = 11
+ WM_SETTEXT = 12
+ WM_SETTINGCHANGE = 26
+ WM_SHOWWINDOW = 24
+ WM_SIZE = 5
+ WM_SIZECLIPBOARD = 779
+ WM_SIZING = 532
+ WM_SPOOLERSTATUS = 42
+ WM_STYLECHANGED = 125
+ WM_STYLECHANGING = 124
+ WM_SYSCHAR = 262
+ WM_SYSCOLORCHANGE = 21
+ WM_SYSCOMMAND = 274
+ WM_SYSDEADCHAR = 263
+ WM_SYSKEYDOWN = 260
+ WM_SYSKEYUP = 261
+ WM_TCARD = 82
+ WM_THEMECHANGED = 794
+ WM_TIMECHANGE = 30
+ WM_TIMER = 275
+ WM_UNDO = 772
+ WM_USER = 1024
+ WM_USERCHANGED = 84
+ WM_VKEYTOITEM = 46
+ WM_VSCROLL = 277
+ WM_VSCROLLCLIPBOARD = 778
+ WM_WINDOWPOSCHANGED = 71
+ WM_WINDOWPOSCHANGING = 70
+ WM_WININICHANGE = 26
+ WM_KEYFIRST = 256
+ WM_KEYLAST = 264
+ WM_SYNCPAINT = 136
+ WM_MOUSEACTIVATE = 33
+ WM_MOUSEMOVE = 512
+ WM_LBUTTONDOWN = 513
+ WM_LBUTTONUP = 514
+ WM_LBUTTONDBLCLK = 515
+ WM_RBUTTONDOWN = 516
+ WM_RBUTTONUP = 517
+ WM_RBUTTONDBLCLK = 518
+ WM_MBUTTONDOWN = 519
+ WM_MBUTTONUP = 520
+ WM_MBUTTONDBLCLK = 521
+ WM_MOUSEWHEEL = 522
+ WM_MOUSEFIRST = 512
+ WM_XBUTTONDOWN = 523
+ WM_XBUTTONUP = 524
+ WM_XBUTTONDBLCLK = 525
+ WM_MOUSELAST = 525
+ WM_MOUSEHOVER = 0X2A1
+ WM_MOUSELEAVE = 0X2A3
+ WM_CLIPBOARDUPDATE = 0x031D
)
const LF_FACESIZE = 32
// Font weight constants
const (
- FW_DONTCARE = 0
- FW_THIN = 100
- FW_EXTRALIGHT = 200
- FW_ULTRALIGHT = FW_EXTRALIGHT
- FW_LIGHT = 300
- FW_NORMAL = 400
- FW_REGULAR = 400
- FW_MEDIUM = 500
- FW_SEMIBOLD = 600
- FW_DEMIBOLD = FW_SEMIBOLD
- FW_BOLD = 700
- FW_EXTRABOLD = 800
- FW_ULTRABOLD = FW_EXTRABOLD
- FW_HEAVY = 900
- FW_BLACK = FW_HEAVY
+ FW_DONTCARE = 0
+ FW_THIN = 100
+ FW_EXTRALIGHT = 200
+ FW_ULTRALIGHT = FW_EXTRALIGHT
+ FW_LIGHT = 300
+ FW_NORMAL = 400
+ FW_REGULAR = 400
+ FW_MEDIUM = 500
+ FW_SEMIBOLD = 600
+ FW_DEMIBOLD = FW_SEMIBOLD
+ FW_BOLD = 700
+ FW_EXTRABOLD = 800
+ FW_ULTRABOLD = FW_EXTRABOLD
+ FW_HEAVY = 900
+ FW_BLACK = FW_HEAVY
)
// Charset constants
const (
- ANSI_CHARSET = 0
- DEFAULT_CHARSET = 1
- SYMBOL_CHARSET = 2
- SHIFTJIS_CHARSET = 128
- HANGEUL_CHARSET = 129
- HANGUL_CHARSET = 129
- GB2312_CHARSET = 134
- CHINESEBIG5_CHARSET = 136
- GREEK_CHARSET = 161
- TURKISH_CHARSET = 162
- HEBREW_CHARSET = 177
- ARABIC_CHARSET = 178
- BALTIC_CHARSET = 186
- RUSSIAN_CHARSET = 204
- THAI_CHARSET = 222
- EASTEUROPE_CHARSET = 238
- OEM_CHARSET = 255
- JOHAB_CHARSET = 130
- VIETNAMESE_CHARSET = 163
- MAC_CHARSET = 77
+ ANSI_CHARSET = 0
+ DEFAULT_CHARSET = 1
+ SYMBOL_CHARSET = 2
+ SHIFTJIS_CHARSET = 128
+ HANGEUL_CHARSET = 129
+ HANGUL_CHARSET = 129
+ GB2312_CHARSET = 134
+ CHINESEBIG5_CHARSET = 136
+ GREEK_CHARSET = 161
+ TURKISH_CHARSET = 162
+ HEBREW_CHARSET = 177
+ ARABIC_CHARSET = 178
+ BALTIC_CHARSET = 186
+ RUSSIAN_CHARSET = 204
+ THAI_CHARSET = 222
+ EASTEUROPE_CHARSET = 238
+ OEM_CHARSET = 255
+ JOHAB_CHARSET = 130
+ VIETNAMESE_CHARSET = 163
+ MAC_CHARSET = 77
)
// Font output precision constants
const (
- OUT_DEFAULT_PRECIS = 0
- OUT_STRING_PRECIS = 1
- OUT_CHARACTER_PRECIS = 2
- OUT_STROKE_PRECIS = 3
- OUT_TT_PRECIS = 4
- OUT_DEVICE_PRECIS = 5
- OUT_RASTER_PRECIS = 6
- OUT_TT_ONLY_PRECIS = 7
- OUT_OUTLINE_PRECIS = 8
- OUT_PS_ONLY_PRECIS = 10
+ OUT_DEFAULT_PRECIS = 0
+ OUT_STRING_PRECIS = 1
+ OUT_CHARACTER_PRECIS = 2
+ OUT_STROKE_PRECIS = 3
+ OUT_TT_PRECIS = 4
+ OUT_DEVICE_PRECIS = 5
+ OUT_RASTER_PRECIS = 6
+ OUT_TT_ONLY_PRECIS = 7
+ OUT_OUTLINE_PRECIS = 8
+ OUT_PS_ONLY_PRECIS = 10
)
// Font clipping precision constants
const (
- CLIP_DEFAULT_PRECIS = 0
- CLIP_CHARACTER_PRECIS = 1
- CLIP_STROKE_PRECIS = 2
- CLIP_MASK = 15
- CLIP_LH_ANGLES = 16
- CLIP_TT_ALWAYS = 32
- CLIP_EMBEDDED = 128
+ CLIP_DEFAULT_PRECIS = 0
+ CLIP_CHARACTER_PRECIS = 1
+ CLIP_STROKE_PRECIS = 2
+ CLIP_MASK = 15
+ CLIP_LH_ANGLES = 16
+ CLIP_TT_ALWAYS = 32
+ CLIP_EMBEDDED = 128
)
// Font output quality constants
const (
- DEFAULT_QUALITY = 0
- DRAFT_QUALITY = 1
- PROOF_QUALITY = 2
- NONANTIALIASED_QUALITY = 3
- ANTIALIASED_QUALITY = 4
- CLEARTYPE_QUALITY = 5
+ DEFAULT_QUALITY = 0
+ DRAFT_QUALITY = 1
+ PROOF_QUALITY = 2
+ NONANTIALIASED_QUALITY = 3
+ ANTIALIASED_QUALITY = 4
+ CLEARTYPE_QUALITY = 5
)
// Font pitch constants
const (
- DEFAULT_PITCH = 0
- FIXED_PITCH = 1
- VARIABLE_PITCH = 2
+ DEFAULT_PITCH = 0
+ FIXED_PITCH = 1
+ VARIABLE_PITCH = 2
)
// Font family constants
const (
- FF_DECORATIVE = 80
- FF_DONTCARE = 0
- FF_MODERN = 48
- FF_ROMAN = 16
- FF_SCRIPT = 64
- FF_SWISS = 32
+ FF_DECORATIVE = 80
+ FF_DONTCARE = 0
+ FF_MODERN = 48
+ FF_ROMAN = 16
+ FF_SCRIPT = 64
+ FF_SWISS = 32
)
// DeviceCapabilities capabilities
const (
- DC_FIELDS = 1
- DC_PAPERS = 2
- DC_PAPERSIZE = 3
- DC_MINEXTENT = 4
- DC_MAXEXTENT = 5
- DC_BINS = 6
- DC_DUPLEX = 7
- DC_SIZE = 8
- DC_EXTRA = 9
- DC_VERSION = 10
- DC_DRIVER = 11
- DC_BINNAMES = 12
- DC_ENUMRESOLUTIONS = 13
- DC_FILEDEPENDENCIES = 14
- DC_TRUETYPE = 15
- DC_PAPERNAMES = 16
- DC_ORIENTATION = 17
- DC_COPIES = 18
- DC_BINADJUST = 19
- DC_EMF_COMPLIANT = 20
- DC_DATATYPE_PRODUCED = 21
- DC_COLLATE = 22
- DC_MANUFACTURER = 23
- DC_MODEL = 24
- DC_PERSONALITY = 25
- DC_PRINTRATE = 26
- DC_PRINTRATEUNIT = 27
- DC_PRINTERMEM = 28
- DC_MEDIAREADY = 29
- DC_STAPLE = 30
- DC_PRINTRATEPPM = 31
- DC_COLORDEVICE = 32
- DC_NUP = 33
- DC_MEDIATYPENAMES = 34
- DC_MEDIATYPES = 35
+ DC_FIELDS = 1
+ DC_PAPERS = 2
+ DC_PAPERSIZE = 3
+ DC_MINEXTENT = 4
+ DC_MAXEXTENT = 5
+ DC_BINS = 6
+ DC_DUPLEX = 7
+ DC_SIZE = 8
+ DC_EXTRA = 9
+ DC_VERSION = 10
+ DC_DRIVER = 11
+ DC_BINNAMES = 12
+ DC_ENUMRESOLUTIONS = 13
+ DC_FILEDEPENDENCIES = 14
+ DC_TRUETYPE = 15
+ DC_PAPERNAMES = 16
+ DC_ORIENTATION = 17
+ DC_COPIES = 18
+ DC_BINADJUST = 19
+ DC_EMF_COMPLIANT = 20
+ DC_DATATYPE_PRODUCED = 21
+ DC_COLLATE = 22
+ DC_MANUFACTURER = 23
+ DC_MODEL = 24
+ DC_PERSONALITY = 25
+ DC_PRINTRATE = 26
+ DC_PRINTRATEUNIT = 27
+ DC_PRINTERMEM = 28
+ DC_MEDIAREADY = 29
+ DC_STAPLE = 30
+ DC_PRINTRATEPPM = 31
+ DC_COLORDEVICE = 32
+ DC_NUP = 33
+ DC_MEDIATYPENAMES = 34
+ DC_MEDIATYPES = 35
)
// GetDeviceCaps index constants
const (
- DRIVERVERSION = 0
- TECHNOLOGY = 2
- HORZSIZE = 4
- VERTSIZE = 6
- HORZRES = 8
- VERTRES = 10
- LOGPIXELSX = 88
- LOGPIXELSY = 90
- BITSPIXEL = 12
- PLANES = 14
- NUMBRUSHES = 16
- NUMPENS = 18
- NUMFONTS = 22
- NUMCOLORS = 24
- NUMMARKERS = 20
- ASPECTX = 40
- ASPECTY = 42
- ASPECTXY = 44
- PDEVICESIZE = 26
- CLIPCAPS = 36
- SIZEPALETTE = 104
- NUMRESERVED = 106
- COLORRES = 108
- PHYSICALWIDTH = 110
- PHYSICALHEIGHT = 111
- PHYSICALOFFSETX = 112
- PHYSICALOFFSETY = 113
- SCALINGFACTORX = 114
- SCALINGFACTORY = 115
- VREFRESH = 116
- DESKTOPHORZRES = 118
- DESKTOPVERTRES = 117
- BLTALIGNMENT = 119
- SHADEBLENDCAPS = 120
- COLORMGMTCAPS = 121
- RASTERCAPS = 38
- CURVECAPS = 28
- LINECAPS = 30
- POLYGONALCAPS = 32
- TEXTCAPS = 34
+ DRIVERVERSION = 0
+ TECHNOLOGY = 2
+ HORZSIZE = 4
+ VERTSIZE = 6
+ HORZRES = 8
+ VERTRES = 10
+ LOGPIXELSX = 88
+ LOGPIXELSY = 90
+ BITSPIXEL = 12
+ PLANES = 14
+ NUMBRUSHES = 16
+ NUMPENS = 18
+ NUMFONTS = 22
+ NUMCOLORS = 24
+ NUMMARKERS = 20
+ ASPECTX = 40
+ ASPECTY = 42
+ ASPECTXY = 44
+ PDEVICESIZE = 26
+ CLIPCAPS = 36
+ SIZEPALETTE = 104
+ NUMRESERVED = 106
+ COLORRES = 108
+ PHYSICALWIDTH = 110
+ PHYSICALHEIGHT = 111
+ PHYSICALOFFSETX = 112
+ PHYSICALOFFSETY = 113
+ SCALINGFACTORX = 114
+ SCALINGFACTORY = 115
+ VREFRESH = 116
+ DESKTOPHORZRES = 118
+ DESKTOPVERTRES = 117
+ BLTALIGNMENT = 119
+ SHADEBLENDCAPS = 120
+ COLORMGMTCAPS = 121
+ RASTERCAPS = 38
+ CURVECAPS = 28
+ LINECAPS = 30
+ POLYGONALCAPS = 32
+ TEXTCAPS = 34
)
// GetDeviceCaps TECHNOLOGY constants
const (
- DT_PLOTTER = 0
- DT_RASDISPLAY = 1
- DT_RASPRINTER = 2
- DT_RASCAMERA = 3
- DT_CHARSTREAM = 4
- DT_METAFILE = 5
- DT_DISPFILE = 6
+ DT_PLOTTER = 0
+ DT_RASDISPLAY = 1
+ DT_RASPRINTER = 2
+ DT_RASCAMERA = 3
+ DT_CHARSTREAM = 4
+ DT_METAFILE = 5
+ DT_DISPFILE = 6
)
// GetDeviceCaps SHADEBLENDCAPS constants
const (
- SB_NONE = 0x00
- SB_CONST_ALPHA = 0x01
- SB_PIXEL_ALPHA = 0x02
- SB_PREMULT_ALPHA = 0x04
- SB_GRAD_RECT = 0x10
- SB_GRAD_TRI = 0x20
+ SB_NONE = 0x00
+ SB_CONST_ALPHA = 0x01
+ SB_PIXEL_ALPHA = 0x02
+ SB_PREMULT_ALPHA = 0x04
+ SB_GRAD_RECT = 0x10
+ SB_GRAD_TRI = 0x20
)
// GetDeviceCaps COLORMGMTCAPS constants
const (
- CM_NONE = 0x00
- CM_DEVICE_ICM = 0x01
- CM_GAMMA_RAMP = 0x02
- CM_CMYK_COLOR = 0x04
+ CM_NONE = 0x00
+ CM_DEVICE_ICM = 0x01
+ CM_GAMMA_RAMP = 0x02
+ CM_CMYK_COLOR = 0x04
)
// GetDeviceCaps RASTERCAPS constants
const (
- RC_BANDING = 2
- RC_BITBLT = 1
- RC_BITMAP64 = 8
- RC_DI_BITMAP = 128
- RC_DIBTODEV = 512
- RC_FLOODFILL = 4096
- RC_GDI20_OUTPUT = 16
- RC_PALETTE = 256
- RC_SCALING = 4
- RC_STRETCHBLT = 2048
- RC_STRETCHDIB = 8192
- RC_DEVBITS = 0x8000
- RC_OP_DX_OUTPUT = 0x4000
+ RC_BANDING = 2
+ RC_BITBLT = 1
+ RC_BITMAP64 = 8
+ RC_DI_BITMAP = 128
+ RC_DIBTODEV = 512
+ RC_FLOODFILL = 4096
+ RC_GDI20_OUTPUT = 16
+ RC_PALETTE = 256
+ RC_SCALING = 4
+ RC_STRETCHBLT = 2048
+ RC_STRETCHDIB = 8192
+ RC_DEVBITS = 0x8000
+ RC_OP_DX_OUTPUT = 0x4000
)
// GetDeviceCaps CURVECAPS constants
const (
- CC_NONE = 0
- CC_CIRCLES = 1
- CC_PIE = 2
- CC_CHORD = 4
- CC_ELLIPSES = 8
- CC_WIDE = 16
- CC_STYLED = 32
- CC_WIDESTYLED = 64
- CC_INTERIORS = 128
- CC_ROUNDRECT = 256
+ CC_NONE = 0
+ CC_CIRCLES = 1
+ CC_PIE = 2
+ CC_CHORD = 4
+ CC_ELLIPSES = 8
+ CC_WIDE = 16
+ CC_STYLED = 32
+ CC_WIDESTYLED = 64
+ CC_INTERIORS = 128
+ CC_ROUNDRECT = 256
)
// GetDeviceCaps LINECAPS constants
const (
- LC_NONE = 0
- LC_POLYLINE = 2
- LC_MARKER = 4
- LC_POLYMARKER = 8
- LC_WIDE = 16
- LC_STYLED = 32
- LC_WIDESTYLED = 64
- LC_INTERIORS = 128
+ LC_NONE = 0
+ LC_POLYLINE = 2
+ LC_MARKER = 4
+ LC_POLYMARKER = 8
+ LC_WIDE = 16
+ LC_STYLED = 32
+ LC_WIDESTYLED = 64
+ LC_INTERIORS = 128
)
// GetDeviceCaps POLYGONALCAPS constants
const (
- PC_NONE = 0
- PC_POLYGON = 1
- PC_POLYPOLYGON = 256
- PC_PATHS = 512
- PC_RECTANGLE = 2
- PC_WINDPOLYGON = 4
- PC_SCANLINE = 8
- PC_TRAPEZOID = 4
- PC_WIDE = 16
- PC_STYLED = 32
- PC_WIDESTYLED = 64
- PC_INTERIORS = 128
+ PC_NONE = 0
+ PC_POLYGON = 1
+ PC_POLYPOLYGON = 256
+ PC_PATHS = 512
+ PC_RECTANGLE = 2
+ PC_WINDPOLYGON = 4
+ PC_SCANLINE = 8
+ PC_TRAPEZOID = 4
+ PC_WIDE = 16
+ PC_STYLED = 32
+ PC_WIDESTYLED = 64
+ PC_INTERIORS = 128
)
// GetDeviceCaps TEXTCAPS constants
const (
- TC_OP_CHARACTER = 1
- TC_OP_STROKE = 2
- TC_CP_STROKE = 4
- TC_CR_90 = 8
- TC_CR_ANY = 16
- TC_SF_X_YINDEP = 32
- TC_SA_DOUBLE = 64
- TC_SA_INTEGER = 128
- TC_SA_CONTIN = 256
- TC_EA_DOUBLE = 512
- TC_IA_ABLE = 1024
- TC_UA_ABLE = 2048
- TC_SO_ABLE = 4096
- TC_RA_ABLE = 8192
- TC_VA_ABLE = 16384
- TC_RESERVED = 32768
- TC_SCROLLBLT = 65536
+ TC_OP_CHARACTER = 1
+ TC_OP_STROKE = 2
+ TC_CP_STROKE = 4
+ TC_CR_90 = 8
+ TC_CR_ANY = 16
+ TC_SF_X_YINDEP = 32
+ TC_SA_DOUBLE = 64
+ TC_SA_INTEGER = 128
+ TC_SA_CONTIN = 256
+ TC_EA_DOUBLE = 512
+ TC_IA_ABLE = 1024
+ TC_UA_ABLE = 2048
+ TC_SO_ABLE = 4096
+ TC_RA_ABLE = 8192
+ TC_VA_ABLE = 16384
+ TC_RESERVED = 32768
+ TC_SCROLLBLT = 65536
)
// Static control styles
const (
- SS_BITMAP = 14
- SS_BLACKFRAME = 7
- SS_BLACKRECT = 4
- SS_CENTER = 1
- SS_CENTERIMAGE = 512
- SS_EDITCONTROL = 0x2000
- SS_ENHMETAFILE = 15
- SS_ETCHEDFRAME = 18
- SS_ETCHEDHORZ = 16
- SS_ETCHEDVERT = 17
- SS_GRAYFRAME = 8
- SS_GRAYRECT = 5
- SS_ICON = 3
- SS_LEFT = 0
- SS_LEFTNOWORDWRAP = 0xc
- SS_NOPREFIX = 128
- SS_NOTIFY = 256
- SS_OWNERDRAW = 0xd
- SS_REALSIZECONTROL = 0x040
- SS_REALSIZEIMAGE = 0x800
- SS_RIGHT = 2
- SS_RIGHTJUST = 0x400
- SS_SIMPLE = 11
- SS_SUNKEN = 4096
- SS_WHITEFRAME = 9
- SS_WHITERECT = 6
- SS_USERITEM = 10
- SS_TYPEMASK = 0x0000001F
- SS_ENDELLIPSIS = 0x00004000
- SS_PATHELLIPSIS = 0x00008000
- SS_WORDELLIPSIS = 0x0000C000
- SS_ELLIPSISMASK = 0x0000C000
+ SS_BITMAP = 14
+ SS_BLACKFRAME = 7
+ SS_BLACKRECT = 4
+ SS_CENTER = 1
+ SS_CENTERIMAGE = 512
+ SS_EDITCONTROL = 0x2000
+ SS_ENHMETAFILE = 15
+ SS_ETCHEDFRAME = 18
+ SS_ETCHEDHORZ = 16
+ SS_ETCHEDVERT = 17
+ SS_GRAYFRAME = 8
+ SS_GRAYRECT = 5
+ SS_ICON = 3
+ SS_LEFT = 0
+ SS_LEFTNOWORDWRAP = 0xc
+ SS_NOPREFIX = 128
+ SS_NOTIFY = 256
+ SS_OWNERDRAW = 0xd
+ SS_REALSIZECONTROL = 0x040
+ SS_REALSIZEIMAGE = 0x800
+ SS_RIGHT = 2
+ SS_RIGHTJUST = 0x400
+ SS_SIMPLE = 11
+ SS_SUNKEN = 4096
+ SS_WHITEFRAME = 9
+ SS_WHITERECT = 6
+ SS_USERITEM = 10
+ SS_TYPEMASK = 0x0000001F
+ SS_ENDELLIPSIS = 0x00004000
+ SS_PATHELLIPSIS = 0x00008000
+ SS_WORDELLIPSIS = 0x0000C000
+ SS_ELLIPSISMASK = 0x0000C000
)
// Edit styles
const (
- ES_LEFT = 0x0000
- ES_CENTER = 0x0001
- ES_RIGHT = 0x0002
- ES_MULTILINE = 0x0004
- ES_UPPERCASE = 0x0008
- ES_LOWERCASE = 0x0010
- ES_PASSWORD = 0x0020
- ES_AUTOVSCROLL = 0x0040
- ES_AUTOHSCROLL = 0x0080
- ES_NOHIDESEL = 0x0100
- ES_OEMCONVERT = 0x0400
- ES_READONLY = 0x0800
- ES_WANTRETURN = 0x1000
- ES_NUMBER = 0x2000
+ ES_LEFT = 0x0000
+ ES_CENTER = 0x0001
+ ES_RIGHT = 0x0002
+ ES_MULTILINE = 0x0004
+ ES_UPPERCASE = 0x0008
+ ES_LOWERCASE = 0x0010
+ ES_PASSWORD = 0x0020
+ ES_AUTOVSCROLL = 0x0040
+ ES_AUTOHSCROLL = 0x0080
+ ES_NOHIDESEL = 0x0100
+ ES_OEMCONVERT = 0x0400
+ ES_READONLY = 0x0800
+ ES_WANTRETURN = 0x1000
+ ES_NUMBER = 0x2000
)
// Edit notifications
const (
- EN_SETFOCUS = 0x0100
- EN_KILLFOCUS = 0x0200
- EN_CHANGE = 0x0300
- EN_UPDATE = 0x0400
- EN_ERRSPACE = 0x0500
- EN_MAXTEXT = 0x0501
- EN_HSCROLL = 0x0601
- EN_VSCROLL = 0x0602
- EN_ALIGN_LTR_EC = 0x0700
- EN_ALIGN_RTL_EC = 0x0701
+ EN_SETFOCUS = 0x0100
+ EN_KILLFOCUS = 0x0200
+ EN_CHANGE = 0x0300
+ EN_UPDATE = 0x0400
+ EN_ERRSPACE = 0x0500
+ EN_MAXTEXT = 0x0501
+ EN_HSCROLL = 0x0601
+ EN_VSCROLL = 0x0602
+ EN_ALIGN_LTR_EC = 0x0700
+ EN_ALIGN_RTL_EC = 0x0701
)
// Edit messages
const (
- EM_GETSEL = 0x00B0
- EM_SETSEL = 0x00B1
- EM_GETRECT = 0x00B2
- EM_SETRECT = 0x00B3
- EM_SETRECTNP = 0x00B4
- EM_SCROLL = 0x00B5
- EM_LINESCROLL = 0x00B6
- EM_SCROLLCARET = 0x00B7
- EM_GETMODIFY = 0x00B8
- EM_SETMODIFY = 0x00B9
- EM_GETLINECOUNT = 0x00BA
- EM_LINEINDEX = 0x00BB
- EM_SETHANDLE = 0x00BC
- EM_GETHANDLE = 0x00BD
- EM_GETTHUMB = 0x00BE
- EM_LINELENGTH = 0x00C1
- EM_REPLACESEL = 0x00C2
- EM_GETLINE = 0x00C4
- EM_LIMITTEXT = 0x00C5
- EM_CANUNDO = 0x00C6
- EM_UNDO = 0x00C7
- EM_FMTLINES = 0x00C8
- EM_LINEFROMCHAR = 0x00C9
- EM_SETTABSTOPS = 0x00CB
- EM_SETPASSWORDCHAR = 0x00CC
- EM_EMPTYUNDOBUFFER = 0x00CD
- EM_GETFIRSTVISIBLELINE = 0x00CE
- EM_SETREADONLY = 0x00CF
- EM_SETWORDBREAKPROC = 0x00D0
- EM_GETWORDBREAKPROC = 0x00D1
- EM_GETPASSWORDCHAR = 0x00D2
- EM_SETMARGINS = 0x00D3
- EM_GETMARGINS = 0x00D4
- EM_SETLIMITTEXT = EM_LIMITTEXT
- EM_GETLIMITTEXT = 0x00D5
- EM_POSFROMCHAR = 0x00D6
- EM_CHARFROMPOS = 0x00D7
- EM_SETIMESTATUS = 0x00D8
- EM_GETIMESTATUS = 0x00D9
- EM_SETCUEBANNER = 0x1501
- EM_GETCUEBANNER = 0x1502
+ EM_GETSEL = 0x00B0
+ EM_SETSEL = 0x00B1
+ EM_GETRECT = 0x00B2
+ EM_SETRECT = 0x00B3
+ EM_SETRECTNP = 0x00B4
+ EM_SCROLL = 0x00B5
+ EM_LINESCROLL = 0x00B6
+ EM_SCROLLCARET = 0x00B7
+ EM_GETMODIFY = 0x00B8
+ EM_SETMODIFY = 0x00B9
+ EM_GETLINECOUNT = 0x00BA
+ EM_LINEINDEX = 0x00BB
+ EM_SETHANDLE = 0x00BC
+ EM_GETHANDLE = 0x00BD
+ EM_GETTHUMB = 0x00BE
+ EM_LINELENGTH = 0x00C1
+ EM_REPLACESEL = 0x00C2
+ EM_GETLINE = 0x00C4
+ EM_LIMITTEXT = 0x00C5
+ EM_CANUNDO = 0x00C6
+ EM_UNDO = 0x00C7
+ EM_FMTLINES = 0x00C8
+ EM_LINEFROMCHAR = 0x00C9
+ EM_SETTABSTOPS = 0x00CB
+ EM_SETPASSWORDCHAR = 0x00CC
+ EM_EMPTYUNDOBUFFER = 0x00CD
+ EM_GETFIRSTVISIBLELINE = 0x00CE
+ EM_SETREADONLY = 0x00CF
+ EM_SETWORDBREAKPROC = 0x00D0
+ EM_GETWORDBREAKPROC = 0x00D1
+ EM_GETPASSWORDCHAR = 0x00D2
+ EM_SETMARGINS = 0x00D3
+ EM_GETMARGINS = 0x00D4
+ EM_SETLIMITTEXT = EM_LIMITTEXT
+ EM_GETLIMITTEXT = 0x00D5
+ EM_POSFROMCHAR = 0x00D6
+ EM_CHARFROMPOS = 0x00D7
+ EM_SETIMESTATUS = 0x00D8
+ EM_GETIMESTATUS = 0x00D9
+ EM_SETCUEBANNER = 0x1501
+ EM_GETCUEBANNER = 0x1502
)
const (
- CCM_FIRST = 0x2000
- CCM_LAST = CCM_FIRST + 0x200
- CCM_SETBKCOLOR = 8193
- CCM_SETCOLORSCHEME = 8194
- CCM_GETCOLORSCHEME = 8195
- CCM_GETDROPTARGET = 8196
- CCM_SETUNICODEFORMAT = 8197
- CCM_GETUNICODEFORMAT = 8198
- CCM_SETVERSION = 0x2007
- CCM_GETVERSION = 0x2008
- CCM_SETNOTIFYWINDOW = 0x2009
- CCM_SETWINDOWTHEME = 0x200b
- CCM_DPISCALE = 0x200c
+ CCM_FIRST = 0x2000
+ CCM_LAST = CCM_FIRST + 0x200
+ CCM_SETBKCOLOR = 8193
+ CCM_SETCOLORSCHEME = 8194
+ CCM_GETCOLORSCHEME = 8195
+ CCM_GETDROPTARGET = 8196
+ CCM_SETUNICODEFORMAT = 8197
+ CCM_GETUNICODEFORMAT = 8198
+ CCM_SETVERSION = 0x2007
+ CCM_GETVERSION = 0x2008
+ CCM_SETNOTIFYWINDOW = 0x2009
+ CCM_SETWINDOWTHEME = 0x200b
+ CCM_DPISCALE = 0x200c
)
// Common controls styles
const (
- CCS_TOP = 1
- CCS_NOMOVEY = 2
- CCS_BOTTOM = 3
- CCS_NORESIZE = 4
- CCS_NOPARENTALIGN = 8
- CCS_ADJUSTABLE = 32
- CCS_NODIVIDER = 64
- CCS_VERT = 128
- CCS_LEFT = 129
- CCS_NOMOVEX = 130
- CCS_RIGHT = 131
+ CCS_TOP = 1
+ CCS_NOMOVEY = 2
+ CCS_BOTTOM = 3
+ CCS_NORESIZE = 4
+ CCS_NOPARENTALIGN = 8
+ CCS_ADJUSTABLE = 32
+ CCS_NODIVIDER = 64
+ CCS_VERT = 128
+ CCS_LEFT = 129
+ CCS_NOMOVEX = 130
+ CCS_RIGHT = 131
)
// ProgressBar messages
const (
- PROGRESS_CLASS = "msctls_progress32"
- PBM_SETPOS = WM_USER + 2
- PBM_DELTAPOS = WM_USER + 3
- PBM_SETSTEP = WM_USER + 4
- PBM_STEPIT = WM_USER + 5
- PBM_SETRANGE32 = 1030
- PBM_GETRANGE = 1031
- PBM_GETPOS = 1032
- PBM_SETBARCOLOR = 1033
- PBM_SETBKCOLOR = CCM_SETBKCOLOR
- PBS_SMOOTH = 1
- PBS_VERTICAL = 4
+ PROGRESS_CLASS = "msctls_progress32"
+ PBM_SETPOS = WM_USER + 2
+ PBM_DELTAPOS = WM_USER + 3
+ PBM_SETSTEP = WM_USER + 4
+ PBM_STEPIT = WM_USER + 5
+ PBM_SETRANGE32 = 1030
+ PBM_GETRANGE = 1031
+ PBM_GETPOS = 1032
+ PBM_SETBARCOLOR = 1033
+ PBM_SETBKCOLOR = CCM_SETBKCOLOR
+ PBS_SMOOTH = 1
+ PBS_VERTICAL = 4
)
// GetOpenFileName and GetSaveFileName extended flags
const (
- OFN_EX_NOPLACESBAR = 0x00000001
+ OFN_EX_NOPLACESBAR = 0x00000001
)
// GetOpenFileName and GetSaveFileName flags
const (
- OFN_ALLOWMULTISELECT = 0x00000200
- OFN_CREATEPROMPT = 0x00002000
- OFN_DONTADDTORECENT = 0x02000000
- OFN_ENABLEHOOK = 0x00000020
- OFN_ENABLEINCLUDENOTIFY = 0x00400000
- OFN_ENABLESIZING = 0x00800000
- OFN_ENABLETEMPLATE = 0x00000040
- OFN_ENABLETEMPLATEHANDLE = 0x00000080
- OFN_EXPLORER = 0x00080000
- OFN_EXTENSIONDIFFERENT = 0x00000400
- OFN_FILEMUSTEXIST = 0x00001000
- OFN_FORCESHOWHIDDEN = 0x10000000
- OFN_HIDEREADONLY = 0x00000004
- OFN_LONGNAMES = 0x00200000
- OFN_NOCHANGEDIR = 0x00000008
- OFN_NODEREFERENCELINKS = 0x00100000
- OFN_NOLONGNAMES = 0x00040000
- OFN_NONETWORKBUTTON = 0x00020000
- OFN_NOREADONLYRETURN = 0x00008000
- OFN_NOTESTFILECREATE = 0x00010000
- OFN_NOVALIDATE = 0x00000100
- OFN_OVERWRITEPROMPT = 0x00000002
- OFN_PATHMUSTEXIST = 0x00000800
- OFN_READONLY = 0x00000001
- OFN_SHAREAWARE = 0x00004000
- OFN_SHOWHELP = 0x00000010
+ OFN_ALLOWMULTISELECT = 0x00000200
+ OFN_CREATEPROMPT = 0x00002000
+ OFN_DONTADDTORECENT = 0x02000000
+ OFN_ENABLEHOOK = 0x00000020
+ OFN_ENABLEINCLUDENOTIFY = 0x00400000
+ OFN_ENABLESIZING = 0x00800000
+ OFN_ENABLETEMPLATE = 0x00000040
+ OFN_ENABLETEMPLATEHANDLE = 0x00000080
+ OFN_EXPLORER = 0x00080000
+ OFN_EXTENSIONDIFFERENT = 0x00000400
+ OFN_FILEMUSTEXIST = 0x00001000
+ OFN_FORCESHOWHIDDEN = 0x10000000
+ OFN_HIDEREADONLY = 0x00000004
+ OFN_LONGNAMES = 0x00200000
+ OFN_NOCHANGEDIR = 0x00000008
+ OFN_NODEREFERENCELINKS = 0x00100000
+ OFN_NOLONGNAMES = 0x00040000
+ OFN_NONETWORKBUTTON = 0x00020000
+ OFN_NOREADONLYRETURN = 0x00008000
+ OFN_NOTESTFILECREATE = 0x00010000
+ OFN_NOVALIDATE = 0x00000100
+ OFN_OVERWRITEPROMPT = 0x00000002
+ OFN_PATHMUSTEXIST = 0x00000800
+ OFN_READONLY = 0x00000001
+ OFN_SHAREAWARE = 0x00004000
+ OFN_SHOWHELP = 0x00000010
)
//SHBrowseForFolder flags
const (
- BIF_RETURNONLYFSDIRS = 0x00000001
- BIF_DONTGOBELOWDOMAIN = 0x00000002
- BIF_STATUSTEXT = 0x00000004
- BIF_RETURNFSANCESTORS = 0x00000008
- BIF_EDITBOX = 0x00000010
- BIF_VALIDATE = 0x00000020
- BIF_NEWDIALOGSTYLE = 0x00000040
- BIF_BROWSEINCLUDEURLS = 0x00000080
- BIF_USENEWUI = BIF_EDITBOX | BIF_NEWDIALOGSTYLE
- BIF_UAHINT = 0x00000100
- BIF_NONEWFOLDERBUTTON = 0x00000200
- BIF_NOTRANSLATETARGETS = 0x00000400
- BIF_BROWSEFORCOMPUTER = 0x00001000
- BIF_BROWSEFORPRINTER = 0x00002000
- BIF_BROWSEINCLUDEFILES = 0x00004000
- BIF_SHAREABLE = 0x00008000
- BIF_BROWSEFILEJUNCTIONS = 0x00010000
+ BIF_RETURNONLYFSDIRS = 0x00000001
+ BIF_DONTGOBELOWDOMAIN = 0x00000002
+ BIF_STATUSTEXT = 0x00000004
+ BIF_RETURNFSANCESTORS = 0x00000008
+ BIF_EDITBOX = 0x00000010
+ BIF_VALIDATE = 0x00000020
+ BIF_NEWDIALOGSTYLE = 0x00000040
+ BIF_BROWSEINCLUDEURLS = 0x00000080
+ BIF_USENEWUI = BIF_EDITBOX | BIF_NEWDIALOGSTYLE
+ BIF_UAHINT = 0x00000100
+ BIF_NONEWFOLDERBUTTON = 0x00000200
+ BIF_NOTRANSLATETARGETS = 0x00000400
+ BIF_BROWSEFORCOMPUTER = 0x00001000
+ BIF_BROWSEFORPRINTER = 0x00002000
+ BIF_BROWSEINCLUDEFILES = 0x00004000
+ BIF_SHAREABLE = 0x00008000
+ BIF_BROWSEFILEJUNCTIONS = 0x00010000
)
//MessageBox flags
const (
- MB_OK = 0x00000000
- MB_OKCANCEL = 0x00000001
- MB_ABORTRETRYIGNORE = 0x00000002
- MB_YESNOCANCEL = 0x00000003
- MB_YESNO = 0x00000004
- MB_RETRYCANCEL = 0x00000005
- MB_CANCELTRYCONTINUE = 0x00000006
- MB_ICONHAND = 0x00000010
- MB_ICONQUESTION = 0x00000020
- MB_ICONEXCLAMATION = 0x00000030
- MB_ICONASTERISK = 0x00000040
- MB_USERICON = 0x00000080
- MB_ICONWARNING = MB_ICONEXCLAMATION
- MB_ICONERROR = MB_ICONHAND
- MB_ICONINFORMATION = MB_ICONASTERISK
- MB_ICONSTOP = MB_ICONHAND
- MB_DEFBUTTON1 = 0x00000000
- MB_DEFBUTTON2 = 0x00000100
- MB_DEFBUTTON3 = 0x00000200
- MB_DEFBUTTON4 = 0x00000300
+ MB_OK = 0x00000000
+ MB_OKCANCEL = 0x00000001
+ MB_ABORTRETRYIGNORE = 0x00000002
+ MB_YESNOCANCEL = 0x00000003
+ MB_YESNO = 0x00000004
+ MB_RETRYCANCEL = 0x00000005
+ MB_CANCELTRYCONTINUE = 0x00000006
+ MB_ICONHAND = 0x00000010
+ MB_ICONQUESTION = 0x00000020
+ MB_ICONEXCLAMATION = 0x00000030
+ MB_ICONASTERISK = 0x00000040
+ MB_USERICON = 0x00000080
+ MB_ICONWARNING = MB_ICONEXCLAMATION
+ MB_ICONERROR = MB_ICONHAND
+ MB_ICONINFORMATION = MB_ICONASTERISK
+ MB_ICONSTOP = MB_ICONHAND
+ MB_DEFBUTTON1 = 0x00000000
+ MB_DEFBUTTON2 = 0x00000100
+ MB_DEFBUTTON3 = 0x00000200
+ MB_DEFBUTTON4 = 0x00000300
)
//COM
const (
- E_INVALIDARG = 0x80070057
- E_OUTOFMEMORY = 0x8007000E
- E_UNEXPECTED = 0x8000FFFF
+ E_INVALIDARG = 0x80070057
+ E_OUTOFMEMORY = 0x8007000E
+ E_UNEXPECTED = 0x8000FFFF
)
const (
- S_OK = 0
- S_FALSE = 0x0001
- RPC_E_CHANGED_MODE = 0x80010106
+ S_OK = 0
+ S_FALSE = 0x0001
+ RPC_E_CHANGED_MODE = 0x80010106
)
// GetSystemMetrics constants
const (
- SM_CXSCREEN = 0
- SM_CYSCREEN = 1
- SM_CXVSCROLL = 2
- SM_CYHSCROLL = 3
- SM_CYCAPTION = 4
- SM_CXBORDER = 5
- SM_CYBORDER = 6
- SM_CXDLGFRAME = 7
- SM_CYDLGFRAME = 8
- SM_CYVTHUMB = 9
- SM_CXHTHUMB = 10
- SM_CXICON = 11
- SM_CYICON = 12
- SM_CXCURSOR = 13
- SM_CYCURSOR = 14
- SM_CYMENU = 15
- SM_CXFULLSCREEN = 16
- SM_CYFULLSCREEN = 17
- SM_CYKANJIWINDOW = 18
- SM_MOUSEPRESENT = 19
- SM_CYVSCROLL = 20
- SM_CXHSCROLL = 21
- SM_DEBUG = 22
- SM_SWAPBUTTON = 23
- SM_RESERVED1 = 24
- SM_RESERVED2 = 25
- SM_RESERVED3 = 26
- SM_RESERVED4 = 27
- SM_CXMIN = 28
- SM_CYMIN = 29
- SM_CXSIZE = 30
- SM_CYSIZE = 31
- SM_CXFRAME = 32
- SM_CYFRAME = 33
- SM_CXMINTRACK = 34
- SM_CYMINTRACK = 35
- SM_CXDOUBLECLK = 36
- SM_CYDOUBLECLK = 37
- SM_CXICONSPACING = 38
- SM_CYICONSPACING = 39
- SM_MENUDROPALIGNMENT = 40
- SM_PENWINDOWS = 41
- SM_DBCSENABLED = 42
- SM_CMOUSEBUTTONS = 43
- SM_CXFIXEDFRAME = SM_CXDLGFRAME
- SM_CYFIXEDFRAME = SM_CYDLGFRAME
- SM_CXSIZEFRAME = SM_CXFRAME
- SM_CYSIZEFRAME = SM_CYFRAME
- SM_SECURE = 44
- SM_CXEDGE = 45
- SM_CYEDGE = 46
- SM_CXMINSPACING = 47
- SM_CYMINSPACING = 48
- SM_CXSMICON = 49
- SM_CYSMICON = 50
- SM_CYSMCAPTION = 51
- SM_CXSMSIZE = 52
- SM_CYSMSIZE = 53
- SM_CXMENUSIZE = 54
- SM_CYMENUSIZE = 55
- SM_ARRANGE = 56
- SM_CXMINIMIZED = 57
- SM_CYMINIMIZED = 58
- SM_CXMAXTRACK = 59
- SM_CYMAXTRACK = 60
- SM_CXMAXIMIZED = 61
- SM_CYMAXIMIZED = 62
- SM_NETWORK = 63
- SM_CLEANBOOT = 67
- SM_CXDRAG = 68
- SM_CYDRAG = 69
- SM_SHOWSOUNDS = 70
- SM_CXMENUCHECK = 71
- SM_CYMENUCHECK = 72
- SM_SLOWMACHINE = 73
- SM_MIDEASTENABLED = 74
- SM_MOUSEWHEELPRESENT = 75
- SM_XVIRTUALSCREEN = 76
- SM_YVIRTUALSCREEN = 77
- SM_CXVIRTUALSCREEN = 78
- SM_CYVIRTUALSCREEN = 79
- SM_CMONITORS = 80
- SM_SAMEDISPLAYFORMAT = 81
- SM_IMMENABLED = 82
- SM_CXFOCUSBORDER = 83
- SM_CYFOCUSBORDER = 84
- SM_TABLETPC = 86
- SM_MEDIACENTER = 87
- SM_STARTER = 88
- SM_SERVERR2 = 89
- SM_CMETRICS = 91
- SM_REMOTESESSION = 0x1000
- SM_SHUTTINGDOWN = 0x2000
- SM_REMOTECONTROL = 0x2001
- SM_CARETBLINKINGENABLED = 0x2002
+ SM_CXSCREEN = 0
+ SM_CYSCREEN = 1
+ SM_CXVSCROLL = 2
+ SM_CYHSCROLL = 3
+ SM_CYCAPTION = 4
+ SM_CXBORDER = 5
+ SM_CYBORDER = 6
+ SM_CXDLGFRAME = 7
+ SM_CYDLGFRAME = 8
+ SM_CYVTHUMB = 9
+ SM_CXHTHUMB = 10
+ SM_CXICON = 11
+ SM_CYICON = 12
+ SM_CXCURSOR = 13
+ SM_CYCURSOR = 14
+ SM_CYMENU = 15
+ SM_CXFULLSCREEN = 16
+ SM_CYFULLSCREEN = 17
+ SM_CYKANJIWINDOW = 18
+ SM_MOUSEPRESENT = 19
+ SM_CYVSCROLL = 20
+ SM_CXHSCROLL = 21
+ SM_DEBUG = 22
+ SM_SWAPBUTTON = 23
+ SM_RESERVED1 = 24
+ SM_RESERVED2 = 25
+ SM_RESERVED3 = 26
+ SM_RESERVED4 = 27
+ SM_CXMIN = 28
+ SM_CYMIN = 29
+ SM_CXSIZE = 30
+ SM_CYSIZE = 31
+ SM_CXFRAME = 32
+ SM_CYFRAME = 33
+ SM_CXMINTRACK = 34
+ SM_CYMINTRACK = 35
+ SM_CXDOUBLECLK = 36
+ SM_CYDOUBLECLK = 37
+ SM_CXICONSPACING = 38
+ SM_CYICONSPACING = 39
+ SM_MENUDROPALIGNMENT = 40
+ SM_PENWINDOWS = 41
+ SM_DBCSENABLED = 42
+ SM_CMOUSEBUTTONS = 43
+ SM_CXFIXEDFRAME = SM_CXDLGFRAME
+ SM_CYFIXEDFRAME = SM_CYDLGFRAME
+ SM_CXSIZEFRAME = SM_CXFRAME
+ SM_CYSIZEFRAME = SM_CYFRAME
+ SM_SECURE = 44
+ SM_CXEDGE = 45
+ SM_CYEDGE = 46
+ SM_CXMINSPACING = 47
+ SM_CYMINSPACING = 48
+ SM_CXSMICON = 49
+ SM_CYSMICON = 50
+ SM_CYSMCAPTION = 51
+ SM_CXSMSIZE = 52
+ SM_CYSMSIZE = 53
+ SM_CXMENUSIZE = 54
+ SM_CYMENUSIZE = 55
+ SM_ARRANGE = 56
+ SM_CXMINIMIZED = 57
+ SM_CYMINIMIZED = 58
+ SM_CXMAXTRACK = 59
+ SM_CYMAXTRACK = 60
+ SM_CXMAXIMIZED = 61
+ SM_CYMAXIMIZED = 62
+ SM_NETWORK = 63
+ SM_CLEANBOOT = 67
+ SM_CXDRAG = 68
+ SM_CYDRAG = 69
+ SM_SHOWSOUNDS = 70
+ SM_CXMENUCHECK = 71
+ SM_CYMENUCHECK = 72
+ SM_SLOWMACHINE = 73
+ SM_MIDEASTENABLED = 74
+ SM_MOUSEWHEELPRESENT = 75
+ SM_XVIRTUALSCREEN = 76
+ SM_YVIRTUALSCREEN = 77
+ SM_CXVIRTUALSCREEN = 78
+ SM_CYVIRTUALSCREEN = 79
+ SM_CMONITORS = 80
+ SM_SAMEDISPLAYFORMAT = 81
+ SM_IMMENABLED = 82
+ SM_CXFOCUSBORDER = 83
+ SM_CYFOCUSBORDER = 84
+ SM_TABLETPC = 86
+ SM_MEDIACENTER = 87
+ SM_STARTER = 88
+ SM_SERVERR2 = 89
+ SM_CMETRICS = 91
+ SM_REMOTESESSION = 0x1000
+ SM_SHUTTINGDOWN = 0x2000
+ SM_REMOTECONTROL = 0x2001
+ SM_CARETBLINKINGENABLED = 0x2002
)
const (
- CLSCTX_INPROC_SERVER = 1
- CLSCTX_INPROC_HANDLER = 2
- CLSCTX_LOCAL_SERVER = 4
- CLSCTX_INPROC_SERVER16 = 8
- CLSCTX_REMOTE_SERVER = 16
- CLSCTX_ALL = CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER
- CLSCTX_INPROC = CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER
- CLSCTX_SERVER = CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER
+ CLSCTX_INPROC_SERVER = 1
+ CLSCTX_INPROC_HANDLER = 2
+ CLSCTX_LOCAL_SERVER = 4
+ CLSCTX_INPROC_SERVER16 = 8
+ CLSCTX_REMOTE_SERVER = 16
+ CLSCTX_ALL = CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER
+ CLSCTX_INPROC = CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER
+ CLSCTX_SERVER = CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER
)
const (
- COINIT_APARTMENTTHREADED = 0x2
- COINIT_MULTITHREADED = 0x0
- COINIT_DISABLE_OLE1DDE = 0x4
- COINIT_SPEED_OVER_MEMORY = 0x8
+ COINIT_APARTMENTTHREADED = 0x2
+ COINIT_MULTITHREADED = 0x0
+ COINIT_DISABLE_OLE1DDE = 0x4
+ COINIT_SPEED_OVER_MEMORY = 0x8
)
const (
- DISPATCH_METHOD = 1
- DISPATCH_PROPERTYGET = 2
- DISPATCH_PROPERTYPUT = 4
- DISPATCH_PROPERTYPUTREF = 8
+ DISPATCH_METHOD = 1
+ DISPATCH_PROPERTYGET = 2
+ DISPATCH_PROPERTYPUT = 4
+ DISPATCH_PROPERTYPUTREF = 8
)
const (
- CC_FASTCALL = iota
- CC_CDECL
- CC_MSCPASCAL
- CC_PASCAL = CC_MSCPASCAL
- CC_MACPASCAL
- CC_STDCALL
- CC_FPFASTCALL
- CC_SYSCALL
- CC_MPWCDECL
- CC_MPWPASCAL
- CC_MAX = CC_MPWPASCAL
+ CC_FASTCALL = iota
+ CC_CDECL
+ CC_MSCPASCAL
+ CC_PASCAL = CC_MSCPASCAL
+ CC_MACPASCAL
+ CC_STDCALL
+ CC_FPFASTCALL
+ CC_SYSCALL
+ CC_MPWCDECL
+ CC_MPWPASCAL
+ CC_MAX = CC_MPWPASCAL
)
const (
- VT_EMPTY = 0x0
- VT_NULL = 0x1
- VT_I2 = 0x2
- VT_I4 = 0x3
- VT_R4 = 0x4
- VT_R8 = 0x5
- VT_CY = 0x6
- VT_DATE = 0x7
- VT_BSTR = 0x8
- VT_DISPATCH = 0x9
- VT_ERROR = 0xa
- VT_BOOL = 0xb
- VT_VARIANT = 0xc
- VT_UNKNOWN = 0xd
- VT_DECIMAL = 0xe
- VT_I1 = 0x10
- VT_UI1 = 0x11
- VT_UI2 = 0x12
- VT_UI4 = 0x13
- VT_I8 = 0x14
- VT_UI8 = 0x15
- VT_INT = 0x16
- VT_UINT = 0x17
- VT_VOID = 0x18
- VT_HRESULT = 0x19
- VT_PTR = 0x1a
- VT_SAFEARRAY = 0x1b
- VT_CARRAY = 0x1c
- VT_USERDEFINED = 0x1d
- VT_LPSTR = 0x1e
- VT_LPWSTR = 0x1f
- VT_RECORD = 0x24
- VT_INT_PTR = 0x25
- VT_UINT_PTR = 0x26
- VT_FILETIME = 0x40
- VT_BLOB = 0x41
- VT_STREAM = 0x42
- VT_STORAGE = 0x43
- VT_STREAMED_OBJECT = 0x44
- VT_STORED_OBJECT = 0x45
- VT_BLOB_OBJECT = 0x46
- VT_CF = 0x47
- VT_CLSID = 0x48
- VT_BSTR_BLOB = 0xfff
- VT_VECTOR = 0x1000
- VT_ARRAY = 0x2000
- VT_BYREF = 0x4000
- VT_RESERVED = 0x8000
- VT_ILLEGAL = 0xffff
- VT_ILLEGALMASKED = 0xfff
- VT_TYPEMASK = 0xfff
+ VT_EMPTY = 0x0
+ VT_NULL = 0x1
+ VT_I2 = 0x2
+ VT_I4 = 0x3
+ VT_R4 = 0x4
+ VT_R8 = 0x5
+ VT_CY = 0x6
+ VT_DATE = 0x7
+ VT_BSTR = 0x8
+ VT_DISPATCH = 0x9
+ VT_ERROR = 0xa
+ VT_BOOL = 0xb
+ VT_VARIANT = 0xc
+ VT_UNKNOWN = 0xd
+ VT_DECIMAL = 0xe
+ VT_I1 = 0x10
+ VT_UI1 = 0x11
+ VT_UI2 = 0x12
+ VT_UI4 = 0x13
+ VT_I8 = 0x14
+ VT_UI8 = 0x15
+ VT_INT = 0x16
+ VT_UINT = 0x17
+ VT_VOID = 0x18
+ VT_HRESULT = 0x19
+ VT_PTR = 0x1a
+ VT_SAFEARRAY = 0x1b
+ VT_CARRAY = 0x1c
+ VT_USERDEFINED = 0x1d
+ VT_LPSTR = 0x1e
+ VT_LPWSTR = 0x1f
+ VT_RECORD = 0x24
+ VT_INT_PTR = 0x25
+ VT_UINT_PTR = 0x26
+ VT_FILETIME = 0x40
+ VT_BLOB = 0x41
+ VT_STREAM = 0x42
+ VT_STORAGE = 0x43
+ VT_STREAMED_OBJECT = 0x44
+ VT_STORED_OBJECT = 0x45
+ VT_BLOB_OBJECT = 0x46
+ VT_CF = 0x47
+ VT_CLSID = 0x48
+ VT_BSTR_BLOB = 0xfff
+ VT_VECTOR = 0x1000
+ VT_ARRAY = 0x2000
+ VT_BYREF = 0x4000
+ VT_RESERVED = 0x8000
+ VT_ILLEGAL = 0xffff
+ VT_ILLEGALMASKED = 0xfff
+ VT_TYPEMASK = 0xfff
)
const (
- DISPID_UNKNOWN = -1
- DISPID_VALUE = 0
- DISPID_PROPERTYPUT = -3
- DISPID_NEWENUM = -4
- DISPID_EVALUATE = -5
- DISPID_CONSTRUCTOR = -6
- DISPID_DESTRUCTOR = -7
- DISPID_COLLECT = -8
+ DISPID_UNKNOWN = -1
+ DISPID_VALUE = 0
+ DISPID_PROPERTYPUT = -3
+ DISPID_NEWENUM = -4
+ DISPID_EVALUATE = -5
+ DISPID_CONSTRUCTOR = -6
+ DISPID_DESTRUCTOR = -7
+ DISPID_COLLECT = -8
)
const (
- CCHDEVICENAME = 32
- CCHFORMNAME = 32
+ CCHDEVICENAME = 32
+ CCHFORMNAME = 32
)
const (
- IDOK = 1
- IDCANCEL = 2
- IDABORT = 3
- IDRETRY = 4
- IDIGNORE = 5
- IDYES = 6
- IDNO = 7
- IDCLOSE = 8
- IDHELP = 9
- IDTRYAGAIN = 10
- IDCONTINUE = 11
- IDTIMEOUT = 32000
+ IDOK = 1
+ IDCANCEL = 2
+ IDABORT = 3
+ IDRETRY = 4
+ IDIGNORE = 5
+ IDYES = 6
+ IDNO = 7
+ IDCLOSE = 8
+ IDHELP = 9
+ IDTRYAGAIN = 10
+ IDCONTINUE = 11
+ IDTIMEOUT = 32000
)
// Generic WM_NOTIFY notification codes
const (
- NM_FIRST = 0
- NM_OUTOFMEMORY = NM_FIRST - 1
- NM_CLICK = NM_FIRST - 2
- NM_DBLCLK = NM_FIRST - 3
- NM_RETURN = NM_FIRST - 4
- NM_RCLICK = NM_FIRST - 5
- NM_RDBLCLK = NM_FIRST - 6
- NM_SETFOCUS = NM_FIRST - 7
- NM_KILLFOCUS = NM_FIRST - 8
- NM_CUSTOMDRAW = NM_FIRST - 12
- NM_HOVER = NM_FIRST - 13
- NM_NCHITTEST = NM_FIRST - 14
- NM_KEYDOWN = NM_FIRST - 15
- NM_RELEASEDCAPTURE = NM_FIRST - 16
- NM_SETCURSOR = NM_FIRST - 17
- NM_CHAR = NM_FIRST - 18
- NM_TOOLTIPSCREATED = NM_FIRST - 19
- NM_LAST = NM_FIRST - 99
+ NM_FIRST = 0
+ NM_OUTOFMEMORY = NM_FIRST - 1
+ NM_CLICK = NM_FIRST - 2
+ NM_DBLCLK = NM_FIRST - 3
+ NM_RETURN = NM_FIRST - 4
+ NM_RCLICK = NM_FIRST - 5
+ NM_RDBLCLK = NM_FIRST - 6
+ NM_SETFOCUS = NM_FIRST - 7
+ NM_KILLFOCUS = NM_FIRST - 8
+ NM_CUSTOMDRAW = NM_FIRST - 12
+ NM_HOVER = NM_FIRST - 13
+ NM_NCHITTEST = NM_FIRST - 14
+ NM_KEYDOWN = NM_FIRST - 15
+ NM_RELEASEDCAPTURE = NM_FIRST - 16
+ NM_SETCURSOR = NM_FIRST - 17
+ NM_CHAR = NM_FIRST - 18
+ NM_TOOLTIPSCREATED = NM_FIRST - 19
+ NM_LAST = NM_FIRST - 99
)
// ListView messages
const (
- LVM_FIRST = 0x1000
- LVM_GETITEMCOUNT = LVM_FIRST + 4
- LVM_SETIMAGELIST = LVM_FIRST + 3
- LVM_GETIMAGELIST = LVM_FIRST + 2
- LVM_GETITEM = LVM_FIRST + 75
- LVM_SETITEM = LVM_FIRST + 76
- LVM_INSERTITEM = LVM_FIRST + 77
- LVM_DELETEITEM = LVM_FIRST + 8
- LVM_DELETEALLITEMS = LVM_FIRST + 9
- LVM_GETCALLBACKMASK = LVM_FIRST + 10
- LVM_SETCALLBACKMASK = LVM_FIRST + 11
- LVM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT
- LVM_GETNEXTITEM = LVM_FIRST + 12
- LVM_FINDITEM = LVM_FIRST + 83
- LVM_GETITEMRECT = LVM_FIRST + 14
- LVM_GETSTRINGWIDTH = LVM_FIRST + 87
- LVM_HITTEST = LVM_FIRST + 18
- LVM_ENSUREVISIBLE = LVM_FIRST + 19
- LVM_SCROLL = LVM_FIRST + 20
- LVM_REDRAWITEMS = LVM_FIRST + 21
- LVM_ARRANGE = LVM_FIRST + 22
- LVM_EDITLABEL = LVM_FIRST + 118
- LVM_GETEDITCONTROL = LVM_FIRST + 24
- LVM_GETCOLUMN = LVM_FIRST + 95
- LVM_SETCOLUMN = LVM_FIRST + 96
- LVM_INSERTCOLUMN = LVM_FIRST + 97
- LVM_DELETECOLUMN = LVM_FIRST + 28
- LVM_GETCOLUMNWIDTH = LVM_FIRST + 29
- LVM_SETCOLUMNWIDTH = LVM_FIRST + 30
- LVM_GETHEADER = LVM_FIRST + 31
- LVM_CREATEDRAGIMAGE = LVM_FIRST + 33
- LVM_GETVIEWRECT = LVM_FIRST + 34
- LVM_GETTEXTCOLOR = LVM_FIRST + 35
- LVM_SETTEXTCOLOR = LVM_FIRST + 36
- LVM_GETTEXTBKCOLOR = LVM_FIRST + 37
- LVM_SETTEXTBKCOLOR = LVM_FIRST + 38
- LVM_GETTOPINDEX = LVM_FIRST + 39
- LVM_GETCOUNTPERPAGE = LVM_FIRST + 40
- LVM_GETORIGIN = LVM_FIRST + 41
- LVM_UPDATE = LVM_FIRST + 42
- LVM_SETITEMSTATE = LVM_FIRST + 43
- LVM_GETITEMSTATE = LVM_FIRST + 44
- LVM_GETITEMTEXT = LVM_FIRST + 115
- LVM_SETITEMTEXT = LVM_FIRST + 116
- LVM_SETITEMCOUNT = LVM_FIRST + 47
- LVM_SORTITEMS = LVM_FIRST + 48
- LVM_SETITEMPOSITION32 = LVM_FIRST + 49
- LVM_GETSELECTEDCOUNT = LVM_FIRST + 50
- LVM_GETITEMSPACING = LVM_FIRST + 51
- LVM_GETISEARCHSTRING = LVM_FIRST + 117
- LVM_SETICONSPACING = LVM_FIRST + 53
- LVM_SETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 54
- LVM_GETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 55
- LVM_GETSUBITEMRECT = LVM_FIRST + 56
- LVM_SUBITEMHITTEST = LVM_FIRST + 57
- LVM_SETCOLUMNORDERARRAY = LVM_FIRST + 58
- LVM_GETCOLUMNORDERARRAY = LVM_FIRST + 59
- LVM_SETHOTITEM = LVM_FIRST + 60
- LVM_GETHOTITEM = LVM_FIRST + 61
- LVM_SETHOTCURSOR = LVM_FIRST + 62
- LVM_GETHOTCURSOR = LVM_FIRST + 63
- LVM_APPROXIMATEVIEWRECT = LVM_FIRST + 64
- LVM_SETWORKAREAS = LVM_FIRST + 65
- LVM_GETWORKAREAS = LVM_FIRST + 70
- LVM_GETNUMBEROFWORKAREAS = LVM_FIRST + 73
- LVM_GETSELECTIONMARK = LVM_FIRST + 66
- LVM_SETSELECTIONMARK = LVM_FIRST + 67
- LVM_SETHOVERTIME = LVM_FIRST + 71
- LVM_GETHOVERTIME = LVM_FIRST + 72
- LVM_SETTOOLTIPS = LVM_FIRST + 74
- LVM_GETTOOLTIPS = LVM_FIRST + 78
- LVM_SORTITEMSEX = LVM_FIRST + 81
- LVM_SETBKIMAGE = LVM_FIRST + 138
- LVM_GETBKIMAGE = LVM_FIRST + 139
- LVM_SETSELECTEDCOLUMN = LVM_FIRST + 140
- LVM_SETVIEW = LVM_FIRST + 142
- LVM_GETVIEW = LVM_FIRST + 143
- LVM_INSERTGROUP = LVM_FIRST + 145
- LVM_SETGROUPINFO = LVM_FIRST + 147
- LVM_GETGROUPINFO = LVM_FIRST + 149
- LVM_REMOVEGROUP = LVM_FIRST + 150
- LVM_MOVEGROUP = LVM_FIRST + 151
- LVM_GETGROUPCOUNT = LVM_FIRST + 152
- LVM_GETGROUPINFOBYINDEX = LVM_FIRST + 153
- LVM_MOVEITEMTOGROUP = LVM_FIRST + 154
- LVM_GETGROUPRECT = LVM_FIRST + 98
- LVM_SETGROUPMETRICS = LVM_FIRST + 155
- LVM_GETGROUPMETRICS = LVM_FIRST + 156
- LVM_ENABLEGROUPVIEW = LVM_FIRST + 157
- LVM_SORTGROUPS = LVM_FIRST + 158
- LVM_INSERTGROUPSORTED = LVM_FIRST + 159
- LVM_REMOVEALLGROUPS = LVM_FIRST + 160
- LVM_HASGROUP = LVM_FIRST + 161
- LVM_GETGROUPSTATE = LVM_FIRST + 92
- LVM_GETFOCUSEDGROUP = LVM_FIRST + 93
- LVM_SETTILEVIEWINFO = LVM_FIRST + 162
- LVM_GETTILEVIEWINFO = LVM_FIRST + 163
- LVM_SETTILEINFO = LVM_FIRST + 164
- LVM_GETTILEINFO = LVM_FIRST + 165
- LVM_SETINSERTMARK = LVM_FIRST + 166
- LVM_GETINSERTMARK = LVM_FIRST + 167
- LVM_INSERTMARKHITTEST = LVM_FIRST + 168
- LVM_GETINSERTMARKRECT = LVM_FIRST + 169
- LVM_SETINSERTMARKCOLOR = LVM_FIRST + 170
- LVM_GETINSERTMARKCOLOR = LVM_FIRST + 171
- LVM_SETINFOTIP = LVM_FIRST + 173
- LVM_GETSELECTEDCOLUMN = LVM_FIRST + 174
- LVM_ISGROUPVIEWENABLED = LVM_FIRST + 175
- LVM_GETOUTLINECOLOR = LVM_FIRST + 176
- LVM_SETOUTLINECOLOR = LVM_FIRST + 177
- LVM_CANCELEDITLABEL = LVM_FIRST + 179
- LVM_MAPINDEXTOID = LVM_FIRST + 180
- LVM_MAPIDTOINDEX = LVM_FIRST + 181
- LVM_ISITEMVISIBLE = LVM_FIRST + 182
- LVM_GETNEXTITEMINDEX = LVM_FIRST + 211
+ LVM_FIRST = 0x1000
+ LVM_GETITEMCOUNT = LVM_FIRST + 4
+ LVM_SETIMAGELIST = LVM_FIRST + 3
+ LVM_GETIMAGELIST = LVM_FIRST + 2
+ LVM_GETITEM = LVM_FIRST + 75
+ LVM_SETITEM = LVM_FIRST + 76
+ LVM_INSERTITEM = LVM_FIRST + 77
+ LVM_DELETEITEM = LVM_FIRST + 8
+ LVM_DELETEALLITEMS = LVM_FIRST + 9
+ LVM_GETCALLBACKMASK = LVM_FIRST + 10
+ LVM_SETCALLBACKMASK = LVM_FIRST + 11
+ LVM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT
+ LVM_GETNEXTITEM = LVM_FIRST + 12
+ LVM_FINDITEM = LVM_FIRST + 83
+ LVM_GETITEMRECT = LVM_FIRST + 14
+ LVM_GETSTRINGWIDTH = LVM_FIRST + 87
+ LVM_HITTEST = LVM_FIRST + 18
+ LVM_ENSUREVISIBLE = LVM_FIRST + 19
+ LVM_SCROLL = LVM_FIRST + 20
+ LVM_REDRAWITEMS = LVM_FIRST + 21
+ LVM_ARRANGE = LVM_FIRST + 22
+ LVM_EDITLABEL = LVM_FIRST + 118
+ LVM_GETEDITCONTROL = LVM_FIRST + 24
+ LVM_GETCOLUMN = LVM_FIRST + 95
+ LVM_SETCOLUMN = LVM_FIRST + 96
+ LVM_INSERTCOLUMN = LVM_FIRST + 97
+ LVM_DELETECOLUMN = LVM_FIRST + 28
+ LVM_GETCOLUMNWIDTH = LVM_FIRST + 29
+ LVM_SETCOLUMNWIDTH = LVM_FIRST + 30
+ LVM_GETHEADER = LVM_FIRST + 31
+ LVM_CREATEDRAGIMAGE = LVM_FIRST + 33
+ LVM_GETVIEWRECT = LVM_FIRST + 34
+ LVM_GETTEXTCOLOR = LVM_FIRST + 35
+ LVM_SETTEXTCOLOR = LVM_FIRST + 36
+ LVM_GETTEXTBKCOLOR = LVM_FIRST + 37
+ LVM_SETTEXTBKCOLOR = LVM_FIRST + 38
+ LVM_GETTOPINDEX = LVM_FIRST + 39
+ LVM_GETCOUNTPERPAGE = LVM_FIRST + 40
+ LVM_GETORIGIN = LVM_FIRST + 41
+ LVM_UPDATE = LVM_FIRST + 42
+ LVM_SETITEMSTATE = LVM_FIRST + 43
+ LVM_GETITEMSTATE = LVM_FIRST + 44
+ LVM_GETITEMTEXT = LVM_FIRST + 115
+ LVM_SETITEMTEXT = LVM_FIRST + 116
+ LVM_SETITEMCOUNT = LVM_FIRST + 47
+ LVM_SORTITEMS = LVM_FIRST + 48
+ LVM_SETITEMPOSITION32 = LVM_FIRST + 49
+ LVM_GETSELECTEDCOUNT = LVM_FIRST + 50
+ LVM_GETITEMSPACING = LVM_FIRST + 51
+ LVM_GETISEARCHSTRING = LVM_FIRST + 117
+ LVM_SETICONSPACING = LVM_FIRST + 53
+ LVM_SETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 54
+ LVM_GETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 55
+ LVM_GETSUBITEMRECT = LVM_FIRST + 56
+ LVM_SUBITEMHITTEST = LVM_FIRST + 57
+ LVM_SETCOLUMNORDERARRAY = LVM_FIRST + 58
+ LVM_GETCOLUMNORDERARRAY = LVM_FIRST + 59
+ LVM_SETHOTITEM = LVM_FIRST + 60
+ LVM_GETHOTITEM = LVM_FIRST + 61
+ LVM_SETHOTCURSOR = LVM_FIRST + 62
+ LVM_GETHOTCURSOR = LVM_FIRST + 63
+ LVM_APPROXIMATEVIEWRECT = LVM_FIRST + 64
+ LVM_SETWORKAREAS = LVM_FIRST + 65
+ LVM_GETWORKAREAS = LVM_FIRST + 70
+ LVM_GETNUMBEROFWORKAREAS = LVM_FIRST + 73
+ LVM_GETSELECTIONMARK = LVM_FIRST + 66
+ LVM_SETSELECTIONMARK = LVM_FIRST + 67
+ LVM_SETHOVERTIME = LVM_FIRST + 71
+ LVM_GETHOVERTIME = LVM_FIRST + 72
+ LVM_SETTOOLTIPS = LVM_FIRST + 74
+ LVM_GETTOOLTIPS = LVM_FIRST + 78
+ LVM_SORTITEMSEX = LVM_FIRST + 81
+ LVM_SETBKIMAGE = LVM_FIRST + 138
+ LVM_GETBKIMAGE = LVM_FIRST + 139
+ LVM_SETSELECTEDCOLUMN = LVM_FIRST + 140
+ LVM_SETVIEW = LVM_FIRST + 142
+ LVM_GETVIEW = LVM_FIRST + 143
+ LVM_INSERTGROUP = LVM_FIRST + 145
+ LVM_SETGROUPINFO = LVM_FIRST + 147
+ LVM_GETGROUPINFO = LVM_FIRST + 149
+ LVM_REMOVEGROUP = LVM_FIRST + 150
+ LVM_MOVEGROUP = LVM_FIRST + 151
+ LVM_GETGROUPCOUNT = LVM_FIRST + 152
+ LVM_GETGROUPINFOBYINDEX = LVM_FIRST + 153
+ LVM_MOVEITEMTOGROUP = LVM_FIRST + 154
+ LVM_GETGROUPRECT = LVM_FIRST + 98
+ LVM_SETGROUPMETRICS = LVM_FIRST + 155
+ LVM_GETGROUPMETRICS = LVM_FIRST + 156
+ LVM_ENABLEGROUPVIEW = LVM_FIRST + 157
+ LVM_SORTGROUPS = LVM_FIRST + 158
+ LVM_INSERTGROUPSORTED = LVM_FIRST + 159
+ LVM_REMOVEALLGROUPS = LVM_FIRST + 160
+ LVM_HASGROUP = LVM_FIRST + 161
+ LVM_GETGROUPSTATE = LVM_FIRST + 92
+ LVM_GETFOCUSEDGROUP = LVM_FIRST + 93
+ LVM_SETTILEVIEWINFO = LVM_FIRST + 162
+ LVM_GETTILEVIEWINFO = LVM_FIRST + 163
+ LVM_SETTILEINFO = LVM_FIRST + 164
+ LVM_GETTILEINFO = LVM_FIRST + 165
+ LVM_SETINSERTMARK = LVM_FIRST + 166
+ LVM_GETINSERTMARK = LVM_FIRST + 167
+ LVM_INSERTMARKHITTEST = LVM_FIRST + 168
+ LVM_GETINSERTMARKRECT = LVM_FIRST + 169
+ LVM_SETINSERTMARKCOLOR = LVM_FIRST + 170
+ LVM_GETINSERTMARKCOLOR = LVM_FIRST + 171
+ LVM_SETINFOTIP = LVM_FIRST + 173
+ LVM_GETSELECTEDCOLUMN = LVM_FIRST + 174
+ LVM_ISGROUPVIEWENABLED = LVM_FIRST + 175
+ LVM_GETOUTLINECOLOR = LVM_FIRST + 176
+ LVM_SETOUTLINECOLOR = LVM_FIRST + 177
+ LVM_CANCELEDITLABEL = LVM_FIRST + 179
+ LVM_MAPINDEXTOID = LVM_FIRST + 180
+ LVM_MAPIDTOINDEX = LVM_FIRST + 181
+ LVM_ISITEMVISIBLE = LVM_FIRST + 182
+ LVM_GETNEXTITEMINDEX = LVM_FIRST + 211
)
// ListView notifications
const (
- LVN_FIRST = -100
+ LVN_FIRST = -100
- LVN_ITEMCHANGING = LVN_FIRST - 0
- LVN_ITEMCHANGED = LVN_FIRST - 1
- LVN_INSERTITEM = LVN_FIRST - 2
- LVN_DELETEITEM = LVN_FIRST - 3
- LVN_DELETEALLITEMS = LVN_FIRST - 4
- LVN_BEGINLABELEDITA = LVN_FIRST - 5
- LVN_BEGINLABELEDITW = LVN_FIRST - 75
- LVN_ENDLABELEDITA = LVN_FIRST - 6
- LVN_ENDLABELEDITW = LVN_FIRST - 76
- LVN_COLUMNCLICK = LVN_FIRST - 8
- LVN_BEGINDRAG = LVN_FIRST - 9
- LVN_BEGINRDRAG = LVN_FIRST - 11
- LVN_ODCACHEHINT = LVN_FIRST - 13
- LVN_ODFINDITEMA = LVN_FIRST - 52
- LVN_ODFINDITEMW = LVN_FIRST - 79
- LVN_ITEMACTIVATE = LVN_FIRST - 14
- LVN_ODSTATECHANGED = LVN_FIRST - 15
- LVN_HOTTRACK = LVN_FIRST - 21
- LVN_GETDISPINFO = LVN_FIRST - 77
- LVN_SETDISPINFO = LVN_FIRST - 78
- LVN_KEYDOWN = LVN_FIRST - 55
- LVN_MARQUEEBEGIN = LVN_FIRST - 56
- LVN_GETINFOTIP = LVN_FIRST - 58
- LVN_INCREMENTALSEARCH = LVN_FIRST - 63
- LVN_BEGINSCROLL = LVN_FIRST - 80
- LVN_ENDSCROLL = LVN_FIRST - 81
+ LVN_ITEMCHANGING = LVN_FIRST - 0
+ LVN_ITEMCHANGED = LVN_FIRST - 1
+ LVN_INSERTITEM = LVN_FIRST - 2
+ LVN_DELETEITEM = LVN_FIRST - 3
+ LVN_DELETEALLITEMS = LVN_FIRST - 4
+ LVN_BEGINLABELEDITA = LVN_FIRST - 5
+ LVN_BEGINLABELEDITW = LVN_FIRST - 75
+ LVN_ENDLABELEDITA = LVN_FIRST - 6
+ LVN_ENDLABELEDITW = LVN_FIRST - 76
+ LVN_COLUMNCLICK = LVN_FIRST - 8
+ LVN_BEGINDRAG = LVN_FIRST - 9
+ LVN_BEGINRDRAG = LVN_FIRST - 11
+ LVN_ODCACHEHINT = LVN_FIRST - 13
+ LVN_ODFINDITEMA = LVN_FIRST - 52
+ LVN_ODFINDITEMW = LVN_FIRST - 79
+ LVN_ITEMACTIVATE = LVN_FIRST - 14
+ LVN_ODSTATECHANGED = LVN_FIRST - 15
+ LVN_HOTTRACK = LVN_FIRST - 21
+ LVN_GETDISPINFO = LVN_FIRST - 77
+ LVN_SETDISPINFO = LVN_FIRST - 78
+ LVN_KEYDOWN = LVN_FIRST - 55
+ LVN_MARQUEEBEGIN = LVN_FIRST - 56
+ LVN_GETINFOTIP = LVN_FIRST - 58
+ LVN_INCREMENTALSEARCH = LVN_FIRST - 63
+ LVN_BEGINSCROLL = LVN_FIRST - 80
+ LVN_ENDSCROLL = LVN_FIRST - 81
)
// ListView LVNI constants
const (
- LVNI_ALL = 0
- LVNI_FOCUSED = 1
- LVNI_SELECTED = 2
- LVNI_CUT = 4
- LVNI_DROPHILITED = 8
- LVNI_ABOVE = 256
- LVNI_BELOW = 512
- LVNI_TOLEFT = 1024
- LVNI_TORIGHT = 2048
+ LVNI_ALL = 0
+ LVNI_FOCUSED = 1
+ LVNI_SELECTED = 2
+ LVNI_CUT = 4
+ LVNI_DROPHILITED = 8
+ LVNI_ABOVE = 256
+ LVNI_BELOW = 512
+ LVNI_TOLEFT = 1024
+ LVNI_TORIGHT = 2048
)
// ListView styles
const (
- LVS_ICON = 0x0000
- LVS_REPORT = 0x0001
- LVS_SMALLICON = 0x0002
- LVS_LIST = 0x0003
- LVS_TYPEMASK = 0x0003
- LVS_SINGLESEL = 0x0004
- LVS_SHOWSELALWAYS = 0x0008
- LVS_SORTASCENDING = 0x0010
- LVS_SORTDESCENDING = 0x0020
- LVS_SHAREIMAGELISTS = 0x0040
- LVS_NOLABELWRAP = 0x0080
- LVS_AUTOARRANGE = 0x0100
- LVS_EDITLABELS = 0x0200
- LVS_OWNERDATA = 0x1000
- LVS_NOSCROLL = 0x2000
- LVS_TYPESTYLEMASK = 0xfc00
- LVS_ALIGNTOP = 0x0000
- LVS_ALIGNLEFT = 0x0800
- LVS_ALIGNMASK = 0x0c00
- LVS_OWNERDRAWFIXED = 0x0400
- LVS_NOCOLUMNHEADER = 0x4000
- LVS_NOSORTHEADER = 0x8000
+ LVS_ICON = 0x0000
+ LVS_REPORT = 0x0001
+ LVS_SMALLICON = 0x0002
+ LVS_LIST = 0x0003
+ LVS_TYPEMASK = 0x0003
+ LVS_SINGLESEL = 0x0004
+ LVS_SHOWSELALWAYS = 0x0008
+ LVS_SORTASCENDING = 0x0010
+ LVS_SORTDESCENDING = 0x0020
+ LVS_SHAREIMAGELISTS = 0x0040
+ LVS_NOLABELWRAP = 0x0080
+ LVS_AUTOARRANGE = 0x0100
+ LVS_EDITLABELS = 0x0200
+ LVS_OWNERDATA = 0x1000
+ LVS_NOSCROLL = 0x2000
+ LVS_TYPESTYLEMASK = 0xfc00
+ LVS_ALIGNTOP = 0x0000
+ LVS_ALIGNLEFT = 0x0800
+ LVS_ALIGNMASK = 0x0c00
+ LVS_OWNERDRAWFIXED = 0x0400
+ LVS_NOCOLUMNHEADER = 0x4000
+ LVS_NOSORTHEADER = 0x8000
)
// ListView extended styles
const (
- LVS_EX_GRIDLINES = 0x00000001
- LVS_EX_SUBITEMIMAGES = 0x00000002
- LVS_EX_CHECKBOXES = 0x00000004
- LVS_EX_TRACKSELECT = 0x00000008
- LVS_EX_HEADERDRAGDROP = 0x00000010
- LVS_EX_FULLROWSELECT = 0x00000020
- LVS_EX_ONECLICKACTIVATE = 0x00000040
- LVS_EX_TWOCLICKACTIVATE = 0x00000080
- LVS_EX_FLATSB = 0x00000100
- LVS_EX_REGIONAL = 0x00000200
- LVS_EX_INFOTIP = 0x00000400
- LVS_EX_UNDERLINEHOT = 0x00000800
- LVS_EX_UNDERLINECOLD = 0x00001000
- LVS_EX_MULTIWORKAREAS = 0x00002000
- LVS_EX_LABELTIP = 0x00004000
- LVS_EX_BORDERSELECT = 0x00008000
- LVS_EX_DOUBLEBUFFER = 0x00010000
- LVS_EX_HIDELABELS = 0x00020000
- LVS_EX_SINGLEROW = 0x00040000
- LVS_EX_SNAPTOGRID = 0x00080000
- LVS_EX_SIMPLESELECT = 0x00100000
+ LVS_EX_GRIDLINES = 0x00000001
+ LVS_EX_SUBITEMIMAGES = 0x00000002
+ LVS_EX_CHECKBOXES = 0x00000004
+ LVS_EX_TRACKSELECT = 0x00000008
+ LVS_EX_HEADERDRAGDROP = 0x00000010
+ LVS_EX_FULLROWSELECT = 0x00000020
+ LVS_EX_ONECLICKACTIVATE = 0x00000040
+ LVS_EX_TWOCLICKACTIVATE = 0x00000080
+ LVS_EX_FLATSB = 0x00000100
+ LVS_EX_REGIONAL = 0x00000200
+ LVS_EX_INFOTIP = 0x00000400
+ LVS_EX_UNDERLINEHOT = 0x00000800
+ LVS_EX_UNDERLINECOLD = 0x00001000
+ LVS_EX_MULTIWORKAREAS = 0x00002000
+ LVS_EX_LABELTIP = 0x00004000
+ LVS_EX_BORDERSELECT = 0x00008000
+ LVS_EX_DOUBLEBUFFER = 0x00010000
+ LVS_EX_HIDELABELS = 0x00020000
+ LVS_EX_SINGLEROW = 0x00040000
+ LVS_EX_SNAPTOGRID = 0x00080000
+ LVS_EX_SIMPLESELECT = 0x00100000
)
// ListView column flags
const (
- LVCF_FMT = 0x0001
- LVCF_WIDTH = 0x0002
- LVCF_TEXT = 0x0004
- LVCF_SUBITEM = 0x0008
- LVCF_IMAGE = 0x0010
- LVCF_ORDER = 0x0020
+ LVCF_FMT = 0x0001
+ LVCF_WIDTH = 0x0002
+ LVCF_TEXT = 0x0004
+ LVCF_SUBITEM = 0x0008
+ LVCF_IMAGE = 0x0010
+ LVCF_ORDER = 0x0020
)
// ListView column format constants
const (
- LVCFMT_LEFT = 0x0000
- LVCFMT_RIGHT = 0x0001
- LVCFMT_CENTER = 0x0002
- LVCFMT_JUSTIFYMASK = 0x0003
- LVCFMT_IMAGE = 0x0800
- LVCFMT_BITMAP_ON_RIGHT = 0x1000
- LVCFMT_COL_HAS_IMAGES = 0x8000
+ LVCFMT_LEFT = 0x0000
+ LVCFMT_RIGHT = 0x0001
+ LVCFMT_CENTER = 0x0002
+ LVCFMT_JUSTIFYMASK = 0x0003
+ LVCFMT_IMAGE = 0x0800
+ LVCFMT_BITMAP_ON_RIGHT = 0x1000
+ LVCFMT_COL_HAS_IMAGES = 0x8000
)
// ListView item flags
const (
- LVIF_TEXT = 0x00000001
- LVIF_IMAGE = 0x00000002
- LVIF_PARAM = 0x00000004
- LVIF_STATE = 0x00000008
- LVIF_INDENT = 0x00000010
- LVIF_NORECOMPUTE = 0x00000800
- LVIF_GROUPID = 0x00000100
- LVIF_COLUMNS = 0x00000200
+ LVIF_TEXT = 0x00000001
+ LVIF_IMAGE = 0x00000002
+ LVIF_PARAM = 0x00000004
+ LVIF_STATE = 0x00000008
+ LVIF_INDENT = 0x00000010
+ LVIF_NORECOMPUTE = 0x00000800
+ LVIF_GROUPID = 0x00000100
+ LVIF_COLUMNS = 0x00000200
)
// ListView item states
const (
- LVIS_FOCUSED = 1
- LVIS_SELECTED = 2
- LVIS_CUT = 4
- LVIS_DROPHILITED = 8
- LVIS_OVERLAYMASK = 0xF00
- LVIS_STATEIMAGEMASK = 0xF000
+ LVIS_FOCUSED = 1
+ LVIS_SELECTED = 2
+ LVIS_CUT = 4
+ LVIS_DROPHILITED = 8
+ LVIS_OVERLAYMASK = 0xF00
+ LVIS_STATEIMAGEMASK = 0xF000
)
// ListView hit test constants
const (
- LVHT_NOWHERE = 0x00000001
- LVHT_ONITEMICON = 0x00000002
- LVHT_ONITEMLABEL = 0x00000004
- LVHT_ONITEMSTATEICON = 0x00000008
- LVHT_ONITEM = LVHT_ONITEMICON | LVHT_ONITEMLABEL | LVHT_ONITEMSTATEICON
+ LVHT_NOWHERE = 0x00000001
+ LVHT_ONITEMICON = 0x00000002
+ LVHT_ONITEMLABEL = 0x00000004
+ LVHT_ONITEMSTATEICON = 0x00000008
+ LVHT_ONITEM = LVHT_ONITEMICON | LVHT_ONITEMLABEL | LVHT_ONITEMSTATEICON
- LVHT_ABOVE = 0x00000008
- LVHT_BELOW = 0x00000010
- LVHT_TORIGHT = 0x00000020
- LVHT_TOLEFT = 0x00000040
+ LVHT_ABOVE = 0x00000008
+ LVHT_BELOW = 0x00000010
+ LVHT_TORIGHT = 0x00000020
+ LVHT_TOLEFT = 0x00000040
)
// ListView image list types
const (
- LVSIL_NORMAL = 0
- LVSIL_SMALL = 1
- LVSIL_STATE = 2
- LVSIL_GROUPHEADER = 3
+ LVSIL_NORMAL = 0
+ LVSIL_SMALL = 1
+ LVSIL_STATE = 2
+ LVSIL_GROUPHEADER = 3
)
// InitCommonControlsEx flags
const (
- ICC_LISTVIEW_CLASSES = 1
- ICC_TREEVIEW_CLASSES = 2
- ICC_BAR_CLASSES = 4
- ICC_TAB_CLASSES = 8
- ICC_UPDOWN_CLASS = 16
- ICC_PROGRESS_CLASS = 32
- ICC_HOTKEY_CLASS = 64
- ICC_ANIMATE_CLASS = 128
- ICC_WIN95_CLASSES = 255
- ICC_DATE_CLASSES = 256
- ICC_USEREX_CLASSES = 512
- ICC_COOL_CLASSES = 1024
- ICC_INTERNET_CLASSES = 2048
- ICC_PAGESCROLLER_CLASS = 4096
- ICC_NATIVEFNTCTL_CLASS = 8192
- INFOTIPSIZE = 1024
- ICC_STANDARD_CLASSES = 0x00004000
- ICC_LINK_CLASS = 0x00008000
+ ICC_LISTVIEW_CLASSES = 1
+ ICC_TREEVIEW_CLASSES = 2
+ ICC_BAR_CLASSES = 4
+ ICC_TAB_CLASSES = 8
+ ICC_UPDOWN_CLASS = 16
+ ICC_PROGRESS_CLASS = 32
+ ICC_HOTKEY_CLASS = 64
+ ICC_ANIMATE_CLASS = 128
+ ICC_WIN95_CLASSES = 255
+ ICC_DATE_CLASSES = 256
+ ICC_USEREX_CLASSES = 512
+ ICC_COOL_CLASSES = 1024
+ ICC_INTERNET_CLASSES = 2048
+ ICC_PAGESCROLLER_CLASS = 4096
+ ICC_NATIVEFNTCTL_CLASS = 8192
+ INFOTIPSIZE = 1024
+ ICC_STANDARD_CLASSES = 0x00004000
+ ICC_LINK_CLASS = 0x00008000
)
// Dialog Codes
const (
- DLGC_WANTARROWS = 0x0001
- DLGC_WANTTAB = 0x0002
- DLGC_WANTALLKEYS = 0x0004
- DLGC_WANTMESSAGE = 0x0004
- DLGC_HASSETSEL = 0x0008
- DLGC_DEFPUSHBUTTON = 0x0010
- DLGC_UNDEFPUSHBUTTON = 0x0020
- DLGC_RADIOBUTTON = 0x0040
- DLGC_WANTCHARS = 0x0080
- DLGC_STATIC = 0x0100
- DLGC_BUTTON = 0x2000
+ DLGC_WANTARROWS = 0x0001
+ DLGC_WANTTAB = 0x0002
+ DLGC_WANTALLKEYS = 0x0004
+ DLGC_WANTMESSAGE = 0x0004
+ DLGC_HASSETSEL = 0x0008
+ DLGC_DEFPUSHBUTTON = 0x0010
+ DLGC_UNDEFPUSHBUTTON = 0x0020
+ DLGC_RADIOBUTTON = 0x0040
+ DLGC_WANTCHARS = 0x0080
+ DLGC_STATIC = 0x0100
+ DLGC_BUTTON = 0x2000
)
// Get/SetWindowWord/Long offsets for use with WC_DIALOG windows
const (
- DWL_MSGRESULT = 0
- DWL_DLGPROC = 4
- DWL_USER = 8
+ DWL_MSGRESULT = 0
+ DWL_DLGPROC = 4
+ DWL_USER = 8
)
// Registry predefined keys
const (
- HKEY_CLASSES_ROOT HKEY = 0x80000000
- HKEY_CURRENT_USER HKEY = 0x80000001
- HKEY_LOCAL_MACHINE HKEY = 0x80000002
- HKEY_USERS HKEY = 0x80000003
- HKEY_PERFORMANCE_DATA HKEY = 0x80000004
- HKEY_CURRENT_CONFIG HKEY = 0x80000005
- HKEY_DYN_DATA HKEY = 0x80000006
+ HKEY_CLASSES_ROOT HKEY = 0x80000000
+ HKEY_CURRENT_USER HKEY = 0x80000001
+ HKEY_LOCAL_MACHINE HKEY = 0x80000002
+ HKEY_USERS HKEY = 0x80000003
+ HKEY_PERFORMANCE_DATA HKEY = 0x80000004
+ HKEY_CURRENT_CONFIG HKEY = 0x80000005
+ HKEY_DYN_DATA HKEY = 0x80000006
)
// Registry Key Security and Access Rights
const (
- KEY_ALL_ACCESS = 0xF003F
- KEY_CREATE_SUB_KEY = 0x0004
- KEY_ENUMERATE_SUB_KEYS = 0x0008
- KEY_NOTIFY = 0x0010
- KEY_QUERY_VALUE = 0x0001
- KEY_SET_VALUE = 0x0002
- KEY_READ = 0x20019
- KEY_WRITE = 0x20006
+ KEY_ALL_ACCESS = 0xF003F
+ KEY_CREATE_SUB_KEY = 0x0004
+ KEY_ENUMERATE_SUB_KEYS = 0x0008
+ KEY_NOTIFY = 0x0010
+ KEY_QUERY_VALUE = 0x0001
+ KEY_SET_VALUE = 0x0002
+ KEY_READ = 0x20019
+ KEY_WRITE = 0x20006
)
const (
- NFR_ANSI = 1
- NFR_UNICODE = 2
- NF_QUERY = 3
- NF_REQUERY = 4
+ NFR_ANSI = 1
+ NFR_UNICODE = 2
+ NF_QUERY = 3
+ NF_REQUERY = 4
)
// Registry value types
const (
- RRF_RT_REG_NONE = 0x00000001
- RRF_RT_REG_SZ = 0x00000002
- RRF_RT_REG_EXPAND_SZ = 0x00000004
- RRF_RT_REG_BINARY = 0x00000008
- RRF_RT_REG_DWORD = 0x00000010
- RRF_RT_REG_MULTI_SZ = 0x00000020
- RRF_RT_REG_QWORD = 0x00000040
- RRF_RT_DWORD = (RRF_RT_REG_BINARY | RRF_RT_REG_DWORD)
- RRF_RT_QWORD = (RRF_RT_REG_BINARY | RRF_RT_REG_QWORD)
- RRF_RT_ANY = 0x0000ffff
- RRF_NOEXPAND = 0x10000000
- RRF_ZEROONFAILURE = 0x20000000
- REG_PROCESS_APPKEY = 0x00000001
- REG_MUI_STRING_TRUNCATE = 0x00000001
+ RRF_RT_REG_NONE = 0x00000001
+ RRF_RT_REG_SZ = 0x00000002
+ RRF_RT_REG_EXPAND_SZ = 0x00000004
+ RRF_RT_REG_BINARY = 0x00000008
+ RRF_RT_REG_DWORD = 0x00000010
+ RRF_RT_REG_MULTI_SZ = 0x00000020
+ RRF_RT_REG_QWORD = 0x00000040
+ RRF_RT_DWORD = (RRF_RT_REG_BINARY | RRF_RT_REG_DWORD)
+ RRF_RT_QWORD = (RRF_RT_REG_BINARY | RRF_RT_REG_QWORD)
+ RRF_RT_ANY = 0x0000ffff
+ RRF_NOEXPAND = 0x10000000
+ RRF_ZEROONFAILURE = 0x20000000
+ REG_PROCESS_APPKEY = 0x00000001
+ REG_MUI_STRING_TRUNCATE = 0x00000001
)
// PeekMessage wRemoveMsg value
const (
- PM_NOREMOVE = 0x000
- PM_REMOVE = 0x001
- PM_NOYIELD = 0x002
+ PM_NOREMOVE = 0x000
+ PM_REMOVE = 0x001
+ PM_NOYIELD = 0x002
)
// ImageList flags
const (
- ILC_MASK = 0x00000001
- ILC_COLOR = 0x00000000
- ILC_COLORDDB = 0x000000FE
- ILC_COLOR4 = 0x00000004
- ILC_COLOR8 = 0x00000008
- ILC_COLOR16 = 0x00000010
- ILC_COLOR24 = 0x00000018
- ILC_COLOR32 = 0x00000020
- ILC_PALETTE = 0x00000800
- ILC_MIRROR = 0x00002000
- ILC_PERITEMMIRROR = 0x00008000
- ILC_ORIGINALSIZE = 0x00010000
- ILC_HIGHQUALITYSCALE = 0x00020000
+ ILC_MASK = 0x00000001
+ ILC_COLOR = 0x00000000
+ ILC_COLORDDB = 0x000000FE
+ ILC_COLOR4 = 0x00000004
+ ILC_COLOR8 = 0x00000008
+ ILC_COLOR16 = 0x00000010
+ ILC_COLOR24 = 0x00000018
+ ILC_COLOR32 = 0x00000020
+ ILC_PALETTE = 0x00000800
+ ILC_MIRROR = 0x00002000
+ ILC_PERITEMMIRROR = 0x00008000
+ ILC_ORIGINALSIZE = 0x00010000
+ ILC_HIGHQUALITYSCALE = 0x00020000
)
// Virtual-Key Codes
const (
- VK_LBUTTON = 0x01
- VK_RBUTTON = 0x02
- VK_CANCEL = 0x03
- VK_MBUTTON = 0x04
- VK_XBUTTON1 = 0x05
- VK_XBUTTON2 = 0x06
- VK_BACK = 0x08
- VK_TAB = 0x09
- VK_CLEAR = 0x0C
- VK_RETURN = 0x0D
- VK_SHIFT = 0x10
- VK_CONTROL = 0x11
- VK_MENU = 0x12
- VK_PAUSE = 0x13
- VK_CAPITAL = 0x14
- VK_KANA = 0x15
- VK_HANGEUL = 0x15
- VK_HANGUL = 0x15
- VK_JUNJA = 0x17
- VK_FINAL = 0x18
- VK_HANJA = 0x19
- VK_KANJI = 0x19
- VK_ESCAPE = 0x1B
- VK_CONVERT = 0x1C
- VK_NONCONVERT = 0x1D
- VK_ACCEPT = 0x1E
- VK_MODECHANGE = 0x1F
- VK_SPACE = 0x20
- VK_PRIOR = 0x21
- VK_NEXT = 0x22
- VK_END = 0x23
- VK_HOME = 0x24
- VK_LEFT = 0x25
- VK_UP = 0x26
- VK_RIGHT = 0x27
- VK_DOWN = 0x28
- VK_SELECT = 0x29
- VK_PRINT = 0x2A
- VK_EXECUTE = 0x2B
- VK_SNAPSHOT = 0x2C
- VK_INSERT = 0x2D
- VK_DELETE = 0x2E
- VK_HELP = 0x2F
- VK_LWIN = 0x5B
- VK_RWIN = 0x5C
- VK_APPS = 0x5D
- VK_SLEEP = 0x5F
- VK_NUMPAD0 = 0x60
- VK_NUMPAD1 = 0x61
- VK_NUMPAD2 = 0x62
- VK_NUMPAD3 = 0x63
- VK_NUMPAD4 = 0x64
- VK_NUMPAD5 = 0x65
- VK_NUMPAD6 = 0x66
- VK_NUMPAD7 = 0x67
- VK_NUMPAD8 = 0x68
- VK_NUMPAD9 = 0x69
- VK_MULTIPLY = 0x6A
- VK_ADD = 0x6B
- VK_SEPARATOR = 0x6C
- VK_SUBTRACT = 0x6D
- VK_DECIMAL = 0x6E
- VK_DIVIDE = 0x6F
- VK_F1 = 0x70
- VK_F2 = 0x71
- VK_F3 = 0x72
- VK_F4 = 0x73
- VK_F5 = 0x74
- VK_F6 = 0x75
- VK_F7 = 0x76
- VK_F8 = 0x77
- VK_F9 = 0x78
- VK_F10 = 0x79
- VK_F11 = 0x7A
- VK_F12 = 0x7B
- VK_F13 = 0x7C
- VK_F14 = 0x7D
- VK_F15 = 0x7E
- VK_F16 = 0x7F
- VK_F17 = 0x80
- VK_F18 = 0x81
- VK_F19 = 0x82
- VK_F20 = 0x83
- VK_F21 = 0x84
- VK_F22 = 0x85
- VK_F23 = 0x86
- VK_F24 = 0x87
- VK_NUMLOCK = 0x90
- VK_SCROLL = 0x91
- VK_OEM_NEC_EQUAL = 0x92
- VK_OEM_FJ_JISHO = 0x92
- VK_OEM_FJ_MASSHOU = 0x93
- VK_OEM_FJ_TOUROKU = 0x94
- VK_OEM_FJ_LOYA = 0x95
- VK_OEM_FJ_ROYA = 0x96
- VK_LSHIFT = 0xA0
- VK_RSHIFT = 0xA1
- VK_LCONTROL = 0xA2
- VK_RCONTROL = 0xA3
- VK_LMENU = 0xA4
- VK_RMENU = 0xA5
- VK_BROWSER_BACK = 0xA6
- VK_BROWSER_FORWARD = 0xA7
- VK_BROWSER_REFRESH = 0xA8
- VK_BROWSER_STOP = 0xA9
- VK_BROWSER_SEARCH = 0xAA
- VK_BROWSER_FAVORITES = 0xAB
- VK_BROWSER_HOME = 0xAC
- VK_VOLUME_MUTE = 0xAD
- VK_VOLUME_DOWN = 0xAE
- VK_VOLUME_UP = 0xAF
- VK_MEDIA_NEXT_TRACK = 0xB0
- VK_MEDIA_PREV_TRACK = 0xB1
- VK_MEDIA_STOP = 0xB2
- VK_MEDIA_PLAY_PAUSE = 0xB3
- VK_LAUNCH_MAIL = 0xB4
- VK_LAUNCH_MEDIA_SELECT = 0xB5
- VK_LAUNCH_APP1 = 0xB6
- VK_LAUNCH_APP2 = 0xB7
- VK_OEM_1 = 0xBA
- VK_OEM_PLUS = 0xBB
- VK_OEM_COMMA = 0xBC
- VK_OEM_MINUS = 0xBD
- VK_OEM_PERIOD = 0xBE
- VK_OEM_2 = 0xBF
- VK_OEM_3 = 0xC0
- VK_OEM_4 = 0xDB
- VK_OEM_5 = 0xDC
- VK_OEM_6 = 0xDD
- VK_OEM_7 = 0xDE
- VK_OEM_8 = 0xDF
- VK_OEM_AX = 0xE1
- VK_OEM_102 = 0xE2
- VK_ICO_HELP = 0xE3
- VK_ICO_00 = 0xE4
- VK_PROCESSKEY = 0xE5
- VK_ICO_CLEAR = 0xE6
- VK_OEM_RESET = 0xE9
- VK_OEM_JUMP = 0xEA
- VK_OEM_PA1 = 0xEB
- VK_OEM_PA2 = 0xEC
- VK_OEM_PA3 = 0xED
- VK_OEM_WSCTRL = 0xEE
- VK_OEM_CUSEL = 0xEF
- VK_OEM_ATTN = 0xF0
- VK_OEM_FINISH = 0xF1
- VK_OEM_COPY = 0xF2
- VK_OEM_AUTO = 0xF3
- VK_OEM_ENLW = 0xF4
- VK_OEM_BACKTAB = 0xF5
- VK_ATTN = 0xF6
- VK_CRSEL = 0xF7
- VK_EXSEL = 0xF8
- VK_EREOF = 0xF9
- VK_PLAY = 0xFA
- VK_ZOOM = 0xFB
- VK_NONAME = 0xFC
- VK_PA1 = 0xFD
- VK_OEM_CLEAR = 0xFE
+ VK_LBUTTON = 0x01
+ VK_RBUTTON = 0x02
+ VK_CANCEL = 0x03
+ VK_MBUTTON = 0x04
+ VK_XBUTTON1 = 0x05
+ VK_XBUTTON2 = 0x06
+ VK_BACK = 0x08
+ VK_TAB = 0x09
+ VK_CLEAR = 0x0C
+ VK_RETURN = 0x0D
+ VK_SHIFT = 0x10
+ VK_CONTROL = 0x11
+ VK_MENU = 0x12
+ VK_PAUSE = 0x13
+ VK_CAPITAL = 0x14
+ VK_KANA = 0x15
+ VK_HANGEUL = 0x15
+ VK_HANGUL = 0x15
+ VK_JUNJA = 0x17
+ VK_FINAL = 0x18
+ VK_HANJA = 0x19
+ VK_KANJI = 0x19
+ VK_ESCAPE = 0x1B
+ VK_CONVERT = 0x1C
+ VK_NONCONVERT = 0x1D
+ VK_ACCEPT = 0x1E
+ VK_MODECHANGE = 0x1F
+ VK_SPACE = 0x20
+ VK_PRIOR = 0x21
+ VK_NEXT = 0x22
+ VK_END = 0x23
+ VK_HOME = 0x24
+ VK_LEFT = 0x25
+ VK_UP = 0x26
+ VK_RIGHT = 0x27
+ VK_DOWN = 0x28
+ VK_SELECT = 0x29
+ VK_PRINT = 0x2A
+ VK_EXECUTE = 0x2B
+ VK_SNAPSHOT = 0x2C
+ VK_INSERT = 0x2D
+ VK_DELETE = 0x2E
+ VK_HELP = 0x2F
+ VK_LWIN = 0x5B
+ VK_RWIN = 0x5C
+ VK_APPS = 0x5D
+ VK_SLEEP = 0x5F
+ VK_NUMPAD0 = 0x60
+ VK_NUMPAD1 = 0x61
+ VK_NUMPAD2 = 0x62
+ VK_NUMPAD3 = 0x63
+ VK_NUMPAD4 = 0x64
+ VK_NUMPAD5 = 0x65
+ VK_NUMPAD6 = 0x66
+ VK_NUMPAD7 = 0x67
+ VK_NUMPAD8 = 0x68
+ VK_NUMPAD9 = 0x69
+ VK_MULTIPLY = 0x6A
+ VK_ADD = 0x6B
+ VK_SEPARATOR = 0x6C
+ VK_SUBTRACT = 0x6D
+ VK_DECIMAL = 0x6E
+ VK_DIVIDE = 0x6F
+ VK_F1 = 0x70
+ VK_F2 = 0x71
+ VK_F3 = 0x72
+ VK_F4 = 0x73
+ VK_F5 = 0x74
+ VK_F6 = 0x75
+ VK_F7 = 0x76
+ VK_F8 = 0x77
+ VK_F9 = 0x78
+ VK_F10 = 0x79
+ VK_F11 = 0x7A
+ VK_F12 = 0x7B
+ VK_F13 = 0x7C
+ VK_F14 = 0x7D
+ VK_F15 = 0x7E
+ VK_F16 = 0x7F
+ VK_F17 = 0x80
+ VK_F18 = 0x81
+ VK_F19 = 0x82
+ VK_F20 = 0x83
+ VK_F21 = 0x84
+ VK_F22 = 0x85
+ VK_F23 = 0x86
+ VK_F24 = 0x87
+ VK_NUMLOCK = 0x90
+ VK_SCROLL = 0x91
+ VK_OEM_NEC_EQUAL = 0x92
+ VK_OEM_FJ_JISHO = 0x92
+ VK_OEM_FJ_MASSHOU = 0x93
+ VK_OEM_FJ_TOUROKU = 0x94
+ VK_OEM_FJ_LOYA = 0x95
+ VK_OEM_FJ_ROYA = 0x96
+ VK_LSHIFT = 0xA0
+ VK_RSHIFT = 0xA1
+ VK_LCONTROL = 0xA2
+ VK_RCONTROL = 0xA3
+ VK_LMENU = 0xA4
+ VK_RMENU = 0xA5
+ VK_BROWSER_BACK = 0xA6
+ VK_BROWSER_FORWARD = 0xA7
+ VK_BROWSER_REFRESH = 0xA8
+ VK_BROWSER_STOP = 0xA9
+ VK_BROWSER_SEARCH = 0xAA
+ VK_BROWSER_FAVORITES = 0xAB
+ VK_BROWSER_HOME = 0xAC
+ VK_VOLUME_MUTE = 0xAD
+ VK_VOLUME_DOWN = 0xAE
+ VK_VOLUME_UP = 0xAF
+ VK_MEDIA_NEXT_TRACK = 0xB0
+ VK_MEDIA_PREV_TRACK = 0xB1
+ VK_MEDIA_STOP = 0xB2
+ VK_MEDIA_PLAY_PAUSE = 0xB3
+ VK_LAUNCH_MAIL = 0xB4
+ VK_LAUNCH_MEDIA_SELECT = 0xB5
+ VK_LAUNCH_APP1 = 0xB6
+ VK_LAUNCH_APP2 = 0xB7
+ VK_OEM_1 = 0xBA
+ VK_OEM_PLUS = 0xBB
+ VK_OEM_COMMA = 0xBC
+ VK_OEM_MINUS = 0xBD
+ VK_OEM_PERIOD = 0xBE
+ VK_OEM_2 = 0xBF
+ VK_OEM_3 = 0xC0
+ VK_OEM_4 = 0xDB
+ VK_OEM_5 = 0xDC
+ VK_OEM_6 = 0xDD
+ VK_OEM_7 = 0xDE
+ VK_OEM_8 = 0xDF
+ VK_OEM_AX = 0xE1
+ VK_OEM_102 = 0xE2
+ VK_ICO_HELP = 0xE3
+ VK_ICO_00 = 0xE4
+ VK_PROCESSKEY = 0xE5
+ VK_ICO_CLEAR = 0xE6
+ VK_OEM_RESET = 0xE9
+ VK_OEM_JUMP = 0xEA
+ VK_OEM_PA1 = 0xEB
+ VK_OEM_PA2 = 0xEC
+ VK_OEM_PA3 = 0xED
+ VK_OEM_WSCTRL = 0xEE
+ VK_OEM_CUSEL = 0xEF
+ VK_OEM_ATTN = 0xF0
+ VK_OEM_FINISH = 0xF1
+ VK_OEM_COPY = 0xF2
+ VK_OEM_AUTO = 0xF3
+ VK_OEM_ENLW = 0xF4
+ VK_OEM_BACKTAB = 0xF5
+ VK_ATTN = 0xF6
+ VK_CRSEL = 0xF7
+ VK_EXSEL = 0xF8
+ VK_EREOF = 0xF9
+ VK_PLAY = 0xFA
+ VK_ZOOM = 0xFB
+ VK_NONAME = 0xFC
+ VK_PA1 = 0xFD
+ VK_OEM_CLEAR = 0xFE
)
// Registry Value Types
const (
- REG_NONE = 0
- REG_SZ = 1
- REG_EXPAND_SZ = 2
- REG_BINARY = 3
- REG_DWORD = 4
- REG_DWORD_LITTLE_ENDIAN = 4
- REG_DWORD_BIG_ENDIAN = 5
- REG_LINK = 6
- REG_MULTI_SZ = 7
- REG_RESOURCE_LIST = 8
- REG_FULL_RESOURCE_DESCRIPTOR = 9
- REG_RESOURCE_REQUIREMENTS_LIST = 10
- REG_QWORD = 11
- REG_QWORD_LITTLE_ENDIAN = 11
+ REG_NONE = 0
+ REG_SZ = 1
+ REG_EXPAND_SZ = 2
+ REG_BINARY = 3
+ REG_DWORD = 4
+ REG_DWORD_LITTLE_ENDIAN = 4
+ REG_DWORD_BIG_ENDIAN = 5
+ REG_LINK = 6
+ REG_MULTI_SZ = 7
+ REG_RESOURCE_LIST = 8
+ REG_FULL_RESOURCE_DESCRIPTOR = 9
+ REG_RESOURCE_REQUIREMENTS_LIST = 10
+ REG_QWORD = 11
+ REG_QWORD_LITTLE_ENDIAN = 11
)
// Tooltip styles
const (
- TTS_ALWAYSTIP = 0x01
- TTS_NOPREFIX = 0x02
- TTS_NOANIMATE = 0x10
- TTS_NOFADE = 0x20
- TTS_BALLOON = 0x40
- TTS_CLOSE = 0x80
- TTS_USEVISUALSTYLE = 0x100
+ TTS_ALWAYSTIP = 0x01
+ TTS_NOPREFIX = 0x02
+ TTS_NOANIMATE = 0x10
+ TTS_NOFADE = 0x20
+ TTS_BALLOON = 0x40
+ TTS_CLOSE = 0x80
+ TTS_USEVISUALSTYLE = 0x100
)
// Tooltip messages
const (
- TTM_ACTIVATE = (WM_USER + 1)
- TTM_SETDELAYTIME = (WM_USER + 3)
- TTM_ADDTOOL = (WM_USER + 50)
- TTM_DELTOOL = (WM_USER + 51)
- TTM_NEWTOOLRECT = (WM_USER + 52)
- TTM_RELAYEVENT = (WM_USER + 7)
- TTM_GETTOOLINFO = (WM_USER + 53)
- TTM_SETTOOLINFO = (WM_USER + 54)
- TTM_HITTEST = (WM_USER + 55)
- TTM_GETTEXT = (WM_USER + 56)
- TTM_UPDATETIPTEXT = (WM_USER + 57)
- TTM_GETTOOLCOUNT = (WM_USER + 13)
- TTM_ENUMTOOLS = (WM_USER + 58)
- TTM_GETCURRENTTOOL = (WM_USER + 59)
- TTM_WINDOWFROMPOINT = (WM_USER + 16)
- TTM_TRACKACTIVATE = (WM_USER + 17)
- TTM_TRACKPOSITION = (WM_USER + 18)
- TTM_SETTIPBKCOLOR = (WM_USER + 19)
- TTM_SETTIPTEXTCOLOR = (WM_USER + 20)
- TTM_GETDELAYTIME = (WM_USER + 21)
- TTM_GETTIPBKCOLOR = (WM_USER + 22)
- TTM_GETTIPTEXTCOLOR = (WM_USER + 23)
- TTM_SETMAXTIPWIDTH = (WM_USER + 24)
- TTM_GETMAXTIPWIDTH = (WM_USER + 25)
- TTM_SETMARGIN = (WM_USER + 26)
- TTM_GETMARGIN = (WM_USER + 27)
- TTM_POP = (WM_USER + 28)
- TTM_UPDATE = (WM_USER + 29)
- TTM_GETBUBBLESIZE = (WM_USER + 30)
- TTM_ADJUSTRECT = (WM_USER + 31)
- TTM_SETTITLE = (WM_USER + 33)
- TTM_POPUP = (WM_USER + 34)
- TTM_GETTITLE = (WM_USER + 35)
+ TTM_ACTIVATE = (WM_USER + 1)
+ TTM_SETDELAYTIME = (WM_USER + 3)
+ TTM_ADDTOOL = (WM_USER + 50)
+ TTM_DELTOOL = (WM_USER + 51)
+ TTM_NEWTOOLRECT = (WM_USER + 52)
+ TTM_RELAYEVENT = (WM_USER + 7)
+ TTM_GETTOOLINFO = (WM_USER + 53)
+ TTM_SETTOOLINFO = (WM_USER + 54)
+ TTM_HITTEST = (WM_USER + 55)
+ TTM_GETTEXT = (WM_USER + 56)
+ TTM_UPDATETIPTEXT = (WM_USER + 57)
+ TTM_GETTOOLCOUNT = (WM_USER + 13)
+ TTM_ENUMTOOLS = (WM_USER + 58)
+ TTM_GETCURRENTTOOL = (WM_USER + 59)
+ TTM_WINDOWFROMPOINT = (WM_USER + 16)
+ TTM_TRACKACTIVATE = (WM_USER + 17)
+ TTM_TRACKPOSITION = (WM_USER + 18)
+ TTM_SETTIPBKCOLOR = (WM_USER + 19)
+ TTM_SETTIPTEXTCOLOR = (WM_USER + 20)
+ TTM_GETDELAYTIME = (WM_USER + 21)
+ TTM_GETTIPBKCOLOR = (WM_USER + 22)
+ TTM_GETTIPTEXTCOLOR = (WM_USER + 23)
+ TTM_SETMAXTIPWIDTH = (WM_USER + 24)
+ TTM_GETMAXTIPWIDTH = (WM_USER + 25)
+ TTM_SETMARGIN = (WM_USER + 26)
+ TTM_GETMARGIN = (WM_USER + 27)
+ TTM_POP = (WM_USER + 28)
+ TTM_UPDATE = (WM_USER + 29)
+ TTM_GETBUBBLESIZE = (WM_USER + 30)
+ TTM_ADJUSTRECT = (WM_USER + 31)
+ TTM_SETTITLE = (WM_USER + 33)
+ TTM_POPUP = (WM_USER + 34)
+ TTM_GETTITLE = (WM_USER + 35)
)
// Tooltip icons
const (
- TTI_NONE = 0
- TTI_INFO = 1
- TTI_WARNING = 2
- TTI_ERROR = 3
- TTI_INFO_LARGE = 4
- TTI_WARNING_LARGE = 5
- TTI_ERROR_LARGE = 6
+ TTI_NONE = 0
+ TTI_INFO = 1
+ TTI_WARNING = 2
+ TTI_ERROR = 3
+ TTI_INFO_LARGE = 4
+ TTI_WARNING_LARGE = 5
+ TTI_ERROR_LARGE = 6
)
// Tooltip notifications
const (
- TTN_FIRST = -520
- TTN_LAST = -549
- TTN_GETDISPINFO = (TTN_FIRST - 10)
- TTN_SHOW = (TTN_FIRST - 1)
- TTN_POP = (TTN_FIRST - 2)
- TTN_LINKCLICK = (TTN_FIRST - 3)
- TTN_NEEDTEXT = TTN_GETDISPINFO
+ TTN_FIRST = -520
+ TTN_LAST = -549
+ TTN_GETDISPINFO = (TTN_FIRST - 10)
+ TTN_SHOW = (TTN_FIRST - 1)
+ TTN_POP = (TTN_FIRST - 2)
+ TTN_LINKCLICK = (TTN_FIRST - 3)
+ TTN_NEEDTEXT = TTN_GETDISPINFO
)
const (
- TTF_IDISHWND = 0x0001
- TTF_CENTERTIP = 0x0002
- TTF_RTLREADING = 0x0004
- TTF_SUBCLASS = 0x0010
- TTF_TRACK = 0x0020
- TTF_ABSOLUTE = 0x0080
- TTF_TRANSPARENT = 0x0100
- TTF_PARSELINKS = 0x1000
- TTF_DI_SETITEM = 0x8000
+ TTF_IDISHWND = 0x0001
+ TTF_CENTERTIP = 0x0002
+ TTF_RTLREADING = 0x0004
+ TTF_SUBCLASS = 0x0010
+ TTF_TRACK = 0x0020
+ TTF_ABSOLUTE = 0x0080
+ TTF_TRANSPARENT = 0x0100
+ TTF_PARSELINKS = 0x1000
+ TTF_DI_SETITEM = 0x8000
)
const (
- SWP_NOSIZE = 0x0001
- SWP_NOMOVE = 0x0002
- SWP_NOZORDER = 0x0004
- SWP_NOREDRAW = 0x0008
- SWP_NOACTIVATE = 0x0010
- SWP_FRAMECHANGED = 0x0020
- SWP_SHOWWINDOW = 0x0040
- SWP_HIDEWINDOW = 0x0080
- SWP_NOCOPYBITS = 0x0100
- SWP_NOOWNERZORDER = 0x0200
- SWP_NOSENDCHANGING = 0x0400
- SWP_DRAWFRAME = SWP_FRAMECHANGED
- SWP_NOREPOSITION = SWP_NOOWNERZORDER
- SWP_DEFERERASE = 0x2000
- SWP_ASYNCWINDOWPOS = 0x4000
+ SWP_NOSIZE = 0x0001
+ SWP_NOMOVE = 0x0002
+ SWP_NOZORDER = 0x0004
+ SWP_NOREDRAW = 0x0008
+ SWP_NOACTIVATE = 0x0010
+ SWP_FRAMECHANGED = 0x0020
+ SWP_SHOWWINDOW = 0x0040
+ SWP_HIDEWINDOW = 0x0080
+ SWP_NOCOPYBITS = 0x0100
+ SWP_NOOWNERZORDER = 0x0200
+ SWP_NOSENDCHANGING = 0x0400
+ SWP_DRAWFRAME = SWP_FRAMECHANGED
+ SWP_NOREPOSITION = SWP_NOOWNERZORDER
+ SWP_DEFERERASE = 0x2000
+ SWP_ASYNCWINDOWPOS = 0x4000
)
// Predefined window handles
const (
- HWND_BROADCAST = HWND(0xFFFF)
- HWND_BOTTOM = HWND(1)
- HWND_NOTOPMOST = ^HWND(1) // -2
- HWND_TOP = HWND(0)
- HWND_TOPMOST = ^HWND(0) // -1
- HWND_DESKTOP = HWND(0)
- HWND_MESSAGE = ^HWND(2) // -3
+ HWND_BROADCAST = HWND(0xFFFF)
+ HWND_BOTTOM = HWND(1)
+ HWND_NOTOPMOST = ^HWND(1) // -2
+ HWND_TOP = HWND(0)
+ HWND_TOPMOST = ^HWND(0) // -1
+ HWND_DESKTOP = HWND(0)
+ HWND_MESSAGE = ^HWND(2) // -3
)
// Pen types
const (
- PS_COSMETIC = 0x00000000
- PS_GEOMETRIC = 0x00010000
- PS_TYPE_MASK = 0x000F0000
+ PS_COSMETIC = 0x00000000
+ PS_GEOMETRIC = 0x00010000
+ PS_TYPE_MASK = 0x000F0000
)
// Pen styles
const (
- PS_SOLID = 0
- PS_DASH = 1
- PS_DOT = 2
- PS_DASHDOT = 3
- PS_DASHDOTDOT = 4
- PS_NULL = 5
- PS_INSIDEFRAME = 6
- PS_USERSTYLE = 7
- PS_ALTERNATE = 8
- PS_STYLE_MASK = 0x0000000F
+ PS_SOLID = 0
+ PS_DASH = 1
+ PS_DOT = 2
+ PS_DASHDOT = 3
+ PS_DASHDOTDOT = 4
+ PS_NULL = 5
+ PS_INSIDEFRAME = 6
+ PS_USERSTYLE = 7
+ PS_ALTERNATE = 8
+ PS_STYLE_MASK = 0x0000000F
)
// Pen cap types
const (
- PS_ENDCAP_ROUND = 0x00000000
- PS_ENDCAP_SQUARE = 0x00000100
- PS_ENDCAP_FLAT = 0x00000200
- PS_ENDCAP_MASK = 0x00000F00
+ PS_ENDCAP_ROUND = 0x00000000
+ PS_ENDCAP_SQUARE = 0x00000100
+ PS_ENDCAP_FLAT = 0x00000200
+ PS_ENDCAP_MASK = 0x00000F00
)
// Pen join types
const (
- PS_JOIN_ROUND = 0x00000000
- PS_JOIN_BEVEL = 0x00001000
- PS_JOIN_MITER = 0x00002000
- PS_JOIN_MASK = 0x0000F000
+ PS_JOIN_ROUND = 0x00000000
+ PS_JOIN_BEVEL = 0x00001000
+ PS_JOIN_MITER = 0x00002000
+ PS_JOIN_MASK = 0x0000F000
)
// Hatch styles
const (
- HS_HORIZONTAL = 0
- HS_VERTICAL = 1
- HS_FDIAGONAL = 2
- HS_BDIAGONAL = 3
- HS_CROSS = 4
- HS_DIAGCROSS = 5
+ HS_HORIZONTAL = 0
+ HS_VERTICAL = 1
+ HS_FDIAGONAL = 2
+ HS_BDIAGONAL = 3
+ HS_CROSS = 4
+ HS_DIAGCROSS = 5
)
// Brush styles
const (
- BS_SOLID = 0
- BS_NULL = 1
- BS_HOLLOW = BS_NULL
- BS_HATCHED = 2
- BS_PATTERN = 3
- BS_INDEXED = 4
- BS_DIBPATTERN = 5
- BS_DIBPATTERNPT = 6
- BS_PATTERN8X8 = 7
- BS_DIBPATTERN8X8 = 8
- BS_MONOPATTERN = 9
+ BS_SOLID = 0
+ BS_NULL = 1
+ BS_HOLLOW = BS_NULL
+ BS_HATCHED = 2
+ BS_PATTERN = 3
+ BS_INDEXED = 4
+ BS_DIBPATTERN = 5
+ BS_DIBPATTERNPT = 6
+ BS_PATTERN8X8 = 7
+ BS_DIBPATTERN8X8 = 8
+ BS_MONOPATTERN = 9
)
// TRACKMOUSEEVENT flags
const (
- TME_HOVER = 0x00000001
- TME_LEAVE = 0x00000002
- TME_NONCLIENT = 0x00000010
- TME_QUERY = 0x40000000
- TME_CANCEL = 0x80000000
+ TME_HOVER = 0x00000001
+ TME_LEAVE = 0x00000002
+ TME_NONCLIENT = 0x00000010
+ TME_QUERY = 0x40000000
+ TME_CANCEL = 0x80000000
- HOVER_DEFAULT = 0xFFFFFFFF
+ HOVER_DEFAULT = 0xFFFFFFFF
)
// WM_NCHITTEST and MOUSEHOOKSTRUCT Mouse Position Codes
const (
- HTERROR = (-2)
- HTTRANSPARENT = (-1)
- HTNOWHERE = 0
- HTCLIENT = 1
- HTCAPTION = 2
- HTSYSMENU = 3
- HTGROWBOX = 4
- HTSIZE = HTGROWBOX
- HTMENU = 5
- HTHSCROLL = 6
- HTVSCROLL = 7
- HTMINBUTTON = 8
- HTMAXBUTTON = 9
- HTLEFT = 10
- HTRIGHT = 11
- HTTOP = 12
- HTTOPLEFT = 13
- HTTOPRIGHT = 14
- HTBOTTOM = 15
- HTBOTTOMLEFT = 16
- HTBOTTOMRIGHT = 17
- HTBORDER = 18
- HTREDUCE = HTMINBUTTON
- HTZOOM = HTMAXBUTTON
- HTSIZEFIRST = HTLEFT
- HTSIZELAST = HTBOTTOMRIGHT
- HTOBJECT = 19
- HTCLOSE = 20
- HTHELP = 21
+ HTERROR = (-2)
+ HTTRANSPARENT = (-1)
+ HTNOWHERE = 0
+ HTCLIENT = 1
+ HTCAPTION = 2
+ HTSYSMENU = 3
+ HTGROWBOX = 4
+ HTSIZE = HTGROWBOX
+ HTMENU = 5
+ HTHSCROLL = 6
+ HTVSCROLL = 7
+ HTMINBUTTON = 8
+ HTMAXBUTTON = 9
+ HTLEFT = 10
+ HTRIGHT = 11
+ HTTOP = 12
+ HTTOPLEFT = 13
+ HTTOPRIGHT = 14
+ HTBOTTOM = 15
+ HTBOTTOMLEFT = 16
+ HTBOTTOMRIGHT = 17
+ HTBORDER = 18
+ HTREDUCE = HTMINBUTTON
+ HTZOOM = HTMAXBUTTON
+ HTSIZEFIRST = HTLEFT
+ HTSIZELAST = HTBOTTOMRIGHT
+ HTOBJECT = 19
+ HTCLOSE = 20
+ HTHELP = 21
)
// DrawText[Ex] format flags
const (
- DT_TOP = 0x00000000
- DT_LEFT = 0x00000000
- DT_CENTER = 0x00000001
- DT_RIGHT = 0x00000002
- DT_VCENTER = 0x00000004
- DT_BOTTOM = 0x00000008
- DT_WORDBREAK = 0x00000010
- DT_SINGLELINE = 0x00000020
- DT_EXPANDTABS = 0x00000040
- DT_TABSTOP = 0x00000080
- DT_NOCLIP = 0x00000100
- DT_EXTERNALLEADING = 0x00000200
- DT_CALCRECT = 0x00000400
- DT_NOPREFIX = 0x00000800
- DT_INTERNAL = 0x00001000
- DT_EDITCONTROL = 0x00002000
- DT_PATH_ELLIPSIS = 0x00004000
- DT_END_ELLIPSIS = 0x00008000
- DT_MODIFYSTRING = 0x00010000
- DT_RTLREADING = 0x00020000
- DT_WORD_ELLIPSIS = 0x00040000
- DT_NOFULLWIDTHCHARBREAK = 0x00080000
- DT_HIDEPREFIX = 0x00100000
- DT_PREFIXONLY = 0x00200000
+ DT_TOP = 0x00000000
+ DT_LEFT = 0x00000000
+ DT_CENTER = 0x00000001
+ DT_RIGHT = 0x00000002
+ DT_VCENTER = 0x00000004
+ DT_BOTTOM = 0x00000008
+ DT_WORDBREAK = 0x00000010
+ DT_SINGLELINE = 0x00000020
+ DT_EXPANDTABS = 0x00000040
+ DT_TABSTOP = 0x00000080
+ DT_NOCLIP = 0x00000100
+ DT_EXTERNALLEADING = 0x00000200
+ DT_CALCRECT = 0x00000400
+ DT_NOPREFIX = 0x00000800
+ DT_INTERNAL = 0x00001000
+ DT_EDITCONTROL = 0x00002000
+ DT_PATH_ELLIPSIS = 0x00004000
+ DT_END_ELLIPSIS = 0x00008000
+ DT_MODIFYSTRING = 0x00010000
+ DT_RTLREADING = 0x00020000
+ DT_WORD_ELLIPSIS = 0x00040000
+ DT_NOFULLWIDTHCHARBREAK = 0x00080000
+ DT_HIDEPREFIX = 0x00100000
+ DT_PREFIXONLY = 0x00200000
)
const CLR_INVALID = 0xFFFFFFFF
// Background Modes
const (
- TRANSPARENT = 1
- OPAQUE = 2
- BKMODE_LAST = 2
+ TRANSPARENT = 1
+ OPAQUE = 2
+ BKMODE_LAST = 2
)
// Global Memory Flags
const (
- GMEM_FIXED = 0x0000
- GMEM_MOVEABLE = 0x0002
- GMEM_NOCOMPACT = 0x0010
- GMEM_NODISCARD = 0x0020
- GMEM_ZEROINIT = 0x0040
- GMEM_MODIFY = 0x0080
- GMEM_DISCARDABLE = 0x0100
- GMEM_NOT_BANKED = 0x1000
- GMEM_SHARE = 0x2000
- GMEM_DDESHARE = 0x2000
- GMEM_NOTIFY = 0x4000
- GMEM_LOWER = GMEM_NOT_BANKED
- GMEM_VALID_FLAGS = 0x7F72
- GMEM_INVALID_HANDLE = 0x8000
- GHND = (GMEM_MOVEABLE | GMEM_ZEROINIT)
- GPTR = (GMEM_FIXED | GMEM_ZEROINIT)
+ GMEM_FIXED = 0x0000
+ GMEM_MOVEABLE = 0x0002
+ GMEM_NOCOMPACT = 0x0010
+ GMEM_NODISCARD = 0x0020
+ GMEM_ZEROINIT = 0x0040
+ GMEM_MODIFY = 0x0080
+ GMEM_DISCARDABLE = 0x0100
+ GMEM_NOT_BANKED = 0x1000
+ GMEM_SHARE = 0x2000
+ GMEM_DDESHARE = 0x2000
+ GMEM_NOTIFY = 0x4000
+ GMEM_LOWER = GMEM_NOT_BANKED
+ GMEM_VALID_FLAGS = 0x7F72
+ GMEM_INVALID_HANDLE = 0x8000
+ GHND = (GMEM_MOVEABLE | GMEM_ZEROINIT)
+ GPTR = (GMEM_FIXED | GMEM_ZEROINIT)
)
// Ternary raster operations
const (
- SRCCOPY = 0x00CC0020
- SRCPAINT = 0x00EE0086
- SRCAND = 0x008800C6
- SRCINVERT = 0x00660046
- SRCERASE = 0x00440328
- NOTSRCCOPY = 0x00330008
- NOTSRCERASE = 0x001100A6
- MERGECOPY = 0x00C000CA
- MERGEPAINT = 0x00BB0226
- PATCOPY = 0x00F00021
- PATPAINT = 0x00FB0A09
- PATINVERT = 0x005A0049
- DSTINVERT = 0x00550009
- BLACKNESS = 0x00000042
- WHITENESS = 0x00FF0062
- NOMIRRORBITMAP = 0x80000000
- CAPTUREBLT = 0x40000000
+ SRCCOPY = 0x00CC0020
+ SRCPAINT = 0x00EE0086
+ SRCAND = 0x008800C6
+ SRCINVERT = 0x00660046
+ SRCERASE = 0x00440328
+ NOTSRCCOPY = 0x00330008
+ NOTSRCERASE = 0x001100A6
+ MERGECOPY = 0x00C000CA
+ MERGEPAINT = 0x00BB0226
+ PATCOPY = 0x00F00021
+ PATPAINT = 0x00FB0A09
+ PATINVERT = 0x005A0049
+ DSTINVERT = 0x00550009
+ BLACKNESS = 0x00000042
+ WHITENESS = 0x00FF0062
+ NOMIRRORBITMAP = 0x80000000
+ CAPTUREBLT = 0x40000000
)
// Clipboard formats
const (
- CF_TEXT = 1
- CF_BITMAP = 2
- CF_METAFILEPICT = 3
- CF_SYLK = 4
- CF_DIF = 5
- CF_TIFF = 6
- CF_OEMTEXT = 7
- CF_DIB = 8
- CF_PALETTE = 9
- CF_PENDATA = 10
- CF_RIFF = 11
- CF_WAVE = 12
- CF_UNICODETEXT = 13
- CF_ENHMETAFILE = 14
- CF_HDROP = 15
- CF_LOCALE = 16
- CF_DIBV5 = 17
- CF_MAX = 18
- CF_OWNERDISPLAY = 0x0080
- CF_DSPTEXT = 0x0081
- CF_DSPBITMAP = 0x0082
- CF_DSPMETAFILEPICT = 0x0083
- CF_DSPENHMETAFILE = 0x008E
- CF_PRIVATEFIRST = 0x0200
- CF_PRIVATELAST = 0x02FF
- CF_GDIOBJFIRST = 0x0300
- CF_GDIOBJLAST = 0x03FF
+ CF_TEXT = 1
+ CF_BITMAP = 2
+ CF_METAFILEPICT = 3
+ CF_SYLK = 4
+ CF_DIF = 5
+ CF_TIFF = 6
+ CF_OEMTEXT = 7
+ CF_DIB = 8
+ CF_PALETTE = 9
+ CF_PENDATA = 10
+ CF_RIFF = 11
+ CF_WAVE = 12
+ CF_UNICODETEXT = 13
+ CF_ENHMETAFILE = 14
+ CF_HDROP = 15
+ CF_LOCALE = 16
+ CF_DIBV5 = 17
+ CF_MAX = 18
+ CF_OWNERDISPLAY = 0x0080
+ CF_DSPTEXT = 0x0081
+ CF_DSPBITMAP = 0x0082
+ CF_DSPMETAFILEPICT = 0x0083
+ CF_DSPENHMETAFILE = 0x008E
+ CF_PRIVATEFIRST = 0x0200
+ CF_PRIVATELAST = 0x02FF
+ CF_GDIOBJFIRST = 0x0300
+ CF_GDIOBJLAST = 0x03FF
)
// Bitmap compression formats
const (
- BI_RGB = 0
- BI_RLE8 = 1
- BI_RLE4 = 2
- BI_BITFIELDS = 3
- BI_JPEG = 4
- BI_PNG = 5
+ BI_RGB = 0
+ BI_RLE8 = 1
+ BI_RLE4 = 2
+ BI_BITFIELDS = 3
+ BI_JPEG = 4
+ BI_PNG = 5
)
// SetDIBitsToDevice fuColorUse
const (
- DIB_PAL_COLORS = 1
- DIB_RGB_COLORS = 0
+ DIB_PAL_COLORS = 1
+ DIB_RGB_COLORS = 0
)
const (
- STANDARD_RIGHTS_REQUIRED = 0x000F
+ STANDARD_RIGHTS_REQUIRED = 0x000F
)
// Service Control Manager object specific access types
const (
- SC_MANAGER_CONNECT = 0x0001
- SC_MANAGER_CREATE_SERVICE = 0x0002
- SC_MANAGER_ENUMERATE_SERVICE = 0x0004
- SC_MANAGER_LOCK = 0x0008
- SC_MANAGER_QUERY_LOCK_STATUS = 0x0010
- SC_MANAGER_MODIFY_BOOT_CONFIG = 0x0020
- SC_MANAGER_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SC_MANAGER_CONNECT | SC_MANAGER_CREATE_SERVICE | SC_MANAGER_ENUMERATE_SERVICE | SC_MANAGER_LOCK | SC_MANAGER_QUERY_LOCK_STATUS | SC_MANAGER_MODIFY_BOOT_CONFIG
+ SC_MANAGER_CONNECT = 0x0001
+ SC_MANAGER_CREATE_SERVICE = 0x0002
+ SC_MANAGER_ENUMERATE_SERVICE = 0x0004
+ SC_MANAGER_LOCK = 0x0008
+ SC_MANAGER_QUERY_LOCK_STATUS = 0x0010
+ SC_MANAGER_MODIFY_BOOT_CONFIG = 0x0020
+ SC_MANAGER_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SC_MANAGER_CONNECT | SC_MANAGER_CREATE_SERVICE | SC_MANAGER_ENUMERATE_SERVICE | SC_MANAGER_LOCK | SC_MANAGER_QUERY_LOCK_STATUS | SC_MANAGER_MODIFY_BOOT_CONFIG
)
// Service Types (Bit Mask)
const (
- SERVICE_KERNEL_DRIVER = 0x00000001
- SERVICE_FILE_SYSTEM_DRIVER = 0x00000002
- SERVICE_ADAPTER = 0x00000004
- SERVICE_RECOGNIZER_DRIVER = 0x00000008
- SERVICE_DRIVER = SERVICE_KERNEL_DRIVER | SERVICE_FILE_SYSTEM_DRIVER | SERVICE_RECOGNIZER_DRIVER
- SERVICE_WIN32_OWN_PROCESS = 0x00000010
- SERVICE_WIN32_SHARE_PROCESS = 0x00000020
- SERVICE_WIN32 = SERVICE_WIN32_OWN_PROCESS | SERVICE_WIN32_SHARE_PROCESS
- SERVICE_INTERACTIVE_PROCESS = 0x00000100
- SERVICE_TYPE_ALL = SERVICE_WIN32 | SERVICE_ADAPTER | SERVICE_DRIVER | SERVICE_INTERACTIVE_PROCESS
+ SERVICE_KERNEL_DRIVER = 0x00000001
+ SERVICE_FILE_SYSTEM_DRIVER = 0x00000002
+ SERVICE_ADAPTER = 0x00000004
+ SERVICE_RECOGNIZER_DRIVER = 0x00000008
+ SERVICE_DRIVER = SERVICE_KERNEL_DRIVER | SERVICE_FILE_SYSTEM_DRIVER | SERVICE_RECOGNIZER_DRIVER
+ SERVICE_WIN32_OWN_PROCESS = 0x00000010
+ SERVICE_WIN32_SHARE_PROCESS = 0x00000020
+ SERVICE_WIN32 = SERVICE_WIN32_OWN_PROCESS | SERVICE_WIN32_SHARE_PROCESS
+ SERVICE_INTERACTIVE_PROCESS = 0x00000100
+ SERVICE_TYPE_ALL = SERVICE_WIN32 | SERVICE_ADAPTER | SERVICE_DRIVER | SERVICE_INTERACTIVE_PROCESS
)
// Service State -- for CurrentState
const (
- SERVICE_STOPPED = 0x00000001
- SERVICE_START_PENDING = 0x00000002
- SERVICE_STOP_PENDING = 0x00000003
- SERVICE_RUNNING = 0x00000004
- SERVICE_CONTINUE_PENDING = 0x00000005
- SERVICE_PAUSE_PENDING = 0x00000006
- SERVICE_PAUSED = 0x00000007
+ SERVICE_STOPPED = 0x00000001
+ SERVICE_START_PENDING = 0x00000002
+ SERVICE_STOP_PENDING = 0x00000003
+ SERVICE_RUNNING = 0x00000004
+ SERVICE_CONTINUE_PENDING = 0x00000005
+ SERVICE_PAUSE_PENDING = 0x00000006
+ SERVICE_PAUSED = 0x00000007
)
// Controls Accepted (Bit Mask)
const (
- SERVICE_ACCEPT_STOP = 0x00000001
- SERVICE_ACCEPT_PAUSE_CONTINUE = 0x00000002
- SERVICE_ACCEPT_SHUTDOWN = 0x00000004
- SERVICE_ACCEPT_PARAMCHANGE = 0x00000008
- SERVICE_ACCEPT_NETBINDCHANGE = 0x00000010
- SERVICE_ACCEPT_HARDWAREPROFILECHANGE = 0x00000020
- SERVICE_ACCEPT_POWEREVENT = 0x00000040
- SERVICE_ACCEPT_SESSIONCHANGE = 0x00000080
- SERVICE_ACCEPT_PRESHUTDOWN = 0x00000100
- SERVICE_ACCEPT_TIMECHANGE = 0x00000200
- SERVICE_ACCEPT_TRIGGEREVENT = 0x00000400
+ SERVICE_ACCEPT_STOP = 0x00000001
+ SERVICE_ACCEPT_PAUSE_CONTINUE = 0x00000002
+ SERVICE_ACCEPT_SHUTDOWN = 0x00000004
+ SERVICE_ACCEPT_PARAMCHANGE = 0x00000008
+ SERVICE_ACCEPT_NETBINDCHANGE = 0x00000010
+ SERVICE_ACCEPT_HARDWAREPROFILECHANGE = 0x00000020
+ SERVICE_ACCEPT_POWEREVENT = 0x00000040
+ SERVICE_ACCEPT_SESSIONCHANGE = 0x00000080
+ SERVICE_ACCEPT_PRESHUTDOWN = 0x00000100
+ SERVICE_ACCEPT_TIMECHANGE = 0x00000200
+ SERVICE_ACCEPT_TRIGGEREVENT = 0x00000400
)
// Service object specific access type
const (
- SERVICE_QUERY_CONFIG = 0x0001
- SERVICE_CHANGE_CONFIG = 0x0002
- SERVICE_QUERY_STATUS = 0x0004
- SERVICE_ENUMERATE_DEPENDENTS = 0x0008
- SERVICE_START = 0x0010
- SERVICE_STOP = 0x0020
- SERVICE_PAUSE_CONTINUE = 0x0040
- SERVICE_INTERROGATE = 0x0080
- SERVICE_USER_DEFINED_CONTROL = 0x0100
+ SERVICE_QUERY_CONFIG = 0x0001
+ SERVICE_CHANGE_CONFIG = 0x0002
+ SERVICE_QUERY_STATUS = 0x0004
+ SERVICE_ENUMERATE_DEPENDENTS = 0x0008
+ SERVICE_START = 0x0010
+ SERVICE_STOP = 0x0020
+ SERVICE_PAUSE_CONTINUE = 0x0040
+ SERVICE_INTERROGATE = 0x0080
+ SERVICE_USER_DEFINED_CONTROL = 0x0100
- SERVICE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED |
- SERVICE_QUERY_CONFIG |
- SERVICE_CHANGE_CONFIG |
- SERVICE_QUERY_STATUS |
- SERVICE_ENUMERATE_DEPENDENTS |
- SERVICE_START |
- SERVICE_STOP |
- SERVICE_PAUSE_CONTINUE |
- SERVICE_INTERROGATE |
- SERVICE_USER_DEFINED_CONTROL
+ SERVICE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED |
+ SERVICE_QUERY_CONFIG |
+ SERVICE_CHANGE_CONFIG |
+ SERVICE_QUERY_STATUS |
+ SERVICE_ENUMERATE_DEPENDENTS |
+ SERVICE_START |
+ SERVICE_STOP |
+ SERVICE_PAUSE_CONTINUE |
+ SERVICE_INTERROGATE |
+ SERVICE_USER_DEFINED_CONTROL
)
// MapVirtualKey maptypes
const (
- MAPVK_VK_TO_CHAR = 2
- MAPVK_VK_TO_VSC = 0
- MAPVK_VSC_TO_VK = 1
- MAPVK_VSC_TO_VK_EX = 3
+ MAPVK_VK_TO_CHAR = 2
+ MAPVK_VK_TO_VSC = 0
+ MAPVK_VSC_TO_VK = 1
+ MAPVK_VSC_TO_VK_EX = 3
)
// ReadEventLog Flags
const (
- EVENTLOG_SEEK_READ = 0x0002
- EVENTLOG_SEQUENTIAL_READ = 0x0001
- EVENTLOG_FORWARDS_READ = 0x0004
- EVENTLOG_BACKWARDS_READ = 0x0008
+ EVENTLOG_SEEK_READ = 0x0002
+ EVENTLOG_SEQUENTIAL_READ = 0x0001
+ EVENTLOG_FORWARDS_READ = 0x0004
+ EVENTLOG_BACKWARDS_READ = 0x0008
)
// CreateToolhelp32Snapshot flags
const (
- TH32CS_SNAPHEAPLIST = 0x00000001
- TH32CS_SNAPPROCESS = 0x00000002
- TH32CS_SNAPTHREAD = 0x00000004
- TH32CS_SNAPMODULE = 0x00000008
- TH32CS_SNAPMODULE32 = 0x00000010
- TH32CS_INHERIT = 0x80000000
- TH32CS_SNAPALL = TH32CS_SNAPHEAPLIST | TH32CS_SNAPMODULE | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD
+ TH32CS_SNAPHEAPLIST = 0x00000001
+ TH32CS_SNAPPROCESS = 0x00000002
+ TH32CS_SNAPTHREAD = 0x00000004
+ TH32CS_SNAPMODULE = 0x00000008
+ TH32CS_SNAPMODULE32 = 0x00000010
+ TH32CS_INHERIT = 0x80000000
+ TH32CS_SNAPALL = TH32CS_SNAPHEAPLIST | TH32CS_SNAPMODULE | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD
)
const (
- MAX_MODULE_NAME32 = 255
- MAX_PATH = 260
+ MAX_MODULE_NAME32 = 255
+ MAX_PATH = 260
)
diff --git a/gdi32.go b/gdi32.go
index e363fd7..7f05624 100644
--- a/gdi32.go
+++ b/gdi32.go
@@ -5,451 +5,451 @@
package w32
import (
- "syscall"
- "unsafe"
+ "syscall"
+ "unsafe"
)
var (
- modgdi32 = syscall.NewLazyDLL("gdi32.dll")
+ modgdi32 = syscall.NewLazyDLL("gdi32.dll")
- procGetDeviceCaps = modgdi32.NewProc("GetDeviceCaps")
- procDeleteObject = modgdi32.NewProc("DeleteObject")
- procCreateFontIndirect = modgdi32.NewProc("CreateFontIndirectW")
- procAbortDoc = modgdi32.NewProc("AbortDoc")
- procBitBlt = modgdi32.NewProc("BitBlt")
- procCloseEnhMetaFile = modgdi32.NewProc("CloseEnhMetaFile")
- procCopyEnhMetaFile = modgdi32.NewProc("CopyEnhMetaFileW")
- procCreateBrushIndirect = modgdi32.NewProc("CreateBrushIndirect")
- procCreateCompatibleDC = modgdi32.NewProc("CreateCompatibleDC")
- procCreateDC = modgdi32.NewProc("CreateDCW")
- procCreateDIBSection = modgdi32.NewProc("CreateDIBSection")
- procCreateEnhMetaFile = modgdi32.NewProc("CreateEnhMetaFileW")
- procCreateIC = modgdi32.NewProc("CreateICW")
- procDeleteDC = modgdi32.NewProc("DeleteDC")
- procDeleteEnhMetaFile = modgdi32.NewProc("DeleteEnhMetaFile")
- procEllipse = modgdi32.NewProc("Ellipse")
- procEndDoc = modgdi32.NewProc("EndDoc")
- procEndPage = modgdi32.NewProc("EndPage")
- procExtCreatePen = modgdi32.NewProc("ExtCreatePen")
- procGetEnhMetaFile = modgdi32.NewProc("GetEnhMetaFileW")
- procGetEnhMetaFileHeader = modgdi32.NewProc("GetEnhMetaFileHeader")
- procGetObject = modgdi32.NewProc("GetObjectW")
- procGetStockObject = modgdi32.NewProc("GetStockObject")
- procGetTextExtentExPoint = modgdi32.NewProc("GetTextExtentExPointW")
- procGetTextExtentPoint32 = modgdi32.NewProc("GetTextExtentPoint32W")
- procGetTextMetrics = modgdi32.NewProc("GetTextMetricsW")
- procLineTo = modgdi32.NewProc("LineTo")
- procMoveToEx = modgdi32.NewProc("MoveToEx")
- procPlayEnhMetaFile = modgdi32.NewProc("PlayEnhMetaFile")
- procRectangle = modgdi32.NewProc("Rectangle")
- procResetDC = modgdi32.NewProc("ResetDCW")
- procSelectObject = modgdi32.NewProc("SelectObject")
- procSetBkMode = modgdi32.NewProc("SetBkMode")
- procSetBrushOrgEx = modgdi32.NewProc("SetBrushOrgEx")
- procSetStretchBltMode = modgdi32.NewProc("SetStretchBltMode")
- procSetTextColor = modgdi32.NewProc("SetTextColor")
- procSetBkColor = modgdi32.NewProc("SetBkColor")
- procStartDoc = modgdi32.NewProc("StartDocW")
- procStartPage = modgdi32.NewProc("StartPage")
- procStretchBlt = modgdi32.NewProc("StretchBlt")
- procSetDIBitsToDevice = modgdi32.NewProc("SetDIBitsToDevice")
+ procGetDeviceCaps = modgdi32.NewProc("GetDeviceCaps")
+ procDeleteObject = modgdi32.NewProc("DeleteObject")
+ procCreateFontIndirect = modgdi32.NewProc("CreateFontIndirectW")
+ procAbortDoc = modgdi32.NewProc("AbortDoc")
+ procBitBlt = modgdi32.NewProc("BitBlt")
+ procCloseEnhMetaFile = modgdi32.NewProc("CloseEnhMetaFile")
+ procCopyEnhMetaFile = modgdi32.NewProc("CopyEnhMetaFileW")
+ procCreateBrushIndirect = modgdi32.NewProc("CreateBrushIndirect")
+ procCreateCompatibleDC = modgdi32.NewProc("CreateCompatibleDC")
+ procCreateDC = modgdi32.NewProc("CreateDCW")
+ procCreateDIBSection = modgdi32.NewProc("CreateDIBSection")
+ procCreateEnhMetaFile = modgdi32.NewProc("CreateEnhMetaFileW")
+ procCreateIC = modgdi32.NewProc("CreateICW")
+ procDeleteDC = modgdi32.NewProc("DeleteDC")
+ procDeleteEnhMetaFile = modgdi32.NewProc("DeleteEnhMetaFile")
+ procEllipse = modgdi32.NewProc("Ellipse")
+ procEndDoc = modgdi32.NewProc("EndDoc")
+ procEndPage = modgdi32.NewProc("EndPage")
+ procExtCreatePen = modgdi32.NewProc("ExtCreatePen")
+ procGetEnhMetaFile = modgdi32.NewProc("GetEnhMetaFileW")
+ procGetEnhMetaFileHeader = modgdi32.NewProc("GetEnhMetaFileHeader")
+ procGetObject = modgdi32.NewProc("GetObjectW")
+ procGetStockObject = modgdi32.NewProc("GetStockObject")
+ procGetTextExtentExPoint = modgdi32.NewProc("GetTextExtentExPointW")
+ procGetTextExtentPoint32 = modgdi32.NewProc("GetTextExtentPoint32W")
+ procGetTextMetrics = modgdi32.NewProc("GetTextMetricsW")
+ procLineTo = modgdi32.NewProc("LineTo")
+ procMoveToEx = modgdi32.NewProc("MoveToEx")
+ procPlayEnhMetaFile = modgdi32.NewProc("PlayEnhMetaFile")
+ procRectangle = modgdi32.NewProc("Rectangle")
+ procResetDC = modgdi32.NewProc("ResetDCW")
+ procSelectObject = modgdi32.NewProc("SelectObject")
+ procSetBkMode = modgdi32.NewProc("SetBkMode")
+ procSetBrushOrgEx = modgdi32.NewProc("SetBrushOrgEx")
+ procSetStretchBltMode = modgdi32.NewProc("SetStretchBltMode")
+ procSetTextColor = modgdi32.NewProc("SetTextColor")
+ procSetBkColor = modgdi32.NewProc("SetBkColor")
+ procStartDoc = modgdi32.NewProc("StartDocW")
+ procStartPage = modgdi32.NewProc("StartPage")
+ procStretchBlt = modgdi32.NewProc("StretchBlt")
+ procSetDIBitsToDevice = modgdi32.NewProc("SetDIBitsToDevice")
)
func GetDeviceCaps(hdc HDC, index int) int {
- ret, _, _ := procGetDeviceCaps.Call(
- uintptr(hdc),
- uintptr(index))
+ ret, _, _ := procGetDeviceCaps.Call(
+ uintptr(hdc),
+ uintptr(index))
- return int(ret)
+ return int(ret)
}
func DeleteObject(hObject HGDIOBJ) bool {
- ret, _, _ := procDeleteObject.Call(
- uintptr(hObject))
+ ret, _, _ := procDeleteObject.Call(
+ uintptr(hObject))
- return ret != 0
+ return ret != 0
}
func CreateFontIndirect(logFont *LOGFONT) HFONT {
- ret, _, _ := procCreateFontIndirect.Call(
- uintptr(unsafe.Pointer(logFont)))
+ ret, _, _ := procCreateFontIndirect.Call(
+ uintptr(unsafe.Pointer(logFont)))
- return HFONT(ret)
+ return HFONT(ret)
}
func AbortDoc(hdc HDC) int {
- ret, _, _ := procAbortDoc.Call(
- uintptr(hdc))
+ ret, _, _ := procAbortDoc.Call(
+ uintptr(hdc))
- return int(ret)
+ return int(ret)
}
func BitBlt(hdcDest HDC, nXDest, nYDest, nWidth, nHeight int, hdcSrc HDC, nXSrc, nYSrc int, dwRop uint) {
- ret, _, _ := procBitBlt.Call(
- uintptr(hdcDest),
- uintptr(nXDest),
- uintptr(nYDest),
- uintptr(nWidth),
- uintptr(nHeight),
- uintptr(hdcSrc),
- uintptr(nXSrc),
- uintptr(nYSrc),
- uintptr(dwRop))
+ ret, _, _ := procBitBlt.Call(
+ uintptr(hdcDest),
+ uintptr(nXDest),
+ uintptr(nYDest),
+ uintptr(nWidth),
+ uintptr(nHeight),
+ uintptr(hdcSrc),
+ uintptr(nXSrc),
+ uintptr(nYSrc),
+ uintptr(dwRop))
- if ret == 0 {
- panic("BitBlt failed")
- }
+ if ret == 0 {
+ panic("BitBlt failed")
+ }
}
func CloseEnhMetaFile(hdc HDC) HENHMETAFILE {
- ret, _, _ := procCloseEnhMetaFile.Call(
- uintptr(hdc))
+ ret, _, _ := procCloseEnhMetaFile.Call(
+ uintptr(hdc))
- return HENHMETAFILE(ret)
+ return HENHMETAFILE(ret)
}
func CopyEnhMetaFile(hemfSrc HENHMETAFILE, lpszFile *uint16) HENHMETAFILE {
- ret, _, _ := procCopyEnhMetaFile.Call(
- uintptr(hemfSrc),
- uintptr(unsafe.Pointer(lpszFile)))
+ ret, _, _ := procCopyEnhMetaFile.Call(
+ uintptr(hemfSrc),
+ uintptr(unsafe.Pointer(lpszFile)))
- return HENHMETAFILE(ret)
+ return HENHMETAFILE(ret)
}
func CreateBrushIndirect(lplb *LOGBRUSH) HBRUSH {
- ret, _, _ := procCreateBrushIndirect.Call(
- uintptr(unsafe.Pointer(lplb)))
+ ret, _, _ := procCreateBrushIndirect.Call(
+ uintptr(unsafe.Pointer(lplb)))
- return HBRUSH(ret)
+ return HBRUSH(ret)
}
func CreateCompatibleDC(hdc HDC) HDC {
- ret, _, _ := procCreateCompatibleDC.Call(
- uintptr(hdc))
+ ret, _, _ := procCreateCompatibleDC.Call(
+ uintptr(hdc))
- if ret == 0 {
- panic("Create compatible DC failed")
- }
+ if ret == 0 {
+ panic("Create compatible DC failed")
+ }
- return HDC(ret)
+ return HDC(ret)
}
func CreateDC(lpszDriver, lpszDevice, lpszOutput *uint16, lpInitData *DEVMODE) HDC {
- ret, _, _ := procCreateDC.Call(
- uintptr(unsafe.Pointer(lpszDriver)),
- uintptr(unsafe.Pointer(lpszDevice)),
- uintptr(unsafe.Pointer(lpszOutput)),
- uintptr(unsafe.Pointer(lpInitData)))
+ ret, _, _ := procCreateDC.Call(
+ uintptr(unsafe.Pointer(lpszDriver)),
+ uintptr(unsafe.Pointer(lpszDevice)),
+ uintptr(unsafe.Pointer(lpszOutput)),
+ uintptr(unsafe.Pointer(lpInitData)))
- return HDC(ret)
+ return HDC(ret)
}
func CreateDIBSection(hdc HDC, pbmi *BITMAPINFO, iUsage uint, ppvBits *unsafe.Pointer, hSection HANDLE, dwOffset uint) HBITMAP {
- ret, _, _ := procCreateDIBSection.Call(
- uintptr(hdc),
- uintptr(unsafe.Pointer(pbmi)),
- uintptr(iUsage),
- uintptr(unsafe.Pointer(ppvBits)),
- uintptr(hSection),
- uintptr(dwOffset))
+ ret, _, _ := procCreateDIBSection.Call(
+ uintptr(hdc),
+ uintptr(unsafe.Pointer(pbmi)),
+ uintptr(iUsage),
+ uintptr(unsafe.Pointer(ppvBits)),
+ uintptr(hSection),
+ uintptr(dwOffset))
- return HBITMAP(ret)
+ return HBITMAP(ret)
}
func CreateEnhMetaFile(hdcRef HDC, lpFilename *uint16, lpRect *RECT, lpDescription *uint16) HDC {
- ret, _, _ := procCreateEnhMetaFile.Call(
- uintptr(hdcRef),
- uintptr(unsafe.Pointer(lpFilename)),
- uintptr(unsafe.Pointer(lpRect)),
- uintptr(unsafe.Pointer(lpDescription)))
+ ret, _, _ := procCreateEnhMetaFile.Call(
+ uintptr(hdcRef),
+ uintptr(unsafe.Pointer(lpFilename)),
+ uintptr(unsafe.Pointer(lpRect)),
+ uintptr(unsafe.Pointer(lpDescription)))
- return HDC(ret)
+ return HDC(ret)
}
func CreateIC(lpszDriver, lpszDevice, lpszOutput *uint16, lpdvmInit *DEVMODE) HDC {
- ret, _, _ := procCreateIC.Call(
- uintptr(unsafe.Pointer(lpszDriver)),
- uintptr(unsafe.Pointer(lpszDevice)),
- uintptr(unsafe.Pointer(lpszOutput)),
- uintptr(unsafe.Pointer(lpdvmInit)))
+ ret, _, _ := procCreateIC.Call(
+ uintptr(unsafe.Pointer(lpszDriver)),
+ uintptr(unsafe.Pointer(lpszDevice)),
+ uintptr(unsafe.Pointer(lpszOutput)),
+ uintptr(unsafe.Pointer(lpdvmInit)))
- return HDC(ret)
+ return HDC(ret)
}
func DeleteDC(hdc HDC) bool {
- ret, _, _ := procDeleteDC.Call(
- uintptr(hdc))
+ ret, _, _ := procDeleteDC.Call(
+ uintptr(hdc))
- return ret != 0
+ return ret != 0
}
func DeleteEnhMetaFile(hemf HENHMETAFILE) bool {
- ret, _, _ := procDeleteEnhMetaFile.Call(
- uintptr(hemf))
+ ret, _, _ := procDeleteEnhMetaFile.Call(
+ uintptr(hemf))
- return ret != 0
+ return ret != 0
}
func Ellipse(hdc HDC, nLeftRect, nTopRect, nRightRect, nBottomRect int) bool {
- ret, _, _ := procEllipse.Call(
- uintptr(hdc),
- uintptr(nLeftRect),
- uintptr(nTopRect),
- uintptr(nRightRect),
- uintptr(nBottomRect))
+ ret, _, _ := procEllipse.Call(
+ uintptr(hdc),
+ uintptr(nLeftRect),
+ uintptr(nTopRect),
+ uintptr(nRightRect),
+ uintptr(nBottomRect))
- return ret != 0
+ return ret != 0
}
func EndDoc(hdc HDC) int {
- ret, _, _ := procEndDoc.Call(
- uintptr(hdc))
+ ret, _, _ := procEndDoc.Call(
+ uintptr(hdc))
- return int(ret)
+ return int(ret)
}
func EndPage(hdc HDC) int {
- ret, _, _ := procEndPage.Call(
- uintptr(hdc))
+ ret, _, _ := procEndPage.Call(
+ uintptr(hdc))
- return int(ret)
+ return int(ret)
}
func ExtCreatePen(dwPenStyle, dwWidth uint, lplb *LOGBRUSH, dwStyleCount uint, lpStyle *uint) HPEN {
- ret, _, _ := procExtCreatePen.Call(
- uintptr(dwPenStyle),
- uintptr(dwWidth),
- uintptr(unsafe.Pointer(lplb)),
- uintptr(dwStyleCount),
- uintptr(unsafe.Pointer(lpStyle)))
+ ret, _, _ := procExtCreatePen.Call(
+ uintptr(dwPenStyle),
+ uintptr(dwWidth),
+ uintptr(unsafe.Pointer(lplb)),
+ uintptr(dwStyleCount),
+ uintptr(unsafe.Pointer(lpStyle)))
- return HPEN(ret)
+ return HPEN(ret)
}
func GetEnhMetaFile(lpszMetaFile *uint16) HENHMETAFILE {
- ret, _, _ := procGetEnhMetaFile.Call(
- uintptr(unsafe.Pointer(lpszMetaFile)))
+ ret, _, _ := procGetEnhMetaFile.Call(
+ uintptr(unsafe.Pointer(lpszMetaFile)))
- return HENHMETAFILE(ret)
+ return HENHMETAFILE(ret)
}
func GetEnhMetaFileHeader(hemf HENHMETAFILE, cbBuffer uint, lpemh *ENHMETAHEADER) uint {
- ret, _, _ := procGetEnhMetaFileHeader.Call(
- uintptr(hemf),
- uintptr(cbBuffer),
- uintptr(unsafe.Pointer(lpemh)))
+ ret, _, _ := procGetEnhMetaFileHeader.Call(
+ uintptr(hemf),
+ uintptr(cbBuffer),
+ uintptr(unsafe.Pointer(lpemh)))
- return uint(ret)
+ return uint(ret)
}
func GetObject(hgdiobj HGDIOBJ, cbBuffer uintptr, lpvObject unsafe.Pointer) int {
- ret, _, _ := procGetObject.Call(
- uintptr(hgdiobj),
- uintptr(cbBuffer),
- uintptr(lpvObject))
+ ret, _, _ := procGetObject.Call(
+ uintptr(hgdiobj),
+ uintptr(cbBuffer),
+ uintptr(lpvObject))
- return int(ret)
+ return int(ret)
}
func GetStockObject(fnObject int) HGDIOBJ {
- ret, _, _ := procGetDeviceCaps.Call(
- uintptr(fnObject))
+ ret, _, _ := procGetDeviceCaps.Call(
+ uintptr(fnObject))
- return HGDIOBJ(ret)
+ return HGDIOBJ(ret)
}
func GetTextExtentExPoint(hdc HDC, lpszStr *uint16, cchString, nMaxExtent int, lpnFit, alpDx *int, lpSize *SIZE) bool {
- ret, _, _ := procGetTextExtentExPoint.Call(
- uintptr(hdc),
- uintptr(unsafe.Pointer(lpszStr)),
- uintptr(cchString),
- uintptr(nMaxExtent),
- uintptr(unsafe.Pointer(lpnFit)),
- uintptr(unsafe.Pointer(alpDx)),
- uintptr(unsafe.Pointer(lpSize)))
+ ret, _, _ := procGetTextExtentExPoint.Call(
+ uintptr(hdc),
+ uintptr(unsafe.Pointer(lpszStr)),
+ uintptr(cchString),
+ uintptr(nMaxExtent),
+ uintptr(unsafe.Pointer(lpnFit)),
+ uintptr(unsafe.Pointer(alpDx)),
+ uintptr(unsafe.Pointer(lpSize)))
- return ret != 0
+ return ret != 0
}
func GetTextExtentPoint32(hdc HDC, lpString *uint16, c int, lpSize *SIZE) bool {
- ret, _, _ := procGetTextExtentPoint32.Call(
- uintptr(hdc),
- uintptr(unsafe.Pointer(lpString)),
- uintptr(c),
- uintptr(unsafe.Pointer(lpSize)))
+ ret, _, _ := procGetTextExtentPoint32.Call(
+ uintptr(hdc),
+ uintptr(unsafe.Pointer(lpString)),
+ uintptr(c),
+ uintptr(unsafe.Pointer(lpSize)))
- return ret != 0
+ return ret != 0
}
func GetTextMetrics(hdc HDC, lptm *TEXTMETRIC) bool {
- ret, _, _ := procGetTextMetrics.Call(
- uintptr(hdc),
- uintptr(unsafe.Pointer(lptm)))
+ ret, _, _ := procGetTextMetrics.Call(
+ uintptr(hdc),
+ uintptr(unsafe.Pointer(lptm)))
- return ret != 0
+ return ret != 0
}
func LineTo(hdc HDC, nXEnd, nYEnd int) bool {
- ret, _, _ := procLineTo.Call(
- uintptr(hdc),
- uintptr(nXEnd),
- uintptr(nYEnd))
+ ret, _, _ := procLineTo.Call(
+ uintptr(hdc),
+ uintptr(nXEnd),
+ uintptr(nYEnd))
- return ret != 0
+ return ret != 0
}
func MoveToEx(hdc HDC, x, y int, lpPoint *POINT) bool {
- ret, _, _ := procMoveToEx.Call(
- uintptr(hdc),
- uintptr(x),
- uintptr(y),
- uintptr(unsafe.Pointer(lpPoint)))
+ ret, _, _ := procMoveToEx.Call(
+ uintptr(hdc),
+ uintptr(x),
+ uintptr(y),
+ uintptr(unsafe.Pointer(lpPoint)))
- return ret != 0
+ return ret != 0
}
func PlayEnhMetaFile(hdc HDC, hemf HENHMETAFILE, lpRect *RECT) bool {
- ret, _, _ := procPlayEnhMetaFile.Call(
- uintptr(hdc),
- uintptr(hemf),
- uintptr(unsafe.Pointer(lpRect)))
+ ret, _, _ := procPlayEnhMetaFile.Call(
+ uintptr(hdc),
+ uintptr(hemf),
+ uintptr(unsafe.Pointer(lpRect)))
- return ret != 0
+ return ret != 0
}
func Rectangle(hdc HDC, nLeftRect, nTopRect, nRightRect, nBottomRect int) bool {
- ret, _, _ := procRectangle.Call(
- uintptr(hdc),
- uintptr(nLeftRect),
- uintptr(nTopRect),
- uintptr(nRightRect),
- uintptr(nBottomRect))
+ ret, _, _ := procRectangle.Call(
+ uintptr(hdc),
+ uintptr(nLeftRect),
+ uintptr(nTopRect),
+ uintptr(nRightRect),
+ uintptr(nBottomRect))
- return ret != 0
+ return ret != 0
}
func ResetDC(hdc HDC, lpInitData *DEVMODE) HDC {
- ret, _, _ := procResetDC.Call(
- uintptr(hdc),
- uintptr(unsafe.Pointer(lpInitData)))
+ ret, _, _ := procResetDC.Call(
+ uintptr(hdc),
+ uintptr(unsafe.Pointer(lpInitData)))
- return HDC(ret)
+ return HDC(ret)
}
func SelectObject(hdc HDC, hgdiobj HGDIOBJ) HGDIOBJ {
- ret, _, _ := procSelectObject.Call(
- uintptr(hdc),
- uintptr(hgdiobj))
+ ret, _, _ := procSelectObject.Call(
+ uintptr(hdc),
+ uintptr(hgdiobj))
- if ret == 0 {
- panic("SelectObject failed")
- }
+ if ret == 0 {
+ panic("SelectObject failed")
+ }
- return HGDIOBJ(ret)
+ return HGDIOBJ(ret)
}
func SetBkMode(hdc HDC, iBkMode int) int {
- ret, _, _ := procSetBkMode.Call(
- uintptr(hdc),
- uintptr(iBkMode))
+ ret, _, _ := procSetBkMode.Call(
+ uintptr(hdc),
+ uintptr(iBkMode))
- if ret == 0 {
- panic("SetBkMode failed")
- }
+ if ret == 0 {
+ panic("SetBkMode failed")
+ }
- return int(ret)
+ return int(ret)
}
func SetBrushOrgEx(hdc HDC, nXOrg, nYOrg int, lppt *POINT) bool {
- ret, _, _ := procSetBrushOrgEx.Call(
- uintptr(hdc),
- uintptr(nXOrg),
- uintptr(nYOrg),
- uintptr(unsafe.Pointer(lppt)))
+ ret, _, _ := procSetBrushOrgEx.Call(
+ uintptr(hdc),
+ uintptr(nXOrg),
+ uintptr(nYOrg),
+ uintptr(unsafe.Pointer(lppt)))
- return ret != 0
+ return ret != 0
}
func SetStretchBltMode(hdc HDC, iStretchMode int) int {
- ret, _, _ := procSetStretchBltMode.Call(
- uintptr(hdc),
- uintptr(iStretchMode))
+ ret, _, _ := procSetStretchBltMode.Call(
+ uintptr(hdc),
+ uintptr(iStretchMode))
- return int(ret)
+ return int(ret)
}
func SetTextColor(hdc HDC, crColor COLORREF) COLORREF {
- ret, _, _ := procSetTextColor.Call(
- uintptr(hdc),
- uintptr(crColor))
+ ret, _, _ := procSetTextColor.Call(
+ uintptr(hdc),
+ uintptr(crColor))
- if ret == CLR_INVALID {
- panic("SetTextColor failed")
- }
+ if ret == CLR_INVALID {
+ panic("SetTextColor failed")
+ }
- return COLORREF(ret)
+ return COLORREF(ret)
}
func SetBkColor(hdc HDC, crColor COLORREF) COLORREF {
- ret, _, _ := procSetBkColor.Call(
- uintptr(hdc),
- uintptr(crColor))
+ ret, _, _ := procSetBkColor.Call(
+ uintptr(hdc),
+ uintptr(crColor))
- if ret == CLR_INVALID {
- panic("SetBkColor failed")
- }
+ if ret == CLR_INVALID {
+ panic("SetBkColor failed")
+ }
- return COLORREF(ret)
+ return COLORREF(ret)
}
func StartDoc(hdc HDC, lpdi *DOCINFO) int {
- ret, _, _ := procStartDoc.Call(
- uintptr(hdc),
- uintptr(unsafe.Pointer(lpdi)))
+ ret, _, _ := procStartDoc.Call(
+ uintptr(hdc),
+ uintptr(unsafe.Pointer(lpdi)))
- return int(ret)
+ return int(ret)
}
func StartPage(hdc HDC) int {
- ret, _, _ := procStartPage.Call(
- uintptr(hdc))
+ ret, _, _ := procStartPage.Call(
+ uintptr(hdc))
- return int(ret)
+ return int(ret)
}
func StretchBlt(hdcDest HDC, nXOriginDest, nYOriginDest, nWidthDest, nHeightDest int, hdcSrc HDC, nXOriginSrc, nYOriginSrc, nWidthSrc, nHeightSrc int, dwRop uint) {
- ret, _, _ := procStretchBlt.Call(
- uintptr(hdcDest),
- uintptr(nXOriginDest),
- uintptr(nYOriginDest),
- uintptr(nWidthDest),
- uintptr(nHeightDest),
- uintptr(hdcSrc),
- uintptr(nXOriginSrc),
- uintptr(nYOriginSrc),
- uintptr(nWidthSrc),
- uintptr(nHeightSrc),
- uintptr(dwRop))
+ ret, _, _ := procStretchBlt.Call(
+ uintptr(hdcDest),
+ uintptr(nXOriginDest),
+ uintptr(nYOriginDest),
+ uintptr(nWidthDest),
+ uintptr(nHeightDest),
+ uintptr(hdcSrc),
+ uintptr(nXOriginSrc),
+ uintptr(nYOriginSrc),
+ uintptr(nWidthSrc),
+ uintptr(nHeightSrc),
+ uintptr(dwRop))
- if ret == 0 {
- panic("StretchBlt failed")
- }
+ if ret == 0 {
+ panic("StretchBlt failed")
+ }
}
func SetDIBitsToDevice(hdc HDC, xDest, yDest, dwWidth, dwHeight, xSrc, ySrc int, uStartScan, cScanLines uint, lpvBits []byte, lpbmi *BITMAPINFO, fuColorUse uint) int {
- ret, _, _ := procSetDIBitsToDevice.Call(
- uintptr(hdc),
- uintptr(xDest),
- uintptr(yDest),
- uintptr(dwWidth),
- uintptr(dwHeight),
- uintptr(xSrc),
- uintptr(ySrc),
- uintptr(uStartScan),
- uintptr(cScanLines),
- uintptr(unsafe.Pointer(&lpvBits[0])),
- uintptr(unsafe.Pointer(lpbmi)),
- uintptr(fuColorUse))
+ ret, _, _ := procSetDIBitsToDevice.Call(
+ uintptr(hdc),
+ uintptr(xDest),
+ uintptr(yDest),
+ uintptr(dwWidth),
+ uintptr(dwHeight),
+ uintptr(xSrc),
+ uintptr(ySrc),
+ uintptr(uStartScan),
+ uintptr(cScanLines),
+ uintptr(unsafe.Pointer(&lpvBits[0])),
+ uintptr(unsafe.Pointer(lpbmi)),
+ uintptr(fuColorUse))
- return int(ret)
+ return int(ret)
}
diff --git a/gdiplus.go b/gdiplus.go
index a273d9b..ac1c5d6 100644
--- a/gdiplus.go
+++ b/gdiplus.go
@@ -5,171 +5,171 @@
package w32
import (
- "errors"
- "fmt"
- "syscall"
- "unsafe"
+ "errors"
+ "fmt"
+ "syscall"
+ "unsafe"
)
const (
- Ok = 0
- GenericError = 1
- InvalidParameter = 2
- OutOfMemory = 3
- ObjectBusy = 4
- InsufficientBuffer = 5
- NotImplemented = 6
- Win32Error = 7
- WrongState = 8
- Aborted = 9
- FileNotFound = 10
- ValueOverflow = 11
- AccessDenied = 12
- UnknownImageFormat = 13
- FontFamilyNotFound = 14
- FontStyleNotFound = 15
- NotTrueTypeFont = 16
- UnsupportedGdiplusVersion = 17
- GdiplusNotInitialized = 18
- PropertyNotFound = 19
- PropertyNotSupported = 20
- ProfileNotFound = 21
+ Ok = 0
+ GenericError = 1
+ InvalidParameter = 2
+ OutOfMemory = 3
+ ObjectBusy = 4
+ InsufficientBuffer = 5
+ NotImplemented = 6
+ Win32Error = 7
+ WrongState = 8
+ Aborted = 9
+ FileNotFound = 10
+ ValueOverflow = 11
+ AccessDenied = 12
+ UnknownImageFormat = 13
+ FontFamilyNotFound = 14
+ FontStyleNotFound = 15
+ NotTrueTypeFont = 16
+ UnsupportedGdiplusVersion = 17
+ GdiplusNotInitialized = 18
+ PropertyNotFound = 19
+ PropertyNotSupported = 20
+ ProfileNotFound = 21
)
func GetGpStatus(s int32) string {
- switch s {
- case Ok:
- return "Ok"
- case GenericError:
- return "GenericError"
- case InvalidParameter:
- return "InvalidParameter"
- case OutOfMemory:
- return "OutOfMemory"
- case ObjectBusy:
- return "ObjectBusy"
- case InsufficientBuffer:
- return "InsufficientBuffer"
- case NotImplemented:
- return "NotImplemented"
- case Win32Error:
- return "Win32Error"
- case WrongState:
- return "WrongState"
- case Aborted:
- return "Aborted"
- case FileNotFound:
- return "FileNotFound"
- case ValueOverflow:
- return "ValueOverflow"
- case AccessDenied:
- return "AccessDenied"
- case UnknownImageFormat:
- return "UnknownImageFormat"
- case FontFamilyNotFound:
- return "FontFamilyNotFound"
- case FontStyleNotFound:
- return "FontStyleNotFound"
- case NotTrueTypeFont:
- return "NotTrueTypeFont"
- case UnsupportedGdiplusVersion:
- return "UnsupportedGdiplusVersion"
- case GdiplusNotInitialized:
- return "GdiplusNotInitialized"
- case PropertyNotFound:
- return "PropertyNotFound"
- case PropertyNotSupported:
- return "PropertyNotSupported"
- case ProfileNotFound:
- return "ProfileNotFound"
- }
- return "Unknown Status Value"
+ switch s {
+ case Ok:
+ return "Ok"
+ case GenericError:
+ return "GenericError"
+ case InvalidParameter:
+ return "InvalidParameter"
+ case OutOfMemory:
+ return "OutOfMemory"
+ case ObjectBusy:
+ return "ObjectBusy"
+ case InsufficientBuffer:
+ return "InsufficientBuffer"
+ case NotImplemented:
+ return "NotImplemented"
+ case Win32Error:
+ return "Win32Error"
+ case WrongState:
+ return "WrongState"
+ case Aborted:
+ return "Aborted"
+ case FileNotFound:
+ return "FileNotFound"
+ case ValueOverflow:
+ return "ValueOverflow"
+ case AccessDenied:
+ return "AccessDenied"
+ case UnknownImageFormat:
+ return "UnknownImageFormat"
+ case FontFamilyNotFound:
+ return "FontFamilyNotFound"
+ case FontStyleNotFound:
+ return "FontStyleNotFound"
+ case NotTrueTypeFont:
+ return "NotTrueTypeFont"
+ case UnsupportedGdiplusVersion:
+ return "UnsupportedGdiplusVersion"
+ case GdiplusNotInitialized:
+ return "GdiplusNotInitialized"
+ case PropertyNotFound:
+ return "PropertyNotFound"
+ case PropertyNotSupported:
+ return "PropertyNotSupported"
+ case ProfileNotFound:
+ return "ProfileNotFound"
+ }
+ return "Unknown Status Value"
}
var (
- token uintptr
+ token uintptr
- modgdiplus = syscall.NewLazyDLL("gdiplus.dll")
+ modgdiplus = syscall.NewLazyDLL("gdiplus.dll")
- procGdipCreateBitmapFromFile = modgdiplus.NewProc("GdipCreateBitmapFromFile")
- procGdipCreateBitmapFromHBITMAP = modgdiplus.NewProc("GdipCreateBitmapFromHBITMAP")
- procGdipCreateHBITMAPFromBitmap = modgdiplus.NewProc("GdipCreateHBITMAPFromBitmap")
- procGdipCreateBitmapFromResource = modgdiplus.NewProc("GdipCreateBitmapFromResource")
- procGdipCreateBitmapFromStream = modgdiplus.NewProc("GdipCreateBitmapFromStream")
- procGdipDisposeImage = modgdiplus.NewProc("GdipDisposeImage")
- procGdiplusShutdown = modgdiplus.NewProc("GdiplusShutdown")
- procGdiplusStartup = modgdiplus.NewProc("GdiplusStartup")
+ procGdipCreateBitmapFromFile = modgdiplus.NewProc("GdipCreateBitmapFromFile")
+ procGdipCreateBitmapFromHBITMAP = modgdiplus.NewProc("GdipCreateBitmapFromHBITMAP")
+ procGdipCreateHBITMAPFromBitmap = modgdiplus.NewProc("GdipCreateHBITMAPFromBitmap")
+ procGdipCreateBitmapFromResource = modgdiplus.NewProc("GdipCreateBitmapFromResource")
+ procGdipCreateBitmapFromStream = modgdiplus.NewProc("GdipCreateBitmapFromStream")
+ procGdipDisposeImage = modgdiplus.NewProc("GdipDisposeImage")
+ procGdiplusShutdown = modgdiplus.NewProc("GdiplusShutdown")
+ procGdiplusStartup = modgdiplus.NewProc("GdiplusStartup")
)
func GdipCreateBitmapFromFile(filename string) (*uintptr, error) {
- var bitmap *uintptr
- ret, _, _ := procGdipCreateBitmapFromFile.Call(
- uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(filename))),
- uintptr(unsafe.Pointer(&bitmap)))
+ var bitmap *uintptr
+ ret, _, _ := procGdipCreateBitmapFromFile.Call(
+ uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(filename))),
+ uintptr(unsafe.Pointer(&bitmap)))
- if ret != Ok {
- return nil, errors.New(fmt.Sprintf("GdipCreateBitmapFromFile failed with status '%s' for file '%s'", GetGpStatus(int32(ret)), filename))
- }
+ if ret != Ok {
+ return nil, errors.New(fmt.Sprintf("GdipCreateBitmapFromFile failed with status '%s' for file '%s'", GetGpStatus(int32(ret)), filename))
+ }
- return bitmap, nil
+ return bitmap, nil
}
func GdipCreateBitmapFromResource(instance HINSTANCE, resId *uint16) (*uintptr, error) {
- var bitmap *uintptr
- ret, _, _ := procGdipCreateBitmapFromResource.Call(
- uintptr(instance),
- uintptr(unsafe.Pointer(resId)),
- uintptr(unsafe.Pointer(&bitmap)))
+ var bitmap *uintptr
+ ret, _, _ := procGdipCreateBitmapFromResource.Call(
+ uintptr(instance),
+ uintptr(unsafe.Pointer(resId)),
+ uintptr(unsafe.Pointer(&bitmap)))
- if ret != Ok {
- return nil, errors.New(fmt.Sprintf("GdiCreateBitmapFromResource failed with status '%s'", GetGpStatus(int32(ret))))
- }
+ if ret != Ok {
+ return nil, errors.New(fmt.Sprintf("GdiCreateBitmapFromResource failed with status '%s'", GetGpStatus(int32(ret))))
+ }
- return bitmap, nil
+ return bitmap, nil
}
func GdipCreateBitmapFromStream(stream *IStream) (*uintptr, error) {
- var bitmap *uintptr
- ret, _, _ := procGdipCreateBitmapFromStream.Call(
- uintptr(unsafe.Pointer(stream)),
- uintptr(unsafe.Pointer(&bitmap)))
+ var bitmap *uintptr
+ ret, _, _ := procGdipCreateBitmapFromStream.Call(
+ uintptr(unsafe.Pointer(stream)),
+ uintptr(unsafe.Pointer(&bitmap)))
- if ret != Ok {
- return nil, errors.New(fmt.Sprintf("GdipCreateBitmapFromStream failed with status '%s'", GetGpStatus(int32(ret))))
- }
+ if ret != Ok {
+ return nil, errors.New(fmt.Sprintf("GdipCreateBitmapFromStream failed with status '%s'", GetGpStatus(int32(ret))))
+ }
- return bitmap, nil
+ return bitmap, nil
}
func GdipCreateHBITMAPFromBitmap(bitmap *uintptr, background uint32) (HBITMAP, error) {
- var hbitmap HBITMAP
- ret, _, _ := procGdipCreateHBITMAPFromBitmap.Call(
- uintptr(unsafe.Pointer(bitmap)),
- uintptr(unsafe.Pointer(&hbitmap)),
- uintptr(background))
+ var hbitmap HBITMAP
+ ret, _, _ := procGdipCreateHBITMAPFromBitmap.Call(
+ uintptr(unsafe.Pointer(bitmap)),
+ uintptr(unsafe.Pointer(&hbitmap)),
+ uintptr(background))
- if ret != Ok {
- return 0, errors.New(fmt.Sprintf("GdipCreateHBITMAPFromBitmap failed with status '%s'", GetGpStatus(int32(ret))))
- }
+ if ret != Ok {
+ return 0, errors.New(fmt.Sprintf("GdipCreateHBITMAPFromBitmap failed with status '%s'", GetGpStatus(int32(ret))))
+ }
- return hbitmap, nil
+ return hbitmap, nil
}
func GdipDisposeImage(image *uintptr) {
- procGdipDisposeImage.Call(uintptr(unsafe.Pointer(image)))
+ procGdipDisposeImage.Call(uintptr(unsafe.Pointer(image)))
}
func GdiplusShutdown() {
- procGdiplusShutdown.Call(token)
+ procGdiplusShutdown.Call(token)
}
func GdiplusStartup(input *GdiplusStartupInput, output *GdiplusStartupOutput) {
- ret, _, _ := procGdiplusStartup.Call(
- uintptr(unsafe.Pointer(&token)),
- uintptr(unsafe.Pointer(input)),
- uintptr(unsafe.Pointer(output)))
+ ret, _, _ := procGdiplusStartup.Call(
+ uintptr(unsafe.Pointer(&token)),
+ uintptr(unsafe.Pointer(input)),
+ uintptr(unsafe.Pointer(output)))
- if ret != Ok {
- panic("GdiplusStartup failed with status " + GetGpStatus(int32(ret)))
- }
+ if ret != Ok {
+ panic("GdiplusStartup failed with status " + GetGpStatus(int32(ret)))
+ }
}
diff --git a/idispatch.go b/idispatch.go
index 5ecfc23..a98b24b 100644
--- a/idispatch.go
+++ b/idispatch.go
@@ -1,39 +1,39 @@
package w32
import (
- "unsafe"
+ "unsafe"
)
type pIDispatchVtbl struct {
- pQueryInterface uintptr
- pAddRef uintptr
- pRelease uintptr
- pGetTypeInfoCount uintptr
- pGetTypeInfo uintptr
- pGetIDsOfNames uintptr
- pInvoke uintptr
+ pQueryInterface uintptr
+ pAddRef uintptr
+ pRelease uintptr
+ pGetTypeInfoCount uintptr
+ pGetTypeInfo uintptr
+ pGetIDsOfNames uintptr
+ pInvoke uintptr
}
type IDispatch struct {
- lpVtbl *pIDispatchVtbl
+ lpVtbl *pIDispatchVtbl
}
func (this *IDispatch) QueryInterface(id *GUID) *IDispatch {
- return ComQueryInterface((*IUnknown)(unsafe.Pointer(this)), id)
+ return ComQueryInterface((*IUnknown)(unsafe.Pointer(this)), id)
}
func (this *IDispatch) AddRef() int32 {
- return ComAddRef((*IUnknown)(unsafe.Pointer(this)))
+ return ComAddRef((*IUnknown)(unsafe.Pointer(this)))
}
func (this *IDispatch) Release() int32 {
- return ComRelease((*IUnknown)(unsafe.Pointer(this)))
+ return ComRelease((*IUnknown)(unsafe.Pointer(this)))
}
func (this *IDispatch) GetIDsOfName(names []string) []int32 {
- return ComGetIDsOfName(this, names)
+ return ComGetIDsOfName(this, names)
}
func (this *IDispatch) Invoke(dispid int32, dispatch int16, params ...interface{}) *VARIANT {
- return ComInvoke(this, dispid, dispatch, params...)
+ return ComInvoke(this, dispid, dispatch, params...)
}
diff --git a/istream.go b/istream.go
index 13cad4d..c03781f 100644
--- a/istream.go
+++ b/istream.go
@@ -1,27 +1,27 @@
package w32
import (
- "unsafe"
+ "unsafe"
)
type pIStreamVtbl struct {
- pQueryInterface uintptr
- pAddRef uintptr
- pRelease uintptr
+ pQueryInterface uintptr
+ pAddRef uintptr
+ pRelease uintptr
}
type IStream struct {
- lpVtbl *pIStreamVtbl
+ lpVtbl *pIStreamVtbl
}
func (this *IStream) QueryInterface(id *GUID) *IDispatch {
- return ComQueryInterface((*IUnknown)(unsafe.Pointer(this)), id)
+ return ComQueryInterface((*IUnknown)(unsafe.Pointer(this)), id)
}
func (this *IStream) AddRef() int32 {
- return ComAddRef((*IUnknown)(unsafe.Pointer(this)))
+ return ComAddRef((*IUnknown)(unsafe.Pointer(this)))
}
func (this *IStream) Release() int32 {
- return ComRelease((*IUnknown)(unsafe.Pointer(this)))
+ return ComRelease((*IUnknown)(unsafe.Pointer(this)))
}
diff --git a/iunknown.go b/iunknown.go
index 1c44659..ba1eccd 100644
--- a/iunknown.go
+++ b/iunknown.go
@@ -1,23 +1,23 @@
package w32
type pIUnknownVtbl struct {
- pQueryInterface uintptr
- pAddRef uintptr
- pRelease uintptr
+ pQueryInterface uintptr
+ pAddRef uintptr
+ pRelease uintptr
}
type IUnknown struct {
- lpVtbl *pIUnknownVtbl
+ lpVtbl *pIUnknownVtbl
}
func (this *IUnknown) QueryInterface(id *GUID) *IDispatch {
- return ComQueryInterface(this, id)
+ return ComQueryInterface(this, id)
}
func (this *IUnknown) AddRef() int32 {
- return ComAddRef(this)
+ return ComAddRef(this)
}
func (this *IUnknown) Release() int32 {
- return ComRelease(this)
+ return ComRelease(this)
}
diff --git a/kernel32.go b/kernel32.go
index d7da2b0..4b7d7dd 100644
--- a/kernel32.go
+++ b/kernel32.go
@@ -5,231 +5,231 @@
package w32
import (
- "syscall"
- "unsafe"
+ "syscall"
+ "unsafe"
)
var (
- modkernel32 = syscall.NewLazyDLL("kernel32.dll")
+ modkernel32 = syscall.NewLazyDLL("kernel32.dll")
- procGetModuleHandle = modkernel32.NewProc("GetModuleHandleW")
- procMulDiv = modkernel32.NewProc("MulDiv")
- procGetCurrentThread = modkernel32.NewProc("GetCurrentThread")
- procGetUserDefaultLCID = modkernel32.NewProc("GetUserDefaultLCID")
- procLstrlen = modkernel32.NewProc("lstrlenW")
- procLstrcpy = modkernel32.NewProc("lstrcpyW")
- procGlobalAlloc = modkernel32.NewProc("GlobalAlloc")
- procGlobalFree = modkernel32.NewProc("GlobalFree")
- procGlobalLock = modkernel32.NewProc("GlobalLock")
- procGlobalUnlock = modkernel32.NewProc("GlobalUnlock")
- procMoveMemory = modkernel32.NewProc("RtlMoveMemory")
- procFindResource = modkernel32.NewProc("FindResourceW")
- procSizeofResource = modkernel32.NewProc("SizeofResource")
- procLockResource = modkernel32.NewProc("LockResource")
- procLoadResource = modkernel32.NewProc("LoadResource")
- procGetLastError = modkernel32.NewProc("GetLastError")
- procOpenProcess = modkernel32.NewProc("OpenProcess")
- procCloseHandle = modkernel32.NewProc("CloseHandle")
- procCreateToolhelp32Snapshot = modkernel32.NewProc("CreateToolhelp32Snapshot")
- procModule32First = modkernel32.NewProc("Module32FirstW")
- procModule32Next = modkernel32.NewProc("Module32NextW")
- procGetSystemTimes = modkernel32.NewProc("GetSystemTimes")
+ procGetModuleHandle = modkernel32.NewProc("GetModuleHandleW")
+ procMulDiv = modkernel32.NewProc("MulDiv")
+ procGetCurrentThread = modkernel32.NewProc("GetCurrentThread")
+ procGetUserDefaultLCID = modkernel32.NewProc("GetUserDefaultLCID")
+ procLstrlen = modkernel32.NewProc("lstrlenW")
+ procLstrcpy = modkernel32.NewProc("lstrcpyW")
+ procGlobalAlloc = modkernel32.NewProc("GlobalAlloc")
+ procGlobalFree = modkernel32.NewProc("GlobalFree")
+ procGlobalLock = modkernel32.NewProc("GlobalLock")
+ procGlobalUnlock = modkernel32.NewProc("GlobalUnlock")
+ procMoveMemory = modkernel32.NewProc("RtlMoveMemory")
+ procFindResource = modkernel32.NewProc("FindResourceW")
+ procSizeofResource = modkernel32.NewProc("SizeofResource")
+ procLockResource = modkernel32.NewProc("LockResource")
+ procLoadResource = modkernel32.NewProc("LoadResource")
+ procGetLastError = modkernel32.NewProc("GetLastError")
+ procOpenProcess = modkernel32.NewProc("OpenProcess")
+ procCloseHandle = modkernel32.NewProc("CloseHandle")
+ procCreateToolhelp32Snapshot = modkernel32.NewProc("CreateToolhelp32Snapshot")
+ procModule32First = modkernel32.NewProc("Module32FirstW")
+ procModule32Next = modkernel32.NewProc("Module32NextW")
+ procGetSystemTimes = modkernel32.NewProc("GetSystemTimes")
procGetConsoleScreenBufferInfo = modkernel32.NewProc("GetConsoleScreenBufferInfo")
)
func GetModuleHandle(modulename string) HINSTANCE {
- var mn uintptr
- if modulename == "" {
- mn = 0
- } else {
- mn = uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(modulename)))
- }
- ret, _, _ := procGetModuleHandle.Call(mn)
- return HINSTANCE(ret)
+ var mn uintptr
+ if modulename == "" {
+ mn = 0
+ } else {
+ mn = uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(modulename)))
+ }
+ ret, _, _ := procGetModuleHandle.Call(mn)
+ return HINSTANCE(ret)
}
func MulDiv(number, numerator, denominator int) int {
- ret, _, _ := procMulDiv.Call(
- uintptr(number),
- uintptr(numerator),
- uintptr(denominator))
+ ret, _, _ := procMulDiv.Call(
+ uintptr(number),
+ uintptr(numerator),
+ uintptr(denominator))
- return int(ret)
+ return int(ret)
}
func GetCurrentThread() HANDLE {
- ret, _, _ := procGetCurrentThread.Call()
+ ret, _, _ := procGetCurrentThread.Call()
- return HANDLE(ret)
+ return HANDLE(ret)
}
func GetUserDefaultLCID() uint32 {
- ret, _, _ := procGetUserDefaultLCID.Call()
+ ret, _, _ := procGetUserDefaultLCID.Call()
- return uint32(ret)
+ return uint32(ret)
}
func Lstrlen(lpString *uint16) int {
- ret, _, _ := procLstrlen.Call(uintptr(unsafe.Pointer(lpString)))
+ ret, _, _ := procLstrlen.Call(uintptr(unsafe.Pointer(lpString)))
- return int(ret)
+ return int(ret)
}
func Lstrcpy(buf []uint16, lpString *uint16) {
- procLstrcpy.Call(
- uintptr(unsafe.Pointer(&buf[0])),
- uintptr(unsafe.Pointer(lpString)))
+ procLstrcpy.Call(
+ uintptr(unsafe.Pointer(&buf[0])),
+ uintptr(unsafe.Pointer(lpString)))
}
func GlobalAlloc(uFlags uint, dwBytes uint32) HGLOBAL {
- ret, _, _ := procGlobalAlloc.Call(
- uintptr(uFlags),
- uintptr(dwBytes))
+ ret, _, _ := procGlobalAlloc.Call(
+ uintptr(uFlags),
+ uintptr(dwBytes))
- if ret == 0 {
- panic("GlobalAlloc failed")
- }
+ if ret == 0 {
+ panic("GlobalAlloc failed")
+ }
- return HGLOBAL(ret)
+ return HGLOBAL(ret)
}
func GlobalFree(hMem HGLOBAL) {
- ret, _, _ := procGlobalFree.Call(uintptr(hMem))
+ ret, _, _ := procGlobalFree.Call(uintptr(hMem))
- if ret != 0 {
- panic("GlobalFree failed")
- }
+ if ret != 0 {
+ panic("GlobalFree failed")
+ }
}
func GlobalLock(hMem HGLOBAL) unsafe.Pointer {
- ret, _, _ := procGlobalLock.Call(uintptr(hMem))
+ ret, _, _ := procGlobalLock.Call(uintptr(hMem))
- if ret == 0 {
- panic("GlobalLock failed")
- }
+ if ret == 0 {
+ panic("GlobalLock failed")
+ }
- return unsafe.Pointer(ret)
+ return unsafe.Pointer(ret)
}
func GlobalUnlock(hMem HGLOBAL) bool {
- ret, _, _ := procGlobalUnlock.Call(uintptr(hMem))
+ ret, _, _ := procGlobalUnlock.Call(uintptr(hMem))
- return ret != 0
+ return ret != 0
}
func MoveMemory(destination, source unsafe.Pointer, length uint32) {
- procMoveMemory.Call(
- uintptr(unsafe.Pointer(destination)),
- uintptr(source),
- uintptr(length))
+ procMoveMemory.Call(
+ uintptr(unsafe.Pointer(destination)),
+ uintptr(source),
+ uintptr(length))
}
func FindResource(hModule HMODULE, lpName, lpType *uint16) (HRSRC, error) {
- ret, _, _ := procFindResource.Call(
- uintptr(hModule),
- uintptr(unsafe.Pointer(lpName)),
- uintptr(unsafe.Pointer(lpType)))
+ ret, _, _ := procFindResource.Call(
+ uintptr(hModule),
+ uintptr(unsafe.Pointer(lpName)),
+ uintptr(unsafe.Pointer(lpType)))
- if ret == 0 {
- return 0, syscall.GetLastError()
- }
+ if ret == 0 {
+ return 0, syscall.GetLastError()
+ }
- return HRSRC(ret), nil
+ return HRSRC(ret), nil
}
func SizeofResource(hModule HMODULE, hResInfo HRSRC) uint32 {
- ret, _, _ := procSizeofResource.Call(
- uintptr(hModule),
- uintptr(hResInfo))
+ ret, _, _ := procSizeofResource.Call(
+ uintptr(hModule),
+ uintptr(hResInfo))
- if ret == 0 {
- panic("SizeofResource failed")
- }
+ if ret == 0 {
+ panic("SizeofResource failed")
+ }
- return uint32(ret)
+ return uint32(ret)
}
func LockResource(hResData HGLOBAL) unsafe.Pointer {
- ret, _, _ := procLockResource.Call(uintptr(hResData))
+ ret, _, _ := procLockResource.Call(uintptr(hResData))
- if ret == 0 {
- panic("LockResource failed")
- }
+ if ret == 0 {
+ panic("LockResource failed")
+ }
- return unsafe.Pointer(ret)
+ return unsafe.Pointer(ret)
}
func LoadResource(hModule HMODULE, hResInfo HRSRC) HGLOBAL {
- ret, _, _ := procLoadResource.Call(
- uintptr(hModule),
- uintptr(hResInfo))
+ ret, _, _ := procLoadResource.Call(
+ uintptr(hModule),
+ uintptr(hResInfo))
- if ret == 0 {
- panic("LoadResource failed")
- }
+ if ret == 0 {
+ panic("LoadResource failed")
+ }
- return HGLOBAL(ret)
+ return HGLOBAL(ret)
}
func GetLastError() uint32 {
- ret, _, _ := procGetLastError.Call()
- return uint32(ret)
+ ret, _, _ := procGetLastError.Call()
+ return uint32(ret)
}
func OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) HANDLE {
- inherit := 0
- if inheritHandle {
- inherit = 1
- }
+ inherit := 0
+ if inheritHandle {
+ inherit = 1
+ }
- ret, _, _ := procOpenProcess.Call(
- uintptr(desiredAccess),
- uintptr(inherit),
- uintptr(processId))
- return HANDLE(ret)
+ ret, _, _ := procOpenProcess.Call(
+ uintptr(desiredAccess),
+ uintptr(inherit),
+ uintptr(processId))
+ return HANDLE(ret)
}
func CloseHandle(object HANDLE) bool {
- ret, _, _ := procCloseHandle.Call(
- uintptr(object))
- return ret != 0
+ ret, _, _ := procCloseHandle.Call(
+ uintptr(object))
+ return ret != 0
}
func CreateToolhelp32Snapshot(flags, processId uint32) HANDLE {
- ret, _, _ := procCreateToolhelp32Snapshot.Call(
- uintptr(flags),
- uintptr(processId))
+ ret, _, _ := procCreateToolhelp32Snapshot.Call(
+ uintptr(flags),
+ uintptr(processId))
- if ret <= 0 {
- return HANDLE(0)
- }
+ if ret <= 0 {
+ return HANDLE(0)
+ }
- return HANDLE(ret)
+ return HANDLE(ret)
}
func Module32First(snapshot HANDLE, me *MODULEENTRY32) bool {
- ret, _, _ := procModule32First.Call(
- uintptr(snapshot),
- uintptr(unsafe.Pointer(me)))
+ ret, _, _ := procModule32First.Call(
+ uintptr(snapshot),
+ uintptr(unsafe.Pointer(me)))
- return ret != 0
+ return ret != 0
}
func Module32Next(snapshot HANDLE, me *MODULEENTRY32) bool {
- ret, _, _ := procModule32Next.Call(
- uintptr(snapshot),
- uintptr(unsafe.Pointer(me)))
+ ret, _, _ := procModule32Next.Call(
+ uintptr(snapshot),
+ uintptr(unsafe.Pointer(me)))
- return ret != 0
+ return ret != 0
}
func GetSystemTimes(lpIdleTime, lpKernelTime, lpUserTime *FILETIME) bool {
- ret, _, _ := procGetSystemTimes.Call(
- uintptr(unsafe.Pointer(lpIdleTime)),
- uintptr(unsafe.Pointer(lpKernelTime)),
- uintptr(unsafe.Pointer(lpUserTime)))
+ ret, _, _ := procGetSystemTimes.Call(
+ uintptr(unsafe.Pointer(lpIdleTime)),
+ uintptr(unsafe.Pointer(lpKernelTime)),
+ uintptr(unsafe.Pointer(lpUserTime)))
- return ret != 0
+ return ret != 0
}
func GetConsoleScreenBufferInfo(hConsoleOutput HANDLE) *CONSOLE_SCREEN_BUFFER_INFO {
diff --git a/ole32.go b/ole32.go
index 9dccea1..8ce37e6 100644
--- a/ole32.go
+++ b/ole32.go
@@ -5,59 +5,59 @@
package w32
import (
- "syscall"
- "unsafe"
+ "syscall"
+ "unsafe"
)
var (
- modole32 = syscall.NewLazyDLL("ole32.dll")
+ modole32 = syscall.NewLazyDLL("ole32.dll")
- procCoInitializeEx = modole32.NewProc("CoInitializeEx")
- procCoInitialize = modole32.NewProc("CoInitialize")
- procCoUninitialize = modole32.NewProc("CoUninitialize")
- procCreateStreamOnHGlobal = modole32.NewProc("CreateStreamOnHGlobal")
+ procCoInitializeEx = modole32.NewProc("CoInitializeEx")
+ procCoInitialize = modole32.NewProc("CoInitialize")
+ procCoUninitialize = modole32.NewProc("CoUninitialize")
+ procCreateStreamOnHGlobal = modole32.NewProc("CreateStreamOnHGlobal")
)
func CoInitializeEx(coInit uintptr) HRESULT {
- ret, _, _ := procCoInitializeEx.Call(
- 0,
- coInit)
+ ret, _, _ := procCoInitializeEx.Call(
+ 0,
+ coInit)
- switch uint32(ret) {
- case E_INVALIDARG:
- panic("CoInitializeEx failed with E_INVALIDARG")
- case E_OUTOFMEMORY:
- panic("CoInitializeEx failed with E_OUTOFMEMORY")
- case E_UNEXPECTED:
- panic("CoInitializeEx failed with E_UNEXPECTED")
- }
+ switch uint32(ret) {
+ case E_INVALIDARG:
+ panic("CoInitializeEx failed with E_INVALIDARG")
+ case E_OUTOFMEMORY:
+ panic("CoInitializeEx failed with E_OUTOFMEMORY")
+ case E_UNEXPECTED:
+ panic("CoInitializeEx failed with E_UNEXPECTED")
+ }
- return HRESULT(ret)
+ return HRESULT(ret)
}
func CoInitialize() {
- procCoInitialize.Call(0)
+ procCoInitialize.Call(0)
}
func CoUninitialize() {
- procCoUninitialize.Call()
+ procCoUninitialize.Call()
}
func CreateStreamOnHGlobal(hGlobal HGLOBAL, fDeleteOnRelease bool) *IStream {
- stream := new(IStream)
- ret, _, _ := procCreateStreamOnHGlobal.Call(
- uintptr(hGlobal),
- uintptr(BoolToBOOL(fDeleteOnRelease)),
- uintptr(unsafe.Pointer(&stream)))
+ stream := new(IStream)
+ ret, _, _ := procCreateStreamOnHGlobal.Call(
+ uintptr(hGlobal),
+ uintptr(BoolToBOOL(fDeleteOnRelease)),
+ uintptr(unsafe.Pointer(&stream)))
- switch uint32(ret) {
- case E_INVALIDARG:
- panic("CreateStreamOnHGlobal failed with E_INVALIDARG")
- case E_OUTOFMEMORY:
- panic("CreateStreamOnHGlobal failed with E_OUTOFMEMORY")
- case E_UNEXPECTED:
- panic("CreateStreamOnHGlobal failed with E_UNEXPECTED")
- }
+ switch uint32(ret) {
+ case E_INVALIDARG:
+ panic("CreateStreamOnHGlobal failed with E_INVALIDARG")
+ case E_OUTOFMEMORY:
+ panic("CreateStreamOnHGlobal failed with E_OUTOFMEMORY")
+ case E_UNEXPECTED:
+ panic("CreateStreamOnHGlobal failed with E_UNEXPECTED")
+ }
- return stream
+ return stream
}
diff --git a/oleaut32.go b/oleaut32.go
index 3273e11..33b0766 100644
--- a/oleaut32.go
+++ b/oleaut32.go
@@ -1,44 +1,44 @@
package w32
import (
- "syscall"
- "unsafe"
+ "syscall"
+ "unsafe"
)
var (
- modoleaut32 = syscall.NewLazyDLL("oleaut32")
+ modoleaut32 = syscall.NewLazyDLL("oleaut32")
- procVariantInit = modoleaut32.NewProc("VariantInit")
- procSysAllocString = modoleaut32.NewProc("SysAllocString")
- procSysFreeString = modoleaut32.NewProc("SysFreeString")
- procSysStringLen = modoleaut32.NewProc("SysStringLen")
- procCreateDispTypeInfo = modoleaut32.NewProc("CreateDispTypeInfo")
- procCreateStdDispatch = modoleaut32.NewProc("CreateStdDispatch")
+ procVariantInit = modoleaut32.NewProc("VariantInit")
+ procSysAllocString = modoleaut32.NewProc("SysAllocString")
+ procSysFreeString = modoleaut32.NewProc("SysFreeString")
+ procSysStringLen = modoleaut32.NewProc("SysStringLen")
+ procCreateDispTypeInfo = modoleaut32.NewProc("CreateDispTypeInfo")
+ procCreateStdDispatch = modoleaut32.NewProc("CreateStdDispatch")
)
func VariantInit(v *VARIANT) {
- hr, _, _ := procVariantInit.Call(uintptr(unsafe.Pointer(v)))
- if hr != 0 {
- panic("Invoke VariantInit error.")
- }
- return
+ hr, _, _ := procVariantInit.Call(uintptr(unsafe.Pointer(v)))
+ if hr != 0 {
+ panic("Invoke VariantInit error.")
+ }
+ return
}
func SysAllocString(v string) (ss *int16) {
- pss, _, _ := procSysAllocString.Call(uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(v))))
- ss = (*int16)(unsafe.Pointer(pss))
- return
+ pss, _, _ := procSysAllocString.Call(uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(v))))
+ ss = (*int16)(unsafe.Pointer(pss))
+ return
}
func SysFreeString(v *int16) {
- hr, _, _ := procSysFreeString.Call(uintptr(unsafe.Pointer(v)))
- if hr != 0 {
- panic("Invoke SysFreeString error.")
- }
- return
+ hr, _, _ := procSysFreeString.Call(uintptr(unsafe.Pointer(v)))
+ if hr != 0 {
+ panic("Invoke SysFreeString error.")
+ }
+ return
}
func SysStringLen(v *int16) uint {
- l, _, _ := procSysStringLen.Call(uintptr(unsafe.Pointer(v)))
- return uint(l)
+ l, _, _ := procSysStringLen.Call(uintptr(unsafe.Pointer(v)))
+ return uint(l)
}
diff --git a/psapi.go b/psapi.go
index 08a8976..40d9f2b 100644
--- a/psapi.go
+++ b/psapi.go
@@ -5,21 +5,21 @@
package w32
import (
- "syscall"
- "unsafe"
+ "syscall"
+ "unsafe"
)
var (
- modpsapi = syscall.NewLazyDLL("psapi.dll")
+ modpsapi = syscall.NewLazyDLL("psapi.dll")
- procEnumProcesses = modpsapi.NewProc("EnumProcesses")
+ procEnumProcesses = modpsapi.NewProc("EnumProcesses")
)
func EnumProcesses(processIds []uint32, cb uint32, bytesReturned *uint32) bool {
- ret, _, _ := procEnumProcesses.Call(
- uintptr(unsafe.Pointer(&processIds[0])),
- uintptr(cb),
- uintptr(unsafe.Pointer(bytesReturned)))
+ ret, _, _ := procEnumProcesses.Call(
+ uintptr(unsafe.Pointer(&processIds[0])),
+ uintptr(cb),
+ uintptr(unsafe.Pointer(bytesReturned)))
- return ret != 0
+ return ret != 0
}
diff --git a/shell32.go b/shell32.go
index 93e35cd..fdfd1c4 100644
--- a/shell32.go
+++ b/shell32.go
@@ -5,157 +5,157 @@
package w32
import (
- "errors"
- "fmt"
- "syscall"
- "unsafe"
+ "errors"
+ "fmt"
+ "syscall"
+ "unsafe"
)
var (
- modshell32 = syscall.NewLazyDLL("shell32.dll")
+ modshell32 = syscall.NewLazyDLL("shell32.dll")
- procSHBrowseForFolder = modshell32.NewProc("SHBrowseForFolderW")
- procSHGetPathFromIDList = modshell32.NewProc("SHGetPathFromIDListW")
- procDragAcceptFiles = modshell32.NewProc("DragAcceptFiles")
- procDragQueryFile = modshell32.NewProc("DragQueryFileW")
- procDragQueryPoint = modshell32.NewProc("DragQueryPoint")
- procDragFinish = modshell32.NewProc("DragFinish")
- procShellExecute = modshell32.NewProc("ShellExecuteW")
- procExtractIcon = modshell32.NewProc("ExtractIconW")
+ procSHBrowseForFolder = modshell32.NewProc("SHBrowseForFolderW")
+ procSHGetPathFromIDList = modshell32.NewProc("SHGetPathFromIDListW")
+ procDragAcceptFiles = modshell32.NewProc("DragAcceptFiles")
+ procDragQueryFile = modshell32.NewProc("DragQueryFileW")
+ procDragQueryPoint = modshell32.NewProc("DragQueryPoint")
+ procDragFinish = modshell32.NewProc("DragFinish")
+ procShellExecute = modshell32.NewProc("ShellExecuteW")
+ procExtractIcon = modshell32.NewProc("ExtractIconW")
)
func SHBrowseForFolder(bi *BROWSEINFO) uintptr {
- ret, _, _ := procSHBrowseForFolder.Call(uintptr(unsafe.Pointer(bi)))
+ ret, _, _ := procSHBrowseForFolder.Call(uintptr(unsafe.Pointer(bi)))
- return ret
+ return ret
}
func SHGetPathFromIDList(idl uintptr) string {
- buf := make([]uint16, 1024)
- procSHGetPathFromIDList.Call(
- idl,
- uintptr(unsafe.Pointer(&buf[0])))
+ buf := make([]uint16, 1024)
+ procSHGetPathFromIDList.Call(
+ idl,
+ uintptr(unsafe.Pointer(&buf[0])))
- return syscall.UTF16ToString(buf)
+ return syscall.UTF16ToString(buf)
}
func DragAcceptFiles(hwnd HWND, accept bool) {
- procDragAcceptFiles.Call(
- uintptr(hwnd),
- uintptr(BoolToBOOL(accept)))
+ procDragAcceptFiles.Call(
+ uintptr(hwnd),
+ uintptr(BoolToBOOL(accept)))
}
func DragQueryFile(hDrop HDROP, iFile uint) (fileName string, fileCount uint) {
- ret, _, _ := procDragQueryFile.Call(
- uintptr(hDrop),
- uintptr(iFile),
- 0,
- 0)
+ ret, _, _ := procDragQueryFile.Call(
+ uintptr(hDrop),
+ uintptr(iFile),
+ 0,
+ 0)
- fileCount = uint(ret)
+ fileCount = uint(ret)
- if iFile != 0xFFFFFFFF {
- buf := make([]uint16, fileCount+1)
+ if iFile != 0xFFFFFFFF {
+ buf := make([]uint16, fileCount+1)
- ret, _, _ := procDragQueryFile.Call(
- uintptr(hDrop),
- uintptr(iFile),
- uintptr(unsafe.Pointer(&buf[0])),
- uintptr(fileCount+1))
+ ret, _, _ := procDragQueryFile.Call(
+ uintptr(hDrop),
+ uintptr(iFile),
+ uintptr(unsafe.Pointer(&buf[0])),
+ uintptr(fileCount+1))
- if ret == 0 {
- panic("Invoke DragQueryFile error.")
- }
+ if ret == 0 {
+ panic("Invoke DragQueryFile error.")
+ }
- fileName = syscall.UTF16ToString(buf)
- }
+ fileName = syscall.UTF16ToString(buf)
+ }
- return
+ return
}
func DragQueryPoint(hDrop HDROP) (x, y int, isClientArea bool) {
- var pt POINT
- ret, _, _ := procDragQueryPoint.Call(
- uintptr(hDrop),
- uintptr(unsafe.Pointer(&pt)))
+ var pt POINT
+ ret, _, _ := procDragQueryPoint.Call(
+ uintptr(hDrop),
+ uintptr(unsafe.Pointer(&pt)))
- isClientArea = false
- if ret == 1 {
- isClientArea = true
- }
+ isClientArea = false
+ if ret == 1 {
+ isClientArea = true
+ }
- x = pt.X
- y = pt.Y
+ x = pt.X
+ y = pt.Y
- return
+ return
}
func DragFinish(hDrop HDROP) {
- procDragFinish.Call(uintptr(hDrop))
+ procDragFinish.Call(uintptr(hDrop))
}
func ShellExecute(hwnd HWND, lpOperation, lpFile, lpParameters, lpDirectory string, nShowCmd int) error {
- var op, param, directory uintptr
- if len(lpOperation) != 0 {
- op = uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpOperation)))
- }
- if len(lpParameters) != 0 {
- param = uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpParameters)))
- }
- if len(lpDirectory) != 0 {
- directory = uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpDirectory)))
- }
+ var op, param, directory uintptr
+ if len(lpOperation) != 0 {
+ op = uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpOperation)))
+ }
+ if len(lpParameters) != 0 {
+ param = uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpParameters)))
+ }
+ if len(lpDirectory) != 0 {
+ directory = uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpDirectory)))
+ }
- ret, _, _ := procShellExecute.Call(
- uintptr(hwnd),
- op,
- uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpFile))),
- param,
- directory,
- uintptr(nShowCmd))
+ ret, _, _ := procShellExecute.Call(
+ uintptr(hwnd),
+ op,
+ uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpFile))),
+ param,
+ directory,
+ uintptr(nShowCmd))
- errorMsg := ""
- if ret != 0 && ret <= 32 {
- switch int(ret) {
- case ERROR_FILE_NOT_FOUND:
- errorMsg = "The specified file was not found."
- case ERROR_PATH_NOT_FOUND:
- errorMsg = "The specified path was not found."
- case ERROR_BAD_FORMAT:
- errorMsg = "The .exe file is invalid (non-Win32 .exe or error in .exe image)."
- case SE_ERR_ACCESSDENIED:
- errorMsg = "The operating system denied access to the specified file."
- case SE_ERR_ASSOCINCOMPLETE:
- errorMsg = "The file name association is incomplete or invalid."
- case SE_ERR_DDEBUSY:
- errorMsg = "The DDE transaction could not be completed because other DDE transactions were being processed."
- case SE_ERR_DDEFAIL:
- errorMsg = "The DDE transaction failed."
- case SE_ERR_DDETIMEOUT:
- errorMsg = "The DDE transaction could not be completed because the request timed out."
- case SE_ERR_DLLNOTFOUND:
- errorMsg = "The specified DLL was not found."
- case SE_ERR_NOASSOC:
- errorMsg = "There is no application associated with the given file name extension. This error will also be returned if you attempt to print a file that is not printable."
- case SE_ERR_OOM:
- errorMsg = "There was not enough memory to complete the operation."
- case SE_ERR_SHARE:
- errorMsg = "A sharing violation occurred."
- default:
- errorMsg = fmt.Sprintf("Unknown error occurred with error code %v", ret)
- }
- } else {
- return nil
- }
+ errorMsg := ""
+ if ret != 0 && ret <= 32 {
+ switch int(ret) {
+ case ERROR_FILE_NOT_FOUND:
+ errorMsg = "The specified file was not found."
+ case ERROR_PATH_NOT_FOUND:
+ errorMsg = "The specified path was not found."
+ case ERROR_BAD_FORMAT:
+ errorMsg = "The .exe file is invalid (non-Win32 .exe or error in .exe image)."
+ case SE_ERR_ACCESSDENIED:
+ errorMsg = "The operating system denied access to the specified file."
+ case SE_ERR_ASSOCINCOMPLETE:
+ errorMsg = "The file name association is incomplete or invalid."
+ case SE_ERR_DDEBUSY:
+ errorMsg = "The DDE transaction could not be completed because other DDE transactions were being processed."
+ case SE_ERR_DDEFAIL:
+ errorMsg = "The DDE transaction failed."
+ case SE_ERR_DDETIMEOUT:
+ errorMsg = "The DDE transaction could not be completed because the request timed out."
+ case SE_ERR_DLLNOTFOUND:
+ errorMsg = "The specified DLL was not found."
+ case SE_ERR_NOASSOC:
+ errorMsg = "There is no application associated with the given file name extension. This error will also be returned if you attempt to print a file that is not printable."
+ case SE_ERR_OOM:
+ errorMsg = "There was not enough memory to complete the operation."
+ case SE_ERR_SHARE:
+ errorMsg = "A sharing violation occurred."
+ default:
+ errorMsg = fmt.Sprintf("Unknown error occurred with error code %v", ret)
+ }
+ } else {
+ return nil
+ }
- return errors.New(errorMsg)
+ return errors.New(errorMsg)
}
func ExtractIcon(lpszExeFileName string, nIconIndex int) HICON {
- ret, _, _ := procExtractIcon.Call(
- 0,
- uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpszExeFileName))),
- uintptr(nIconIndex))
+ ret, _, _ := procExtractIcon.Call(
+ 0,
+ uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpszExeFileName))),
+ uintptr(nIconIndex))
- return HICON(ret)
+ return HICON(ret)
}
diff --git a/typedef.go b/typedef.go
index cdfc52d..65b677d 100644
--- a/typedef.go
+++ b/typedef.go
@@ -5,461 +5,461 @@
package w32
import (
- "unsafe"
+ "unsafe"
)
type (
- BOOL int
- ATOM uint16
- DWORD uint32
- HANDLE uintptr
- HINSTANCE HANDLE
- HACCEL HANDLE
- HCURSOR HANDLE
- HDWP HANDLE
- HICON HANDLE
- HMENU HANDLE
- HWND HANDLE
- HBRUSH HANDLE
- HRESULT int32
- HFONT HANDLE
- HDC HANDLE
- HGDIOBJ HANDLE
- HDROP HANDLE
- HENHMETAFILE HANDLE
- HBITMAP HANDLE
- HPEN HANDLE
- HKEY HANDLE
- HIMAGELIST HANDLE
- HGLOBAL HANDLE
- HMODULE HANDLE
- HRSRC HANDLE
- COLORREF DWORD
+ BOOL int
+ ATOM uint16
+ DWORD uint32
+ HANDLE uintptr
+ HINSTANCE HANDLE
+ HACCEL HANDLE
+ HCURSOR HANDLE
+ HDWP HANDLE
+ HICON HANDLE
+ HMENU HANDLE
+ HWND HANDLE
+ HBRUSH HANDLE
+ HRESULT int32
+ HFONT HANDLE
+ HDC HANDLE
+ HGDIOBJ HANDLE
+ HDROP HANDLE
+ HENHMETAFILE HANDLE
+ HBITMAP HANDLE
+ HPEN HANDLE
+ HKEY HANDLE
+ HIMAGELIST HANDLE
+ HGLOBAL HANDLE
+ HMODULE HANDLE
+ HRSRC HANDLE
+ COLORREF DWORD
)
type POINT struct {
- X, Y int
+ X, Y int
}
type RECT struct {
- Left, Top, Right, Bottom int
+ Left, Top, Right, Bottom int
}
type WNDCLASSEX struct {
- Size uint
- Style uint
- WndProc uintptr
- ClsExtra int
- WndExtra int
- Instance HINSTANCE
- Icon HICON
- Cursor HCURSOR
- Background HBRUSH
- MenuName *uint16
- ClassName *uint16
- IconSm HICON
+ Size uint
+ Style uint
+ WndProc uintptr
+ ClsExtra int
+ WndExtra int
+ Instance HINSTANCE
+ Icon HICON
+ Cursor HCURSOR
+ Background HBRUSH
+ MenuName *uint16
+ ClassName *uint16
+ IconSm HICON
}
type MSG struct {
- Hwnd HWND
- Message uint
- WParam uintptr
- LParam uintptr
- Time uint
- Pt POINT
+ Hwnd HWND
+ Message uint
+ WParam uintptr
+ LParam uintptr
+ Time uint
+ Pt POINT
}
type LOGFONT struct {
- Height int
- Width int
- Escapement int
- Orientation int
- Weight int
- Italic byte
- Underline byte
- StrikeOut byte
- CharSet byte
- OutPrecision byte
- ClipPrecision byte
- Quality byte
- PitchAndFamily byte
- FaceName [LF_FACESIZE]uint16
+ Height int
+ Width int
+ Escapement int
+ Orientation int
+ Weight int
+ Italic byte
+ Underline byte
+ StrikeOut byte
+ CharSet byte
+ OutPrecision byte
+ ClipPrecision byte
+ Quality byte
+ PitchAndFamily byte
+ FaceName [LF_FACESIZE]uint16
}
type OPENFILENAME struct {
- StructSize uint
- Owner HWND
- Instance HINSTANCE
- Filter *uint16
- CustomFilter *uint16
- MaxCustomFilter uint
- FilterIndex uint
- File *uint16
- MaxFile uint
- FileTitle *uint16
- MaxFileTitle uint
- InitialDir *uint16
- Title *uint16
- Flags uint
- FileOffset uint16
- FileExtension uint16
- DefExt *uint16
- CustData uintptr
- FnHook uintptr
- TemplateName *uint16
- PvReserved unsafe.Pointer
- DwReserved uint
- FlagsEx uint
+ StructSize uint
+ Owner HWND
+ Instance HINSTANCE
+ Filter *uint16
+ CustomFilter *uint16
+ MaxCustomFilter uint
+ FilterIndex uint
+ File *uint16
+ MaxFile uint
+ FileTitle *uint16
+ MaxFileTitle uint
+ InitialDir *uint16
+ Title *uint16
+ Flags uint
+ FileOffset uint16
+ FileExtension uint16
+ DefExt *uint16
+ CustData uintptr
+ FnHook uintptr
+ TemplateName *uint16
+ PvReserved unsafe.Pointer
+ DwReserved uint
+ FlagsEx uint
}
type BROWSEINFO struct {
- Owner HWND
- Root *uint16
- DisplayName *uint16
- Title *uint16
- Flags uint
- CallbackFunc uintptr
- LParam uintptr
- Image int
+ Owner HWND
+ Root *uint16
+ DisplayName *uint16
+ Title *uint16
+ Flags uint
+ CallbackFunc uintptr
+ LParam uintptr
+ Image int
}
type GUID struct {
- Data1 uint
- Data2 uint16
- Data3 uint16
- Data4 [8]byte
+ Data1 uint
+ Data2 uint16
+ Data3 uint16
+ Data4 [8]byte
}
type VARIANT struct {
- VT uint16 // 2
- WReserved1 uint16 // 4
- WReserved2 uint16 // 6
- WReserved3 uint16 // 8
- Val int64 // 16
+ VT uint16 // 2
+ WReserved1 uint16 // 4
+ WReserved2 uint16 // 6
+ WReserved3 uint16 // 8
+ Val int64 // 16
}
type DISPPARAMS struct {
- Rgvarg uintptr
- RgdispidNamedArgs uintptr
- CArgs uint
- CNamedArgs uint
+ Rgvarg uintptr
+ RgdispidNamedArgs uintptr
+ CArgs uint
+ CNamedArgs uint
}
type EXCEPINFO struct {
- WCode uint16
- WReserved uint16
- BstrSource *uint16
- BstrDescription *uint16
- BstrHelpFile *uint16
- DwHelpContext uint
- PvReserved uintptr
- PfnDeferredFillIn uintptr
- Scode int
+ WCode uint16
+ WReserved uint16
+ BstrSource *uint16
+ BstrDescription *uint16
+ BstrHelpFile *uint16
+ DwHelpContext uint
+ PvReserved uintptr
+ PfnDeferredFillIn uintptr
+ Scode int
}
type LOGBRUSH struct {
- LbStyle uint
- LbColor COLORREF
- LbHatch uintptr
+ LbStyle uint
+ LbColor COLORREF
+ LbHatch uintptr
}
type DEVMODE struct {
- DmDeviceName [CCHDEVICENAME]uint16
- DmSpecVersion uint16
- DmDriverVersion uint16
- DmSize uint16
- DmDriverExtra uint16
- DmFields uint
- DmOrientation int16
- DmPaperSize int16
- DmPaperLength int16
- DmPaperWidth int16
- DmScale int16
- DmCopies int16
- DmDefaultSource int16
- DmPrintQuality int16
- DmColor int16
- DmDuplex int16
- DmYResolution int16
- DmTTOption int16
- DmCollate int16
- DmFormName [CCHFORMNAME]uint16
- DmLogPixels uint16
- DmBitsPerPel uint
- DmPelsWidth uint
- DmPelsHeight uint
- DmDisplayFlags uint
- DmDisplayFrequency uint
- DmICMMethod uint
- DmICMIntent uint
- DmMediaType uint
- DmDitherType uint
- DmReserved1 uint
- DmReserved2 uint
- DmPanningWidth uint
- DmPanningHeight uint
+ DmDeviceName [CCHDEVICENAME]uint16
+ DmSpecVersion uint16
+ DmDriverVersion uint16
+ DmSize uint16
+ DmDriverExtra uint16
+ DmFields uint
+ DmOrientation int16
+ DmPaperSize int16
+ DmPaperLength int16
+ DmPaperWidth int16
+ DmScale int16
+ DmCopies int16
+ DmDefaultSource int16
+ DmPrintQuality int16
+ DmColor int16
+ DmDuplex int16
+ DmYResolution int16
+ DmTTOption int16
+ DmCollate int16
+ DmFormName [CCHFORMNAME]uint16
+ DmLogPixels uint16
+ DmBitsPerPel uint
+ DmPelsWidth uint
+ DmPelsHeight uint
+ DmDisplayFlags uint
+ DmDisplayFrequency uint
+ DmICMMethod uint
+ DmICMIntent uint
+ DmMediaType uint
+ DmDitherType uint
+ DmReserved1 uint
+ DmReserved2 uint
+ DmPanningWidth uint
+ DmPanningHeight uint
}
type BITMAPINFOHEADER struct {
- BiSize uint
- BiWidth int
- BiHeight int
- BiPlanes uint16
- BiBitCount uint16
- BiCompression uint
- BiSizeImage uint
- BiXPelsPerMeter int
- BiYPelsPerMeter int
- BiClrUsed uint
- BiClrImportant uint
+ BiSize uint
+ BiWidth int
+ BiHeight int
+ BiPlanes uint16
+ BiBitCount uint16
+ BiCompression uint
+ BiSizeImage uint
+ BiXPelsPerMeter int
+ BiYPelsPerMeter int
+ BiClrUsed uint
+ BiClrImportant uint
}
type RGBQUAD struct {
- RgbBlue byte
- RgbGreen byte
- RgbRed byte
- RgbReserved byte
+ RgbBlue byte
+ RgbGreen byte
+ RgbRed byte
+ RgbReserved byte
}
type BITMAPINFO struct {
- BmiHeader BITMAPINFOHEADER
- BmiColors *RGBQUAD
+ BmiHeader BITMAPINFOHEADER
+ BmiColors *RGBQUAD
}
type BITMAP struct {
- BmType int32
- BmWidth int32
- BmHeight int32
- BmWidthBytes int32
- BmPlanes uint16
- BmBitsPixel uint16
- BmBits unsafe.Pointer
+ BmType int32
+ BmWidth int32
+ BmHeight int32
+ BmWidthBytes int32
+ BmPlanes uint16
+ BmBitsPixel uint16
+ BmBits unsafe.Pointer
}
type DIBSECTION struct {
- DsBm BITMAP
- DsBmih BITMAPINFOHEADER
- DsBitfields [3]uint32
- DshSection HANDLE
- DsOffset uint32
+ DsBm BITMAP
+ DsBmih BITMAPINFOHEADER
+ DsBitfields [3]uint32
+ DshSection HANDLE
+ DsOffset uint32
}
type ENHMETAHEADER struct {
- IType uint
- NSize uint
- RclBounds RECT
- RclFrame RECT
- DSignature uint
- NVersion uint
- NBytes uint
- NRecords uint
- NHandles uint16
- SReserved uint16
- NDescription uint
- OffDescription uint
- NPalEntries uint
- SzlDevice SIZE
- SzlMillimeters SIZE
- CbPixelFormat uint
- OffPixelFormat uint
- BOpenGL uint
- SzlMicrometers SIZE
+ IType uint
+ NSize uint
+ RclBounds RECT
+ RclFrame RECT
+ DSignature uint
+ NVersion uint
+ NBytes uint
+ NRecords uint
+ NHandles uint16
+ SReserved uint16
+ NDescription uint
+ OffDescription uint
+ NPalEntries uint
+ SzlDevice SIZE
+ SzlMillimeters SIZE
+ CbPixelFormat uint
+ OffPixelFormat uint
+ BOpenGL uint
+ SzlMicrometers SIZE
}
type SIZE struct {
- CX, CY int
+ CX, CY int
}
type TEXTMETRIC struct {
- TmHeight int
- TmAscent int
- TmDescent int
- TmInternalLeading int
- TmExternalLeading int
- TmAveCharWidth int
- TmMaxCharWidth int
- TmWeight int
- TmOverhang int
- TmDigitizedAspectX int
- TmDigitizedAspectY int
- TmFirstChar uint16
- TmLastChar uint16
- TmDefaultChar uint16
- TmBreakChar uint16
- TmItalic byte
- TmUnderlined byte
- TmStruckOut byte
- TmPitchAndFamily byte
- TmCharSet byte
+ TmHeight int
+ TmAscent int
+ TmDescent int
+ TmInternalLeading int
+ TmExternalLeading int
+ TmAveCharWidth int
+ TmMaxCharWidth int
+ TmWeight int
+ TmOverhang int
+ TmDigitizedAspectX int
+ TmDigitizedAspectY int
+ TmFirstChar uint16
+ TmLastChar uint16
+ TmDefaultChar uint16
+ TmBreakChar uint16
+ TmItalic byte
+ TmUnderlined byte
+ TmStruckOut byte
+ TmPitchAndFamily byte
+ TmCharSet byte
}
type DOCINFO struct {
- CbSize int
- LpszDocName *uint16
- LpszOutput *uint16
- LpszDatatype *uint16
- FwType uint
+ CbSize int
+ LpszDocName *uint16
+ LpszOutput *uint16
+ LpszDatatype *uint16
+ FwType uint
}
type NMHDR struct {
- HwndFrom HWND
- IdFrom uintptr
- Code uint
+ HwndFrom HWND
+ IdFrom uintptr
+ Code uint
}
type LVCOLUMN struct {
- Mask uint
- Fmt int
- Cx int
- PszText *uint16
- CchTextMax int
- ISubItem int
- IImage int
- IOrder int
+ Mask uint
+ Fmt int
+ Cx int
+ PszText *uint16
+ CchTextMax int
+ ISubItem int
+ IImage int
+ IOrder int
}
type LVITEM struct {
- Mask uint
- IItem int
- ISubItem int
- State uint
- StateMask uint
- PszText *uint16
- CchTextMax int
- IImage int
- LParam uintptr
- IIndent int
- IGroupId int
- CColumns uint
- PuColumns uint
+ Mask uint
+ IItem int
+ ISubItem int
+ State uint
+ StateMask uint
+ PszText *uint16
+ CchTextMax int
+ IImage int
+ LParam uintptr
+ IIndent int
+ IGroupId int
+ CColumns uint
+ PuColumns uint
}
type LVHITTESTINFO struct {
- Pt POINT
- Flags uint
- IItem int
- ISubItem int
- IGroup int
+ Pt POINT
+ Flags uint
+ IItem int
+ ISubItem int
+ IGroup int
}
type NMITEMACTIVATE struct {
- Hdr NMHDR
- IItem int
- ISubItem int
- UNewState uint
- UOldState uint
- UChanged uint
- PtAction POINT
- LParam uintptr
- UKeyFlags uint
+ Hdr NMHDR
+ IItem int
+ ISubItem int
+ UNewState uint
+ UOldState uint
+ UChanged uint
+ PtAction POINT
+ LParam uintptr
+ UKeyFlags uint
}
type NMLISTVIEW struct {
- Hdr NMHDR
- IItem int
- ISubItem int
- UNewState uint
- UOldState uint
- UChanged uint
- PtAction POINT
- LParam uintptr
+ Hdr NMHDR
+ IItem int
+ ISubItem int
+ UNewState uint
+ UOldState uint
+ UChanged uint
+ PtAction POINT
+ LParam uintptr
}
type NMLVDISPINFO struct {
- Hdr NMHDR
- Item LVITEM
+ Hdr NMHDR
+ Item LVITEM
}
type INITCOMMONCONTROLSEX struct {
- DwSize uint
- DwICC uint
+ DwSize uint
+ DwICC uint
}
type TOOLINFO struct {
- CbSize uint
- UFlags uint
- Hwnd HWND
- UId uintptr
- Rect RECT
- Hinst HINSTANCE
- LpszText *uint16
- LParam uintptr
- LpReserved unsafe.Pointer
+ CbSize uint
+ UFlags uint
+ Hwnd HWND
+ UId uintptr
+ Rect RECT
+ Hinst HINSTANCE
+ LpszText *uint16
+ LParam uintptr
+ LpReserved unsafe.Pointer
}
type TRACKMOUSEEVENT struct {
- CbSize uint
- DwFlags uint
- HwndTrack HWND
- DwHoverTime uint
+ CbSize uint
+ DwFlags uint
+ HwndTrack HWND
+ DwHoverTime uint
}
type GdiplusStartupInput struct {
- GdiplusVersion uint32
- DebugEventCallback uintptr
- SuppressBackgroundThread BOOL
- SuppressExternalCodecs BOOL
+ GdiplusVersion uint32
+ DebugEventCallback uintptr
+ SuppressBackgroundThread BOOL
+ SuppressExternalCodecs BOOL
}
type GdiplusStartupOutput struct {
- NotificationHook uintptr
- NotificationUnhook uintptr
+ NotificationHook uintptr
+ NotificationUnhook uintptr
}
type PAINTSTRUCT struct {
- Hdc HDC
- FErase BOOL
- RcPaint RECT
- FRestore BOOL
- FIncUpdate BOOL
- RgbReserved [32]byte
+ Hdc HDC
+ FErase BOOL
+ RcPaint RECT
+ FRestore BOOL
+ FIncUpdate BOOL
+ RgbReserved [32]byte
}
type EVENTLOGRECORD struct {
- Length uint32
- Reserved uint32
- RecordNumber uint32
- TimeGenerated uint32
- TimeWritten uint32
- EventID uint32
- EventType uint16
- NumStrings uint16
- EventCategory uint16
- ReservedFlags uint16
- ClosingRecordNumber uint32
- StringOffset uint32
- UserSidLength uint32
- UserSidOffset uint32
- DataLength uint32
- DataOffset uint32
+ Length uint32
+ Reserved uint32
+ RecordNumber uint32
+ TimeGenerated uint32
+ TimeWritten uint32
+ EventID uint32
+ EventType uint16
+ NumStrings uint16
+ EventCategory uint16
+ ReservedFlags uint16
+ ClosingRecordNumber uint32
+ StringOffset uint32
+ UserSidLength uint32
+ UserSidOffset uint32
+ DataLength uint32
+ DataOffset uint32
}
type SERVICE_STATUS struct {
- DwServiceType DWORD
- DwCurrentState DWORD
- DwControlsAccepted DWORD
- DwWin32ExitCode DWORD
- DwServiceSpecificExitCode DWORD
- DwCheckPoint DWORD
- DwWaitHint DWORD
+ DwServiceType DWORD
+ DwCurrentState DWORD
+ DwControlsAccepted DWORD
+ DwWin32ExitCode DWORD
+ DwServiceSpecificExitCode DWORD
+ DwCheckPoint DWORD
+ DwWaitHint DWORD
}
type MODULEENTRY32 struct {
- Size uint32
- ModuleID uint32
- ProcessID uint32
- GlblcntUsage uint32
- ProccntUsage uint32
- ModBaseAddr *uint8
- ModBaseSize uint32
- HModule HMODULE
- SzModule [MAX_MODULE_NAME32 + 1]uint16
- SzExePath [MAX_PATH]uint16
+ Size uint32
+ ModuleID uint32
+ ProcessID uint32
+ GlblcntUsage uint32
+ ProccntUsage uint32
+ ModBaseAddr *uint8
+ ModBaseSize uint32
+ HModule HMODULE
+ SzModule [MAX_MODULE_NAME32 + 1]uint16
+ SzExePath [MAX_PATH]uint16
}
type FILETIME struct {
- DwLowDateTime DWORD
- DwHighDateTime DWORD
+ DwLowDateTime DWORD
+ DwHighDateTime DWORD
}
type COORD struct {
@@ -471,9 +471,9 @@
}
type CONSOLE_SCREEN_BUFFER_INFO struct {
- DwSize COORD
- DwCursorPosition COORD
- WAttributes uint16
- SrWindow SMALL_RECT
+ DwSize COORD
+ DwCursorPosition COORD
+ WAttributes uint16
+ SrWindow SMALL_RECT
DwMaximumWindowSize COORD
}
diff --git a/user32.go b/user32.go
index 89f34b2..4341f5d 100644
--- a/user32.go
+++ b/user32.go
@@ -5,780 +5,780 @@
package w32
import (
- "fmt"
- "syscall"
- "unsafe"
+ "fmt"
+ "syscall"
+ "unsafe"
)
var (
- moduser32 = syscall.NewLazyDLL("user32.dll")
+ moduser32 = syscall.NewLazyDLL("user32.dll")
- procRegisterClassEx = moduser32.NewProc("RegisterClassExW")
- procLoadIcon = moduser32.NewProc("LoadIconW")
- procLoadCursor = moduser32.NewProc("LoadCursorW")
- procShowWindow = moduser32.NewProc("ShowWindow")
- procUpdateWindow = moduser32.NewProc("UpdateWindow")
- procCreateWindowEx = moduser32.NewProc("CreateWindowExW")
- procAdjustWindowRect = moduser32.NewProc("AdjustWindowRect")
- procAdjustWindowRectEx = moduser32.NewProc("AdjustWindowRectEx")
- procDestroyWindow = moduser32.NewProc("DestroyWindow")
- procDefWindowProc = moduser32.NewProc("DefWindowProcW")
- procDefDlgProc = moduser32.NewProc("DefDlgProcW")
- procPostQuitMessage = moduser32.NewProc("PostQuitMessage")
- procGetMessage = moduser32.NewProc("GetMessageW")
- procTranslateMessage = moduser32.NewProc("TranslateMessage")
- procDispatchMessage = moduser32.NewProc("DispatchMessageW")
- procSendMessage = moduser32.NewProc("SendMessageW")
- procPostMessage = moduser32.NewProc("PostMessageW")
- procSetWindowText = moduser32.NewProc("SetWindowTextW")
- procGetWindowTextLength = moduser32.NewProc("GetWindowTextLengthW")
- procGetWindowText = moduser32.NewProc("GetWindowTextW")
- procGetWindowRect = moduser32.NewProc("GetWindowRect")
- procMoveWindow = moduser32.NewProc("MoveWindow")
- procScreenToClient = moduser32.NewProc("ScreenToClient")
- procCallWindowProc = moduser32.NewProc("CallWindowProcW")
- procSetWindowLongPtr = moduser32.NewProc("SetWindowLongW")
- procEnableWindow = moduser32.NewProc("EnableWindow")
- procIsWindowEnabled = moduser32.NewProc("IsWindowEnabled")
- procIsWindowVisible = moduser32.NewProc("IsWindowVisible")
- procSetFocus = moduser32.NewProc("SetFocus")
- procInvalidateRect = moduser32.NewProc("InvalidateRect")
- procGetClientRect = moduser32.NewProc("GetClientRect")
- procGetDC = moduser32.NewProc("GetDC")
- procReleaseDC = moduser32.NewProc("ReleaseDC")
- procSetCapture = moduser32.NewProc("SetCapture")
- procReleaseCapture = moduser32.NewProc("ReleaseCapture")
- procGetWindowThreadProcessId = moduser32.NewProc("GetWindowThreadProcessId")
- procMessageBox = moduser32.NewProc("MessageBoxW")
- procGetSystemMetrics = moduser32.NewProc("GetSystemMetrics")
- procGetWindowLongPtr = moduser32.NewProc("GetWindowLongW")
- procCopyRect = moduser32.NewProc("CopyRect")
- procEqualRect = moduser32.NewProc("EqualRect")
- procInflateRect = moduser32.NewProc("InflateRect")
- procIntersectRect = moduser32.NewProc("IntersectRect")
- procIsRectEmpty = moduser32.NewProc("IsRectEmpty")
- procOffsetRect = moduser32.NewProc("OffsetRect")
- procPtInRect = moduser32.NewProc("PtInRect")
- procSetRect = moduser32.NewProc("SetRect")
- procSetRectEmpty = moduser32.NewProc("SetRectEmpty")
- procSubtractRect = moduser32.NewProc("SubtractRect")
- procUnionRect = moduser32.NewProc("UnionRect")
- procCreateDialogParam = moduser32.NewProc("CreateDialogParamW")
- procDialogBoxParam = moduser32.NewProc("DialogBoxParamW")
- procGetDlgItem = moduser32.NewProc("GetDlgItem")
- procDrawIcon = moduser32.NewProc("DrawIcon")
- procClientToScreen = moduser32.NewProc("ClientToScreen")
- procIsDialogMessage = moduser32.NewProc("IsDialogMessageW")
- procIsWindow = moduser32.NewProc("IsWindow")
- procEndDialog = moduser32.NewProc("EndDialog")
- procSetWindowLong = moduser32.NewProc("SetWindowLongW")
- procPeekMessage = moduser32.NewProc("PeekMessageW")
- procTranslateAccelerator = moduser32.NewProc("TranslateAcceleratorW")
- procDestroyIcon = moduser32.NewProc("DestroyIcon")
- procSetWindowPos = moduser32.NewProc("SetWindowPos")
- procFillRect = moduser32.NewProc("FillRect")
- procDrawText = moduser32.NewProc("DrawTextW")
- procAddClipboardFormatListener = moduser32.NewProc("AddClipboardFormatListener")
- procRemoveClipboardFormatListener = moduser32.NewProc("RemoveClipboardFormatListener")
- procOpenClipboard = moduser32.NewProc("OpenClipboard")
- procCloseClipboard = moduser32.NewProc("CloseClipboard")
- procEnumClipboardFormats = moduser32.NewProc("EnumClipboardFormats")
- procGetClipboardData = moduser32.NewProc("GetClipboardData")
- procSetClipboardData = moduser32.NewProc("SetClipboardData")
- procEmptyClipboard = moduser32.NewProc("EmptyClipboard")
- procGetClipboardFormatName = moduser32.NewProc("GetClipboardFormatNameW")
- procIsClipboardFormatAvailable = moduser32.NewProc("IsClipboardFormatAvailable")
- procBeginPaint = moduser32.NewProc("BeginPaint")
- procEndPaint = moduser32.NewProc("EndPaint")
- procGetKeyboardState = moduser32.NewProc("GetKeyboardState")
- procMapVirtualKey = moduser32.NewProc("MapVirtualKeyExA")
- procToAscii = moduser32.NewProc("ToAscii")
+ procRegisterClassEx = moduser32.NewProc("RegisterClassExW")
+ procLoadIcon = moduser32.NewProc("LoadIconW")
+ procLoadCursor = moduser32.NewProc("LoadCursorW")
+ procShowWindow = moduser32.NewProc("ShowWindow")
+ procUpdateWindow = moduser32.NewProc("UpdateWindow")
+ procCreateWindowEx = moduser32.NewProc("CreateWindowExW")
+ procAdjustWindowRect = moduser32.NewProc("AdjustWindowRect")
+ procAdjustWindowRectEx = moduser32.NewProc("AdjustWindowRectEx")
+ procDestroyWindow = moduser32.NewProc("DestroyWindow")
+ procDefWindowProc = moduser32.NewProc("DefWindowProcW")
+ procDefDlgProc = moduser32.NewProc("DefDlgProcW")
+ procPostQuitMessage = moduser32.NewProc("PostQuitMessage")
+ procGetMessage = moduser32.NewProc("GetMessageW")
+ procTranslateMessage = moduser32.NewProc("TranslateMessage")
+ procDispatchMessage = moduser32.NewProc("DispatchMessageW")
+ procSendMessage = moduser32.NewProc("SendMessageW")
+ procPostMessage = moduser32.NewProc("PostMessageW")
+ procSetWindowText = moduser32.NewProc("SetWindowTextW")
+ procGetWindowTextLength = moduser32.NewProc("GetWindowTextLengthW")
+ procGetWindowText = moduser32.NewProc("GetWindowTextW")
+ procGetWindowRect = moduser32.NewProc("GetWindowRect")
+ procMoveWindow = moduser32.NewProc("MoveWindow")
+ procScreenToClient = moduser32.NewProc("ScreenToClient")
+ procCallWindowProc = moduser32.NewProc("CallWindowProcW")
+ procSetWindowLongPtr = moduser32.NewProc("SetWindowLongW")
+ procEnableWindow = moduser32.NewProc("EnableWindow")
+ procIsWindowEnabled = moduser32.NewProc("IsWindowEnabled")
+ procIsWindowVisible = moduser32.NewProc("IsWindowVisible")
+ procSetFocus = moduser32.NewProc("SetFocus")
+ procInvalidateRect = moduser32.NewProc("InvalidateRect")
+ procGetClientRect = moduser32.NewProc("GetClientRect")
+ procGetDC = moduser32.NewProc("GetDC")
+ procReleaseDC = moduser32.NewProc("ReleaseDC")
+ procSetCapture = moduser32.NewProc("SetCapture")
+ procReleaseCapture = moduser32.NewProc("ReleaseCapture")
+ procGetWindowThreadProcessId = moduser32.NewProc("GetWindowThreadProcessId")
+ procMessageBox = moduser32.NewProc("MessageBoxW")
+ procGetSystemMetrics = moduser32.NewProc("GetSystemMetrics")
+ procGetWindowLongPtr = moduser32.NewProc("GetWindowLongW")
+ procCopyRect = moduser32.NewProc("CopyRect")
+ procEqualRect = moduser32.NewProc("EqualRect")
+ procInflateRect = moduser32.NewProc("InflateRect")
+ procIntersectRect = moduser32.NewProc("IntersectRect")
+ procIsRectEmpty = moduser32.NewProc("IsRectEmpty")
+ procOffsetRect = moduser32.NewProc("OffsetRect")
+ procPtInRect = moduser32.NewProc("PtInRect")
+ procSetRect = moduser32.NewProc("SetRect")
+ procSetRectEmpty = moduser32.NewProc("SetRectEmpty")
+ procSubtractRect = moduser32.NewProc("SubtractRect")
+ procUnionRect = moduser32.NewProc("UnionRect")
+ procCreateDialogParam = moduser32.NewProc("CreateDialogParamW")
+ procDialogBoxParam = moduser32.NewProc("DialogBoxParamW")
+ procGetDlgItem = moduser32.NewProc("GetDlgItem")
+ procDrawIcon = moduser32.NewProc("DrawIcon")
+ procClientToScreen = moduser32.NewProc("ClientToScreen")
+ procIsDialogMessage = moduser32.NewProc("IsDialogMessageW")
+ procIsWindow = moduser32.NewProc("IsWindow")
+ procEndDialog = moduser32.NewProc("EndDialog")
+ procSetWindowLong = moduser32.NewProc("SetWindowLongW")
+ procPeekMessage = moduser32.NewProc("PeekMessageW")
+ procTranslateAccelerator = moduser32.NewProc("TranslateAcceleratorW")
+ procDestroyIcon = moduser32.NewProc("DestroyIcon")
+ procSetWindowPos = moduser32.NewProc("SetWindowPos")
+ procFillRect = moduser32.NewProc("FillRect")
+ procDrawText = moduser32.NewProc("DrawTextW")
+ procAddClipboardFormatListener = moduser32.NewProc("AddClipboardFormatListener")
+ procRemoveClipboardFormatListener = moduser32.NewProc("RemoveClipboardFormatListener")
+ procOpenClipboard = moduser32.NewProc("OpenClipboard")
+ procCloseClipboard = moduser32.NewProc("CloseClipboard")
+ procEnumClipboardFormats = moduser32.NewProc("EnumClipboardFormats")
+ procGetClipboardData = moduser32.NewProc("GetClipboardData")
+ procSetClipboardData = moduser32.NewProc("SetClipboardData")
+ procEmptyClipboard = moduser32.NewProc("EmptyClipboard")
+ procGetClipboardFormatName = moduser32.NewProc("GetClipboardFormatNameW")
+ procIsClipboardFormatAvailable = moduser32.NewProc("IsClipboardFormatAvailable")
+ procBeginPaint = moduser32.NewProc("BeginPaint")
+ procEndPaint = moduser32.NewProc("EndPaint")
+ procGetKeyboardState = moduser32.NewProc("GetKeyboardState")
+ procMapVirtualKey = moduser32.NewProc("MapVirtualKeyExA")
+ procToAscii = moduser32.NewProc("ToAscii")
)
func RegisterClassEx(wndClassEx *WNDCLASSEX) ATOM {
- ret, _, _ := procRegisterClassEx.Call(uintptr(unsafe.Pointer(wndClassEx)))
- return ATOM(ret)
+ ret, _, _ := procRegisterClassEx.Call(uintptr(unsafe.Pointer(wndClassEx)))
+ return ATOM(ret)
}
func LoadIcon(instance HINSTANCE, iconName *uint16) HICON {
- ret, _, _ := procLoadIcon.Call(
- uintptr(instance),
- uintptr(unsafe.Pointer(iconName)))
+ ret, _, _ := procLoadIcon.Call(
+ uintptr(instance),
+ uintptr(unsafe.Pointer(iconName)))
- return HICON(ret)
+ return HICON(ret)
}
func LoadCursor(instance HINSTANCE, cursorName *uint16) HCURSOR {
- ret, _, _ := procLoadCursor.Call(
- uintptr(instance),
- uintptr(unsafe.Pointer(cursorName)))
+ ret, _, _ := procLoadCursor.Call(
+ uintptr(instance),
+ uintptr(unsafe.Pointer(cursorName)))
- return HCURSOR(ret)
+ return HCURSOR(ret)
}
func ShowWindow(hwnd HWND, cmdshow int) bool {
- ret, _, _ := procShowWindow.Call(
- uintptr(hwnd),
- uintptr(cmdshow))
+ ret, _, _ := procShowWindow.Call(
+ uintptr(hwnd),
+ uintptr(cmdshow))
- return ret != 0
+ return ret != 0
}
func UpdateWindow(hwnd HWND) bool {
- ret, _, _ := procUpdateWindow.Call(
- uintptr(hwnd))
- return ret != 0
+ ret, _, _ := procUpdateWindow.Call(
+ uintptr(hwnd))
+ return ret != 0
}
func CreateWindowEx(exStyle uint, className, windowName *uint16,
- style uint, x, y, width, height int, parent HWND, menu HMENU,
- instance HINSTANCE, param unsafe.Pointer) HWND {
- ret, _, _ := procCreateWindowEx.Call(
- uintptr(exStyle),
- uintptr(unsafe.Pointer(className)),
- uintptr(unsafe.Pointer(windowName)),
- uintptr(style),
- uintptr(x),
- uintptr(y),
- uintptr(width),
- uintptr(height),
- uintptr(parent),
- uintptr(menu),
- uintptr(instance),
- uintptr(param))
+ style uint, x, y, width, height int, parent HWND, menu HMENU,
+ instance HINSTANCE, param unsafe.Pointer) HWND {
+ ret, _, _ := procCreateWindowEx.Call(
+ uintptr(exStyle),
+ uintptr(unsafe.Pointer(className)),
+ uintptr(unsafe.Pointer(windowName)),
+ uintptr(style),
+ uintptr(x),
+ uintptr(y),
+ uintptr(width),
+ uintptr(height),
+ uintptr(parent),
+ uintptr(menu),
+ uintptr(instance),
+ uintptr(param))
- return HWND(ret)
+ return HWND(ret)
}
func AdjustWindowRectEx(rect *RECT, style uint, menu bool, exStyle uint) bool {
- ret, _, _ := procAdjustWindowRectEx.Call(
- uintptr(unsafe.Pointer(rect)),
- uintptr(style),
- uintptr(BoolToBOOL(menu)),
- uintptr(exStyle))
+ ret, _, _ := procAdjustWindowRectEx.Call(
+ uintptr(unsafe.Pointer(rect)),
+ uintptr(style),
+ uintptr(BoolToBOOL(menu)),
+ uintptr(exStyle))
- return ret != 0
+ return ret != 0
}
func AdjustWindowRect(rect *RECT, style uint, menu bool) bool {
- ret, _, _ := procAdjustWindowRect.Call(
- uintptr(unsafe.Pointer(rect)),
- uintptr(style),
- uintptr(BoolToBOOL(menu)))
+ ret, _, _ := procAdjustWindowRect.Call(
+ uintptr(unsafe.Pointer(rect)),
+ uintptr(style),
+ uintptr(BoolToBOOL(menu)))
- return ret != 0
+ return ret != 0
}
func DestroyWindow(hwnd HWND) bool {
- ret, _, _ := procDestroyWindow.Call(
- uintptr(hwnd))
+ ret, _, _ := procDestroyWindow.Call(
+ uintptr(hwnd))
- return ret != 0
+ return ret != 0
}
func DefWindowProc(hwnd HWND, msg uint, wParam, lParam uintptr) uintptr {
- ret, _, _ := procDefWindowProc.Call(
- uintptr(hwnd),
- uintptr(msg),
- wParam,
- lParam)
+ ret, _, _ := procDefWindowProc.Call(
+ uintptr(hwnd),
+ uintptr(msg),
+ wParam,
+ lParam)
- return ret
+ return ret
}
func DefDlgProc(hwnd HWND, msg uint, wParam, lParam uintptr) uintptr {
- ret, _, _ := procDefDlgProc.Call(
- uintptr(hwnd),
- uintptr(msg),
- wParam,
- lParam)
+ ret, _, _ := procDefDlgProc.Call(
+ uintptr(hwnd),
+ uintptr(msg),
+ wParam,
+ lParam)
- return ret
+ return ret
}
func PostQuitMessage(exitCode int) {
- procPostQuitMessage.Call(
- uintptr(exitCode))
+ procPostQuitMessage.Call(
+ uintptr(exitCode))
}
func GetMessage(msg *MSG, hwnd HWND, msgFilterMin, msgFilterMax uint32) int {
- ret, _, _ := procGetMessage.Call(
- uintptr(unsafe.Pointer(msg)),
- uintptr(hwnd),
- uintptr(msgFilterMin),
- uintptr(msgFilterMax))
+ ret, _, _ := procGetMessage.Call(
+ uintptr(unsafe.Pointer(msg)),
+ uintptr(hwnd),
+ uintptr(msgFilterMin),
+ uintptr(msgFilterMax))
- return int(ret)
+ return int(ret)
}
func TranslateMessage(msg *MSG) bool {
- ret, _, _ := procTranslateMessage.Call(
- uintptr(unsafe.Pointer(msg)))
+ ret, _, _ := procTranslateMessage.Call(
+ uintptr(unsafe.Pointer(msg)))
- return ret != 0
+ return ret != 0
}
func DispatchMessage(msg *MSG) uintptr {
- ret, _, _ := procDispatchMessage.Call(
- uintptr(unsafe.Pointer(msg)))
+ ret, _, _ := procDispatchMessage.Call(
+ uintptr(unsafe.Pointer(msg)))
- return ret
+ return ret
}
func SendMessage(hwnd HWND, msg uint, wParam, lParam uintptr) uintptr {
- ret, _, _ := procSendMessage.Call(
- uintptr(hwnd),
- uintptr(msg),
- wParam,
- lParam)
+ ret, _, _ := procSendMessage.Call(
+ uintptr(hwnd),
+ uintptr(msg),
+ wParam,
+ lParam)
- return ret
+ return ret
}
func PostMessage(hwnd HWND, msg uint, wParam, lParam uintptr) bool {
- ret, _, _ := procPostMessage.Call(
- uintptr(hwnd),
- uintptr(msg),
- wParam,
- lParam)
+ ret, _, _ := procPostMessage.Call(
+ uintptr(hwnd),
+ uintptr(msg),
+ wParam,
+ lParam)
- return ret != 0
+ return ret != 0
}
func SetWindowText(hwnd HWND, text string) {
- procSetWindowText.Call(
- uintptr(hwnd),
- uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(text))))
+ procSetWindowText.Call(
+ uintptr(hwnd),
+ uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(text))))
}
func GetWindowTextLength(hwnd HWND) int {
- ret, _, _ := procGetWindowTextLength.Call(
- uintptr(hwnd))
+ ret, _, _ := procGetWindowTextLength.Call(
+ uintptr(hwnd))
- return int(ret)
+ return int(ret)
}
func GetWindowText(hwnd HWND) string {
- textLen := GetWindowTextLength(hwnd) + 1
+ textLen := GetWindowTextLength(hwnd) + 1
- buf := make([]uint16, textLen)
- procGetWindowText.Call(
- uintptr(hwnd),
- uintptr(unsafe.Pointer(&buf[0])),
- uintptr(textLen))
+ buf := make([]uint16, textLen)
+ procGetWindowText.Call(
+ uintptr(hwnd),
+ uintptr(unsafe.Pointer(&buf[0])),
+ uintptr(textLen))
- return syscall.UTF16ToString(buf)
+ return syscall.UTF16ToString(buf)
}
func GetWindowRect(hwnd HWND) *RECT {
- var rect RECT
- procGetWindowRect.Call(
- uintptr(hwnd),
- uintptr(unsafe.Pointer(&rect)))
+ var rect RECT
+ procGetWindowRect.Call(
+ uintptr(hwnd),
+ uintptr(unsafe.Pointer(&rect)))
- return &rect
+ return &rect
}
func MoveWindow(hwnd HWND, x, y, width, height int, repaint bool) bool {
- ret, _, _ := procMoveWindow.Call(
- uintptr(hwnd),
- uintptr(x),
- uintptr(y),
- uintptr(width),
- uintptr(height),
- uintptr(BoolToBOOL(repaint)))
+ ret, _, _ := procMoveWindow.Call(
+ uintptr(hwnd),
+ uintptr(x),
+ uintptr(y),
+ uintptr(width),
+ uintptr(height),
+ uintptr(BoolToBOOL(repaint)))
- return ret != 0
+ return ret != 0
}
func ScreenToClient(hwnd HWND, x, y int) (int, int) {
- var pt POINT
- pt.X = x
- pt.Y = y
+ var pt POINT
+ pt.X = x
+ pt.Y = y
- procScreenToClient.Call(
- uintptr(hwnd),
- uintptr(unsafe.Pointer(&pt)))
+ procScreenToClient.Call(
+ uintptr(hwnd),
+ uintptr(unsafe.Pointer(&pt)))
- return pt.X, pt.Y
+ return pt.X, pt.Y
}
func CallWindowProc(preWndProc uintptr, hwnd HWND, msg uint, wParam, lParam uintptr) uintptr {
- ret, _, _ := procCallWindowProc.Call(
- preWndProc,
- uintptr(hwnd),
- uintptr(msg),
- wParam,
- lParam)
+ ret, _, _ := procCallWindowProc.Call(
+ preWndProc,
+ uintptr(hwnd),
+ uintptr(msg),
+ wParam,
+ lParam)
- return ret
+ return ret
}
func SetWindowLongPtr(hwnd HWND, index int, value uintptr) uintptr {
- ret, _, _ := procSetWindowLongPtr.Call(
- uintptr(hwnd),
- uintptr(index),
- value)
+ ret, _, _ := procSetWindowLongPtr.Call(
+ uintptr(hwnd),
+ uintptr(index),
+ value)
- return ret
+ return ret
}
func EnableWindow(hwnd HWND, b bool) bool {
- ret, _, _ := procEnableWindow.Call(
- uintptr(hwnd),
- uintptr(BoolToBOOL(b)))
- return ret != 0
+ ret, _, _ := procEnableWindow.Call(
+ uintptr(hwnd),
+ uintptr(BoolToBOOL(b)))
+ return ret != 0
}
func IsWindowEnabled(hwnd HWND) bool {
- ret, _, _ := procIsWindowEnabled.Call(
- uintptr(hwnd))
+ ret, _, _ := procIsWindowEnabled.Call(
+ uintptr(hwnd))
- return ret != 0
+ return ret != 0
}
func IsWindowVisible(hwnd HWND) bool {
- ret, _, _ := procIsWindowVisible.Call(
- uintptr(hwnd))
+ ret, _, _ := procIsWindowVisible.Call(
+ uintptr(hwnd))
- return ret != 0
+ return ret != 0
}
func SetFocus(hwnd HWND) HWND {
- ret, _, _ := procSetFocus.Call(
- uintptr(hwnd))
+ ret, _, _ := procSetFocus.Call(
+ uintptr(hwnd))
- return HWND(ret)
+ return HWND(ret)
}
func InvalidateRect(hwnd HWND, rect *RECT, erase bool) bool {
- ret, _, _ := procInvalidateRect.Call(
- uintptr(hwnd),
- uintptr(unsafe.Pointer(rect)),
- uintptr(BoolToBOOL(erase)))
+ ret, _, _ := procInvalidateRect.Call(
+ uintptr(hwnd),
+ uintptr(unsafe.Pointer(rect)),
+ uintptr(BoolToBOOL(erase)))
- return ret != 0
+ return ret != 0
}
func GetClientRect(hwnd HWND) *RECT {
- var rect RECT
- ret, _, _ := procGetClientRect.Call(
- uintptr(hwnd),
- uintptr(unsafe.Pointer(&rect)))
+ var rect RECT
+ ret, _, _ := procGetClientRect.Call(
+ uintptr(hwnd),
+ uintptr(unsafe.Pointer(&rect)))
- if ret == 0 {
- panic(fmt.Sprintf("GetClientRect(%d) failed", hwnd))
- }
+ if ret == 0 {
+ panic(fmt.Sprintf("GetClientRect(%d) failed", hwnd))
+ }
- return &rect
+ return &rect
}
func GetDC(hwnd HWND) HDC {
- ret, _, _ := procGetDC.Call(
- uintptr(hwnd))
+ ret, _, _ := procGetDC.Call(
+ uintptr(hwnd))
- return HDC(ret)
+ return HDC(ret)
}
func ReleaseDC(hwnd HWND, hDC HDC) bool {
- ret, _, _ := procReleaseDC.Call(
- uintptr(hwnd),
- uintptr(hDC))
+ ret, _, _ := procReleaseDC.Call(
+ uintptr(hwnd),
+ uintptr(hDC))
- return ret != 0
+ return ret != 0
}
func SetCapture(hwnd HWND) HWND {
- ret, _, _ := procSetCapture.Call(
- uintptr(hwnd))
+ ret, _, _ := procSetCapture.Call(
+ uintptr(hwnd))
- return HWND(ret)
+ return HWND(ret)
}
func ReleaseCapture() bool {
- ret, _, _ := procReleaseCapture.Call()
+ ret, _, _ := procReleaseCapture.Call()
- return ret != 0
+ return ret != 0
}
func GetWindowThreadProcessId(hwnd HWND) (HANDLE, int) {
- var processId int
- ret, _, _ := procGetWindowThreadProcessId.Call(
- uintptr(hwnd),
- uintptr(unsafe.Pointer(&processId)))
+ var processId int
+ ret, _, _ := procGetWindowThreadProcessId.Call(
+ uintptr(hwnd),
+ uintptr(unsafe.Pointer(&processId)))
- return HANDLE(ret), processId
+ return HANDLE(ret), processId
}
func MessageBox(hwnd HWND, title, caption string, flags uint) int {
- ret, _, _ := procMessageBox.Call(
- uintptr(hwnd),
- uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(title))),
- uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(caption))),
- uintptr(flags))
+ ret, _, _ := procMessageBox.Call(
+ uintptr(hwnd),
+ uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(title))),
+ uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(caption))),
+ uintptr(flags))
- return int(ret)
+ return int(ret)
}
func GetSystemMetrics(index int) int {
- ret, _, _ := procGetSystemMetrics.Call(
- uintptr(index))
+ ret, _, _ := procGetSystemMetrics.Call(
+ uintptr(index))
- return int(ret)
+ return int(ret)
}
func GetWindowLongPtr(hwnd HWND, index int) uintptr {
- ret, _, _ := procGetWindowLongPtr.Call(
- uintptr(hwnd),
- uintptr(index))
+ ret, _, _ := procGetWindowLongPtr.Call(
+ uintptr(hwnd),
+ uintptr(index))
- return ret
+ return ret
}
func CopyRect(dst, src *RECT) bool {
- ret, _, _ := procCopyRect.Call(
- uintptr(unsafe.Pointer(dst)),
- uintptr(unsafe.Pointer(src)))
+ ret, _, _ := procCopyRect.Call(
+ uintptr(unsafe.Pointer(dst)),
+ uintptr(unsafe.Pointer(src)))
- return ret != 0
+ return ret != 0
}
func EqualRect(rect1, rect2 *RECT) bool {
- ret, _, _ := procEqualRect.Call(
- uintptr(unsafe.Pointer(rect1)),
- uintptr(unsafe.Pointer(rect2)))
+ ret, _, _ := procEqualRect.Call(
+ uintptr(unsafe.Pointer(rect1)),
+ uintptr(unsafe.Pointer(rect2)))
- return ret != 0
+ return ret != 0
}
func InflateRect(rect *RECT, dx, dy int) bool {
- ret, _, _ := procInflateRect.Call(
- uintptr(unsafe.Pointer(rect)),
- uintptr(dx),
- uintptr(dy))
+ ret, _, _ := procInflateRect.Call(
+ uintptr(unsafe.Pointer(rect)),
+ uintptr(dx),
+ uintptr(dy))
- return ret != 0
+ return ret != 0
}
func IntersectRect(dst, src1, src2 *RECT) bool {
- ret, _, _ := procIntersectRect.Call(
- uintptr(unsafe.Pointer(dst)),
- uintptr(unsafe.Pointer(src1)),
- uintptr(unsafe.Pointer(src2)))
+ ret, _, _ := procIntersectRect.Call(
+ uintptr(unsafe.Pointer(dst)),
+ uintptr(unsafe.Pointer(src1)),
+ uintptr(unsafe.Pointer(src2)))
- return ret != 0
+ return ret != 0
}
func IsRectEmpty(rect *RECT) bool {
- ret, _, _ := procIsRectEmpty.Call(
- uintptr(unsafe.Pointer(rect)))
+ ret, _, _ := procIsRectEmpty.Call(
+ uintptr(unsafe.Pointer(rect)))
- return ret != 0
+ return ret != 0
}
func OffsetRect(rect *RECT, dx, dy int) bool {
- ret, _, _ := procOffsetRect.Call(
- uintptr(unsafe.Pointer(rect)),
- uintptr(dx),
- uintptr(dy))
+ ret, _, _ := procOffsetRect.Call(
+ uintptr(unsafe.Pointer(rect)),
+ uintptr(dx),
+ uintptr(dy))
- return ret != 0
+ return ret != 0
}
func PtInRect(rect *RECT, x, y int) bool {
- pt := POINT{X: x, Y: y}
- ret, _, _ := procPtInRect.Call(
- uintptr(unsafe.Pointer(rect)),
- uintptr(unsafe.Pointer(&pt)))
+ pt := POINT{X: x, Y: y}
+ ret, _, _ := procPtInRect.Call(
+ uintptr(unsafe.Pointer(rect)),
+ uintptr(unsafe.Pointer(&pt)))
- return ret != 0
+ return ret != 0
}
func SetRect(rect *RECT, left, top, right, bottom int) bool {
- ret, _, _ := procSetRect.Call(
- uintptr(unsafe.Pointer(rect)),
- uintptr(left),
- uintptr(top),
- uintptr(right),
- uintptr(bottom))
+ ret, _, _ := procSetRect.Call(
+ uintptr(unsafe.Pointer(rect)),
+ uintptr(left),
+ uintptr(top),
+ uintptr(right),
+ uintptr(bottom))
- return ret != 0
+ return ret != 0
}
func SetRectEmpty(rect *RECT) bool {
- ret, _, _ := procSetRectEmpty.Call(
- uintptr(unsafe.Pointer(rect)))
+ ret, _, _ := procSetRectEmpty.Call(
+ uintptr(unsafe.Pointer(rect)))
- return ret != 0
+ return ret != 0
}
func SubtractRect(dst, src1, src2 *RECT) bool {
- ret, _, _ := procSubtractRect.Call(
- uintptr(unsafe.Pointer(dst)),
- uintptr(unsafe.Pointer(src1)),
- uintptr(unsafe.Pointer(src2)))
+ ret, _, _ := procSubtractRect.Call(
+ uintptr(unsafe.Pointer(dst)),
+ uintptr(unsafe.Pointer(src1)),
+ uintptr(unsafe.Pointer(src2)))
- return ret != 0
+ return ret != 0
}
func UnionRect(dst, src1, src2 *RECT) bool {
- ret, _, _ := procUnionRect.Call(
- uintptr(unsafe.Pointer(dst)),
- uintptr(unsafe.Pointer(src1)),
- uintptr(unsafe.Pointer(src2)))
+ ret, _, _ := procUnionRect.Call(
+ uintptr(unsafe.Pointer(dst)),
+ uintptr(unsafe.Pointer(src1)),
+ uintptr(unsafe.Pointer(src2)))
- return ret != 0
+ return ret != 0
}
func CreateDialog(hInstance HINSTANCE, lpTemplate *uint16, hWndParent HWND, lpDialogProc uintptr) HWND {
- ret, _, _ := procCreateDialogParam.Call(
- uintptr(hInstance),
- uintptr(unsafe.Pointer(lpTemplate)),
- uintptr(hWndParent),
- lpDialogProc,
- 0)
+ ret, _, _ := procCreateDialogParam.Call(
+ uintptr(hInstance),
+ uintptr(unsafe.Pointer(lpTemplate)),
+ uintptr(hWndParent),
+ lpDialogProc,
+ 0)
- return HWND(ret)
+ return HWND(ret)
}
func DialogBox(hInstance HINSTANCE, lpTemplateName *uint16, hWndParent HWND, lpDialogProc uintptr) int {
- ret, _, _ := procDialogBoxParam.Call(
- uintptr(hInstance),
- uintptr(unsafe.Pointer(lpTemplateName)),
- uintptr(hWndParent),
- lpDialogProc,
- 0)
+ ret, _, _ := procDialogBoxParam.Call(
+ uintptr(hInstance),
+ uintptr(unsafe.Pointer(lpTemplateName)),
+ uintptr(hWndParent),
+ lpDialogProc,
+ 0)
- return int(ret)
+ return int(ret)
}
func GetDlgItem(hDlg HWND, nIDDlgItem int) HWND {
- ret, _, _ := procGetDlgItem.Call(
- uintptr(unsafe.Pointer(hDlg)),
- uintptr(nIDDlgItem))
+ ret, _, _ := procGetDlgItem.Call(
+ uintptr(unsafe.Pointer(hDlg)),
+ uintptr(nIDDlgItem))
- return HWND(ret)
+ return HWND(ret)
}
func DrawIcon(hDC HDC, x, y int, hIcon HICON) bool {
- ret, _, _ := procDrawIcon.Call(
- uintptr(unsafe.Pointer(hDC)),
- uintptr(x),
- uintptr(y),
- uintptr(unsafe.Pointer(hIcon)))
+ ret, _, _ := procDrawIcon.Call(
+ uintptr(unsafe.Pointer(hDC)),
+ uintptr(x),
+ uintptr(y),
+ uintptr(unsafe.Pointer(hIcon)))
- return ret != 0
+ return ret != 0
}
func ClientToScreen(hwnd HWND, x, y int) (int, int) {
- var pt POINT
- pt.X, pt.Y = x, y
+ var pt POINT
+ pt.X, pt.Y = x, y
- procClientToScreen.Call(
- uintptr(hwnd),
- uintptr(unsafe.Pointer(&pt)))
+ procClientToScreen.Call(
+ uintptr(hwnd),
+ uintptr(unsafe.Pointer(&pt)))
- return pt.X, pt.Y
+ return pt.X, pt.Y
}
func IsDialogMessage(hwnd HWND, msg *MSG) bool {
- ret, _, _ := procIsDialogMessage.Call(
- uintptr(hwnd),
- uintptr(unsafe.Pointer(msg)))
+ ret, _, _ := procIsDialogMessage.Call(
+ uintptr(hwnd),
+ uintptr(unsafe.Pointer(msg)))
- return ret != 0
+ return ret != 0
}
func IsWindow(hwnd HWND) bool {
- ret, _, _ := procIsWindow.Call(
- uintptr(hwnd))
+ ret, _, _ := procIsWindow.Call(
+ uintptr(hwnd))
- return ret != 0
+ return ret != 0
}
func EndDialog(hwnd HWND, nResult uintptr) bool {
- ret, _, _ := procEndDialog.Call(
- uintptr(hwnd),
- nResult)
+ ret, _, _ := procEndDialog.Call(
+ uintptr(hwnd),
+ nResult)
- return ret != 0
+ return ret != 0
}
func SetWindowLong(hwnd HWND, nIndex int, dwNewLong uint32) uint32 {
- ret, _, _ := procSetWindowLong.Call(
- uintptr(hwnd),
- uintptr(nIndex),
- uintptr(dwNewLong))
+ ret, _, _ := procSetWindowLong.Call(
+ uintptr(hwnd),
+ uintptr(nIndex),
+ uintptr(dwNewLong))
- return uint32(ret)
+ return uint32(ret)
}
func PeekMessage(lpMsg *MSG, hwnd HWND, wMsgFilterMin, wMsgFilterMax, wRemoveMsg uint32) bool {
- ret, _, _ := procPeekMessage.Call(
- uintptr(unsafe.Pointer(lpMsg)),
- uintptr(hwnd),
- uintptr(wMsgFilterMin),
- uintptr(wMsgFilterMax),
- uintptr(wRemoveMsg))
+ ret, _, _ := procPeekMessage.Call(
+ uintptr(unsafe.Pointer(lpMsg)),
+ uintptr(hwnd),
+ uintptr(wMsgFilterMin),
+ uintptr(wMsgFilterMax),
+ uintptr(wRemoveMsg))
- return ret != 0
+ return ret != 0
}
func TranslateAccelerator(hwnd HWND, hAccTable HACCEL, lpMsg *MSG) bool {
- ret, _, _ := procTranslateMessage.Call(
- uintptr(hwnd),
- uintptr(hAccTable),
- uintptr(unsafe.Pointer(lpMsg)))
+ ret, _, _ := procTranslateMessage.Call(
+ uintptr(hwnd),
+ uintptr(hAccTable),
+ uintptr(unsafe.Pointer(lpMsg)))
- return ret != 0
+ return ret != 0
}
func DestroyIcon(hIcon HICON) bool {
- ret, _, _ := procDestroyIcon.Call(
- uintptr(hIcon))
+ ret, _, _ := procDestroyIcon.Call(
+ uintptr(hIcon))
- return ret != 0
+ return ret != 0
}
func SetWindowPos(hwnd, hWndInsertAfter HWND, x, y, cx, cy int, uFlags uint) bool {
- ret, _, _ := procSetWindowPos.Call(
- uintptr(hwnd),
- uintptr(hWndInsertAfter),
- uintptr(x),
- uintptr(y),
- uintptr(cx),
- uintptr(cy),
- uintptr(uFlags))
+ ret, _, _ := procSetWindowPos.Call(
+ uintptr(hwnd),
+ uintptr(hWndInsertAfter),
+ uintptr(x),
+ uintptr(y),
+ uintptr(cx),
+ uintptr(cy),
+ uintptr(uFlags))
- return ret != 0
+ return ret != 0
}
func FillRect(hDC HDC, lprc *RECT, hbr HBRUSH) bool {
- ret, _, _ := procFillRect.Call(
- uintptr(hDC),
- uintptr(unsafe.Pointer(lprc)),
- uintptr(hbr))
+ ret, _, _ := procFillRect.Call(
+ uintptr(hDC),
+ uintptr(unsafe.Pointer(lprc)),
+ uintptr(hbr))
- return ret != 0
+ return ret != 0
}
func DrawText(hDC HDC, text string, uCount int, lpRect *RECT, uFormat uint) int {
- ret, _, _ := procDrawText.Call(
- uintptr(hDC),
- uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(text))),
- uintptr(uCount),
- uintptr(unsafe.Pointer(lpRect)),
- uintptr(uFormat))
+ ret, _, _ := procDrawText.Call(
+ uintptr(hDC),
+ uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(text))),
+ uintptr(uCount),
+ uintptr(unsafe.Pointer(lpRect)),
+ uintptr(uFormat))
- return int(ret)
+ return int(ret)
}
func AddClipboardFormatListener(hwnd HWND) bool {
- ret, _, _ := procAddClipboardFormatListener.Call(
- uintptr(hwnd))
- return ret != 0
+ ret, _, _ := procAddClipboardFormatListener.Call(
+ uintptr(hwnd))
+ return ret != 0
}
func RemoveClipboardFormatListener(hwnd HWND) bool {
- ret, _, _ := procRemoveClipboardFormatListener.Call(
- uintptr(hwnd))
- return ret != 0
+ ret, _, _ := procRemoveClipboardFormatListener.Call(
+ uintptr(hwnd))
+ return ret != 0
}
func OpenClipboard(hWndNewOwner HWND) bool {
- ret, _, _ := procOpenClipboard.Call(
- uintptr(hWndNewOwner))
- return ret != 0
+ ret, _, _ := procOpenClipboard.Call(
+ uintptr(hWndNewOwner))
+ return ret != 0
}
func CloseClipboard() bool {
- ret, _, _ := procCloseClipboard.Call()
- return ret != 0
+ ret, _, _ := procCloseClipboard.Call()
+ return ret != 0
}
func EnumClipboardFormats(format uint) uint {
- ret, _, _ := procEnumClipboardFormats.Call(
- uintptr(format))
- return uint(ret)
+ ret, _, _ := procEnumClipboardFormats.Call(
+ uintptr(format))
+ return uint(ret)
}
func GetClipboardData(uFormat uint) HANDLE {
- ret, _, _ := procGetClipboardData.Call(
- uintptr(uFormat))
- return HANDLE(ret)
+ ret, _, _ := procGetClipboardData.Call(
+ uintptr(uFormat))
+ return HANDLE(ret)
}
func SetClipboardData(uFormat uint, hMem HANDLE) HANDLE {
- ret, _, _ := procSetClipboardData.Call(
- uintptr(uFormat),
- uintptr(hMem))
- return HANDLE(ret)
+ ret, _, _ := procSetClipboardData.Call(
+ uintptr(uFormat),
+ uintptr(hMem))
+ return HANDLE(ret)
}
func EmptyClipboard() bool {
- ret, _, _ := procEmptyClipboard.Call()
- return ret != 0
+ ret, _, _ := procEmptyClipboard.Call()
+ return ret != 0
}
func GetClipboardFormatName(format uint) (string, bool) {
- cchMaxCount := 255
- buf := make([]uint16, cchMaxCount)
- ret, _, _ := procGetClipboardFormatName.Call(
- uintptr(format),
- uintptr(unsafe.Pointer(&buf[0])),
- uintptr(cchMaxCount))
+ cchMaxCount := 255
+ buf := make([]uint16, cchMaxCount)
+ ret, _, _ := procGetClipboardFormatName.Call(
+ uintptr(format),
+ uintptr(unsafe.Pointer(&buf[0])),
+ uintptr(cchMaxCount))
- if ret > 0 {
- return syscall.UTF16ToString(buf), true
- }
+ if ret > 0 {
+ return syscall.UTF16ToString(buf), true
+ }
- return "Requested format does not exist or is predefined", false
+ return "Requested format does not exist or is predefined", false
}
func IsClipboardFormatAvailable(format uint) bool {
- ret, _, _ := procIsClipboardFormatAvailable.Call(uintptr(format))
- return ret != 0
+ ret, _, _ := procIsClipboardFormatAvailable.Call(uintptr(format))
+ return ret != 0
}
func BeginPaint(hwnd HWND, paint *PAINTSTRUCT) HDC {
- ret, _, _ := procBeginPaint.Call(
- uintptr(hwnd),
- uintptr(unsafe.Pointer(paint)))
- return HDC(ret)
+ ret, _, _ := procBeginPaint.Call(
+ uintptr(hwnd),
+ uintptr(unsafe.Pointer(paint)))
+ return HDC(ret)
}
func EndPaint(hwnd HWND, paint *PAINTSTRUCT) {
- procBeginPaint.Call(
- uintptr(hwnd),
- uintptr(unsafe.Pointer(paint)))
+ procBeginPaint.Call(
+ uintptr(hwnd),
+ uintptr(unsafe.Pointer(paint)))
}
func GetKeyboardState(lpKeyState *[]byte) bool {
- ret, _, _ := procGetKeyboardState.Call(
- uintptr(unsafe.Pointer(&(*lpKeyState)[0])))
- return ret != 0
+ ret, _, _ := procGetKeyboardState.Call(
+ uintptr(unsafe.Pointer(&(*lpKeyState)[0])))
+ return ret != 0
}
func MapVirtualKeyEx(uCode, uMapType uint, dwhkl HANDLE) uint {
- ret, _, _ := procMapVirtualKey.Call(
- uintptr(uCode),
- uintptr(uMapType),
- uintptr(dwhkl))
- return uint(ret)
+ ret, _, _ := procMapVirtualKey.Call(
+ uintptr(uCode),
+ uintptr(uMapType),
+ uintptr(dwhkl))
+ return uint(ret)
}
func ToAscii(uVirtKey, uScanCode uint, lpKeyState *byte, lpChar *uint16, uFlags uint) int {
- ret, _, _ := procToAscii.Call(
- uintptr(uVirtKey),
- uintptr(uScanCode),
- uintptr(unsafe.Pointer(lpKeyState)),
- uintptr(unsafe.Pointer(lpChar)),
- uintptr(uFlags))
- return int(ret)
+ ret, _, _ := procToAscii.Call(
+ uintptr(uVirtKey),
+ uintptr(uScanCode),
+ uintptr(unsafe.Pointer(lpKeyState)),
+ uintptr(unsafe.Pointer(lpChar)),
+ uintptr(uFlags))
+ return int(ret)
}
diff --git a/utils.go b/utils.go
index 289171c..6255949 100644
--- a/utils.go
+++ b/utils.go
@@ -5,197 +5,197 @@
package w32
import (
- "syscall"
- "unicode/utf16"
- "unsafe"
+ "syscall"
+ "unicode/utf16"
+ "unsafe"
)
func MakeIntResource(id uint16) *uint16 {
- return (*uint16)(unsafe.Pointer(uintptr(id)))
+ return (*uint16)(unsafe.Pointer(uintptr(id)))
}
func LOWORD(dw uint) uint16 {
- return uint16(dw)
+ return uint16(dw)
}
func HIWORD(dw uint) uint16 {
- return uint16(dw >> 16 & 0xffff)
+ return uint16(dw >> 16 & 0xffff)
}
func BoolToBOOL(value bool) BOOL {
- if value {
- return 1
- }
+ if value {
+ return 1
+ }
- return 0
+ return 0
}
func UTF16PtrToString(cstr *uint16) string {
- if cstr != nil {
- us := make([]uint16, 0, 256)
- for p := uintptr(unsafe.Pointer(cstr)); ; p += 2 {
- u := *(*uint16)(unsafe.Pointer(p))
- if u == 0 {
- return string(utf16.Decode(us))
- }
- us = append(us, u)
- }
- }
+ if cstr != nil {
+ us := make([]uint16, 0, 256)
+ for p := uintptr(unsafe.Pointer(cstr)); ; p += 2 {
+ u := *(*uint16)(unsafe.Pointer(p))
+ if u == 0 {
+ return string(utf16.Decode(us))
+ }
+ us = append(us, u)
+ }
+ }
- return ""
+ return ""
}
func ComAddRef(unknown *IUnknown) int32 {
- ret, _, _ := syscall.Syscall(unknown.lpVtbl.pAddRef, 1,
- uintptr(unsafe.Pointer(unknown)),
- 0,
- 0)
- return int32(ret)
+ ret, _, _ := syscall.Syscall(unknown.lpVtbl.pAddRef, 1,
+ uintptr(unsafe.Pointer(unknown)),
+ 0,
+ 0)
+ return int32(ret)
}
func ComRelease(unknown *IUnknown) int32 {
- ret, _, _ := syscall.Syscall(unknown.lpVtbl.pRelease, 1,
- uintptr(unsafe.Pointer(unknown)),
- 0,
- 0)
- return int32(ret)
+ ret, _, _ := syscall.Syscall(unknown.lpVtbl.pRelease, 1,
+ uintptr(unsafe.Pointer(unknown)),
+ 0,
+ 0)
+ return int32(ret)
}
func ComQueryInterface(unknown *IUnknown, id *GUID) *IDispatch {
- var disp *IDispatch
- hr, _, _ := syscall.Syscall(unknown.lpVtbl.pQueryInterface, 3,
- uintptr(unsafe.Pointer(unknown)),
- uintptr(unsafe.Pointer(id)),
- uintptr(unsafe.Pointer(&disp)))
- if hr != 0 {
- panic("Invoke QieryInterface error.")
- }
- return disp
+ var disp *IDispatch
+ hr, _, _ := syscall.Syscall(unknown.lpVtbl.pQueryInterface, 3,
+ uintptr(unsafe.Pointer(unknown)),
+ uintptr(unsafe.Pointer(id)),
+ uintptr(unsafe.Pointer(&disp)))
+ if hr != 0 {
+ panic("Invoke QieryInterface error.")
+ }
+ return disp
}
func ComGetIDsOfName(disp *IDispatch, names []string) []int32 {
- wnames := make([]*uint16, len(names))
- dispid := make([]int32, len(names))
- for i := 0; i < len(names); i++ {
- wnames[i] = syscall.StringToUTF16Ptr(names[i])
- }
- hr, _, _ := syscall.Syscall6(disp.lpVtbl.pGetIDsOfNames, 6,
- uintptr(unsafe.Pointer(disp)),
- uintptr(unsafe.Pointer(IID_NULL)),
- uintptr(unsafe.Pointer(&wnames[0])),
- uintptr(len(names)),
- uintptr(GetUserDefaultLCID()),
- uintptr(unsafe.Pointer(&dispid[0])))
- if hr != 0 {
- panic("Invoke GetIDsOfName error.")
- }
- return dispid
+ wnames := make([]*uint16, len(names))
+ dispid := make([]int32, len(names))
+ for i := 0; i < len(names); i++ {
+ wnames[i] = syscall.StringToUTF16Ptr(names[i])
+ }
+ hr, _, _ := syscall.Syscall6(disp.lpVtbl.pGetIDsOfNames, 6,
+ uintptr(unsafe.Pointer(disp)),
+ uintptr(unsafe.Pointer(IID_NULL)),
+ uintptr(unsafe.Pointer(&wnames[0])),
+ uintptr(len(names)),
+ uintptr(GetUserDefaultLCID()),
+ uintptr(unsafe.Pointer(&dispid[0])))
+ if hr != 0 {
+ panic("Invoke GetIDsOfName error.")
+ }
+ return dispid
}
func ComInvoke(disp *IDispatch, dispid int32, dispatch int16, params ...interface{}) (result *VARIANT) {
- var dispparams DISPPARAMS
+ var dispparams DISPPARAMS
- if dispatch&DISPATCH_PROPERTYPUT != 0 {
- dispnames := [1]int32{DISPID_PROPERTYPUT}
- dispparams.RgdispidNamedArgs = uintptr(unsafe.Pointer(&dispnames[0]))
- dispparams.CNamedArgs = 1
- }
- var vargs []VARIANT
- if len(params) > 0 {
- vargs = make([]VARIANT, len(params))
- for i, v := range params {
- //n := len(params)-i-1
- n := len(params) - i - 1
- VariantInit(&vargs[n])
- switch v.(type) {
- case bool:
- if v.(bool) {
- vargs[n] = VARIANT{VT_BOOL, 0, 0, 0, 0xffff}
- } else {
- vargs[n] = VARIANT{VT_BOOL, 0, 0, 0, 0}
- }
- case *bool:
- vargs[n] = VARIANT{VT_BOOL | VT_BYREF, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(*bool))))}
- case byte:
- vargs[n] = VARIANT{VT_I1, 0, 0, 0, int64(v.(byte))}
- case *byte:
- vargs[n] = VARIANT{VT_I1 | VT_BYREF, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(*byte))))}
- case int16:
- vargs[n] = VARIANT{VT_I2, 0, 0, 0, int64(v.(int16))}
- case *int16:
- vargs[n] = VARIANT{VT_I2 | VT_BYREF, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(*int16))))}
- case uint16:
- vargs[n] = VARIANT{VT_UI2, 0, 0, 0, int64(v.(int16))}
- case *uint16:
- vargs[n] = VARIANT{VT_UI2 | VT_BYREF, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(*uint16))))}
- case int, int32:
- vargs[n] = VARIANT{VT_UI4, 0, 0, 0, int64(v.(int))}
- case *int, *int32:
- vargs[n] = VARIANT{VT_I4 | VT_BYREF, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(*int))))}
- case uint, uint32:
- vargs[n] = VARIANT{VT_UI4, 0, 0, 0, int64(v.(uint))}
- case *uint, *uint32:
- vargs[n] = VARIANT{VT_UI4 | VT_BYREF, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(*uint))))}
- case int64:
- vargs[n] = VARIANT{VT_I8, 0, 0, 0, v.(int64)}
- case *int64:
- vargs[n] = VARIANT{VT_I8 | VT_BYREF, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(*int64))))}
- case uint64:
- vargs[n] = VARIANT{VT_UI8, 0, 0, 0, int64(v.(uint64))}
- case *uint64:
- vargs[n] = VARIANT{VT_UI8 | VT_BYREF, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(*uint64))))}
- case float32:
- vargs[n] = VARIANT{VT_R4, 0, 0, 0, int64(v.(float32))}
- case *float32:
- vargs[n] = VARIANT{VT_R4 | VT_BYREF, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(*float32))))}
- case float64:
- vargs[n] = VARIANT{VT_R8, 0, 0, 0, int64(v.(float64))}
- case *float64:
- vargs[n] = VARIANT{VT_R8 | VT_BYREF, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(*float64))))}
- case string:
- vargs[n] = VARIANT{VT_BSTR, 0, 0, 0, int64(uintptr(unsafe.Pointer(SysAllocString(v.(string)))))}
- case *string:
- vargs[n] = VARIANT{VT_BSTR | VT_BYREF, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(*string))))}
- case *IDispatch:
- vargs[n] = VARIANT{VT_DISPATCH, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(*IDispatch))))}
- case **IDispatch:
- vargs[n] = VARIANT{VT_DISPATCH | VT_BYREF, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(**IDispatch))))}
- case nil:
- vargs[n] = VARIANT{VT_NULL, 0, 0, 0, 0}
- case *VARIANT:
- vargs[n] = VARIANT{VT_VARIANT | VT_BYREF, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(*VARIANT))))}
- default:
- panic("unknown type")
- }
- }
- dispparams.Rgvarg = uintptr(unsafe.Pointer(&vargs[0]))
- dispparams.CArgs = uint(len(params))
- }
+ if dispatch&DISPATCH_PROPERTYPUT != 0 {
+ dispnames := [1]int32{DISPID_PROPERTYPUT}
+ dispparams.RgdispidNamedArgs = uintptr(unsafe.Pointer(&dispnames[0]))
+ dispparams.CNamedArgs = 1
+ }
+ var vargs []VARIANT
+ if len(params) > 0 {
+ vargs = make([]VARIANT, len(params))
+ for i, v := range params {
+ //n := len(params)-i-1
+ n := len(params) - i - 1
+ VariantInit(&vargs[n])
+ switch v.(type) {
+ case bool:
+ if v.(bool) {
+ vargs[n] = VARIANT{VT_BOOL, 0, 0, 0, 0xffff}
+ } else {
+ vargs[n] = VARIANT{VT_BOOL, 0, 0, 0, 0}
+ }
+ case *bool:
+ vargs[n] = VARIANT{VT_BOOL | VT_BYREF, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(*bool))))}
+ case byte:
+ vargs[n] = VARIANT{VT_I1, 0, 0, 0, int64(v.(byte))}
+ case *byte:
+ vargs[n] = VARIANT{VT_I1 | VT_BYREF, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(*byte))))}
+ case int16:
+ vargs[n] = VARIANT{VT_I2, 0, 0, 0, int64(v.(int16))}
+ case *int16:
+ vargs[n] = VARIANT{VT_I2 | VT_BYREF, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(*int16))))}
+ case uint16:
+ vargs[n] = VARIANT{VT_UI2, 0, 0, 0, int64(v.(int16))}
+ case *uint16:
+ vargs[n] = VARIANT{VT_UI2 | VT_BYREF, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(*uint16))))}
+ case int, int32:
+ vargs[n] = VARIANT{VT_UI4, 0, 0, 0, int64(v.(int))}
+ case *int, *int32:
+ vargs[n] = VARIANT{VT_I4 | VT_BYREF, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(*int))))}
+ case uint, uint32:
+ vargs[n] = VARIANT{VT_UI4, 0, 0, 0, int64(v.(uint))}
+ case *uint, *uint32:
+ vargs[n] = VARIANT{VT_UI4 | VT_BYREF, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(*uint))))}
+ case int64:
+ vargs[n] = VARIANT{VT_I8, 0, 0, 0, v.(int64)}
+ case *int64:
+ vargs[n] = VARIANT{VT_I8 | VT_BYREF, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(*int64))))}
+ case uint64:
+ vargs[n] = VARIANT{VT_UI8, 0, 0, 0, int64(v.(uint64))}
+ case *uint64:
+ vargs[n] = VARIANT{VT_UI8 | VT_BYREF, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(*uint64))))}
+ case float32:
+ vargs[n] = VARIANT{VT_R4, 0, 0, 0, int64(v.(float32))}
+ case *float32:
+ vargs[n] = VARIANT{VT_R4 | VT_BYREF, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(*float32))))}
+ case float64:
+ vargs[n] = VARIANT{VT_R8, 0, 0, 0, int64(v.(float64))}
+ case *float64:
+ vargs[n] = VARIANT{VT_R8 | VT_BYREF, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(*float64))))}
+ case string:
+ vargs[n] = VARIANT{VT_BSTR, 0, 0, 0, int64(uintptr(unsafe.Pointer(SysAllocString(v.(string)))))}
+ case *string:
+ vargs[n] = VARIANT{VT_BSTR | VT_BYREF, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(*string))))}
+ case *IDispatch:
+ vargs[n] = VARIANT{VT_DISPATCH, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(*IDispatch))))}
+ case **IDispatch:
+ vargs[n] = VARIANT{VT_DISPATCH | VT_BYREF, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(**IDispatch))))}
+ case nil:
+ vargs[n] = VARIANT{VT_NULL, 0, 0, 0, 0}
+ case *VARIANT:
+ vargs[n] = VARIANT{VT_VARIANT | VT_BYREF, 0, 0, 0, int64(uintptr(unsafe.Pointer(v.(*VARIANT))))}
+ default:
+ panic("unknown type")
+ }
+ }
+ dispparams.Rgvarg = uintptr(unsafe.Pointer(&vargs[0]))
+ dispparams.CArgs = uint(len(params))
+ }
- var ret VARIANT
- var excepInfo EXCEPINFO
- VariantInit(&ret)
- hr, _, _ := syscall.Syscall9(disp.lpVtbl.pInvoke, 8,
- uintptr(unsafe.Pointer(disp)),
- uintptr(dispid),
- uintptr(unsafe.Pointer(IID_NULL)),
- uintptr(GetUserDefaultLCID()),
- uintptr(dispatch),
- uintptr(unsafe.Pointer(&dispparams)),
- uintptr(unsafe.Pointer(&ret)),
- uintptr(unsafe.Pointer(&excepInfo)),
- 0)
- if hr != 0 {
- if excepInfo.BstrDescription != nil {
- bs := UTF16PtrToString(excepInfo.BstrDescription)
- panic(bs)
- }
- }
- for _, varg := range vargs {
- if varg.VT == VT_BSTR && varg.Val != 0 {
- SysFreeString(((*int16)(unsafe.Pointer(uintptr(varg.Val)))))
- }
- }
- result = &ret
- return
+ var ret VARIANT
+ var excepInfo EXCEPINFO
+ VariantInit(&ret)
+ hr, _, _ := syscall.Syscall9(disp.lpVtbl.pInvoke, 8,
+ uintptr(unsafe.Pointer(disp)),
+ uintptr(dispid),
+ uintptr(unsafe.Pointer(IID_NULL)),
+ uintptr(GetUserDefaultLCID()),
+ uintptr(dispatch),
+ uintptr(unsafe.Pointer(&dispparams)),
+ uintptr(unsafe.Pointer(&ret)),
+ uintptr(unsafe.Pointer(&excepInfo)),
+ 0)
+ if hr != 0 {
+ if excepInfo.BstrDescription != nil {
+ bs := UTF16PtrToString(excepInfo.BstrDescription)
+ panic(bs)
+ }
+ }
+ for _, varg := range vargs {
+ if varg.VT == VT_BSTR && varg.Val != 0 {
+ SysFreeString(((*int16)(unsafe.Pointer(uintptr(varg.Val)))))
+ }
+ }
+ result = &ret
+ return
}
diff --git a/vars.go b/vars.go
index 2e635df..ff196d0 100644
--- a/vars.go
+++ b/vars.go
@@ -1,9 +1,9 @@
package w32
var (
- IID_NULL = &GUID{0x00000000, 0x0000, 0x0000, [8]byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}
- IID_IUnknown = &GUID{0x00000000, 0x0000, 0x0000, [8]byte{0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}
- IID_IDispatch = &GUID{0x00020400, 0x0000, 0x0000, [8]byte{0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}
- IID_IConnectionPointContainer = &GUID{0xB196B284, 0xBAB4, 0x101A, [8]byte{0xB6, 0x9C, 0x00, 0xAA, 0x00, 0x34, 0x1D, 0x07}}
- IID_IConnectionPoint = &GUID{0xB196B286, 0xBAB4, 0x101A, [8]byte{0xB6, 0x9C, 0x00, 0xAA, 0x00, 0x34, 0x1D, 0x07}}
+ IID_NULL = &GUID{0x00000000, 0x0000, 0x0000, [8]byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}
+ IID_IUnknown = &GUID{0x00000000, 0x0000, 0x0000, [8]byte{0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}
+ IID_IDispatch = &GUID{0x00020400, 0x0000, 0x0000, [8]byte{0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}
+ IID_IConnectionPointContainer = &GUID{0xB196B284, 0xBAB4, 0x101A, [8]byte{0xB6, 0x9C, 0x00, 0xAA, 0x00, 0x34, 0x1D, 0x07}}
+ IID_IConnectionPoint = &GUID{0xB196B286, 0xBAB4, 0x101A, [8]byte{0xB6, 0x9C, 0x00, 0xAA, 0x00, 0x34, 0x1D, 0x07}}
)