@@ -31,9 +31,15 @@ const (
31
31
32
32
// Predefined locale ids
33
33
const (
34
- LOCALE_INVARIANT = 0x007f
35
- LOCALE_USER_DEFAULT = 0x0400
36
- LOCALE_SYSTEM_DEFAULT = 0x0800
34
+ LOCALE_INVARIANT LCID = 0x007f
35
+ LOCALE_USER_DEFAULT LCID = 0x0400
36
+ LOCALE_SYSTEM_DEFAULT LCID = 0x0800
37
+ )
38
+
39
+ // LCTYPE constants
40
+ const (
41
+ LOCALE_SDECIMAL LCTYPE = 14
42
+ LOCALE_STHOUSAND LCTYPE = 15
37
43
)
38
44
39
45
var (
44
50
closeHandle uintptr
45
51
fileTimeToSystemTime uintptr
46
52
getLastError uintptr
53
+ getLocaleInfo uintptr
47
54
getLogicalDriveStrings uintptr
48
55
getModuleHandle uintptr
49
56
getNumberFormat uintptr
66
73
HGLOBAL HANDLE
67
74
HINSTANCE HANDLE
68
75
LCID uint32
76
+ LCTYPE uint32
69
77
)
70
78
71
79
type FILETIME struct {
@@ -101,6 +109,7 @@ func init() {
101
109
closeHandle = MustGetProcAddress (libkernel32 , "CloseHandle" )
102
110
fileTimeToSystemTime = MustGetProcAddress (libkernel32 , "FileTimeToSystemTime" )
103
111
getLastError = MustGetProcAddress (libkernel32 , "GetLastError" )
112
+ getLocaleInfo = MustGetProcAddress (libkernel32 , "GetLocaleInfoW" )
104
113
getLogicalDriveStrings = MustGetProcAddress (libkernel32 , "GetLogicalDriveStringsW" )
105
114
getModuleHandle = MustGetProcAddress (libkernel32 , "GetModuleHandleW" )
106
115
getNumberFormat = MustGetProcAddress (libkernel32 , "GetNumberFormatW" )
@@ -145,6 +154,18 @@ func GetLastError() uint32 {
145
154
return uint32 (ret )
146
155
}
147
156
157
+ func GetLocaleInfo (Locale LCID , LCType LCTYPE , lpLCData * uint16 , cchData int32 ) int32 {
158
+ ret , _ , _ := syscall .Syscall6 (getLocaleInfo , 4 ,
159
+ uintptr (Locale ),
160
+ uintptr (LCType ),
161
+ uintptr (unsafe .Pointer (lpLCData )),
162
+ uintptr (cchData ),
163
+ 0 ,
164
+ 0 )
165
+
166
+ return int32 (ret )
167
+ }
168
+
148
169
func GetLogicalDriveStrings (nBufferLength uint32 , lpBuffer * uint16 ) uint32 {
149
170
ret , _ , _ := syscall .Syscall (getLogicalDriveStrings , 2 ,
150
171
uintptr (nBufferLength ),
0 commit comments