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}}
 )