win 0.3.24 → 0.3.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/HISTORY +4 -0
- data/README.rdoc +4 -5
- data/VERSION +1 -1
- data/lib/win.rb +1 -1
- data/lib/win/gui/menu.rb +34 -3
- data/lib/win/gui/message.rb +1 -3
- data/lib/win/gui/window.rb +1 -1
- data/lib/win/library.rb +10 -5
- data/lib/win/national.rb +585 -0
- data/lib/win/time.rb +140 -0
- data/spec/extension_spec.rb +2 -38
- data/spec/spec_helper.rb +60 -71
- data/spec/win/dde_spec.rb +435 -437
- data/spec/win/error_spec.rb +86 -88
- data/spec/win/gui/dialog_spec.rb +43 -46
- data/spec/win/gui/input_spec.rb +81 -85
- data/spec/win/gui/menu_spec.rb +260 -247
- data/spec/win/gui/message_spec.rb +218 -219
- data/spec/win/gui/window_spec.rb +558 -557
- data/spec/win/library_spec.rb +180 -199
- data/spec/win/system/info_spec.rb +42 -45
- data/spec/win/system/version_spec.rb +143 -146
- data/spec/win/time_spec.rb +48 -0
- data/tasks/spec.rake +5 -9
- metadata +16 -36
data/HISTORY
CHANGED
data/README.rdoc
CHANGED
@@ -1,9 +1,8 @@
|
|
1
1
|
= win
|
2
|
+
by: Arvicco
|
3
|
+
url: http://github.com/arvicco/win
|
2
4
|
|
3
|
-
|
4
|
-
url: http://github.com/arvicco/win
|
5
|
-
|
6
|
-
== DESCRIPTION
|
5
|
+
== SUMMARY
|
7
6
|
|
8
7
|
A collection of Windows API functions predefined for you using FFI. In addition to
|
9
8
|
straightforward (CamelCase) API wrappers, it also strives to provide more Ruby-like
|
@@ -12,7 +11,7 @@ sensible return values (false/true instead of 0/nonzero for test functions, etc)
|
|
12
11
|
|
13
12
|
This is still work in progress, only a small portion of Windows API wrapped so far...
|
14
13
|
|
15
|
-
==
|
14
|
+
== DESCRIPTION
|
16
15
|
|
17
16
|
So you want to write a simple program that makes some Windows API function calls.
|
18
17
|
You searched MSDN high and low and you know exactly what functions you need.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.25
|
data/lib/win.rb
CHANGED
data/lib/win/gui/menu.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'win/library'
|
2
2
|
#require 'win/gui/window'
|
3
|
-
#require 'win/gui/message' # needed because SC_... constants defined there
|
3
|
+
#require 'win/gui/message' # needed because of SC_... constants defined there ?
|
4
4
|
|
5
5
|
module Win
|
6
6
|
module Gui
|
@@ -438,7 +438,39 @@ module Win
|
|
438
438
|
# :call-seq:
|
439
439
|
# menu_handle = create_menu()
|
440
440
|
#
|
441
|
-
function :CreateMenu, [], :HMENU
|
441
|
+
function :CreateMenu, [], :HMENU, fails: 0
|
442
|
+
|
443
|
+
##
|
444
|
+
# The CreatePopupMenu function creates a drop-down menu, submenu, or shortcut menu. The menu is
|
445
|
+
# initially empty. You can insert or append menu items by using the InsertMenuItem function. You can
|
446
|
+
# also use the InsertMenu function to insert menu items and the AppendMenu function to append menu items.
|
447
|
+
#
|
448
|
+
# [*Syntax*] HMENU CreatePopupMenu( void );
|
449
|
+
#
|
450
|
+
# *Returns*:: If the function succeeds, the return value is a handle to the newly created menu.
|
451
|
+
# If the function fails, the return value is NULL. To get extended error information, call GetLastError.
|
452
|
+
# ---
|
453
|
+
# *Remarks*:
|
454
|
+
# The application can add the new menu to an existing menu, or it can display a shortcut menu by calling
|
455
|
+
# the TrackPopupMenuEx or TrackPopupMenu functions.
|
456
|
+
# Resources associated with a menu that is assigned to a window are freed automatically. If the menu is
|
457
|
+
# not assigned to a window, an application must free system resources associated with the menu before
|
458
|
+
# closing. An application frees menu resources by calling the DestroyMenu function.
|
459
|
+
# ---
|
460
|
+
# Minimum DLL Version user32.dll
|
461
|
+
# Header Declared in Winuser.h, include Windows.h
|
462
|
+
# Import library User32.lib
|
463
|
+
# Minimum operating systems Windows 95, Windows NT 3.1
|
464
|
+
# Unicode Implemented as Unicode version.
|
465
|
+
# ---
|
466
|
+
# *See* *Also*:
|
467
|
+
# AppendMenu, CreateMenu, DestroyMenu, InsertMenu, SetMenu, TrackPopupMenu, TrackPopupMenuEx, InsertMenuItem
|
468
|
+
#
|
469
|
+
# :call-seq:
|
470
|
+
# success = create_popup_menu()
|
471
|
+
#
|
472
|
+
function :CreatePopupMenu, [], :HMENU, fails: 0
|
473
|
+
|
442
474
|
|
443
475
|
##
|
444
476
|
# The DestroyMenu function destroys the specified menu and frees any memory that the menu occupies.
|
@@ -709,7 +741,6 @@ module Win
|
|
709
741
|
|
710
742
|
function :CheckMenuItem, 'LII', 'L'
|
711
743
|
function :CheckMenuRadioItem, 'LIIII', :int8, boolean: true
|
712
|
-
function :CreatePopupMenu, [], 'L'
|
713
744
|
function :DrawMenuBar, 'L', :int8, boolean: true
|
714
745
|
function :EnableMenuItem, 'LII', :int8, boolean: true
|
715
746
|
function :EndMenu, [], :int8, boolean: true
|
data/lib/win/gui/message.rb
CHANGED
@@ -425,7 +425,6 @@ module Win
|
|
425
425
|
&->(api, handle, msg, w_param, l_param, data=0, &block){
|
426
426
|
api.call(handle, msg, w_param, l_param, block, data)}
|
427
427
|
|
428
|
-
|
429
428
|
##
|
430
429
|
# The PostMessage function places (posts) a message in the message queue associated with the thread that
|
431
430
|
# created the specified window and returns without waiting for the thread to process the message.
|
@@ -800,5 +799,4 @@ module Win
|
|
800
799
|
function :WaitMessage, 'V', 'B'
|
801
800
|
end
|
802
801
|
end
|
803
|
-
end
|
804
|
-
|
802
|
+
end
|
data/lib/win/gui/window.rb
CHANGED
@@ -189,7 +189,7 @@ module Win
|
|
189
189
|
# the return value is *true*. If the window is not a child or descendant window of
|
190
190
|
# the specified parent window, the return value is *false*.
|
191
191
|
# :call-seq:
|
192
|
-
# child?( win_handle )
|
192
|
+
# child?( parent_handle, win_handle )
|
193
193
|
#
|
194
194
|
function :IsChild, [:HWND, :HWND], :int, boolean: true
|
195
195
|
|
data/lib/win/library.rb
CHANGED
@@ -242,12 +242,12 @@ module Win
|
|
242
242
|
UNICODE_STRING: :pointer, # Pointer to some string structure??
|
243
243
|
USHORT: :ushort, # Unsigned SHORT. The range is 0 through 65535 decimal.
|
244
244
|
USN: :ulong_long, # Update sequence number (USN).
|
245
|
-
VOID: [], # Any type ? Only use it to indicate no arguments or no return value
|
246
245
|
WCHAR: :ushort, # 16-bit Unicode character. For more information, see Character Sets Used By Fonts.
|
247
246
|
# In WinNT.h: typedef wchar_t WCHAR;
|
248
247
|
#WINAPI: K, # Calling convention for system functions. WinDef.h: define WINAPI __stdcall
|
249
248
|
WORD: :ushort, # 16-bit unsigned integer. The range is 0 through 65535 decimal.
|
250
|
-
WPARAM: :uint # Message parameter. WinDef.h as follows: typedef UINT_PTR WPARAM;
|
249
|
+
WPARAM: :uint, # Message parameter. WinDef.h as follows: typedef UINT_PTR WPARAM;
|
250
|
+
VOID: [], # Any type ? Only use it to indicate no arguments or no return value
|
251
251
|
}
|
252
252
|
|
253
253
|
##
|
@@ -259,7 +259,7 @@ module Win
|
|
259
259
|
# and (optionally) transforms the result before returning it. If a block is attached to
|
260
260
|
# method invocation, raw result is yielded to this block before final transformation take place
|
261
261
|
# - Defines aliases for enhanced method with more Rubyesque names for getters, setters and tests:
|
262
|
-
# GetWindowText ->
|
262
|
+
# GetWindowText -> window_text, SetWindowText -> window_text=, IsZoomed -> zoomed?
|
263
263
|
# ---
|
264
264
|
# You may modify default behavior of defined method by providing optional *def_block* to function definition.
|
265
265
|
# If you do so, snake_case method is defined based on your *def_block*. It receives callable API
|
@@ -282,6 +282,7 @@ module Win
|
|
282
282
|
# :alias(es):: Provides additional alias(es) for defined method
|
283
283
|
# :boolean:: Forces method to return true/false instead of nonzero/zero
|
284
284
|
# :fails:: Forces method to return nil if function result is equal to following error code
|
285
|
+
# :alternative:: Alternative signature for this function
|
285
286
|
#
|
286
287
|
def function(name, params, returns, options={}, &def_block)
|
287
288
|
snake_name, camel_name, effective_names, aliases = generate_names(name, options)
|
@@ -297,7 +298,7 @@ module Win
|
|
297
298
|
#
|
298
299
|
def try_function(name, params, returns, options={}, &def_block)
|
299
300
|
begin
|
300
|
-
function name, params, returns, options
|
301
|
+
function name, params, returns, options, &def_block
|
301
302
|
rescue Win::Errors::NotFoundError
|
302
303
|
"This platform does not support function #{name}"
|
303
304
|
end
|
@@ -359,7 +360,11 @@ module Win
|
|
359
360
|
public snake_name
|
360
361
|
|
361
362
|
# Define (instance method!) aliases, if any
|
362
|
-
aliases.each
|
363
|
+
aliases.each do |ali|
|
364
|
+
alias_method ali, snake_name
|
365
|
+
module_function ali
|
366
|
+
public ali
|
367
|
+
end
|
363
368
|
end
|
364
369
|
|
365
370
|
# Generates possible effective names for function in Win32 dll (name+A/W),
|
data/lib/win/national.rb
ADDED
@@ -0,0 +1,585 @@
|
|
1
|
+
require 'win/library'
|
2
|
+
|
3
|
+
module Win
|
4
|
+
|
5
|
+
# Contains various functions and constants related to LOCALE and TIME ZONES.
|
6
|
+
#
|
7
|
+
module National
|
8
|
+
extend Win::Library
|
9
|
+
# Code page identifiers. Used for get_acp_string method.
|
10
|
+
CODE_PAGE = {
|
11
|
+
037 => 'IBM EBCDIC = U.S./Canada',
|
12
|
+
437 => 'OEM = United States',
|
13
|
+
500 => 'IBM EBCDIC - International',
|
14
|
+
708 => 'Arabic - ASMO 708',
|
15
|
+
709 => 'Arabic - ASMO 449+, BCON V4',
|
16
|
+
710 => 'Arabic - Transparent Arabic',
|
17
|
+
720 => 'Arabic - Transparent ASMO',
|
18
|
+
737 => 'OEM - Greek (formerly 437G)',
|
19
|
+
775 => 'OEM - Baltic',
|
20
|
+
850 => 'OEM - Multilingual Latin I',
|
21
|
+
852 => 'OEM - Latin II',
|
22
|
+
855 => 'OEM - Cyrillic (primarily Russian)',
|
23
|
+
857 => 'OEM - Turkish',
|
24
|
+
858 => 'OEM - Multilingual Latin I + Euro symbol',
|
25
|
+
860 => 'OEM - Portuguese',
|
26
|
+
861 => 'OEM - Icelandic',
|
27
|
+
862 => 'OEM - Hebrew',
|
28
|
+
863 => 'OEM - Canadian-French',
|
29
|
+
864 => 'OEM - Arabic',
|
30
|
+
865 => 'OEM - Nordic',
|
31
|
+
866 => 'OEM - Russian',
|
32
|
+
869 => 'OEM - Modern Greek',
|
33
|
+
870 => 'IBM EBCDIC - Multilingual/ROECE (Latin-2)',
|
34
|
+
874 => 'ANSI/OEM - Thai (same as 28605, ISO 8859-15)',
|
35
|
+
875 => 'IBM EBCDIC - Modern Greek',
|
36
|
+
932 => 'ANSI/OEM - Japanese, Shift-JIS',
|
37
|
+
936 => 'ANSI/OEM - Simplified Chinese (PRC, Singapore)',
|
38
|
+
949 => 'ANSI/OEM - Korean (Unified Hangul Code)',
|
39
|
+
950 => 'ANSI/OEM - Traditional Chinese (Taiwan; Hong Kong SAR, PRC)',
|
40
|
+
1026 => 'IBM EBCDIC - Turkish (Latin-5)',
|
41
|
+
1047 => 'IBM EBCDIC - Latin 1/Open System',
|
42
|
+
1140 => 'IBM EBCDIC - U.S./Canada (037 + Euro symbol)',
|
43
|
+
1141 => 'IBM EBCDIC - Germany (20273 + Euro symbol)',
|
44
|
+
1142 => 'IBM EBCDIC - Denmark/Norway (20277 + Euro symbol)',
|
45
|
+
1143 => 'IBM EBCDIC - Finland/Sweden (20278 + Euro symbol)',
|
46
|
+
1144 => 'IBM EBCDIC - Italy (20280 + Euro symbol)',
|
47
|
+
1145 => 'IBM EBCDIC - Latin America/Spain (20284 + Euro symbol)',
|
48
|
+
1146 => 'IBM EBCDIC - United Kingdom (20285 + Euro symbol)',
|
49
|
+
1147 => 'IBM EBCDIC - France (20297 + Euro symbol)',
|
50
|
+
1148 => 'IBM EBCDIC - International (500 + Euro symbol)',
|
51
|
+
1149 => 'IBM EBCDIC - Icelandic (20871 + Euro symbol)',
|
52
|
+
1200 => 'Unicode UCS-2 Little-Endian (BMP of ISO 10646)',
|
53
|
+
1201 => 'Unicode UCS-2 Big-Endian',
|
54
|
+
1250 => 'ANSI - Central European',
|
55
|
+
1251 => 'ANSI - Cyrillic',
|
56
|
+
1252 => 'ANSI - Latin I',
|
57
|
+
1253 => 'ANSI - Greek',
|
58
|
+
1254 => 'ANSI - Turkish',
|
59
|
+
1255 => 'ANSI - Hebrew',
|
60
|
+
1256 => 'ANSI - Arabic',
|
61
|
+
1257 => 'ANSI - Baltic',
|
62
|
+
1258 => 'ANSI/OEM - Vietnamese',
|
63
|
+
1361 => 'Korean (Johab)',
|
64
|
+
10000 => 'MAC - Roman',
|
65
|
+
10001 => 'MAC - Japanese',
|
66
|
+
10002 => 'MAC - Traditional Chinese (Big5)',
|
67
|
+
10003 => 'MAC - Korean',
|
68
|
+
10004 => 'MAC - Arabic',
|
69
|
+
10005 => 'MAC - Hebrew',
|
70
|
+
10006 => 'MAC - Greek I',
|
71
|
+
10007 => 'MAC - Cyrillic',
|
72
|
+
10008 => 'MAC - Simplified Chinese (GB 2312)',
|
73
|
+
10010 => 'MAC - Romania',
|
74
|
+
10017 => 'MAC - Ukraine',
|
75
|
+
10021 => 'MAC - Thai',
|
76
|
+
10029 => 'MAC - Latin II',
|
77
|
+
10079 => 'MAC - Icelandic',
|
78
|
+
10081 => 'MAC - Turkish',
|
79
|
+
10082 => 'MAC - Croatia',
|
80
|
+
12000 => 'Unicode UCS-4 Little-Endian',
|
81
|
+
12001 => 'Unicode UCS-4 Big-Endian',
|
82
|
+
20000 => 'CNS - Taiwan',
|
83
|
+
20001 => 'TCA - Taiwan',
|
84
|
+
20002 => 'Eten - Taiwan',
|
85
|
+
20003 => 'IBM5550 - Taiwan',
|
86
|
+
20004 => 'TeleText - Taiwan',
|
87
|
+
20005 => 'Wang - Taiwan',
|
88
|
+
20105 => 'IA5 IRV International Alphabet No. 5 (7-bit)',
|
89
|
+
20106 => 'IA5 German (7-bit)',
|
90
|
+
20107 => 'IA5 Swedish (7-bit)',
|
91
|
+
20108 => 'IA5 Norwegian (7-bit)',
|
92
|
+
20127 => 'US-ASCII (7-bit)',
|
93
|
+
20261 => 'T.61',
|
94
|
+
20269 => 'ISO 6937 Non-Spacing Accent',
|
95
|
+
20273 => 'IBM EBCDIC - Germany',
|
96
|
+
20277 => 'IBM EBCDIC - Denmark/Norway',
|
97
|
+
20278 => 'IBM EBCDIC - Finland/Sweden',
|
98
|
+
20280 => 'IBM EBCDIC - Italy',
|
99
|
+
20284 => 'IBM EBCDIC - Latin America/Spain',
|
100
|
+
20285 => 'IBM EBCDIC - United Kingdom',
|
101
|
+
20290 => 'IBM EBCDIC - Japanese Katakana Extended',
|
102
|
+
20297 => 'IBM EBCDIC - France',
|
103
|
+
20420 => 'IBM EBCDIC - Arabic',
|
104
|
+
20423 => 'IBM EBCDIC - Greek',
|
105
|
+
20424 => 'IBM EBCDIC - Hebrew',
|
106
|
+
20833 => 'IBM EBCDIC - Korean Extended',
|
107
|
+
20838 => 'IBM EBCDIC - Thai',
|
108
|
+
20866 => 'Russian - KOI8-R',
|
109
|
+
20871 => 'IBM EBCDIC - Icelandic',
|
110
|
+
20880 => 'IBM EBCDIC - Cyrillic (Russian)',
|
111
|
+
20905 => 'IBM EBCDIC - Turkish',
|
112
|
+
20924 => 'IBM EBCDIC - Latin-1/Open System (1047 + Euro symbol)',
|
113
|
+
20932 => 'JIS X 0208-1990 & 0121-1990',
|
114
|
+
20936 => 'Simplified Chinese (GB2312)',
|
115
|
+
21025 => 'IBM EBCDIC - Cyrillic (Serbian, Bulgarian)',
|
116
|
+
21027 => '(deprecated)',
|
117
|
+
21866 => 'Ukrainian (KOI8-U)',
|
118
|
+
28591 => 'ISO 8859-1 Latin I',
|
119
|
+
28592 => 'ISO 8859-2 Central Europe',
|
120
|
+
28593 => 'ISO 8859-3 Latin 3',
|
121
|
+
28594 => 'ISO 8859-4 Baltic',
|
122
|
+
28595 => 'ISO 8859-5 Cyrillic',
|
123
|
+
28596 => 'ISO 8859-6 Arabic',
|
124
|
+
28597 => 'ISO 8859-7 Greek',
|
125
|
+
28598 => 'ISO 8859-8 Hebrew',
|
126
|
+
28599 => 'ISO 8859-9 Latin 5',
|
127
|
+
28605 => 'ISO 8859-15 Latin 9',
|
128
|
+
29001 => 'Europa 3',
|
129
|
+
38598 => 'ISO 8859-8 Hebrew',
|
130
|
+
50220 => 'ISO 2022 Japanese with no halfwidth Katakana',
|
131
|
+
50221 => 'ISO 2022 Japanese with halfwidth Katakana',
|
132
|
+
50222 => 'ISO 2022 Japanese JIS X 0201-1989',
|
133
|
+
50225 => 'ISO 2022 Korean',
|
134
|
+
50227 => 'ISO 2022 Simplified Chinese',
|
135
|
+
50229 => 'ISO 2022 Traditional Chinese',
|
136
|
+
50930 => 'Japanese (Katakana) Extended',
|
137
|
+
50931 => 'US/Canada and Japanese',
|
138
|
+
50933 => 'Korean Extended and Korean',
|
139
|
+
50935 => 'Simplified Chinese Extended and Simplified Chinese',
|
140
|
+
50936 => 'Simplified Chinese',
|
141
|
+
50937 => 'US/Canada and Traditional Chinese',
|
142
|
+
50939 => 'Japanese (Latin) Extended and Japanese',
|
143
|
+
51932 => 'EUC - Japanese',
|
144
|
+
51936 => 'EUC - Simplified Chinese',
|
145
|
+
51949 => 'EUC - Korean',
|
146
|
+
51950 => 'EUC - Traditional Chinese',
|
147
|
+
52936 => 'HZ-GB2312 Simplified Chinese',
|
148
|
+
54936 => 'Windows XP: GB18030 Simplified Chinese (4 Byte)',
|
149
|
+
57002 => 'ISCII Devanagari',
|
150
|
+
57003 => 'ISCII Bengali',
|
151
|
+
57004 => 'ISCII Tamil',
|
152
|
+
57005 => 'ISCII Telugu',
|
153
|
+
57006 => 'ISCII Assamese',
|
154
|
+
57007 => 'ISCII Oriya',
|
155
|
+
57008 => 'ISCII Kannada',
|
156
|
+
57009 => 'ISCII Malayalam',
|
157
|
+
57010 => 'ISCII Gujarati',
|
158
|
+
57011 => 'ISCII Punjabi',
|
159
|
+
65000 => 'Unicode UTF-7',
|
160
|
+
65001 => 'Unicode UTF-8'
|
161
|
+
}
|
162
|
+
|
163
|
+
LANG_NEUTRAL = 0x00
|
164
|
+
LANG_INVARIANT = 0x7f
|
165
|
+
|
166
|
+
LANG_AFRIKAANS = 0x36
|
167
|
+
LANG_ALBANIAN = 0x1c
|
168
|
+
LANG_ARABIC = 0x01
|
169
|
+
LANG_ARMENIAN = 0x2b
|
170
|
+
LANG_ASSAMESE = 0x4d
|
171
|
+
LANG_AZERI = 0x2c
|
172
|
+
LANG_BASQUE = 0x2d
|
173
|
+
LANG_BELARUSIAN = 0x23
|
174
|
+
LANG_BENGALI = 0x45
|
175
|
+
LANG_BOSNIAN = 0x1a
|
176
|
+
LANG_BULGARIAN = 0x02
|
177
|
+
LANG_CATALAN = 0x03
|
178
|
+
LANG_CHINESE = 0x04
|
179
|
+
LANG_CROATIAN = 0x1a
|
180
|
+
LANG_CZECH = 0x05
|
181
|
+
LANG_DANISH = 0x06
|
182
|
+
LANG_DIVEHI = 0x65
|
183
|
+
LANG_DUTCH = 0x13
|
184
|
+
LANG_ENGLISH = 0x09
|
185
|
+
LANG_ESTONIAN = 0x25
|
186
|
+
LANG_FAEROESE = 0x38
|
187
|
+
LANG_FARSI = 0x29
|
188
|
+
LANG_FINNISH = 0x0b
|
189
|
+
LANG_FRENCH = 0x0c
|
190
|
+
LANG_GALICIAN = 0x56
|
191
|
+
LANG_GEORGIAN = 0x37
|
192
|
+
LANG_GERMAN = 0x07
|
193
|
+
LANG_GREEK = 0x08
|
194
|
+
LANG_GUJARATI = 0x47
|
195
|
+
LANG_HEBREW = 0x0d
|
196
|
+
LANG_HINDI = 0x39
|
197
|
+
LANG_HUNGARIAN = 0x0e
|
198
|
+
LANG_ICELANDIC = 0x0f
|
199
|
+
LANG_INDONESIAN = 0x21
|
200
|
+
LANG_ITALIAN = 0x10
|
201
|
+
LANG_JAPANESE = 0x11
|
202
|
+
LANG_KANNADA = 0x4b
|
203
|
+
LANG_KASHMIRI = 0x60
|
204
|
+
LANG_KAZAK = 0x3f
|
205
|
+
LANG_KONKANI = 0x57
|
206
|
+
LANG_KOREAN = 0x12
|
207
|
+
LANG_KYRGYZ = 0x40
|
208
|
+
LANG_LATVIAN = 0x26
|
209
|
+
LANG_LITHUANIAN = 0x27
|
210
|
+
LANG_MACEDONIAN = 0x2f
|
211
|
+
LANG_MALAY = 0x3e
|
212
|
+
LANG_MALAYALAM = 0x4c
|
213
|
+
LANG_MALTESE = 0x3a
|
214
|
+
LANG_MANIPURI = 0x58
|
215
|
+
LANG_MAORI = 0x81
|
216
|
+
LANG_MARATHI = 0x4e
|
217
|
+
LANG_MONGOLIAN = 0x50
|
218
|
+
LANG_NEPALI = 0x61
|
219
|
+
LANG_NORWEGIAN = 0x14
|
220
|
+
LANG_ORIYA = 0x48
|
221
|
+
LANG_POLISH = 0x15
|
222
|
+
LANG_PORTUGUESE = 0x16
|
223
|
+
LANG_PUNJABI = 0x46
|
224
|
+
LANG_QUECHUA = 0x6b
|
225
|
+
LANG_ROMANIAN = 0x18
|
226
|
+
LANG_RUSSIAN = 0x19
|
227
|
+
LANG_SAMI = 0x3b
|
228
|
+
LANG_SANSKRIT = 0x4f
|
229
|
+
LANG_SERBIAN = 0x1a
|
230
|
+
LANG_SINDHI = 0x59
|
231
|
+
LANG_SLOVAK = 0x1b
|
232
|
+
LANG_SLOVENIAN = 0x24
|
233
|
+
LANG_SOTHO = 0x6c
|
234
|
+
LANG_SPANISH = 0x0a
|
235
|
+
LANG_SWAHILI = 0x41
|
236
|
+
LANG_SWEDISH = 0x1d
|
237
|
+
LANG_SYRIAC = 0x5a
|
238
|
+
LANG_TAMIL = 0x49
|
239
|
+
LANG_TATAR = 0x44
|
240
|
+
LANG_TELUGU = 0x4a
|
241
|
+
LANG_THAI = 0x1e
|
242
|
+
LANG_TSWANA = 0x32
|
243
|
+
LANG_TURKISH = 0x1f
|
244
|
+
LANG_UKRAINIAN = 0x22
|
245
|
+
LANG_URDU = 0x20
|
246
|
+
LANG_UZBEK = 0x43
|
247
|
+
LANG_VIETNAMESE = 0x2a
|
248
|
+
LANG_WELSH = 0x52
|
249
|
+
LANG_XHOSA = 0x34
|
250
|
+
LANG_ZULU = 0x35
|
251
|
+
|
252
|
+
SUBLANG_NEUTRAL = 0x00 # language neutral
|
253
|
+
SUBLANG_DEFAULT = 0x01 # user default
|
254
|
+
SUBLANG_SYS_DEFAULT = 0x02 # system default
|
255
|
+
|
256
|
+
SUBLANG_ARABIC_SAUDI_ARABIA = 0x01 # Arabic (Saudi Arabia)
|
257
|
+
SUBLANG_ARABIC_IRAQ = 0x02 # Arabic (Iraq)
|
258
|
+
SUBLANG_ARABIC_EGYPT = 0x03 # Arabic (Egypt)
|
259
|
+
SUBLANG_ARABIC_LIBYA = 0x04 # Arabic (Libya)
|
260
|
+
SUBLANG_ARABIC_ALGERIA = 0x05 # Arabic (Algeria)
|
261
|
+
SUBLANG_ARABIC_MOROCCO = 0x06 # Arabic (Morocco)
|
262
|
+
SUBLANG_ARABIC_TUNISIA = 0x07 # Arabic (Tunisia)
|
263
|
+
SUBLANG_ARABIC_OMAN = 0x08 # Arabic (Oman)
|
264
|
+
SUBLANG_ARABIC_YEMEN = 0x09 # Arabic (Yemen)
|
265
|
+
SUBLANG_ARABIC_SYRIA = 0x0a # Arabic (Syria)
|
266
|
+
SUBLANG_ARABIC_JORDAN = 0x0b # Arabic (Jordan)
|
267
|
+
SUBLANG_ARABIC_LEBANON = 0x0c # Arabic (Lebanon)
|
268
|
+
SUBLANG_ARABIC_KUWAIT = 0x0d # Arabic (Kuwait)
|
269
|
+
SUBLANG_ARABIC_UAE = 0x0e # Arabic (U.A.E)
|
270
|
+
SUBLANG_ARABIC_BAHRAIN = 0x0f # Arabic (Bahrain)
|
271
|
+
SUBLANG_ARABIC_QATAR = 0x10 # Arabic (Qatar)
|
272
|
+
SUBLANG_AZERI_LATIN = 0x01 # Azeri (Latin)
|
273
|
+
SUBLANG_AZERI_CYRILLIC = 0x02 # Azeri (Cyrillic)
|
274
|
+
SUBLANG_CHINESE_TRADITIONAL = 0x01 # Chinese (Taiwan)
|
275
|
+
SUBLANG_CHINESE_SIMPLIFIED = 0x02 # Chinese (PR China)
|
276
|
+
SUBLANG_CHINESE_HONGKONG = 0x03 # Chinese (Hong Kong S.A.R., P.R.C.)
|
277
|
+
SUBLANG_CHINESE_SINGAPORE = 0x04 # Chinese (Singapore)
|
278
|
+
SUBLANG_CHINESE_MACAU = 0x05 # Chinese (Macau S.A.R.)
|
279
|
+
SUBLANG_CROATIAN_CROATIA = 0x01 # Croatian (Croatia)
|
280
|
+
SUBLANG_DUTCH = 0x01 # Dutch
|
281
|
+
SUBLANG_DUTCH_BELGIAN = 0x02 # Dutch (Belgian)
|
282
|
+
SUBLANG_ENGLISH_US = 0x01 # English (USA)
|
283
|
+
SUBLANG_ENGLISH_UK = 0x02 # English (UK)
|
284
|
+
SUBLANG_ENGLISH_AUS = 0x03 # English (Australian)
|
285
|
+
SUBLANG_ENGLISH_CAN = 0x04 # English (Canadian)
|
286
|
+
SUBLANG_ENGLISH_NZ = 0x05 # English (New Zealand)
|
287
|
+
SUBLANG_ENGLISH_EIRE = 0x06 # English (Irish)
|
288
|
+
SUBLANG_ENGLISH_SOUTH_AFRICA = 0x07 # English (South Africa)
|
289
|
+
SUBLANG_ENGLISH_JAMAICA = 0x08 # English (Jamaica)
|
290
|
+
SUBLANG_ENGLISH_CARIBBEAN = 0x09 # English (Caribbean)
|
291
|
+
SUBLANG_ENGLISH_BELIZE = 0x0a # English (Belize)
|
292
|
+
SUBLANG_ENGLISH_TRINIDAD = 0x0b # English (Trinidad)
|
293
|
+
SUBLANG_ENGLISH_ZIMBABWE = 0x0c # English (Zimbabwe)
|
294
|
+
SUBLANG_ENGLISH_PHILIPPINES = 0x0d # English (Philippines)
|
295
|
+
SUBLANG_FRENCH = 0x01 # French
|
296
|
+
SUBLANG_FRENCH_BELGIAN = 0x02 # French (Belgian)
|
297
|
+
SUBLANG_FRENCH_CANADIAN = 0x03 # French (Canadian)
|
298
|
+
SUBLANG_FRENCH_SWISS = 0x04 # French (Swiss)
|
299
|
+
SUBLANG_FRENCH_LUXEMBOURG = 0x05 # French (Luxembourg)
|
300
|
+
SUBLANG_FRENCH_MONACO = 0x06 # French (Monaco)
|
301
|
+
SUBLANG_GERMAN = 0x01 # German
|
302
|
+
SUBLANG_GERMAN_SWISS = 0x02 # German (Swiss)
|
303
|
+
SUBLANG_GERMAN_AUSTRIAN = 0x03 # German (Austrian)
|
304
|
+
SUBLANG_GERMAN_LUXEMBOURG = 0x04 # German (Luxembourg)
|
305
|
+
SUBLANG_GERMAN_LIECHTENSTEIN = 0x05 # German (Liechtenstein)
|
306
|
+
SUBLANG_ITALIAN = 0x01 # Italian
|
307
|
+
SUBLANG_ITALIAN_SWISS = 0x02 # Italian (Swiss)
|
308
|
+
SUBLANG_KASHMIRI_SASIA = 0x02 # Kashmiri (South Asia)
|
309
|
+
SUBLANG_KASHMIRI_INDIA = 0x02 # For app compatibility only
|
310
|
+
SUBLANG_KOREAN = 0x01 # Korean (Extended Wansung)
|
311
|
+
SUBLANG_LITHUANIAN = 0x01 # Lithuanian
|
312
|
+
SUBLANG_MALAY_MALAYSIA = 0x01 # Malay (Malaysia)
|
313
|
+
SUBLANG_MALAY_BRUNEI_DARUSSALAM = 0x02 # Malay (Brunei Darussalam)
|
314
|
+
SUBLANG_NEPALI_INDIA = 0x02 # Nepali (India)
|
315
|
+
SUBLANG_NORWEGIAN_BOKMAL = 0x01 # Norwegian (Bokmal)
|
316
|
+
SUBLANG_NORWEGIAN_NYNORSK = 0x02 # Norwegian (Nynorsk)
|
317
|
+
SUBLANG_PORTUGUESE = 0x02 # Portuguese
|
318
|
+
SUBLANG_PORTUGUESE_BRAZILIAN = 0x01 # Portuguese (Brazilian)
|
319
|
+
SUBLANG_QUECHUA_BOLIVIA = 0x01 # Quechua (Bolivia)
|
320
|
+
SUBLANG_QUECHUA_ECUADOR = 0x02 # Quechua (Ecuador)
|
321
|
+
SUBLANG_QUECHUA_PERU = 0x03 # Quechua (Peru)
|
322
|
+
SUBLANG_SAMI_NORTHERN_NORWAY = 0x01 # Northern Sami (Norway)
|
323
|
+
SUBLANG_SAMI_NORTHERN_SWEDEN = 0x02 # Northern Sami (Sweden)
|
324
|
+
SUBLANG_SAMI_NORTHERN_FINLAND = 0x03 # Northern Sami (Finland)
|
325
|
+
SUBLANG_SAMI_LULE_NORWAY = 0x04 # Lule Sami (Norway)
|
326
|
+
SUBLANG_SAMI_LULE_SWEDEN = 0x05 # Lule Sami (Sweden)
|
327
|
+
SUBLANG_SAMI_SOUTHERN_NORWAY = 0x06 # Southern Sami (Norway)
|
328
|
+
SUBLANG_SAMI_SOUTHERN_SWEDEN = 0x07 # Southern Sami (Sweden)
|
329
|
+
SUBLANG_SAMI_SKOLT_FINLAND = 0x08 # Skolt Sami (Finland)
|
330
|
+
SUBLANG_SAMI_INARI_FINLAND = 0x09 # Inari Sami (Finland)
|
331
|
+
SUBLANG_SERBIAN_LATIN = 0x02 # Serbian (Latin)
|
332
|
+
SUBLANG_SERBIAN_CYRILLIC = 0x03 # Serbian (Cyrillic)
|
333
|
+
SUBLANG_SPANISH = 0x01 # Spanish (Castilian)
|
334
|
+
SUBLANG_SPANISH_MEXICAN = 0x02 # Spanish (Mexican)
|
335
|
+
SUBLANG_SPANISH_MODERN = 0x03 # Spanish (Modern)
|
336
|
+
SUBLANG_SPANISH_GUATEMALA = 0x04 # Spanish (Guatemala)
|
337
|
+
SUBLANG_SPANISH_COSTA_RICA = 0x05 # Spanish (Costa Rica)
|
338
|
+
SUBLANG_SPANISH_PANAMA = 0x06 # Spanish (Panama)
|
339
|
+
SUBLANG_SPANISH_VENEZUELA = 0x08 # Spanish (Venezuela)
|
340
|
+
SUBLANG_SPANISH_COLOMBIA = 0x09 # Spanish (Colombia)
|
341
|
+
SUBLANG_SPANISH_PERU = 0x0a # Spanish (Peru)
|
342
|
+
SUBLANG_SPANISH_ARGENTINA = 0x0b # Spanish (Argentina)
|
343
|
+
SUBLANG_SPANISH_ECUADOR = 0x0c # Spanish (Ecuador)
|
344
|
+
SUBLANG_SPANISH_CHILE = 0x0d # Spanish (Chile)
|
345
|
+
SUBLANG_SPANISH_URUGUAY = 0x0e # Spanish (Uruguay)
|
346
|
+
SUBLANG_SPANISH_PARAGUAY = 0x0f # Spanish (Paraguay)
|
347
|
+
SUBLANG_SPANISH_BOLIVIA = 0x10 # Spanish (Bolivia)
|
348
|
+
SUBLANG_SPANISH_EL_SALVADOR = 0x11 # Spanish (El Salvador)
|
349
|
+
SUBLANG_SPANISH_HONDURAS = 0x12 # Spanish (Honduras)
|
350
|
+
SUBLANG_SPANISH_NICARAGUA = 0x13 # Spanish (Nicaragua)
|
351
|
+
SUBLANG_SPANISH_PUERTO_RICO = 0x14 # Spanish (Puerto Rico)
|
352
|
+
SUBLANG_SWEDISH = 0x01 # Swedish
|
353
|
+
SUBLANG_SWEDISH_FINLAND = 0x02 # Swedish (Finland)
|
354
|
+
SUBLANG_URDU_PAKISTAN = 0x01 # Urdu (Pakistan)
|
355
|
+
SUBLANG_URDU_INDIA = 0x02 # Urdu (India)
|
356
|
+
SUBLANG_UZBEK_LATIN = 0x01 # Uzbek (Latin)
|
357
|
+
SUBLANG_UZBEK_CYRILLIC = 0x02 # Uzbek (Cyrillic)
|
358
|
+
|
359
|
+
LOCALE_NOUSEROVERRIDE = 0x80000000
|
360
|
+
LOCALE_USE_CP_ACP = 0x40000000
|
361
|
+
LOCALE_RETURN_NUMBER = 0x20000000
|
362
|
+
|
363
|
+
LOCALE_ILANGUAGE = 0x00000001 # Language ID
|
364
|
+
LOCALE_SLANGUAGE = 0x00000002 # Localized name of language
|
365
|
+
LOCALE_SENGLANGUAGE = 0x00001001 # English name of language
|
366
|
+
LOCALE_SABBREVLANGNAME = 0x00000003 # Abbreviated language name
|
367
|
+
LOCALE_SNATIVELANGNAME = 0x00000004 # Native name of language
|
368
|
+
|
369
|
+
LOCALE_ICOUNTRY = 0x00000005 # Country code
|
370
|
+
LOCALE_SCOUNTRY = 0x00000006 # Localized name of country
|
371
|
+
LOCALE_SENGCOUNTRY = 0x00001002 # English name of country
|
372
|
+
LOCALE_SABBREVCTRYNAME = 0x00000007 # Abbreviated country name
|
373
|
+
LOCALE_SNATIVECTRYNAME = 0x00000008 # Native name of country
|
374
|
+
|
375
|
+
LOCALE_IDEFAULTLANGUAGE = 0x00000009 # default language id
|
376
|
+
LOCALE_IDEFAULTCOUNTRY = 0x0000000A # default country code
|
377
|
+
LOCALE_IDEFAULTCODEPAGE = 0x0000000B # default oem code page
|
378
|
+
LOCALE_IDEFAULTANSICODEPAGE = 0x00001004 # default ansi code page
|
379
|
+
LOCALE_IDEFAULTMACCODEPAGE = 0x00001011 # default mac code page
|
380
|
+
|
381
|
+
LOCALE_SLIST = 0x0000000C # list item separator
|
382
|
+
LOCALE_IMEASURE = 0x0000000D # 0 = metric, 1 = US
|
383
|
+
|
384
|
+
LOCALE_SDECIMAL = 0x0000000E # decimal separator
|
385
|
+
LOCALE_STHOUSAND = 0x0000000F # thousand separator
|
386
|
+
LOCALE_SGROUPING = 0x00000010 # digit grouping
|
387
|
+
LOCALE_IDIGITS = 0x00000011 # number of fractional digits
|
388
|
+
LOCALE_ILZERO = 0x00000012 # leading zeros for decimal
|
389
|
+
LOCALE_INEGNUMBER = 0x00001010 # negative number mode
|
390
|
+
LOCALE_SNATIVEDIGITS = 0x00000013 # native ascii 0-9
|
391
|
+
|
392
|
+
LOCALE_SCURRENCY = 0x00000014 # local monetary symbol
|
393
|
+
LOCALE_SINTLSYMBOL = 0x00000015 # intl monetary symbol
|
394
|
+
LOCALE_SMONDECIMALSEP = 0x00000016 # monetary decimal separator
|
395
|
+
LOCALE_SMONTHOUSANDSEP = 0x00000017 # monetary thousand separator
|
396
|
+
LOCALE_SMONGROUPING = 0x00000018 # monetary grouping
|
397
|
+
LOCALE_ICURRDIGITS = 0x00000019 # # local monetary digits
|
398
|
+
LOCALE_IINTLCURRDIGITS = 0x0000001A # # intl monetary digits
|
399
|
+
LOCALE_ICURRENCY = 0x0000001B # positive currency mode
|
400
|
+
LOCALE_INEGCURR = 0x0000001C # negative currency mode
|
401
|
+
|
402
|
+
LOCALE_SDATE = 0x0000001D # date separator
|
403
|
+
LOCALE_STIME = 0x0000001E # time separator
|
404
|
+
LOCALE_SSHORTDATE = 0x0000001F # short date format string
|
405
|
+
LOCALE_SLONGDATE = 0x00000020 # long date format string
|
406
|
+
LOCALE_STIMEFORMAT = 0x00001003 # time format string
|
407
|
+
LOCALE_IDATE = 0x00000021 # short date format ordering
|
408
|
+
LOCALE_ILDATE = 0x00000022 # long date format ordering
|
409
|
+
LOCALE_ITIME = 0x00000023 # time format specifier
|
410
|
+
LOCALE_ITIMEMARKPOSN = 0x00001005 # time marker position
|
411
|
+
LOCALE_ICENTURY = 0x00000024 # century format specifier (short date)
|
412
|
+
LOCALE_ITLZERO = 0x00000025 # leading zeros in time field
|
413
|
+
LOCALE_IDAYLZERO = 0x00000026 # leading zeros in day field (short date)
|
414
|
+
LOCALE_IMONLZERO = 0x00000027 # leading zeros in month field (short date)
|
415
|
+
LOCALE_S1159 = 0x00000028 # AM designator
|
416
|
+
LOCALE_S2359 = 0x00000029 # PM designator
|
417
|
+
|
418
|
+
LOCALE_ICALENDARTYPE = 0x00001009 # type of calendar specifier
|
419
|
+
LOCALE_IOPTIONALCALENDAR = 0x0000100B # additional calendar types specifier
|
420
|
+
LOCALE_IFIRSTDAYOFWEEK = 0x0000100C # first day of week specifier
|
421
|
+
LOCALE_IFIRSTWEEKOFYEAR = 0x0000100D # first week of year specifier
|
422
|
+
|
423
|
+
LOCALE_SDAYNAME1 = 0x0000002A # long name for Monday
|
424
|
+
LOCALE_SDAYNAME2 = 0x0000002B # long name for Tuesday
|
425
|
+
LOCALE_SDAYNAME3 = 0x0000002C # long name for Wednesday
|
426
|
+
LOCALE_SDAYNAME4 = 0x0000002D # long name for Thursday
|
427
|
+
LOCALE_SDAYNAME5 = 0x0000002E # long name for Friday
|
428
|
+
LOCALE_SDAYNAME6 = 0x0000002F # long name for Saturday
|
429
|
+
LOCALE_SDAYNAME7 = 0x00000030 # long name for Sunday
|
430
|
+
LOCALE_SABBREVDAYNAME1 = 0x00000031 # abbreviated name for Monday
|
431
|
+
LOCALE_SABBREVDAYNAME2 = 0x00000032 # abbreviated name for Tuesday
|
432
|
+
LOCALE_SABBREVDAYNAME3 = 0x00000033 # abbreviated name for Wednesday
|
433
|
+
LOCALE_SABBREVDAYNAME4 = 0x00000034 # abbreviated name for Thursday
|
434
|
+
LOCALE_SABBREVDAYNAME5 = 0x00000035 # abbreviated name for Friday
|
435
|
+
LOCALE_SABBREVDAYNAME6 = 0x00000036 # abbreviated name for Saturday
|
436
|
+
LOCALE_SABBREVDAYNAME7 = 0x00000037 # abbreviated name for Sunday
|
437
|
+
LOCALE_SMONTHNAME1 = 0x00000038 # long name for January
|
438
|
+
LOCALE_SMONTHNAME2 = 0x00000039 # long name for February
|
439
|
+
LOCALE_SMONTHNAME3 = 0x0000003A # long name for March
|
440
|
+
LOCALE_SMONTHNAME4 = 0x0000003B # long name for April
|
441
|
+
LOCALE_SMONTHNAME5 = 0x0000003C # long name for May
|
442
|
+
LOCALE_SMONTHNAME6 = 0x0000003D # long name for June
|
443
|
+
LOCALE_SMONTHNAME7 = 0x0000003E # long name for July
|
444
|
+
LOCALE_SMONTHNAME8 = 0x0000003F # long name for August
|
445
|
+
LOCALE_SMONTHNAME9 = 0x00000040 # long name for September
|
446
|
+
LOCALE_SMONTHNAME10 = 0x00000041 # long name for October
|
447
|
+
LOCALE_SMONTHNAME11 = 0x00000042 # long name for November
|
448
|
+
LOCALE_SMONTHNAME12 = 0x00000043 # long name for December
|
449
|
+
LOCALE_SMONTHNAME13 = 0x0000100E # long name for 13th month (if exists)
|
450
|
+
LOCALE_SABBREVMONTHNAME1 = 0x00000044 # abbreviated name for January
|
451
|
+
LOCALE_SABBREVMONTHNAME2 = 0x00000045 # abbreviated name for February
|
452
|
+
LOCALE_SABBREVMONTHNAME3 = 0x00000046 # abbreviated name for March
|
453
|
+
LOCALE_SABBREVMONTHNAME4 = 0x00000047 # abbreviated name for April
|
454
|
+
LOCALE_SABBREVMONTHNAME5 = 0x00000048 # abbreviated name for May
|
455
|
+
LOCALE_SABBREVMONTHNAME6 = 0x00000049 # abbreviated name for June
|
456
|
+
LOCALE_SABBREVMONTHNAME7 = 0x0000004A # abbreviated name for July
|
457
|
+
LOCALE_SABBREVMONTHNAME8 = 0x0000004B # abbreviated name for August
|
458
|
+
LOCALE_SABBREVMONTHNAME9 = 0x0000004C # abbreviated name for September
|
459
|
+
LOCALE_SABBREVMONTHNAME10 = 0x0000004D # abbreviated name for October
|
460
|
+
LOCALE_SABBREVMONTHNAME11 = 0x0000004E # abbreviated name for November
|
461
|
+
LOCALE_SABBREVMONTHNAME12 = 0x0000004F # abbreviated name for December
|
462
|
+
LOCALE_SABBREVMONTHNAME13 = 0x0000100F # abbreviated name for 13th month (if exists)
|
463
|
+
|
464
|
+
LOCALE_SPOSITIVESIGN = 0x00000050 # positive sign
|
465
|
+
LOCALE_SNEGATIVESIGN = 0x00000051 # negative sign
|
466
|
+
LOCALE_IPOSSIGNPOSN = 0x00000052 # positive sign position
|
467
|
+
LOCALE_INEGSIGNPOSN = 0x00000053 # negative sign position
|
468
|
+
LOCALE_IPOSSYMPRECEDES = 0x00000054 # mon sym precedes pos amt
|
469
|
+
LOCALE_IPOSSEPBYSPACE = 0x00000055 # mon sym sep by space from pos amt
|
470
|
+
LOCALE_INEGSYMPRECEDES = 0x00000056 # mon sym precedes neg amt
|
471
|
+
LOCALE_INEGSEPBYSPACE = 0x00000057 # mon sym sep by space from neg amt
|
472
|
+
|
473
|
+
LOCALE_FONTSIGNATURE = 0x00000058 # font signature
|
474
|
+
LOCALE_SISO639LANGNAME = 0x00000059 # ISO abbreviated language name
|
475
|
+
LOCALE_SISO3166CTRYNAME = 0x0000005A # ISO abbreviated country name
|
476
|
+
|
477
|
+
LOCALE_IDEFAULTEBCDICCODEPAGE = 0x00001012 # default ebcdic code page
|
478
|
+
LOCALE_IPAPERSIZE = 0x0000100A # 1 = letter, 5 = legal, 8 = a3, 9 = a4
|
479
|
+
LOCALE_SENGCURRNAME = 0x00001007 # english name of currency
|
480
|
+
LOCALE_SNATIVECURRNAME = 0x00001008 # native name of currency
|
481
|
+
LOCALE_SYEARMONTH = 0x00001006 # year month format string
|
482
|
+
LOCALE_SSORTNAME = 0x00001013 # sort name
|
483
|
+
LOCALE_IDIGITSUBSTITUTION = 0x00001014 # 0 = context, 1 = none, 2 = national
|
484
|
+
|
485
|
+
TIME_NOMINUTESORSECONDS = 0x00000001 # do not use minutes or seconds
|
486
|
+
TIME_NOSECONDS = 0x00000002 # do not use seconds
|
487
|
+
TIME_NOTIMEMARKER = 0x00000004 # do not use time marker
|
488
|
+
TIME_FORCE24HOURFORMAT = 0x00000008 # always use 24 hour format
|
489
|
+
|
490
|
+
DATE_SHORTDATE = 0x00000001 # use short date picture
|
491
|
+
DATE_LONGDATE = 0x00000002 # use long date picture
|
492
|
+
DATE_USE_ALT_CALENDAR = 0x00000004 # use alternate calendar (if any)
|
493
|
+
|
494
|
+
DATE_YEARMONTH = 0x00000008 # use year month picture
|
495
|
+
DATE_LTRREADING = 0x00000010 # add marks for left to right reading order layout
|
496
|
+
DATE_RTLREADING = 0x00000020 # add marks for right to left reading order layout
|
497
|
+
|
498
|
+
SORT_DEFAULT = 0x0 # sorting default
|
499
|
+
|
500
|
+
SORT_JAPANESE_XJIS = 0x0 # Japanese XJIS order
|
501
|
+
SORT_JAPANESE_UNICODE = 0x1 # Japanese Unicode order
|
502
|
+
|
503
|
+
SORT_CHINESE_BIG5 = 0x0 # Chinese BIG5 order
|
504
|
+
SORT_CHINESE_PRCP = 0x0 # PRC Chinese Phonetic order
|
505
|
+
SORT_CHINESE_UNICODE = 0x1 # Chinese Unicode order
|
506
|
+
SORT_CHINESE_PRC = 0x2 # PRC Chinese Stroke Count order
|
507
|
+
SORT_CHINESE_BOPOMOFO = 0x3 # Traditional Chinese Bopomofo order
|
508
|
+
|
509
|
+
SORT_KOREAN_KSC = 0x0 # Korean KSC order
|
510
|
+
SORT_KOREAN_UNICODE = 0x1 # Korean Unicode order
|
511
|
+
|
512
|
+
SORT_GERMAN_PHONE_BOOK = 0x1 # German Phone Book order
|
513
|
+
|
514
|
+
SORT_HUNGARIAN_DEFAULT = 0x0 # Hungarian Default order
|
515
|
+
SORT_HUNGARIAN_TECHNICAL = 0x1 # Hungarian Technical order
|
516
|
+
|
517
|
+
SORT_GEORGIAN_TRADITIONAL = 0x0 # Georgian Traditional order
|
518
|
+
SORT_GEORGIAN_MODERN = 0x1 # Georgian Modern order
|
519
|
+
|
520
|
+
LANG_SYSTEM_DEFAULT = 2048
|
521
|
+
LANG_USER_DEFAULT = 1024
|
522
|
+
LOCALE_SYSTEM_DEFAULT = 2048
|
523
|
+
LOCALE_USER_DEFAULT = 1024
|
524
|
+
LOCALE_INVARIANT = 8323072
|
525
|
+
|
526
|
+
# Untested
|
527
|
+
|
528
|
+
##
|
529
|
+
function :CompareString, 'LLPIPI', 'I'
|
530
|
+
##
|
531
|
+
function :GetACP, 'V', 'I'
|
532
|
+
##
|
533
|
+
function :GetCPInfo, 'LP', :int8, boolean: true
|
534
|
+
##
|
535
|
+
function :GetCPInfoEx, 'LLP', :int8, boolean: true
|
536
|
+
##
|
537
|
+
function :GetCurrencyFormat, 'LLPPPI', 'I'
|
538
|
+
##
|
539
|
+
function :GetDateFormat, 'LLPPPI', 'I'
|
540
|
+
##
|
541
|
+
function :GetLocaleInfo, 'LLPL', 'I'
|
542
|
+
##
|
543
|
+
function :GetSystemDefaultLangID, 'V', 'L'
|
544
|
+
##
|
545
|
+
function :GetSystemDefaultLCID, 'V', 'L'
|
546
|
+
##
|
547
|
+
function :GetUserDefaultLangID, 'V', 'L'
|
548
|
+
##
|
549
|
+
function :GetUserDefaultLCID, 'V', 'L'
|
550
|
+
|
551
|
+
##
|
552
|
+
try_function :AdjustCalendarDate, 'PLP', :int8, boolean: true
|
553
|
+
##
|
554
|
+
try_function :GetCurrencyFormatEx, 'PLPPPI', 'I'
|
555
|
+
##
|
556
|
+
try_function :GetDateFormatEx, 'SLPSPIS', 'I'
|
557
|
+
|
558
|
+
# TODO: Define specific callbacks before defining functions (no generic callbacks in FFI)
|
559
|
+
# function :EnumDateFormats, 'KLL', :int8, boolean: true
|
560
|
+
# function :EnumDateFormatsEx, 'KLL', :int8, boolean: true
|
561
|
+
# function :EnumSystemCodePages, 'KL', 'L'
|
562
|
+
# function :EnumSystemLocales, 'KL', 'L'
|
563
|
+
# function :EnumTimeFormats, 'KLL', :int8, boolean: true
|
564
|
+
# try_function :EnumTimeFormatsEx, 'KSLP', :int8, boolean: true
|
565
|
+
|
566
|
+
# Convenience method for converting the results of the GetACP(
|
567
|
+
# function to a human readable string.
|
568
|
+
#
|
569
|
+
def get_acp_string
|
570
|
+
CODE_PAGE[GetACP.call]
|
571
|
+
end
|
572
|
+
|
573
|
+
# Equivalent of the MAKELCID macro in WinNT.h
|
574
|
+
#
|
575
|
+
def MAKELCID srtid, lgid
|
576
|
+
srtid << 16 | lgid
|
577
|
+
end
|
578
|
+
|
579
|
+
# Equivalent of the MAKELANGID macro in WinNT.h
|
580
|
+
#
|
581
|
+
def MAKELANGID x, s
|
582
|
+
s << 10 | x
|
583
|
+
end
|
584
|
+
end
|
585
|
+
end
|