1 {******************************************************************************}
2 { }
3 { National Language Support API interface Unit for Object Pascal }
4 { }
5 { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft }
6 { Corporation. All Rights Reserved. }
7 { }
8 { The original file is: winnls.h, released June 2000. The original Pascal }
9 { code is: WinNLS.pas, released December 2000. The initial developer of the }
10 { Pascal code is Marcel van Brakel (brakelm att chello dott nl). }
11 { }
12 { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 }
13 { Marcel van Brakel. All Rights Reserved. }
14 { }
15 { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) }
16 { }
17 { You may retrieve the latest version of this file at the Project JEDI }
18 { APILIB home page, located at http://jedi-apilib.sourceforge.net }
19 { }
20 { The contents of this file are used with permission, subject to the Mozilla }
21 { Public License Version 1.1 (the "License"); you may not use this file except }
22 { in compliance with the License. You may obtain a copy of the License at }
23 { http://www.mozilla.org/MPL/MPL-1.1.html }
24 { }
25 { Software distributed under the License is distributed on an "AS IS" basis, }
26 { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
27 { the specific language governing rights and limitations under the License. }
28 { }
29 { Alternatively, the contents of this file may be used under the terms of the }
30 { GNU Lesser General Public License (the "LGPL License"), in which case the }
31 { provisions of the LGPL License are applicable instead of those above. }
32 { If you wish to allow use of your version of this file only under the terms }
33 { of the LGPL License and not to allow others to use your version of this file }
34 { under the MPL, indicate your decision by deleting the provisions above and }
35 { replace them with the notice and other provisions required by the LGPL }
36 { License. If you do not delete the provisions above, a recipient may use }
37 { your version of this file under either the MPL or the LGPL License. }
38 { }
39 { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
40 { }
41 {******************************************************************************}
42
43 // $Id: JwaWinNLS.pas,v 1.12 2007/09/05 11:58:54 dezipaitor Exp $
44
45 {$IFNDEF JWA_OMIT_SECTIONS}
46 unit JwaWinNLS;
47
48 {$WEAKPACKAGEUNIT}
49 {$ENDIF JWA_OMIT_SECTIONS}
50
51 {$HPPEMIT ''}
52 {$HPPEMIT '#include "WinNls.h"'}
53 {$HPPEMIT ''}
54
55 {$IFNDEF JWA_OMIT_SECTIONS}
56
57 {$I jediapilib.inc}
58
59 interface
60
61 uses
62 JwaWinType, JwaWinBase;
63 {$ENDIF JWA_OMIT_SECTIONS}
64 {$IFNDEF JWA_IMPLEMENTATIONSECTION}
65
66 ////////////////////////////////////////////////////////////////////////////
67 //
68 // Constants
69 //
70 // Define all constants for the NLS component here.
71 //
72 ////////////////////////////////////////////////////////////////////////////
73
74 //
75 // String Length Maximums.
76 //
77
78 const
79
80 MAX_LEADBYTES = 12; // 5 ranges, 2 bytes ea., 0 term.
81 {$EXTERNALSYM MAX_LEADBYTES}
82 MAX_DEFAULTCHAR = 2; // single or double byte
83 {$EXTERNALSYM MAX_DEFAULTCHAR}
84
85 //
86 // MBCS and Unicode Translation Flags.
87 //
88
89 MB_PRECOMPOSED = $00000001; // use precomposed chars
90 {$EXTERNALSYM MB_PRECOMPOSED}
91 MB_COMPOSITE = $00000002; // use composite chars
92 {$EXTERNALSYM MB_COMPOSITE}
93 MB_USEGLYPHCHARS = $00000004; // use glyph chars, not ctrl chars
94 {$EXTERNALSYM MB_USEGLYPHCHARS}
95 MB_ERR_INVALID_CHARS = $00000008; // error for invalid chars
96 {$EXTERNALSYM MB_ERR_INVALID_CHARS}
97
98 WC_COMPOSITECHECK = $00000200; // convert composite to precomposed
99 {$EXTERNALSYM WC_COMPOSITECHECK}
100 WC_DISCARDNS = $00000010; // discard non-spacing chars
101 {$EXTERNALSYM WC_DISCARDNS}
102 WC_SEPCHARS = $00000020; // generate separate chars
103 {$EXTERNALSYM WC_SEPCHARS}
104 WC_DEFAULTCHAR = $00000040; // replace w/ default char
105 {$EXTERNALSYM WC_DEFAULTCHAR}
106
107 WC_NO_BEST_FIT_CHARS = $00000400; // do not use best fit chars
108 {$EXTERNALSYM WC_NO_BEST_FIT_CHARS}
109
110 //
111 // Character Type Flags.
112 //
113
114 CT_CTYPE1 = $00000001; // ctype 1 information
115 {$EXTERNALSYM CT_CTYPE1}
116 CT_CTYPE2 = $00000002; // ctype 2 information
117 {$EXTERNALSYM CT_CTYPE2}
118 CT_CTYPE3 = $00000004; // ctype 3 information
119 {$EXTERNALSYM CT_CTYPE3}
120
121 //
122 // CType 1 Flag Bits.
123 //
124
125 C1_UPPER = $0001; // upper case
126 {$EXTERNALSYM C1_UPPER}
127 C1_LOWER = $0002; // lower case
128 {$EXTERNALSYM C1_LOWER}
129 C1_DIGIT = $0004; // decimal digits
130 {$EXTERNALSYM C1_DIGIT}
131 C1_SPACE = $0008; // spacing characters
132 {$EXTERNALSYM C1_SPACE}
133 C1_PUNCT = $0010; // punctuation characters
134 {$EXTERNALSYM C1_PUNCT}
135 C1_CNTRL = $0020; // control characters
136 {$EXTERNALSYM C1_CNTRL}
137 C1_BLANK = $0040; // blank characters
138 {$EXTERNALSYM C1_BLANK}
139 C1_XDIGIT = $0080; // other digits
140 {$EXTERNALSYM C1_XDIGIT}
141 C1_ALPHA = $0100; // any linguistic character
142 {$EXTERNALSYM C1_ALPHA}
143 C1_DEFINED = $0200; // defined character
144 {$EXTERNALSYM C1_DEFINED}
145
146 //
147 // CType 2 Flag Bits.
148 //
149
150 C2_LEFTTORIGHT = $0001; // left to right
151 {$EXTERNALSYM C2_LEFTTORIGHT}
152 C2_RIGHTTOLEFT = $0002; // right to left
153 {$EXTERNALSYM C2_RIGHTTOLEFT}
154
155 C2_EUROPENUMBER = $0003; // European number, digit
156 {$EXTERNALSYM C2_EUROPENUMBER}
157 C2_EUROPESEPARATOR = $0004; // European numeric separator
158 {$EXTERNALSYM C2_EUROPESEPARATOR}
159 C2_EUROPETERMINATOR = $0005; // European numeric terminator
160 {$EXTERNALSYM C2_EUROPETERMINATOR}
161 C2_ARABICNUMBER = $0006; // Arabic number
162 {$EXTERNALSYM C2_ARABICNUMBER}
163 C2_COMMONSEPARATOR = $0007; // common numeric separator
164 {$EXTERNALSYM C2_COMMONSEPARATOR}
165
166 C2_BLOCKSEPARATOR = $0008; // block separator
167 {$EXTERNALSYM C2_BLOCKSEPARATOR}
168 C2_SEGMENTSEPARATOR = $0009; // segment separator
169 {$EXTERNALSYM C2_SEGMENTSEPARATOR}
170 C2_WHITESPACE = $000A; // white space
171 {$EXTERNALSYM C2_WHITESPACE}
172 C2_OTHERNEUTRAL = $000B; // other neutrals
173 {$EXTERNALSYM C2_OTHERNEUTRAL}
174
175 C2_NOTAPPLICABLE = $0000; // no implicit directionality
176 {$EXTERNALSYM C2_NOTAPPLICABLE}
177
178 //
179 // CType 3 Flag Bits.
180 //
181
182 C3_NONSPACING = $0001; // nonspacing character
183 {$EXTERNALSYM C3_NONSPACING}
184 C3_DIACRITIC = $0002; // diacritic mark
185 {$EXTERNALSYM C3_DIACRITIC}
186 C3_VOWELMARK = $0004; // vowel mark
187 {$EXTERNALSYM C3_VOWELMARK}
188 C3_SYMBOL = $0008; // symbols
189 {$EXTERNALSYM C3_SYMBOL}
190
191 C3_KATAKANA = $0010; // katakana character
192 {$EXTERNALSYM C3_KATAKANA}
193 C3_HIRAGANA = $0020; // hiragana character
194 {$EXTERNALSYM C3_HIRAGANA}
195 C3_HALFWIDTH = $0040; // half width character
196 {$EXTERNALSYM C3_HALFWIDTH}
197 C3_FULLWIDTH = $0080; // full width character
198 {$EXTERNALSYM C3_FULLWIDTH}
199 C3_IDEOGRAPH = $0100; // ideographic character
200 {$EXTERNALSYM C3_IDEOGRAPH}
201 C3_KASHIDA = $0200; // Arabic kashida character
202 {$EXTERNALSYM C3_KASHIDA}
203 C3_LEXICAL = $0400; // lexical character
204 {$EXTERNALSYM C3_LEXICAL}
205
206 C3_ALPHA = $8000; // any linguistic char (C1_ALPHA)
207 {$EXTERNALSYM C3_ALPHA}
208
209 C3_NOTAPPLICABLE = $0000; // ctype 3 is not applicable
210 {$EXTERNALSYM C3_NOTAPPLICABLE}
211
212 //
213 // String Flags.
214 //
215
216 NORM_IGNORECASE = $00000001; // ignore case
217 {$EXTERNALSYM NORM_IGNORECASE}
218 NORM_IGNORENONSPACE = $00000002; // ignore nonspacing chars
219 {$EXTERNALSYM NORM_IGNORENONSPACE}
220 NORM_IGNORESYMBOLS = $00000004; // ignore symbols
221 {$EXTERNALSYM NORM_IGNORESYMBOLS}
222
223 NORM_IGNOREKANATYPE = $00010000; // ignore kanatype
224 {$EXTERNALSYM NORM_IGNOREKANATYPE}
225 NORM_IGNOREWIDTH = $00020000; // ignore width
226 {$EXTERNALSYM NORM_IGNOREWIDTH}
227
228 //
229 // Locale Independent Mapping Flags.
230 //
231
232 MAP_FOLDCZONE = $00000010; // fold compatibility zone chars
233 {$EXTERNALSYM MAP_FOLDCZONE}
234 MAP_PRECOMPOSED = $00000020; // convert to precomposed chars
235 {$EXTERNALSYM MAP_PRECOMPOSED}
236 MAP_COMPOSITE = $00000040; // convert to composite chars
237 {$EXTERNALSYM MAP_COMPOSITE}
238 MAP_FOLDDIGITS = $00000080; // all digits to ASCII 0-9
239 {$EXTERNALSYM MAP_FOLDDIGITS}
240
241 MAP_EXPAND_LIGATURES = $00002000; // expand all ligatures
242 {$EXTERNALSYM MAP_EXPAND_LIGATURES}
243
244 //
245 // Locale Dependent Mapping Flags.
246 //
247
248 LCMAP_LOWERCASE = $00000100; // lower case letters
249 {$EXTERNALSYM LCMAP_LOWERCASE}
250 LCMAP_UPPERCASE = $00000200; // upper case letters
251 {$EXTERNALSYM LCMAP_UPPERCASE}
252 LCMAP_SORTKEY = $00000400; // WC sort key (normalize)
253 {$EXTERNALSYM LCMAP_SORTKEY}
254 LCMAP_BYTEREV = $00000800; // byte reversal
255 {$EXTERNALSYM LCMAP_BYTEREV}
256
257 LCMAP_HIRAGANA = $00100000; // map katakana to hiragana
258 {$EXTERNALSYM LCMAP_HIRAGANA}
259 LCMAP_KATAKANA = $00200000; // map hiragana to katakana
260 {$EXTERNALSYM LCMAP_KATAKANA}
261 LCMAP_HALFWIDTH = $00400000; // map double byte to single byte
262 {$EXTERNALSYM LCMAP_HALFWIDTH}
263 LCMAP_FULLWIDTH = $00800000; // map single byte to double byte
264 {$EXTERNALSYM LCMAP_FULLWIDTH}
265
266 LCMAP_LINGUISTIC_CASING = $01000000; // use linguistic rules for casing
267 {$EXTERNALSYM LCMAP_LINGUISTIC_CASING}
268
269 LCMAP_SIMPLIFIED_CHINESE = $02000000; // map traditional chinese to simplified chinese
270 {$EXTERNALSYM LCMAP_SIMPLIFIED_CHINESE}
271 LCMAP_TRADITIONAL_CHINESE = $04000000; // map simplified chinese to traditional chinese
272 {$EXTERNALSYM LCMAP_TRADITIONAL_CHINESE}
273
274 //
275 // Language Group Enumeration Flags.
276 //
277
278 LGRPID_INSTALLED = $00000001; // installed language group ids
279 {$EXTERNALSYM LGRPID_INSTALLED}
280 LGRPID_SUPPORTED = $00000002; // supported language group ids
281 {$EXTERNALSYM LGRPID_SUPPORTED}
282
283
284 //
285 // Locale Enumeration Flags.
286 //
287
288 LCID_INSTALLED = $00000001; // installed locale ids
289 {$EXTERNALSYM LCID_INSTALLED}
290 LCID_SUPPORTED = $00000002; // supported locale ids
291 {$EXTERNALSYM LCID_SUPPORTED}
292 LCID_ALTERNATE_SORTS = $00000004; // alternate sort locale ids
293 {$EXTERNALSYM LCID_ALTERNATE_SORTS}
294
295 //
296 // Code Page Enumeration Flags.
297 //
298
299 CP_INSTALLED = $00000001; // installed code page ids
300 {$EXTERNALSYM CP_INSTALLED}
301 CP_SUPPORTED = $00000002; // supported code page ids
302 {$EXTERNALSYM CP_SUPPORTED}
303
304 //
305 // Sorting Flags.
306 //
307 // WORD Sort: culturally correct sort
308 // hyphen and apostrophe are special cased
309 // example: "coop" and "co-op" will sort together in a list
310 //
311 // co_op <------- underscore (symbol)
312 // coat
313 // comb
314 // coop
315 // co-op <------- hyphen (punctuation)
316 // cork
317 // went
318 // were
319 // we're <------- apostrophe (punctuation)
320 //
321 //
322 // STRING Sort: hyphen and apostrophe will sort with all other symbols
323 //
324 // co-op <------- hyphen (punctuation)
325 // co_op <------- underscore (symbol)
326 // coat
327 // comb
328 // coop
329 // cork
330 // we're <------- apostrophe (punctuation)
331 // went
332 // were
333 //
334
335 SORT_STRINGSORT = $00001000; // use string sort method
336 {$EXTERNALSYM SORT_STRINGSORT}
337
338 //
339 // Compare String Return Values.
340 //
341
342 CSTR_LESS_THAN = 1; // string 1 less than string 2
343 {$EXTERNALSYM CSTR_LESS_THAN}
344 CSTR_EQUAL = 2; // string 1 equal to string 2
345 {$EXTERNALSYM CSTR_EQUAL}
346 CSTR_GREATER_THAN = 3; // string 1 greater than string 2
347 {$EXTERNALSYM CSTR_GREATER_THAN}
348
349 //
350 // Code Page Default Values.
351 //
352
353 CP_ACP = 0; // default to ANSI code page
354 {$EXTERNALSYM CP_ACP}
355 CP_OEMCP = 1; // default to OEM code page
356 {$EXTERNALSYM CP_OEMCP}
357 CP_MACCP = 2; // default to MAC code page
358 {$EXTERNALSYM CP_MACCP}
359 CP_THREAD_ACP = 3; // current thread's ANSI code page
360 {$EXTERNALSYM CP_THREAD_ACP}
361 CP_SYMBOL = 42; // SYMBOL translations
362 {$EXTERNALSYM CP_SYMBOL}
363
364 CP_UTF7 = 65000; // UTF-7 translation
365 {$EXTERNALSYM CP_UTF7}
366 CP_UTF8 = 65001; // UTF-8 translation
367 {$EXTERNALSYM CP_UTF8}
368
369 //
370 // Country/Region Codes.
371 //
372
373 CTRY_DEFAULT = 0;
374 {$EXTERNALSYM CTRY_DEFAULT}
375
376 CTRY_ALBANIA = 355; // Albania
377 {$EXTERNALSYM CTRY_ALBANIA}
378 CTRY_ALGERIA = 213; // Algeria
379 {$EXTERNALSYM CTRY_ALGERIA}
380 CTRY_ARGENTINA = 54; // Argentina
381 {$EXTERNALSYM CTRY_ARGENTINA}
382 CTRY_ARMENIA = 374; // Armenia
383 {$EXTERNALSYM CTRY_ARMENIA}
384 CTRY_AUSTRALIA = 61; // Australia
385 {$EXTERNALSYM CTRY_AUSTRALIA}
386 CTRY_AUSTRIA = 43; // Austria
387 {$EXTERNALSYM CTRY_AUSTRIA}
388 CTRY_AZERBAIJAN = 994; // Azerbaijan
389 {$EXTERNALSYM CTRY_AZERBAIJAN}
390 CTRY_BAHRAIN = 973; // Bahrain
391 {$EXTERNALSYM CTRY_BAHRAIN}
392 CTRY_BELARUS = 375; // Belarus
393 {$EXTERNALSYM CTRY_BELARUS}
394 CTRY_BELGIUM = 32; // Belgium
395 {$EXTERNALSYM CTRY_BELGIUM}
396 CTRY_BELIZE = 501; // Belize
397 {$EXTERNALSYM CTRY_BELIZE}
398 CTRY_BOLIVIA = 591; // Bolivia
399 {$EXTERNALSYM CTRY_BOLIVIA}
400 CTRY_BRAZIL = 55; // Brazil
401 {$EXTERNALSYM CTRY_BRAZIL}
402 CTRY_BRUNEI_DARUSSALAM = 673; // Brunei Darussalam
403 {$EXTERNALSYM CTRY_BRUNEI_DARUSSALAM}
404 CTRY_BULGARIA = 359; // Bulgaria
405 {$EXTERNALSYM CTRY_BULGARIA}
406 CTRY_CANADA = 2; // Canada
407 {$EXTERNALSYM CTRY_CANADA}
408 CTRY_CARIBBEAN = 1; // Caribbean
409 {$EXTERNALSYM CTRY_CARIBBEAN}
410 CTRY_CHILE = 56; // Chile
411 {$EXTERNALSYM CTRY_CHILE}
412 CTRY_COLOMBIA = 57; // Colombia
413 {$EXTERNALSYM CTRY_COLOMBIA}
414 CTRY_COSTA_RICA = 506; // Costa Rica
415 {$EXTERNALSYM CTRY_COSTA_RICA}
416 CTRY_CROATIA = 385; // Croatia
417 {$EXTERNALSYM CTRY_CROATIA}
418 CTRY_CZECH = 420; // Czech Republic
419 {$EXTERNALSYM CTRY_CZECH}
420 CTRY_DENMARK = 45; // Denmark
421 {$EXTERNALSYM CTRY_DENMARK}
422 CTRY_DOMINICAN_REPUBLIC = 1; // Dominican Republic
423 {$EXTERNALSYM CTRY_DOMINICAN_REPUBLIC}
424 CTRY_ECUADOR = 593; // Ecuador
425 {$EXTERNALSYM CTRY_ECUADOR}
426 CTRY_EGYPT = 20; // Egypt
427 {$EXTERNALSYM CTRY_EGYPT}
428 CTRY_EL_SALVADOR = 503; // El Salvador
429 {$EXTERNALSYM CTRY_EL_SALVADOR}
430 CTRY_ESTONIA = 372; // Estonia
431 {$EXTERNALSYM CTRY_ESTONIA}
432 CTRY_FAEROE_ISLANDS = 298; // Faeroe Islands
433 {$EXTERNALSYM CTRY_FAEROE_ISLANDS}
434 CTRY_FINLAND = 358; // Finland
435 {$EXTERNALSYM CTRY_FINLAND}
436 CTRY_FRANCE = 33; // France
437 {$EXTERNALSYM CTRY_FRANCE}
438 CTRY_GEORGIA = 995; // Georgia
439 {$EXTERNALSYM CTRY_GEORGIA}
440 CTRY_GERMANY = 49; // Germany
441 {$EXTERNALSYM CTRY_GERMANY}
442 CTRY_GREECE = 30; // Greece
443 {$EXTERNALSYM CTRY_GREECE}
444 CTRY_GUATEMALA = 502; // Guatemala
445 {$EXTERNALSYM CTRY_GUATEMALA}
446 CTRY_HONDURAS = 504; // Honduras
447 {$EXTERNALSYM CTRY_HONDURAS}
448 CTRY_HONG_KONG = 852; // Hong Kong S.A.R., P.R.C.
449 {$EXTERNALSYM CTRY_HONG_KONG}
450 CTRY_HUNGARY = 36; // Hungary
451 {$EXTERNALSYM CTRY_HUNGARY}
452 CTRY_ICELAND = 354; // Iceland
453 {$EXTERNALSYM CTRY_ICELAND}
454 CTRY_INDIA = 91; // India
455 {$EXTERNALSYM CTRY_INDIA}
456 CTRY_INDONESIA = 62; // Indonesia
457 {$EXTERNALSYM CTRY_INDONESIA}
458 CTRY_IRAN = 981; // Iran
459 {$EXTERNALSYM CTRY_IRAN}
460 CTRY_IRAQ = 964; // Iraq
461 {$EXTERNALSYM CTRY_IRAQ}
462 CTRY_IRELAND = 353; // Ireland
463 {$EXTERNALSYM CTRY_IRELAND}
464 CTRY_ISRAEL = 972; // Israel
465 {$EXTERNALSYM CTRY_ISRAEL}
466 CTRY_ITALY = 39; // Italy
467 {$EXTERNALSYM CTRY_ITALY}
468 CTRY_JAMAICA = 1; // Jamaica
469 {$EXTERNALSYM CTRY_JAMAICA}
470 CTRY_JAPAN = 81; // Japan
471 {$EXTERNALSYM CTRY_JAPAN}
472 CTRY_JORDAN = 962; // Jordan
473 {$EXTERNALSYM CTRY_JORDAN}
474 CTRY_KAZAKSTAN = 7; // Kazakstan
475 {$EXTERNALSYM CTRY_KAZAKSTAN}
476 CTRY_KENYA = 254; // Kenya
477 {$EXTERNALSYM CTRY_KENYA}
478 CTRY_KUWAIT = 965; // Kuwait
479 {$EXTERNALSYM CTRY_KUWAIT}
480 CTRY_KYRGYZSTAN = 996; // Kyrgyzstan
481 {$EXTERNALSYM CTRY_KYRGYZSTAN}
482 CTRY_LATVIA = 371; // Latvia
483 {$EXTERNALSYM CTRY_LATVIA}
484 CTRY_LEBANON = 961; // Lebanon
485 {$EXTERNALSYM CTRY_LEBANON}
486 CTRY_LIBYA = 218; // Libya
487 {$EXTERNALSYM CTRY_LIBYA}
488 CTRY_LIECHTENSTEIN = 41; // Liechtenstein
489 {$EXTERNALSYM CTRY_LIECHTENSTEIN}
490 CTRY_LITHUANIA = 370; // Lithuania
491 {$EXTERNALSYM CTRY_LITHUANIA}
492 CTRY_LUXEMBOURG = 352; // Luxembourg
493 {$EXTERNALSYM CTRY_LUXEMBOURG}
494 CTRY_MACAU = 853; // Macau S.A.R., PRC
495 {$EXTERNALSYM CTRY_MACAU}
496 CTRY_MACEDONIA = 389; // Former Yugoslav Republic of Macedonia
497 {$EXTERNALSYM CTRY_MACEDONIA}
498 CTRY_MALAYSIA = 60; // Malaysia
499 {$EXTERNALSYM CTRY_MALAYSIA}
500 CTRY_MALDIVES = 960; // Maldives
501 {$EXTERNALSYM CTRY_MALDIVES}
502 CTRY_MEXICO = 52; // Mexico
503 {$EXTERNALSYM CTRY_MEXICO}
504 CTRY_MONACO = 33; // Principality of Monaco
505 {$EXTERNALSYM CTRY_MONACO}
506 CTRY_MONGOLIA = 976; // Mongolia
507 {$EXTERNALSYM CTRY_MONGOLIA}
508 CTRY_MOROCCO = 212; // Morocco
509 {$EXTERNALSYM CTRY_MOROCCO}
510 CTRY_NETHERLANDS = 31; // Netherlands
511 {$EXTERNALSYM CTRY_NETHERLANDS}
512 CTRY_NEW_ZEALAND = 64; // New Zealand
513 {$EXTERNALSYM CTRY_NEW_ZEALAND}
514 CTRY_NICARAGUA = 505; // Nicaragua
515 {$EXTERNALSYM CTRY_NICARAGUA}
516 CTRY_NORWAY = 47; // Norway
517 {$EXTERNALSYM CTRY_NORWAY}
518 CTRY_OMAN = 968; // Oman
519 {$EXTERNALSYM CTRY_OMAN}
520 CTRY_PAKISTAN = 92; // Islamic Republic of Pakistan
521 {$EXTERNALSYM CTRY_PAKISTAN}
522 CTRY_PANAMA = 507; // Panama
523 {$EXTERNALSYM CTRY_PANAMA}
524 CTRY_PARAGUAY = 595; // Paraguay
525 {$EXTERNALSYM CTRY_PARAGUAY}
526 CTRY_PERU = 51; // Peru
527 {$EXTERNALSYM CTRY_PERU}
528 CTRY_PHILIPPINES = 63; // Republic of the Philippines
529 {$EXTERNALSYM CTRY_PHILIPPINES}
530 CTRY_POLAND = 48; // Poland
531 {$EXTERNALSYM CTRY_POLAND}
532 CTRY_PORTUGAL = 351; // Portugal
533 {$EXTERNALSYM CTRY_PORTUGAL}
534 CTRY_PRCHINA = 86; // People's Republic of China
535 {$EXTERNALSYM CTRY_PRCHINA}
536 CTRY_PUERTO_RICO = 1; // Puerto Rico
537 {$EXTERNALSYM CTRY_PUERTO_RICO}
538 CTRY_QATAR = 974; // Qatar
539 {$EXTERNALSYM CTRY_QATAR}
540 CTRY_ROMANIA = 40; // Romania
541 {$EXTERNALSYM CTRY_ROMANIA}
542 CTRY_RUSSIA = 7; // Russia
543 {$EXTERNALSYM CTRY_RUSSIA}
544 CTRY_SAUDI_ARABIA = 966; // Saudi Arabia
545 {$EXTERNALSYM CTRY_SAUDI_ARABIA}
546 CTRY_SERBIA = 381; // Serbia
547 {$EXTERNALSYM CTRY_SERBIA}
548 CTRY_SINGAPORE = 65; // Singapore
549 {$EXTERNALSYM CTRY_SINGAPORE}
550 CTRY_SLOVAK = 421; // Slovak Republic
551 {$EXTERNALSYM CTRY_SLOVAK}
552 CTRY_SLOVENIA = 386; // Slovenia
553 {$EXTERNALSYM CTRY_SLOVENIA}
554 CTRY_SOUTH_AFRICA = 27; // South Africa
555 {$EXTERNALSYM CTRY_SOUTH_AFRICA}
556 CTRY_SOUTH_KOREA = 82; // Korea
557 {$EXTERNALSYM CTRY_SOUTH_KOREA}
558 CTRY_SPAIN = 34; // Spain
559 {$EXTERNALSYM CTRY_SPAIN}
560 CTRY_SWEDEN = 46; // Sweden
561 {$EXTERNALSYM CTRY_SWEDEN}
562 CTRY_SWITZERLAND = 41; // Switzerland
563 {$EXTERNALSYM CTRY_SWITZERLAND}
564 CTRY_SYRIA = 963; // Syria
565 {$EXTERNALSYM CTRY_SYRIA}
566 CTRY_TAIWAN = 886; // Taiwan
567 {$EXTERNALSYM CTRY_TAIWAN}
568 CTRY_TATARSTAN = 7; // Tatarstan
569 {$EXTERNALSYM CTRY_TATARSTAN}
570 CTRY_THAILAND = 66; // Thailand
571 {$EXTERNALSYM CTRY_THAILAND}
572 CTRY_TRINIDAD_Y_TOBAGO = 1; // Trinidad y Tobago
573 {$EXTERNALSYM CTRY_TRINIDAD_Y_TOBAGO}
574 CTRY_TUNISIA = 216; // Tunisia
575 {$EXTERNALSYM CTRY_TUNISIA}
576 CTRY_TURKEY = 90; // Turkey
577 {$EXTERNALSYM CTRY_TURKEY}
578 CTRY_UAE = 971; // U.A.E.
579 {$EXTERNALSYM CTRY_UAE}
580 CTRY_UKRAINE = 380; // Ukraine
581 {$EXTERNALSYM CTRY_UKRAINE}
582 CTRY_UNITED_KINGDOM = 44; // United Kingdom
583 {$EXTERNALSYM CTRY_UNITED_KINGDOM}
584 CTRY_UNITED_STATES = 1; // United States
585 {$EXTERNALSYM CTRY_UNITED_STATES}
586 CTRY_URUGUAY = 598; // Uruguay
587 {$EXTERNALSYM CTRY_URUGUAY}
588 CTRY_UZBEKISTAN = 7; // Uzbekistan
589 {$EXTERNALSYM CTRY_UZBEKISTAN}
590 CTRY_VENEZUELA = 58; // Venezuela
591 {$EXTERNALSYM CTRY_VENEZUELA}
592 CTRY_VIET_NAM = 84; // Viet Nam
593 {$EXTERNALSYM CTRY_VIET_NAM}
594 CTRY_YEMEN = 967; // Yemen
595 {$EXTERNALSYM CTRY_YEMEN}
596 CTRY_ZIMBABWE = 263; // Zimbabwe
597 {$EXTERNALSYM CTRY_ZIMBABWE}
598
599
600 //
601 // Locale Types.
602 //
603 // These types are used for the GetLocaleInfo NLS API routine.
604 // Some of these types are also used for the SetLocaleInfo NLS API routine.
605 //
606
607 //
608 // The following LCTypes may be used in combination with any other LCTypes.
609 //
610 // LOCALE_NOUSEROVERRIDE is also used in GetTimeFormat and
611 // GetDateFormat.
612 //
613 // LOCALE_USE_CP_ACP is used in many of the A (Ansi) apis that need
614 // to do string translation.
615 //
616 // LOCALE_RETURN_NUMBER will return the result from GetLocaleInfo as a
617 // number instead of a string. This flag is only valid for the LCTypes
618 // beginning with LOCALE_I.
619 //
620
621 LOCALE_NOUSEROVERRIDE = DWORD($80000000); // do not use user overrides
622 {$EXTERNALSYM LOCALE_NOUSEROVERRIDE}
623 LOCALE_USE_CP_ACP = $40000000; // use the system ACP
624 {$EXTERNALSYM LOCALE_USE_CP_ACP}
625
626
627
628 LOCALE_RETURN_NUMBER = $20000000; // return number instead of string
629 {$EXTERNALSYM LOCALE_RETURN_NUMBER}
630
631
632
633 //
634 // The following LCTypes are mutually exclusive in that they may NOT
635 // be used in combination with each other.
636 //
637
638 LOCALE_ILANGUAGE = $00000001; // language id
639 {$EXTERNALSYM LOCALE_ILANGUAGE}
640 LOCALE_SLANGUAGE = $00000002; // localized name of language
641 {$EXTERNALSYM LOCALE_SLANGUAGE}
642 LOCALE_SENGLANGUAGE = $00001001; // English name of language
643 {$EXTERNALSYM LOCALE_SENGLANGUAGE}
644 LOCALE_SABBREVLANGNAME = $00000003; // abbreviated language name
645 {$EXTERNALSYM LOCALE_SABBREVLANGNAME}
646 LOCALE_SNATIVELANGNAME = $00000004; // native name of language
647 {$EXTERNALSYM LOCALE_SNATIVELANGNAME}
648
649 LOCALE_ICOUNTRY = $00000005; // country code
650 {$EXTERNALSYM LOCALE_ICOUNTRY}
651 LOCALE_SCOUNTRY = $00000006; // localized name of country
652 {$EXTERNALSYM LOCALE_SCOUNTRY}
653 LOCALE_SENGCOUNTRY = $00001002; // English name of country
654 {$EXTERNALSYM LOCALE_SENGCOUNTRY}
655 LOCALE_SABBREVCTRYNAME = $00000007; // abbreviated country name
656 {$EXTERNALSYM LOCALE_SABBREVCTRYNAME}
657 LOCALE_SNATIVECTRYNAME = $00000008; // native name of country
658 {$EXTERNALSYM LOCALE_SNATIVECTRYNAME}
659
660 LOCALE_IDEFAULTLANGUAGE = $00000009; // default language id
661 {$EXTERNALSYM LOCALE_IDEFAULTLANGUAGE}
662 LOCALE_IDEFAULTCOUNTRY = $0000000A; // default country code
663 {$EXTERNALSYM LOCALE_IDEFAULTCOUNTRY}
664 LOCALE_IDEFAULTCODEPAGE = $0000000B; // default oem code page
665 {$EXTERNALSYM LOCALE_IDEFAULTCODEPAGE}
666 LOCALE_IDEFAULTANSICODEPAGE = $00001004; // default ansi code page
667 {$EXTERNALSYM LOCALE_IDEFAULTANSICODEPAGE}
668 LOCALE_IDEFAULTMACCODEPAGE = $00001011; // default mac code page
669 {$EXTERNALSYM LOCALE_IDEFAULTMACCODEPAGE}
670
671 LOCALE_SLIST = $0000000C; // list item separator
672 {$EXTERNALSYM LOCALE_SLIST}
673 LOCALE_IMEASURE = $0000000D; // 0 = metric, 1 = US
674 {$EXTERNALSYM LOCALE_IMEASURE}
675
676 LOCALE_SDECIMAL = $0000000E; // decimal separator
677 {$EXTERNALSYM LOCALE_SDECIMAL}
678 LOCALE_STHOUSAND = $0000000F; // thousand separator
679 {$EXTERNALSYM LOCALE_STHOUSAND}
680 LOCALE_SGROUPING = $00000010; // digit grouping
681 {$EXTERNALSYM LOCALE_SGROUPING}
682 LOCALE_IDIGITS = $00000011; // number of fractional digits
683 {$EXTERNALSYM LOCALE_IDIGITS}
684 LOCALE_ILZERO = $00000012; // leading zeros for decimal
685 {$EXTERNALSYM LOCALE_ILZERO}
686 LOCALE_INEGNUMBER = $00001010; // negative number mode
687 {$EXTERNALSYM LOCALE_INEGNUMBER}
688 LOCALE_SNATIVEDIGITS = $00000013; // native ascii 0-9
689 {$EXTERNALSYM LOCALE_SNATIVEDIGITS}
690
691 LOCALE_SCURRENCY = $00000014; // local monetary symbol
692 {$EXTERNALSYM LOCALE_SCURRENCY}
693 LOCALE_SINTLSYMBOL = $00000015; // intl monetary symbol
694 {$EXTERNALSYM LOCALE_SINTLSYMBOL}
695 LOCALE_SMONDECIMALSEP = $00000016; // monetary decimal separator
696 {$EXTERNALSYM LOCALE_SMONDECIMALSEP}
697 LOCALE_SMONTHOUSANDSEP = $00000017; // monetary thousand separator
698 {$EXTERNALSYM LOCALE_SMONTHOUSANDSEP}
699 LOCALE_SMONGROUPING = $00000018; // monetary grouping
700 {$EXTERNALSYM LOCALE_SMONGROUPING}
701 LOCALE_ICURRDIGITS = $00000019; // # local monetary digits
702 {$EXTERNALSYM LOCALE_ICURRDIGITS}
703 LOCALE_IINTLCURRDIGITS = $0000001A; // # intl monetary digits
704 {$EXTERNALSYM LOCALE_IINTLCURRDIGITS}
705 LOCALE_ICURRENCY = $0000001B; // positive currency mode
706 {$EXTERNALSYM LOCALE_ICURRENCY}
707 LOCALE_INEGCURR = $0000001C; // negative currency mode
708 {$EXTERNALSYM LOCALE_INEGCURR}
709
710 LOCALE_SDATE = $0000001D; // date separator
711 {$EXTERNALSYM LOCALE_SDATE}
712 LOCALE_STIME = $0000001E; // time separator
713 {$EXTERNALSYM LOCALE_STIME}
714 LOCALE_SSHORTDATE = $0000001F; // short date format string
715 {$EXTERNALSYM LOCALE_SSHORTDATE}
716 LOCALE_SLONGDATE = $00000020; // long date format string
717 {$EXTERNALSYM LOCALE_SLONGDATE}
718 LOCALE_STIMEFORMAT = $00001003; // time format string
719 {$EXTERNALSYM LOCALE_STIMEFORMAT}
720 LOCALE_IDATE = $00000021; // short date format ordering
721 {$EXTERNALSYM LOCALE_IDATE}
722 LOCALE_ILDATE = $00000022; // long date format ordering
723 {$EXTERNALSYM LOCALE_ILDATE}
724 LOCALE_ITIME = $00000023; // time format specifier
725 {$EXTERNALSYM LOCALE_ITIME}
726 LOCALE_ITIMEMARKPOSN = $00001005; // time marker position
727 {$EXTERNALSYM LOCALE_ITIMEMARKPOSN}
728 LOCALE_ICENTURY = $00000024; // century format specifier (short date)
729 {$EXTERNALSYM LOCALE_ICENTURY}
730 LOCALE_ITLZERO = $00000025; // leading zeros in time field
731 {$EXTERNALSYM LOCALE_ITLZERO}
732 LOCALE_IDAYLZERO = $00000026; // leading zeros in day field (short date)
733 {$EXTERNALSYM LOCALE_IDAYLZERO}
734 LOCALE_IMONLZERO = $00000027; // leading zeros in month field (short date)
735 {$EXTERNALSYM LOCALE_IMONLZERO}
736 LOCALE_S1159 = $00000028; // AM designator
737 {$EXTERNALSYM LOCALE_S1159}
738 LOCALE_S2359 = $00000029; // PM designator
739 {$EXTERNALSYM LOCALE_S2359}
740
741 LOCALE_ICALENDARTYPE = $00001009; // type of calendar specifier
742 {$EXTERNALSYM LOCALE_ICALENDARTYPE}
743 LOCALE_IOPTIONALCALENDAR = $0000100B; // additional calendar types specifier
744 {$EXTERNALSYM LOCALE_IOPTIONALCALENDAR}
745 LOCALE_IFIRSTDAYOFWEEK = $0000100C; // first day of week specifier
746 {$EXTERNALSYM LOCALE_IFIRSTDAYOFWEEK}
747 LOCALE_IFIRSTWEEKOFYEAR = $0000100D; // first week of year specifier
748 {$EXTERNALSYM LOCALE_IFIRSTWEEKOFYEAR}
749
750 LOCALE_SDAYNAME1 = $0000002A; // long name for Monday
751 {$EXTERNALSYM LOCALE_SDAYNAME1}
752 LOCALE_SDAYNAME2 = $0000002B; // long name for Tuesday
753 {$EXTERNALSYM LOCALE_SDAYNAME2}
754 LOCALE_SDAYNAME3 = $0000002C; // long name for Wednesday
755 {$EXTERNALSYM LOCALE_SDAYNAME3}
756 LOCALE_SDAYNAME4 = $0000002D; // long name for Thursday
757 {$EXTERNALSYM LOCALE_SDAYNAME4}
758 LOCALE_SDAYNAME5 = $0000002E; // long name for Friday
759 {$EXTERNALSYM LOCALE_SDAYNAME5}
760 LOCALE_SDAYNAME6 = $0000002F; // long name for Saturday
761 {$EXTERNALSYM LOCALE_SDAYNAME6}
762 LOCALE_SDAYNAME7 = $00000030; // long name for Sunday
763 {$EXTERNALSYM LOCALE_SDAYNAME7}
764 LOCALE_SABBREVDAYNAME1 = $00000031; // abbreviated name for Monday
765 {$EXTERNALSYM LOCALE_SABBREVDAYNAME1}
766 LOCALE_SABBREVDAYNAME2 = $00000032; // abbreviated name for Tuesday
767 {$EXTERNALSYM LOCALE_SABBREVDAYNAME2}
768 LOCALE_SABBREVDAYNAME3 = $00000033; // abbreviated name for Wednesday
769 {$EXTERNALSYM LOCALE_SABBREVDAYNAME3}
770 LOCALE_SABBREVDAYNAME4 = $00000034; // abbreviated name for Thursday
771 {$EXTERNALSYM LOCALE_SABBREVDAYNAME4}
772 LOCALE_SABBREVDAYNAME5 = $00000035; // abbreviated name for Friday
773 {$EXTERNALSYM LOCALE_SABBREVDAYNAME5}
774 LOCALE_SABBREVDAYNAME6 = $00000036; // abbreviated name for Saturday
775 {$EXTERNALSYM LOCALE_SABBREVDAYNAME6}
776 LOCALE_SABBREVDAYNAME7 = $00000037; // abbreviated name for Sunday
777 {$EXTERNALSYM LOCALE_SABBREVDAYNAME7}
778 LOCALE_SMONTHNAME1 = $00000038; // long name for January
779 {$EXTERNALSYM LOCALE_SMONTHNAME1}
780 LOCALE_SMONTHNAME2 = $00000039; // long name for February
781 {$EXTERNALSYM LOCALE_SMONTHNAME2}
782 LOCALE_SMONTHNAME3 = $0000003A; // long name for March
783 {$EXTERNALSYM LOCALE_SMONTHNAME3}
784 LOCALE_SMONTHNAME4 = $0000003B; // long name for April
785 {$EXTERNALSYM LOCALE_SMONTHNAME4}
786 LOCALE_SMONTHNAME5 = $0000003C; // long name for May
787 {$EXTERNALSYM LOCALE_SMONTHNAME5}
788 LOCALE_SMONTHNAME6 = $0000003D; // long name for June
789 {$EXTERNALSYM LOCALE_SMONTHNAME6}
790 LOCALE_SMONTHNAME7 = $0000003E; // long name for July
791 {$EXTERNALSYM LOCALE_SMONTHNAME7}
792 LOCALE_SMONTHNAME8 = $0000003F; // long name for August
793 {$EXTERNALSYM LOCALE_SMONTHNAME8}
794 LOCALE_SMONTHNAME9 = $00000040; // long name for September
795 {$EXTERNALSYM LOCALE_SMONTHNAME9}
796 LOCALE_SMONTHNAME10 = $00000041; // long name for October
797 {$EXTERNALSYM LOCALE_SMONTHNAME10}
798 LOCALE_SMONTHNAME11 = $00000042; // long name for November
799 {$EXTERNALSYM LOCALE_SMONTHNAME11}
800 LOCALE_SMONTHNAME12 = $00000043; // long name for December
801 {$EXTERNALSYM LOCALE_SMONTHNAME12}
802 LOCALE_SMONTHNAME13 = $0000100E; // long name for 13th month (if exists)
803 {$EXTERNALSYM LOCALE_SMONTHNAME13}
804 LOCALE_SABBREVMONTHNAME1 = $00000044; // abbreviated name for January
805 {$EXTERNALSYM LOCALE_SABBREVMONTHNAME1}
806 LOCALE_SABBREVMONTHNAME2 = $00000045; // abbreviated name for February
807 {$EXTERNALSYM LOCALE_SABBREVMONTHNAME2}
808 LOCALE_SABBREVMONTHNAME3 = $00000046; // abbreviated name for March
809 {$EXTERNALSYM LOCALE_SABBREVMONTHNAME3}
810 LOCALE_SABBREVMONTHNAME4 = $00000047; // abbreviated name for April
811 {$EXTERNALSYM LOCALE_SABBREVMONTHNAME4}
812 LOCALE_SABBREVMONTHNAME5 = $00000048; // abbreviated name for May
813 {$EXTERNALSYM LOCALE_SABBREVMONTHNAME5}
814 LOCALE_SABBREVMONTHNAME6 = $00000049; // abbreviated name for June
815 {$EXTERNALSYM LOCALE_SABBREVMONTHNAME6}
816 LOCALE_SABBREVMONTHNAME7 = $0000004A; // abbreviated name for July
817 {$EXTERNALSYM LOCALE_SABBREVMONTHNAME7}
818 LOCALE_SABBREVMONTHNAME8 = $0000004B; // abbreviated name for August
819 {$EXTERNALSYM LOCALE_SABBREVMONTHNAME8}
820 LOCALE_SABBREVMONTHNAME9 = $0000004C; // abbreviated name for September
821 {$EXTERNALSYM LOCALE_SABBREVMONTHNAME9}
822 LOCALE_SABBREVMONTHNAME10 = $0000004D; // abbreviated name for October
823 {$EXTERNALSYM LOCALE_SABBREVMONTHNAME10}
824 LOCALE_SABBREVMONTHNAME11 = $0000004E; // abbreviated name for November
825 {$EXTERNALSYM LOCALE_SABBREVMONTHNAME11}
826 LOCALE_SABBREVMONTHNAME12 = $0000004F; // abbreviated name for December
827 {$EXTERNALSYM LOCALE_SABBREVMONTHNAME12}
828 LOCALE_SABBREVMONTHNAME13 = $0000100F; // abbreviated name for 13th month (if exists)
829 {$EXTERNALSYM LOCALE_SABBREVMONTHNAME13}
830
831 LOCALE_SPOSITIVESIGN = $00000050; // positive sign
832 {$EXTERNALSYM LOCALE_SPOSITIVESIGN}
833 LOCALE_SNEGATIVESIGN = $00000051; // negative sign
834 {$EXTERNALSYM LOCALE_SNEGATIVESIGN}
835 LOCALE_IPOSSIGNPOSN = $00000052; // positive sign position
836 {$EXTERNALSYM LOCALE_IPOSSIGNPOSN}
837 LOCALE_INEGSIGNPOSN = $00000053; // negative sign position
838 {$EXTERNALSYM LOCALE_INEGSIGNPOSN}
839 LOCALE_IPOSSYMPRECEDES = $00000054; // mon sym precedes pos amt
840 {$EXTERNALSYM LOCALE_IPOSSYMPRECEDES}
841 LOCALE_IPOSSEPBYSPACE = $00000055; // mon sym sep by space from pos amt
842 {$EXTERNALSYM LOCALE_IPOSSEPBYSPACE}
843 LOCALE_INEGSYMPRECEDES = $00000056; // mon sym precedes neg amt
844 {$EXTERNALSYM LOCALE_INEGSYMPRECEDES}
845 LOCALE_INEGSEPBYSPACE = $00000057; // mon sym sep by space from neg amt
846 {$EXTERNALSYM LOCALE_INEGSEPBYSPACE}
847
848 LOCALE_FONTSIGNATURE = $00000058; // font signature
849 {$EXTERNALSYM LOCALE_FONTSIGNATURE}
850 LOCALE_SISO639LANGNAME = $00000059; // ISO abbreviated language name
851 {$EXTERNALSYM LOCALE_SISO639LANGNAME}
852 LOCALE_SISO3166CTRYNAME = $0000005A; // ISO abbreviated country name
853 {$EXTERNALSYM LOCALE_SISO3166CTRYNAME}
854
855 LOCALE_IDEFAULTEBCDICCODEPAGE = $00001012; // default ebcdic code page
856 {$EXTERNALSYM LOCALE_IDEFAULTEBCDICCODEPAGE}
857 LOCALE_IPAPERSIZE = $0000100A; // 1 = letter, 5 = legal, 8 = a3, 9 = a4
858 {$EXTERNALSYM LOCALE_IPAPERSIZE}
859 LOCALE_SENGCURRNAME = $00001007; // english name of currency
860 {$EXTERNALSYM LOCALE_SENGCURRNAME}
861 LOCALE_SNATIVECURRNAME = $00001008; // native name of currency
862 {$EXTERNALSYM LOCALE_SNATIVECURRNAME}
863 LOCALE_SYEARMONTH = $00001006; // year month format string
864 {$EXTERNALSYM LOCALE_SYEARMONTH}
865 LOCALE_SSORTNAME = $00001013; // sort name
866 {$EXTERNALSYM LOCALE_SSORTNAME}
867 LOCALE_IDIGITSUBSTITUTION = $00001014; // 0 = context, 1 = none, 2 = national
868 {$EXTERNALSYM LOCALE_IDIGITSUBSTITUTION}
869
870 //
871 // Time Flags for GetTimeFormat.
872 //
873
874 TIME_NOMINUTESORSECONDS = $00000001; // do not use minutes or seconds
875 {$EXTERNALSYM TIME_NOMINUTESORSECONDS}
876 TIME_NOSECONDS = $00000002; // do not use seconds
877 {$EXTERNALSYM TIME_NOSECONDS}
878 TIME_NOTIMEMARKER = $00000004; // do not use time marker
879 {$EXTERNALSYM TIME_NOTIMEMARKER}
880 TIME_FORCE24HOURFORMAT = $00000008; // always use 24 hour format
881 {$EXTERNALSYM TIME_FORCE24HOURFORMAT}
882
883 //
884 // Date Flags for GetDateFormat.
885 //
886
887 DATE_SHORTDATE = $00000001; // use short date picture
888 {$EXTERNALSYM DATE_SHORTDATE}
889 DATE_LONGDATE = $00000002; // use long date picture
890 {$EXTERNALSYM DATE_LONGDATE}
891 DATE_USE_ALT_CALENDAR = $00000004; // use alternate calendar (if any)
892 {$EXTERNALSYM DATE_USE_ALT_CALENDAR}
893
894 DATE_YEARMONTH = $00000008; // use year month picture
895 {$EXTERNALSYM DATE_YEARMONTH}
896 DATE_LTRREADING = $00000010; // add marks for left to right reading order layout
897 {$EXTERNALSYM DATE_LTRREADING}
898 DATE_RTLREADING = $00000020; // add marks for right to left reading order layout
899 {$EXTERNALSYM DATE_RTLREADING}
900
901 //
902 // Calendar Types.
903 //
904 // These types are used for the EnumCalendarInfo and GetCalendarInfo
905 // NLS API routines.
906 // Some of these types are also used for the SetCalendarInfo NLS API
907 // routine.
908 //
909
910 //
911 // The following CalTypes may be used in combination with any other CalTypes.
912 //
913 // CAL_NOUSEROVERRIDE
914 //
915 // CAL_USE_CP_ACP is used in the A (Ansi) apis that need to do string
916 // translation.
917 //
918 // CAL_RETURN_NUMBER will return the result from GetCalendarInfo as a
919 // number instead of a string. This flag is only valid for the CalTypes
920 // beginning with CAL_I.
921 //
922
923 CAL_NOUSEROVERRIDE = LOCALE_NOUSEROVERRIDE; // do not use user overrides
924 {$EXTERNALSYM CAL_NOUSEROVERRIDE}
925 CAL_USE_CP_ACP = LOCALE_USE_CP_ACP; // use the system ACP
926 {$EXTERNALSYM CAL_USE_CP_ACP}
927 CAL_RETURN_NUMBER = LOCALE_RETURN_NUMBER; // return number instead of string
928 {$EXTERNALSYM CAL_RETURN_NUMBER}
929
930 //
931 // The following CalTypes are mutually exclusive in that they may NOT
932 // be used in combination with each other.
933 //
934
935 CAL_ICALINTVALUE = $00000001; // calendar type
936 {$EXTERNALSYM CAL_ICALINTVALUE}
937 CAL_SCALNAME = $00000002; // native name of calendar
938 {$EXTERNALSYM CAL_SCALNAME}
939 CAL_IYEAROFFSETRANGE = $00000003; // starting years of eras
940 {$EXTERNALSYM CAL_IYEAROFFSETRANGE}
941 CAL_SERASTRING = $00000004; // era name for IYearOffsetRanges
942 {$EXTERNALSYM CAL_SERASTRING}
943 CAL_SSHORTDATE = $00000005; // short date format string
944 {$EXTERNALSYM CAL_SSHORTDATE}
945 CAL_SLONGDATE = $00000006; // long date format string
946 {$EXTERNALSYM CAL_SLONGDATE}
947 CAL_SDAYNAME1 = $00000007; // native name for Monday
948 {$EXTERNALSYM CAL_SDAYNAME1}
949 CAL_SDAYNAME2 = $00000008; // native name for Tuesday
950 {$EXTERNALSYM CAL_SDAYNAME2}
951 CAL_SDAYNAME3 = $00000009; // native name for Wednesday
952 {$EXTERNALSYM CAL_SDAYNAME3}
953 CAL_SDAYNAME4 = $0000000a; // native name for Thursday
954 {$EXTERNALSYM CAL_SDAYNAME4}
955 CAL_SDAYNAME5 = $0000000b; // native name for Friday
956 {$EXTERNALSYM CAL_SDAYNAME5}
957 CAL_SDAYNAME6 = $0000000c; // native name for Saturday
958 {$EXTERNALSYM CAL_SDAYNAME6}
959 CAL_SDAYNAME7 = $0000000d; // native name for Sunday
960 {$EXTERNALSYM CAL_SDAYNAME7}
961 CAL_SABBREVDAYNAME1 = $0000000e; // abbreviated name for Monday
962 {$EXTERNALSYM CAL_SABBREVDAYNAME1}
963 CAL_SABBREVDAYNAME2 = $0000000f; // abbreviated name for Tuesday
964 {$EXTERNALSYM CAL_SABBREVDAYNAME2}
965 CAL_SABBREVDAYNAME3 = $00000010; // abbreviated name for Wednesday
966 {$EXTERNALSYM CAL_SABBREVDAYNAME3}
967 CAL_SABBREVDAYNAME4 = $00000011; // abbreviated name for Thursday
968 {$EXTERNALSYM CAL_SABBREVDAYNAME4}
969 CAL_SABBREVDAYNAME5 = $00000012; // abbreviated name for Friday
970 {$EXTERNALSYM CAL_SABBREVDAYNAME5}
971 CAL_SABBREVDAYNAME6 = $00000013; // abbreviated name for Saturday
972 {$EXTERNALSYM CAL_SABBREVDAYNAME6}
973 CAL_SABBREVDAYNAME7 = $00000014; // abbreviated name for Sunday
974 {$EXTERNALSYM CAL_SABBREVDAYNAME7}
975 CAL_SMONTHNAME1 = $00000015; // native name for January
976 {$EXTERNALSYM CAL_SMONTHNAME1}
977 CAL_SMONTHNAME2 = $00000016; // native name for February
978 {$EXTERNALSYM CAL_SMONTHNAME2}
979 CAL_SMONTHNAME3 = $00000017; // native name for March
980 {$EXTERNALSYM CAL_SMONTHNAME3}
981 CAL_SMONTHNAME4 = $00000018; // native name for April
982 {$EXTERNALSYM CAL_SMONTHNAME4}
983 CAL_SMONTHNAME5 = $00000019; // native name for May
984 {$EXTERNALSYM CAL_SMONTHNAME5}
985 CAL_SMONTHNAME6 = $0000001a; // native name for June
986 {$EXTERNALSYM CAL_SMONTHNAME6}
987 CAL_SMONTHNAME7 = $0000001b; // native name for July
988 {$EXTERNALSYM CAL_SMONTHNAME7}
989 CAL_SMONTHNAME8 = $0000001c; // native name for August
990 {$EXTERNALSYM CAL_SMONTHNAME8}
991 CAL_SMONTHNAME9 = $0000001d; // native name for September
992 {$EXTERNALSYM CAL_SMONTHNAME9}
993 CAL_SMONTHNAME10 = $0000001e; // native name for October
994 {$EXTERNALSYM CAL_SMONTHNAME10}
995 CAL_SMONTHNAME11 = $0000001f; // native name for November
996 {$EXTERNALSYM CAL_SMONTHNAME11}
997 CAL_SMONTHNAME12 = $00000020; // native name for December
998 {$EXTERNALSYM CAL_SMONTHNAME12}
999 CAL_SMONTHNAME13 = $00000021; // native name for 13th month (if any)
1000 {$EXTERNALSYM CAL_SMONTHNAME13}
1001 CAL_SABBREVMONTHNAME1 = $00000022; // abbreviated name for January
1002 {$EXTERNALSYM CAL_SABBREVMONTHNAME1}
1003 CAL_SABBREVMONTHNAME2 = $00000023; // abbreviated name for February
1004 {$EXTERNALSYM CAL_SABBREVMONTHNAME2}
1005 CAL_SABBREVMONTHNAME3 = $00000024; // abbreviated name for March
1006 {$EXTERNALSYM CAL_SABBREVMONTHNAME3}
1007 CAL_SABBREVMONTHNAME4 = $00000025; // abbreviated name for April
1008 {$EXTERNALSYM CAL_SABBREVMONTHNAME4}
1009 CAL_SABBREVMONTHNAME5 = $00000026; // abbreviated name for May
1010 {$EXTERNALSYM CAL_SABBREVMONTHNAME5}
1011 CAL_SABBREVMONTHNAME6 = $00000027; // abbreviated name for June
1012 {$EXTERNALSYM CAL_SABBREVMONTHNAME6}
1013 CAL_SABBREVMONTHNAME7 = $00000028; // abbreviated name for July
1014 {$EXTERNALSYM CAL_SABBREVMONTHNAME7}
1015 CAL_SABBREVMONTHNAME8 = $00000029; // abbreviated name for August
1016 {$EXTERNALSYM CAL_SABBREVMONTHNAME8}
1017 CAL_SABBREVMONTHNAME9 = $0000002a; // abbreviated name for September
1018 {$EXTERNALSYM CAL_SABBREVMONTHNAME9}
1019 CAL_SABBREVMONTHNAME10 = $0000002b; // abbreviated name for October
1020 {$EXTERNALSYM CAL_SABBREVMONTHNAME10}
1021 CAL_SABBREVMONTHNAME11 = $0000002c; // abbreviated name for November
1022 {$EXTERNALSYM CAL_SABBREVMONTHNAME11}
1023 CAL_SABBREVMONTHNAME12 = $0000002d; // abbreviated name for December
1024 {$EXTERNALSYM CAL_SABBREVMONTHNAME12}
1025 CAL_SABBREVMONTHNAME13 = $0000002e; // abbreviated name for 13th month (if any)
1026 {$EXTERNALSYM CAL_SABBREVMONTHNAME13}
1027
1028 CAL_SYEARMONTH = $0000002f; // year month format string
1029 {$EXTERNALSYM CAL_SYEARMONTH}
1030 CAL_ITWODIGITYEARMAX = $00000030; // two digit year max
1031 {$EXTERNALSYM CAL_ITWODIGITYEARMAX}
1032
1033 //
1034 // Calendar Enumeration Value.
1035 //
1036
1037 ENUM_ALL_CALENDARS = DWORD($ffffffff); // enumerate all calendars
1038 {$EXTERNALSYM ENUM_ALL_CALENDARS}
1039
1040 //
1041 // Calendar ID Values.
1042 //
1043
1044 CAL_GREGORIAN = 1; // Gregorian (localized) calendar
1045 {$EXTERNALSYM CAL_GREGORIAN}
1046 CAL_GREGORIAN_US = 2; // Gregorian (U.S.) calendar
1047 {$EXTERNALSYM CAL_GREGORIAN_US}
1048 CAL_JAPAN = 3; // Japanese Emperor Era calendar
1049 {$EXTERNALSYM CAL_JAPAN}
1050 CAL_TAIWAN = 4; // Taiwan Era calendar
1051 {$EXTERNALSYM CAL_TAIWAN}
1052 CAL_KOREA = 5; // Korean Tangun calendar
1053 {$EXTERNALSYM CAL_KOREA}
1054 CAL_HIJRI = 6; // Hijri (Arabic Lunar) calendar
1055 {$EXTERNALSYM CAL_HIJRI}
1056 CAL_THAI = 7; // Thai calendar
1057 {$EXTERNALSYM CAL_THAI}
1058 CAL_HEBREW = 8; // Hebrew (Lunar) calendar
1059 {$EXTERNALSYM CAL_HEBREW}
1060 CAL_GREGORIAN_ME_FRENCH = 9; // Gregorian Middle East French calendar
1061 {$EXTERNALSYM CAL_GREGORIAN_ME_FRENCH}
1062 CAL_GREGORIAN_ARABIC = 10; // Gregorian Arabic calendar
1063 {$EXTERNALSYM CAL_GREGORIAN_ARABIC}
1064 CAL_GREGORIAN_XLIT_ENGLISH = 11; // Gregorian Transliterated English calendar
1065 {$EXTERNALSYM CAL_GREGORIAN_XLIT_ENGLISH}
1066 CAL_GREGORIAN_XLIT_FRENCH = 12; // Gregorian Transliterated French calendar
1067 {$EXTERNALSYM CAL_GREGORIAN_XLIT_FRENCH}
1068
1069 //
1070 // Language Group ID Values.
1071 //
1072
1073 LGRPID_WESTERN_EUROPE = $0001; // Western Europe & U.S.
1074 {$EXTERNALSYM LGRPID_WESTERN_EUROPE}
1075 LGRPID_CENTRAL_EUROPE = $0002; // Central Europe
1076 {$EXTERNALSYM LGRPID_CENTRAL_EUROPE}
1077 LGRPID_BALTIC = $0003; // Baltic
1078 {$EXTERNALSYM LGRPID_BALTIC}
1079 LGRPID_GREEK = $0004; // Greek
1080 {$EXTERNALSYM LGRPID_GREEK}
1081 LGRPID_CYRILLIC = $0005; // Cyrillic
1082 {$EXTERNALSYM LGRPID_CYRILLIC}
1083 LGRPID_TURKISH = $0006; // Turkish
1084 {$EXTERNALSYM LGRPID_TURKISH}
1085 LGRPID_JAPANESE = $0007; // Japanese
1086 {$EXTERNALSYM LGRPID_JAPANESE}
1087 LGRPID_KOREAN = $0008; // Korean
1088 {$EXTERNALSYM LGRPID_KOREAN}
1089 LGRPID_TRADITIONAL_CHINESE = $0009; // Traditional Chinese
1090 {$EXTERNALSYM LGRPID_TRADITIONAL_CHINESE}
1091 LGRPID_SIMPLIFIED_CHINESE = $000a; // Simplified Chinese
1092 {$EXTERNALSYM LGRPID_SIMPLIFIED_CHINESE}
1093 LGRPID_THAI = $000b; // Thai
1094 {$EXTERNALSYM LGRPID_THAI}
1095 LGRPID_HEBREW = $000c; // Hebrew
1096 {$EXTERNALSYM LGRPID_HEBREW}
1097 LGRPID_ARABIC = $000d; // Arabic
1098 {$EXTERNALSYM LGRPID_ARABIC}
1099 LGRPID_VIETNAMESE = $000e; // Vietnamese
1100 {$EXTERNALSYM LGRPID_VIETNAMESE}
1101 LGRPID_INDIC = $000f; // Indic
1102 {$EXTERNALSYM LGRPID_INDIC}
1103 LGRPID_GEORGIAN = $0010; // Georgian
1104 {$EXTERNALSYM LGRPID_GEORGIAN}
1105 LGRPID_ARMENIAN = $0011; // Armenian
1106 {$EXTERNALSYM LGRPID_ARMENIAN}
1107
1108 ////////////////////////////////////////////////////////////////////////////
1109 //
1110 // Typedefs
1111 //
1112 // Define all types for the NLS component here.
1113 //
1114 ////////////////////////////////////////////////////////////////////////////
1115
1116 //
1117 // Language Group ID.
1118 //
1119
1120 type
1121 LGRPID = DWORD;
1122 {$EXTERNALSYM LGRPID}
1123
1124 //
1125 // Locale type constant.
1126 //
1127
1128 LCTYPE = DWORD;
1129 {$EXTERNALSYM LCTYPE}
1130
1131 //
1132 // Calendar type constant.
1133 //
1134
1135 CALTYPE = DWORD;
1136 {$EXTERNALSYM CALTYPE}
1137
1138 //
1139 // Calendar ID.
1140 //
1141
1142 CALID = DWORD;
1143 {$EXTERNALSYM CALID}
1144
1145 //
1146 // CP Info.
1147 //
1148
1149 LPCPINFO = ^CPINFO;
1150 {$EXTERNALSYM LPCPINFO}
1151 _cpinfo = record
1152 MaxCharSize: UINT; // max length (in bytes) of a char
1153 DefaultChar: array [0..MAX_DEFAULTCHAR - 1] of BYTE; // default character
1154 LeadByte: array [0..MAX_LEADBYTES - 1] of BYTE; // lead byte ranges
1155 end;
1156 {$EXTERNALSYM _cpinfo}
1157 CPINFO = _cpinfo;
1158 {$EXTERNALSYM CPINFO}
1159 TCpInfo = CPINFO;
1160 PCpInfo = LPCPINFO;
1161
1162 {$EXTERNALSYM CPINFOEXA}
1163 LPCPINFOEXA = ^CPINFOEXA;
1164 _cpinfoexA = record
1165 MaxCharSize: UINT; // max length (in bytes) of a char
1166 DefaultChar: array [0..MAX_DEFAULTCHAR - 1] of BYTE; // default character (MB)
1167 LeadByte: array [0..MAX_LEADBYTES - 1] of BYTE; // lead byte ranges
1168 UnicodeDefaultChar: WCHAR; // default character (Unicode)
1169 CodePage: UINT; // code page id
1170 CodePageName: array [0..MAX_PATH - 1] of CHAR; // code page name (Unicode)
1171 end;
1172 {$EXTERNALSYM _cpinfoexA}
1173 CPINFOEXA = _cpinfoexA;
1174 {$EXTERNALSYM LPCPINFOEXA}
1175 TCpInfoExA = CPINFOEXA;
1176 PCpInfoExA = LPCPINFOEXA;
1177
1178 LPCPINFOEXW = ^CPINFOEXW;
1179 {$EXTERNALSYM LPCPINFOEXW}
1180 _cpinfoexW = record
1181 MaxCharSize: UINT; // max length (in bytes) of a char
1182 DefaultChar: array [0..MAX_DEFAULTCHAR - 1] of BYTE; // default character (MB)
1183 LeadByte: array [0..MAX_LEADBYTES - 1] of BYTE; // lead byte ranges
1184 UnicodeDefaultChar: WCHAR; // default character (Unicode)
1185 CodePage: UINT; // code page id
1186 CodePageName: array [0..MAX_PATH - 1] of WCHAR; // code page name (Unicode)
1187 end;
1188 {$EXTERNALSYM _cpinfoexW}
1189 CPINFOEXW = _cpinfoexW;
1190 {$EXTERNALSYM CPINFOEXW}
1191 TCpInfoExW = CPINFOEXW;
1192 PCpInfoExW = LPCPINFOEXW;
1193
1194 {$IFDEF UNICODE}
1195 CPINFOEX = CPINFOEXW;
1196 {$EXTERNALSYM CPINFOEX}
1197 LPCPINFOEX = LPCPINFOEXW;
1198 {$EXTERNALSYM LPCPINFOEX}
1199 TCpInfoEx = TCpInfoExW;
1200 PCpInfoEx = PCpInfoExW;
1201 {$ELSE}
1202 CPINFOEX = CPINFOEXA;
1203 {$EXTERNALSYM CPINFOEX}
1204 LPCPINFOEX = LPCPINFOEXA;
1205 {$EXTERNALSYM LPCPINFOEX}
1206 TCpInfoEx = TCpInfoExA;
1207 PCpInfoEx = PCpInfoExA;
1208 {$ENDIF UNICODE}
1209
1210 //
1211 // Number format.
1212 //
1213
1214 LPNUMBERFMTA = ^NUMBERFMTA;
1215 {$EXTERNALSYM LPNUMBERFMTA}
1216 _numberfmtA = record
1217 NumDigits: UINT; // number of decimal digits
1218 LeadingZero: UINT; // if leading zero in decimal fields
1219 Grouping: UINT; // group size left of decimal
1220 lpDecimalSep: LPSTR; // ptr to decimal separator string
1221 lpThousandSep: LPSTR; // ptr to thousand separator string
1222 NegativeOrder: UINT; // negative number ordering
1223 end;
1224 {$EXTERNALSYM _numberfmtA}
1225 NUMBERFMTA = _numberfmtA;
1226 {$EXTERNALSYM NUMBERFMTA}
1227 TNumberFmtA = NUMBERFMTA;
1228 PNumberFmtA = LPNUMBERFMTA;
1229
1230 LPNUMBERFMTW = ^NUMBERFMTW;
1231 {$EXTERNALSYM LPNUMBERFMTW}
1232 _numberfmtW = record
1233 NumDigits: UINT; // number of decimal digits
1234 LeadingZero: UINT; // if leading zero in decimal fields
1235 Grouping: UINT; // group size left of decimal
1236 lpDecimalSep: LPWSTR; // ptr to decimal separator string
1237 lpThousandSep: LPWSTR; // ptr to thousand separator string
1238 NegativeOrder: UINT; // negative number ordering
1239 end;
1240 {$EXTERNALSYM _numberfmtW}
1241 NUMBERFMTW = _numberfmtW;
1242 {$EXTERNALSYM NUMBERFMTW}
1243 TNumberFmtW = NUMBERFMTW;
1244 PNumberFmtW = LPNUMBERFMTW;
1245
1246 {$IFDEF UNICODE}
1247 NUMBERFMT = NUMBERFMTW;
1248 {$EXTERNALSYM NUMBERFMT}
1249 LPNUMBERFMT = LPNUMBERFMTW;
1250 {$EXTERNALSYM LPNUMBERFMT}
1251 TNumberFmt = TNumberFmtW;
1252 PNumberFmt = TNumberFmtW;
1253 {$ELSE}
1254 NUMBERFMT = NUMBERFMTA;
1255 {$EXTERNALSYM NUMBERFMT}
1256 LPNUMBERFMT = LPNUMBERFMTA;
1257 {$EXTERNALSYM LPNUMBERFMT}
1258 TNumberFmt = TNumberFmtA;
1259 PNumberFmt = TNumberFmtA;
1260 {$ENDIF UNICODE}
1261
1262 //
1263 // Currency format.
1264 //
1265
1266 LPCURRENCYFMTA = ^CURRENCYFMTA;
1267 {$EXTERNALSYM LPCURRENCYFMTA}
1268 _currencyfmtA = record
1269 NumDigits: UINT; // number of decimal digits
1270 LeadingZero: UINT; // if leading zero in decimal fields
1271 Grouping: UINT; // group size left of decimal
1272 lpDecimalSep: LPSTR; // ptr to decimal separator string
1273 lpThousandSep: LPSTR; // ptr to thousand separator string
1274 NegativeOrder: UINT; // negative currency ordering
1275 PositiveOrder: UINT; // positive currency ordering
1276 lpCurrencySymbol: LPSTR; // ptr to currency symbol string
1277 end;
1278 {$EXTERNALSYM _currencyfmtA}
1279 CURRENCYFMTA = _currencyfmtA;
1280 {$EXTERNALSYM CURRENCYFMTA}
1281 TCurrencyFmtA = CURRENCYFMTA;
1282 PCurrencyFmtA = LPCURRENCYFMTA;
1283
1284 LPCURRENCYFMTW = ^CURRENCYFMTW;
1285 {$EXTERNALSYM LPCURRENCYFMTW}
1286 _currencyfmtW = record
1287 NumDigits: UINT; // number of decimal digits
1288 LeadingZero: UINT; // if leading zero in decimal fields
1289 Grouping: UINT; // group size left of decimal
1290 lpDecimalSep: LPWSTR; // ptr to decimal separator string
1291 lpThousandSep: LPWSTR; // ptr to thousand separator string
1292 NegativeOrder: UINT; // negative currency ordering
1293 PositiveOrder: UINT; // positive currency ordering
1294 lpCurrencySymbol: LPWSTR; // ptr to currency symbol string
1295 end;
1296 {$EXTERNALSYM _currencyfmtW}
1297 CURRENCYFMTW = _currencyfmtW;
1298 {$EXTERNALSYM CURRENCYFMTW}
1299 TCurrencyFmtW = CURRENCYFMTW;
1300 PCurrencyFmtW = LPCURRENCYFMTW;
1301
1302 {$IFDEF UNICODE}
1303 CURRENCYFMT = CURRENCYFMTW;
1304 {$EXTERNALSYM CURRENCYFMT}
1305 LPCURRENCYFMT = LPCURRENCYFMTW;
1306 {$EXTERNALSYM LPCURRENCYFMT}
1307 TCurrencyFmt = TCurrencyFmtW;
1308 PCurrencyFmt = PCurrencyFmtW;
1309 {$ELSE}
1310 CURRENCYFMT = CURRENCYFMTA;
1311 {$EXTERNALSYM CURRENCYFMT}
1312 LPCURRENCYFMT = LPCURRENCYFMTA;
1313 {$EXTERNALSYM LPCURRENCYFMT}
1314 TCurrencyFmt = TCurrencyFmtA;
1315 PCurrencyFmt = PCurrencyFmtA;
1316 {$ENDIF UNICODE}
1317
1318 //
capabilitiesnull1319 // NLS function capabilities
1320 //
1321
1322 const
1323 COMPARE_STRING = $0001;
1324 {$EXTERNALSYM COMPARE_STRING}
1325
1326 type
1327 SYSNLS_FUNCTION = DWORD;
1328 {$EXTERNALSYM SYSNLS_FUNCTION}
1329 NLS_FUNCTION = DWORD;
1330 {$EXTERNALSYM NLS_FUNCTION}
1331 TSysNlsFunction = SYSNLS_FUNCTION;
1332 TNlsFunction = NLS_FUNCTION;
1333
1334 //
1335 // NLS version structure.
1336 //
1337
1338 _nlsversioninfo = record
1339 dwNLSVersionInfoSize: DWORD;
1340 dwNLSVersion: DWORD;
1341 dwDefinedVersion: DWORD;
1342 end;
1343 {$EXTERNALSYM _nlsversioninfo}
1344 NLSVERSIONINFO = _nlsversioninfo;
1345 {$EXTERNALSYM NLSVERSIONINFO}
1346 LPNLSVERSIONINFO = ^NLSVERSIONINFO;
1347 {$EXTERNALSYM LPNLSVERSIONINFO}
1348 TNlsVersionInfo = NLSVERSIONINFO;
1349 PNlsVersionInfo = LPNLSVERSIONINFO;
1350
1351 //
1352 // GEO defines
1353 //
1354
1355 type
1356 GEOID = LONG;
1357 {$EXTERNALSYM GEOID}
1358 GEOTYPE = DWORD;
1359 {$EXTERNALSYM GEOTYPE}
1360 GEOCLASS = DWORD;
1361 {$EXTERNALSYM GEOCLASS}
1362
1363 const
1364 GEOID_NOT_AVAILABLE = -1;
1365 {$EXTERNALSYM GEOID_NOT_AVAILABLE}
1366
1367 //
1368 // GEO information types for clients to query
1369 //
1370
1371 const
1372 GEO_NATION = $0001;
1373 {$EXTERNALSYM GEO_NATION}
1374 GEO_LATITUDE = $0002;
1375 {$EXTERNALSYM GEO_LATITUDE}
1376 GEO_LONGITUDE = $0003;
1377 {$EXTERNALSYM GEO_LONGITUDE}
1378 GEO_ISO2 = $0004;
1379 {$EXTERNALSYM GEO_ISO2}
1380 GEO_ISO3 = $0005;
1381 {$EXTERNALSYM GEO_ISO3}
1382 GEO_RFC1766 = $0006;
1383 {$EXTERNALSYM GEO_RFC1766}
1384 GEO_LCID = $0007;
1385 {$EXTERNALSYM GEO_LCID}
1386 GEO_FRIENDLYNAME = $0008;
1387 {$EXTERNALSYM GEO_FRIENDLYNAME}
1388 GEO_OFFICIALNAME = $0009;
1389 {$EXTERNALSYM GEO_OFFICIALNAME}
1390 GEO_TIMEZONES = $000A;
1391 {$EXTERNALSYM GEO_TIMEZONES}
1392 GEO_OFFICIALLANGUAGES = $000B;
1393 {$EXTERNALSYM GEO_OFFICIALLANGUAGES}
1394
1395 type
1396 SYSGEOTYPE = DWORD;
1397 {$EXTERNALSYM SYSGEOTYPE}
1398
1399 //
1400 // More GEOCLASS defines will be listed here
1401 //
1402
1403 const
1404 GEOCLASS_NATION = 16;
1405 {$EXTERNALSYM GEOCLASS_NATION}
1406 GEOCLASS_REGION = 14;
1407 {$EXTERNALSYM GEOCLASS_REGION}
1408
1409 type
1410 SYSGEOCLASS = DWORD;
1411 {$EXTERNALSYM SYSGEOCLASS}
1412
1413 //
constants.null1414 // Enumeration function constants.
1415 //
1416
1417 type
1418 LANGUAGEGROUP_ENUMPROCA = function(LanguageGroup: LGRPID; lpLanguageGroupString,
1419 lpLanguageGroupNameSting: LPSTR; dwFlags: DWORD; lParam: LONG_PTR): BOOL; stdcall;
1420 {$EXTERNALSYM LANGUAGEGROUP_ENUMPROCA}
anguageGroupnull1421 LANGGROUPLOCALE_ENUMPROCA = function(LanguageGroup: LGRPID; Locale: LCID;
1422 lpLocaleString: LPSTR; lParam: LONG_PTR): BOOL; stdcall;
1423 {$EXTERNALSYM LANGGROUPLOCALE_ENUMPROCA}
pUILanguageStringnull1424 UILANGUAGE_ENUMPROCA = function(lpUILanguageString: LPSTR; lParam: LONG_PTR): BOOL; stdcall;
1425 {$EXTERNALSYM UILANGUAGE_ENUMPROCA}
pLocaleStringnull1426 LOCALE_ENUMPROCA = function(lpLocaleString: LPSTR): BOOL; stdcall;
1427 {$EXTERNALSYM LOCALE_ENUMPROCA}
pCodePAgeStringnull1428 CODEPAGE_ENUMPROCA = function(lpCodePAgeString: LPSTR): BOOL; stdcall;
1429 {$EXTERNALSYM CODEPAGE_ENUMPROCA}
pDateFormatStringnull1430 DATEFMT_ENUMPROCA = function(lpDateFormatString: LPSTR): BOOL; stdcall;
1431 {$EXTERNALSYM DATEFMT_ENUMPROCA}
pDateFormatStringnull1432 DATEFMT_ENUMPROCEXA = function(lpDateFormatString: LPSTR; CalenderId: CALID): BOOL; stdcall;
1433 {$EXTERNALSYM DATEFMT_ENUMPROCEXA}
pTimeFormatStringnull1434 TIMEFMT_ENUMPROCA = function(lpTimeFormatString: LPSTR): BOOL; stdcall;
1435 {$EXTERNALSYM TIMEFMT_ENUMPROCA}
pCalendarInfoStringnull1436 CALINFO_ENUMPROCA = function(lpCalendarInfoString: LPSTR): BOOL; stdcall;
1437 {$EXTERNALSYM CALINFO_ENUMPROCA}
pCalendarInfoStringnull1438 CALINFO_ENUMPROCEXA = function(lpCalendarInfoString: LPSTR; Calendar: CALID): BOOL; stdcall;
1439 {$EXTERNALSYM CALINFO_ENUMPROCEXA}
1440
anguageGroupnull1441 LANGUAGEGROUP_ENUMPROCW = function(LanguageGroup: LGRPID; lpLanguageGroupString,
1442 lpLanguageGroupNameSting: LPWSTR; dwFlags: DWORD; lParam: LONG_PTR): BOOL; stdcall;
1443 {$EXTERNALSYM LANGUAGEGROUP_ENUMPROCW}
anguageGroupnull1444 LANGGROUPLOCALE_ENUMPROCW = function(LanguageGroup: LGRPID; Locale: LCID;
1445 lpLocaleString: LPWSTR; lParam: LONG_PTR): BOOL; stdcall;
1446 {$EXTERNALSYM LANGGROUPLOCALE_ENUMPROCW}
pUILanguageStringnull1447 UILANGUAGE_ENUMPROCW = function(lpUILanguageString: LPWSTR; lParam: LONG_PTR): BOOL; stdcall;
1448 {$EXTERNALSYM UILANGUAGE_ENUMPROCW}
pLocaleStringnull1449 LOCALE_ENUMPROCW = function(lpLocaleString: LPWSTR): BOOL; stdcall;
1450 {$EXTERNALSYM LOCALE_ENUMPROCW}
pCodePAgeStringnull1451 CODEPAGE_ENUMPROCW = function(lpCodePAgeString: LPWSTR): BOOL; stdcall;
1452 {$EXTERNALSYM CODEPAGE_ENUMPROCW}
pDateFormatStringnull1453 DATEFMT_ENUMPROCW = function(lpDateFormatString: LPWSTR): BOOL; stdcall;
1454 {$EXTERNALSYM DATEFMT_ENUMPROCW}
pDateFormatStringnull1455 DATEFMT_ENUMPROCEXW = function(lpDateFormatString: LPWSTR; CalenderId: CALID): BOOL; stdcall;
1456 {$EXTERNALSYM DATEFMT_ENUMPROCEXW}
pTimeFormatStringnull1457 TIMEFMT_ENUMPROCW = function(lpTimeFormatString: LPWSTR): BOOL; stdcall;
1458 {$EXTERNALSYM TIMEFMT_ENUMPROCW}
pCalendarInfoStringnull1459 CALINFO_ENUMPROCW = function(lpCalendarInfoString: LPWSTR): BOOL; stdcall;
1460 {$EXTERNALSYM CALINFO_ENUMPROCW}
pCalendarInfoStringnull1461 CALINFO_ENUMPROCEXW = function(lpCalendarInfoString: LPWSTR; Calendar: CALID): BOOL; stdcall;
1462 {$EXTERNALSYM CALINFO_ENUMPROCEXW}
eonull1463 GEO_ENUMPROC = function(geo: GEOID): BOOL; stdcall;
1464 {$EXTERNALSYM GEO_ENUMPROC}
1465
anguageGroupnull1466 LANGUAGEGROUP_ENUMPROC = function(LanguageGroup: LGRPID; lpLanguageGroupString,
1467 lpLanguageGroupNameSting: LPTSTR; dwFlags: DWORD; lParam: LONG_PTR): BOOL; stdcall;
1468 {$EXTERNALSYM LANGUAGEGROUP_ENUMPROC}
anguageGroupnull1469 LANGGROUPLOCALE_ENUMPROC = function(LanguageGroup: LGRPID; Locale: LCID;
1470 lpLocaleString: LPTSTR; lParam: LONG_PTR): BOOL; stdcall;
1471 {$EXTERNALSYM LANGGROUPLOCALE_ENUMPROC}
pUILanguageStringnull1472 UILANGUAGE_ENUMPROC = function(lpUILanguageString: LPTSTR; lParam: LONG_PTR): BOOL; stdcall;
1473 {$EXTERNALSYM UILANGUAGE_ENUMPROC}
pLocaleStringnull1474 LOCALE_ENUMPROC = function(lpLocaleString: LPTSTR): BOOL; stdcall;
1475 {$EXTERNALSYM LOCALE_ENUMPROC}
pCodePAgeStringnull1476 CODEPAGE_ENUMPROC = function(lpCodePAgeString: LPTSTR): BOOL; stdcall;
1477 {$EXTERNALSYM CODEPAGE_ENUMPROC}
pDateFormatStringnull1478 DATEFMT_ENUMPROC = function(lpDateFormatString: LPTSTR): BOOL; stdcall;
1479 {$EXTERNALSYM DATEFMT_ENUMPROC}
pDateFormatStringnull1480 DATEFMT_ENUMPROCEX = function(lpDateFormatString: LPTSTR; CalenderId: CALID): BOOL; stdcall;
1481 {$EXTERNALSYM DATEFMT_ENUMPROCEX}
pTimeFormatStringnull1482 TIMEFMT_ENUMPROC = function(lpTimeFormatString: LPTSTR): BOOL; stdcall;
1483 {$EXTERNALSYM TIMEFMT_ENUMPROC}
pCalendarInfoStringnull1484 CALINFO_ENUMPROC = function(lpCalendarInfoString: LPTSTR): BOOL; stdcall;
1485 {$EXTERNALSYM CALINFO_ENUMPROC}
pCalendarInfoStringnull1486 CALINFO_ENUMPROCEX = function(lpCalendarInfoString: LPTSTR; Calendar: CALID): BOOL; stdcall;
1487 {$EXTERNALSYM CALINFO_ENUMPROCEX}
1488
1489 ////////////////////////////////////////////////////////////////////////////
1490 //
1491 // Macros
1492 //
1493 // Define all macros for the NLS component here.
1494 //
1495 ////////////////////////////////////////////////////////////////////////////
1496
1497 ////////////////////////////////////////////////////////////////////////////
1498 //
Prototypesnull1499 // Function Prototypes
1500 //
1501 // Only prototypes for the NLS APIs should go here.
1502 //
1503 ////////////////////////////////////////////////////////////////////////////
1504
1505 //
1506 // Code Page Dependent APIs.
1507 //
1508
1509 function IsValidCodePage(CodePage: UINT): BOOL; stdcall;
1510 {$EXTERNALSYM IsValidCodePage}
1511
GetACPnull1512 function GetACP: UINT; stdcall;
1513 {$EXTERNALSYM GetACP}
1514
GetOEMCPnull1515 function GetOEMCP: UINT; stdcall;
1516 {$EXTERNALSYM GetOEMCP}
1517
GetCPInfonull1518 function GetCPInfo(CodePage: UINT; var lpCPInfo: CPINFO): BOOL; stdcall;
1519 {$EXTERNALSYM GetCPInfo}
1520
GetCPInfoExAnull1521 function GetCPInfoExA(CodePage: UINT; dwFlags: DWORD; var lpCPInfoEx: CPINFOEXA): BOOL; stdcall;
1522 {$EXTERNALSYM GetCPInfoExA}
GetCPInfoExWnull1523 function GetCPInfoExW(CodePage: UINT; dwFlags: DWORD; var lpCPInfoEx: CPINFOEXW): BOOL; stdcall;
1524 {$EXTERNALSYM GetCPInfoExW}
GetCPInfoExnull1525 function GetCPInfoEx(CodePage: UINT; dwFlags: DWORD; var lpCPInfoEx: CPINFOEX): BOOL; stdcall;
1526 {$EXTERNALSYM GetCPInfoEx}
1527
IsDBCSLeadBytenull1528 function IsDBCSLeadByte(TestChar: BYTE): BOOL; stdcall;
1529 {$EXTERNALSYM IsDBCSLeadByte}
1530
IsDBCSLeadByteExnull1531 function IsDBCSLeadByteEx(CodePage: UINT; TestChar: BYTE): BOOL; stdcall;
1532 {$EXTERNALSYM IsDBCSLeadByteEx}
1533
MultiByteToWideCharnull1534 function MultiByteToWideChar(CodePage: UINT; dwFlags: DWORD; lpMultiByteStr: LPCSTR;
1535 cbMultiByte: Integer; lpWideCharStr: LPWSTR; cchWideChar: Integer): Integer; stdcall;
1536 {$EXTERNALSYM MultiByteToWideChar}
1537
WideCharToMultiBytenull1538 function WideCharToMultiByte(CodePage: UINT; dwFlags: DWORD; lpWideCharStr: LPCWSTR;
1539 cchWideChar: Integer; lpMultiByteStr: LPSTR; cbMultiByte: Integer;
1540 lpDefaultChar: LPCSTR; lpUsedDefaultChar: LPBOOL): Integer; stdcall;
1541 {$EXTERNALSYM WideCharToMultiByte}
1542
1543 //
1544 // Locale Dependent APIs.
1545 //
1546
CompareStringAnull1547 function CompareStringA(Locale: LCID; dwCmpFlags: DWORD; lpString1: LPCSTR;
1548 cchCount1: Integer; lpString2: LPCSTR; cchCount2: Integer): Integer; stdcall;
1549 {$EXTERNALSYM CompareStringA}
CompareStringWnull1550 function CompareStringW(Locale: LCID; dwCmpFlags: DWORD; lpString1: LPCWSTR;
1551 cchCount1: Integer; lpString2: LPCWSTR; cchCount2: Integer): Integer; stdcall;
1552 {$EXTERNALSYM CompareStringW}
CompareStringnull1553 function CompareString(Locale: LCID; dwCmpFlags: DWORD; lpString1: LPCTSTR;
1554 cchCount1: Integer; lpString2: LPCTSTR; cchCount2: Integer): Integer; stdcall;
1555 {$EXTERNALSYM CompareString}
1556
LCMapStringAnull1557 function LCMapStringA(Locale: LCID; dwMapFlags: DWORD; lpSrcStr: LPCSTR;
1558 cchSrc: Integer; lpDestStr: LPSTR; cchDest: Integer): Integer; stdcall;
1559 {$EXTERNALSYM LCMapStringA}
LCMapStringWnull1560 function LCMapStringW(Locale: LCID; dwMapFlags: DWORD; lpSrcStr: LPCWSTR;
1561 cchSrc: Integer; lpDestStr: LPWSTR; cchDest: Integer): Integer; stdcall;
1562 {$EXTERNALSYM LCMapStringW}
LCMapStringnull1563 function LCMapString(Locale: LCID; dwMapFlags: DWORD; lpSrcStr: LPCTSTR;
1564 cchSrc: Integer; lpDestStr: LPTSTR; cchDest: Integer): Integer; stdcall;
1565 {$EXTERNALSYM LCMapString}
1566
GetLocaleInfoAnull1567 function GetLocaleInfoA(Locale: LCID; LCType: LCTYPE; lpLCData: LPSTR;
1568 cchData: Integer): Integer; stdcall;
1569 {$EXTERNALSYM GetLocaleInfoA}
GetLocaleInfoWnull1570 function GetLocaleInfoW(Locale: LCID; LCType: LCTYPE; lpLCData: LPWSTR;
1571 cchData: Integer): Integer; stdcall;
1572 {$EXTERNALSYM GetLocaleInfoW}
GetLocaleInfonull1573 function GetLocaleInfo(Locale: LCID; LCType: LCTYPE; lpLCData: LPTSTR;
1574 cchData: Integer): Integer; stdcall;
1575 {$EXTERNALSYM GetLocaleInfo}
1576
SetLocaleInfoAnull1577 function SetLocaleInfoA(Locale: LCID; LCType: LCTYPE; lpLCData: LPCSTR): BOOL; stdcall;
1578 {$EXTERNALSYM SetLocaleInfoA}
SetLocaleInfoWnull1579 function SetLocaleInfoW(Locale: LCID; LCType: LCTYPE; lpLCData: LPCWSTR): BOOL; stdcall;
1580 {$EXTERNALSYM SetLocaleInfoW}
SetLocaleInfonull1581 function SetLocaleInfo(Locale: LCID; LCType: LCTYPE; lpLCData: LPCTSTR): BOOL; stdcall;
1582 {$EXTERNALSYM SetLocaleInfo}
1583
GetCalendarInfoAnull1584 function GetCalendarInfoA(Locale: LCID; Calendar: CALID; CalType: CALTYPE;
1585 lpCalData: LPSTR; cchData: Integer; lpValue: LPDWORD): Integer; stdcall;
1586 {$EXTERNALSYM GetCalendarInfoA}
GetCalendarInfoWnull1587 function GetCalendarInfoW(Locale: LCID; Calendar: CALID; CalType: CALTYPE;
1588 lpCalData: LPWSTR; cchData: Integer; lpValue: LPDWORD): Integer; stdcall;
1589 {$EXTERNALSYM GetCalendarInfoW}
GetCalendarInfonull1590 function GetCalendarInfo(Locale: LCID; Calendar: CALID; CalType: CALTYPE;
1591 lpCalData: LPTSTR; cchData: Integer; lpValue: LPDWORD): Integer; stdcall;
1592 {$EXTERNALSYM GetCalendarInfo}
1593
SetCalendarInfoAnull1594 function SetCalendarInfoA(Locale: LCID; Calendar: CALID; CalType: CALTYPE;
1595 lpCalData: LPCSTR): BOOL; stdcall;
1596 {$EXTERNALSYM SetCalendarInfoA}
SetCalendarInfoWnull1597 function SetCalendarInfoW(Locale: LCID; Calendar: CALID; CalType: CALTYPE;
1598 lpCalData: LPCWSTR): BOOL; stdcall;
1599 {$EXTERNALSYM SetCalendarInfoW}
SetCalendarInfonull1600 function SetCalendarInfo(Locale: LCID; Calendar: CALID; CalType: CALTYPE;
1601 lpCalData: LPCTSTR): BOOL; stdcall;
1602 {$EXTERNALSYM SetCalendarInfo}
1603
GetTimeFormatAnull1604 function GetTimeFormatA(Locale: LCID; dwFlags: DWORD; lpTime: LPSYSTEMTIME;
1605 lpFormat: LPCSTR; lpTimeStr: LPSTR; cchTime: Integer): Integer; stdcall;
1606 {$EXTERNALSYM GetTimeFormatA}
GetTimeFormatWnull1607 function GetTimeFormatW(Locale: LCID; dwFlags: DWORD; lpTime: LPSYSTEMTIME;
1608 lpFormat: LPCWSTR; lpTimeStr: LPWSTR; cchTime: Integer): Integer; stdcall;
1609 {$EXTERNALSYM GetTimeFormatW}
GetTimeFormatnull1610 function GetTimeFormat(Locale: LCID; dwFlags: DWORD; lpTime: LPSYSTEMTIME;
1611 lpFormat: LPCTSTR; lpTimeStr: LPTSTR; cchTime: Integer): Integer; stdcall;
1612 {$EXTERNALSYM GetTimeFormat}
1613
GetDateFormatAnull1614 function GetDateFormatA(Locale: LCID; dwFlags: DWORD; lpDate: LPSYSTEMTIME;
1615 lpFormat: LPCSTR; lpDateStr: LPSTR; cchDate: Integer): Integer; stdcall;
1616 {$EXTERNALSYM GetDateFormatA}
GetDateFormatWnull1617 function GetDateFormatW(Locale: LCID; dwFlags: DWORD; lpDate: LPSYSTEMTIME;
1618 lpFormat: LPCWSTR; lpDateStr: LPWSTR; cchDate: Integer): Integer; stdcall;
1619 {$EXTERNALSYM GetDateFormatW}
GetDateFormatnull1620 function GetDateFormat(Locale: LCID; dwFlags: DWORD; lpDate: LPSYSTEMTIME;
1621 lpFormat: LPCTSTR; lpDateStr: LPTSTR; cchDate: Integer): Integer; stdcall;
1622 {$EXTERNALSYM GetDateFormat}
1623
GetNumberFormatAnull1624 function GetNumberFormatA(Locale: LCID; dwFlags: DWORD; lpValue: LPCSTR;
1625 lpFormat: LPNUMBERFMTA; lpNumberStr: LPSTR; cchNumber: Integer): Integer; stdcall;
1626 {$EXTERNALSYM GetNumberFormatA}
GetNumberFormatWnull1627 function GetNumberFormatW(Locale: LCID; dwFlags: DWORD; lpValue: LPCWSTR;
1628 lpFormat: LPNUMBERFMTW; lpNumberStr: LPWSTR; cchNumber: Integer): Integer; stdcall;
1629 {$EXTERNALSYM GetNumberFormatW}
GetNumberFormatnull1630 function GetNumberFormat(Locale: LCID; dwFlags: DWORD; lpValue: LPCTSTR;
1631 lpFormat: LPNUMBERFMT; lpNumberStr: LPTSTR; cchNumber: Integer): Integer; stdcall;
1632 {$EXTERNALSYM GetNumberFormat}
1633
GetCurrencyFormatAnull1634 function GetCurrencyFormatA(Locale: LCID; dwFlags: DWORD; lpValue: LPCSTR;
1635 lpFormat: LPCURRENCYFMTA; lpCurrencyStr: LPSTR; cchCurrency: Integer): Integer; stdcall;
1636 {$EXTERNALSYM GetCurrencyFormatA}
GetCurrencyFormatWnull1637 function GetCurrencyFormatW(Locale: LCID; dwFlags: DWORD; lpValue: LPCWSTR;
1638 lpFormat: LPCURRENCYFMTW; lpCurrencyStr: LPWSTR; cchCurrency: Integer): Integer; stdcall;
1639 {$EXTERNALSYM GetCurrencyFormatW}
GetCurrencyFormatnull1640 function GetCurrencyFormat(Locale: LCID; dwFlags: DWORD; lpValue: LPCTSTR;
1641 lpFormat: LPCURRENCYFMT; lpCurrencyStr: LPTSTR; cchCurrency: Integer): Integer; stdcall;
1642 {$EXTERNALSYM GetCurrencyFormat}
1643
EnumCalendarInfoAnull1644 function EnumCalendarInfoA(lpCalInfoEnumProc: CALINFO_ENUMPROCA; Locale: LCID;
1645 Calendar: CALID; CalType: CALTYPE): BOOL; stdcall;
1646 {$EXTERNALSYM EnumCalendarInfoA}
EnumCalendarInfoWnull1647 function EnumCalendarInfoW(lpCalInfoEnumProc: CALINFO_ENUMPROCW; Locale: LCID;
1648 Calendar: CALID; CalType: CALTYPE): BOOL; stdcall;
1649 {$EXTERNALSYM EnumCalendarInfoW}
EnumCalendarInfonull1650 function EnumCalendarInfo(lpCalInfoEnumProc: CALINFO_ENUMPROC; Locale: LCID;
1651 Calendar: CALID; CalType: CALTYPE): BOOL; stdcall;
1652 {$EXTERNALSYM EnumCalendarInfo}
1653
EnumCalendarInfoExAnull1654 function EnumCalendarInfoExA(lpCalInfoEnumProcEx: CALINFO_ENUMPROCEXA;
1655 Locale: LCID; Calendar: CALID; CalType: CALTYPE): BOOL; stdcall;
1656 {$EXTERNALSYM EnumCalendarInfoExA}
EnumCalendarInfoExWnull1657 function EnumCalendarInfoExW(lpCalInfoEnumProcEx: CALINFO_ENUMPROCEXW;
1658 Locale: LCID; Calendar: CALID; CalType: CALTYPE): BOOL; stdcall;
1659 {$EXTERNALSYM EnumCalendarInfoExW}
EnumCalendarInfoExnull1660 function EnumCalendarInfoEx(lpCalInfoEnumProcEx: CALINFO_ENUMPROCEX;
1661 Locale: LCID; Calendar: CALID; CalType: CALTYPE): BOOL; stdcall;
1662 {$EXTERNALSYM EnumCalendarInfoEx}
1663
EnumTimeFormatsAnull1664 function EnumTimeFormatsA(lpTimeFmtEnumProc: TIMEFMT_ENUMPROCA; Locale:
1665 LCID; dwFlags: DWORD): BOOL; stdcall;
1666 {$EXTERNALSYM EnumTimeFormatsA}
EnumTimeFormatsWnull1667 function EnumTimeFormatsW(lpTimeFmtEnumProc: TIMEFMT_ENUMPROCW; Locale:
1668 LCID; dwFlags: DWORD): BOOL; stdcall;
1669 {$EXTERNALSYM EnumTimeFormatsW}
EnumTimeFormatsnull1670 function EnumTimeFormats(lpTimeFmtEnumProc: TIMEFMT_ENUMPROC; Locale: LCID;
1671 dwFlags: DWORD): BOOL; stdcall;
1672 {$EXTERNALSYM EnumTimeFormats}
1673
EnumDateFormatsAnull1674 function EnumDateFormatsA(lpDateFmtEnumProc: DATEFMT_ENUMPROCA; Locale: LCID;
1675 dwFlags: DWORD): BOOL; stdcall;
1676 {$EXTERNALSYM EnumDateFormatsA}
EnumDateFormatsWnull1677 function EnumDateFormatsW(lpDateFmtEnumProc: DATEFMT_ENUMPROCW; Locale: LCID;
1678 dwFlags: DWORD): BOOL; stdcall;
1679 {$EXTERNALSYM EnumDateFormatsW}
EnumDateFormatsnull1680 function EnumDateFormats(lpDateFmtEnumProc: DATEFMT_ENUMPROC; Locale: LCID;
1681 dwFlags: DWORD): BOOL; stdcall;
1682 {$EXTERNALSYM EnumDateFormats}
1683
EnumDateFormatsExAnull1684 function EnumDateFormatsExA(lpDateFmtEnumProcEx: DATEFMT_ENUMPROCEXA;
1685 Locale: LCID; dwFlags: DWORD): BOOL; stdcall;
1686 {$EXTERNALSYM EnumDateFormatsExA}
EnumDateFormatsExWnull1687 function EnumDateFormatsExW(lpDateFmtEnumProcEx: DATEFMT_ENUMPROCEXW;
1688 Locale: LCID; dwFlags: DWORD): BOOL; stdcall;
1689 {$EXTERNALSYM EnumDateFormatsExW}
EnumDateFormatsExnull1690 function EnumDateFormatsEx(lpDateFmtEnumProcEx: DATEFMT_ENUMPROCEX;
1691 Locale: LCID; dwFlags: DWORD): BOOL; stdcall;
1692 {$EXTERNALSYM EnumDateFormatsEx}
1693
IsValidLanguageGroupnull1694 function IsValidLanguageGroup(LanguageGroup: LGRPID; dwFlags: DWORD): BOOL; stdcall;
1695 {$EXTERNALSYM IsValidLanguageGroup}
1696
GetNLSVersionnull1697 function GetNLSVersion(Function_: NLS_FUNCTION; Locale: LCID; lpVersionInformation: LPNLSVERSIONINFO): BOOL; stdcall;
1698 {$EXTERNALSYM GetNLSVersion}
1699
IsNLSDefinedStringnull1700 function IsNLSDefinedString(Function_: NLS_FUNCTION; dwFlags: DWORD; lpVersionInformation: LPNLSVERSIONINFO;
1701 lpString: LPCWSTR; cchStr: Integer): BOOL; stdcall;
1702 {$EXTERNALSYM IsNLSDefinedString}
1703
IsValidLocalenull1704 function IsValidLocale(Locale: LCID; dwFlags: DWORD): BOOL; stdcall;
1705 {$EXTERNALSYM IsValidLocale}
1706
GetGeoInfoAnull1707 function GetGeoInfoA(Location: GEOID; GeoType: GEOTYPE; lpGeoData: LPSTR;
1708 cchData: Integer; LangId: LANGID): Integer; stdcall;
1709 {$EXTERNALSYM GetGeoInfoA}
GetGeoInfoWnull1710 function GetGeoInfoW(Location: GEOID; GeoType: GEOTYPE; lpGeoData: LPWSTR;
1711 cchData: Integer; LangId: LANGID): Integer; stdcall;
1712 {$EXTERNALSYM GetGeoInfoW}
GetGeoInfonull1713 function GetGeoInfo(Location: GEOID; GeoType: GEOTYPE; lpGeoData: LPTSTR;
1714 cchData: Integer; LangId: LANGID): Integer; stdcall;
1715 {$EXTERNALSYM GetGeoInfo}
1716
EnumSystemGeoIDnull1717 function EnumSystemGeoID(GeoClass: GEOCLASS; ParentGeoId: GEOID; lpGeoEnumProc: GEO_ENUMPROC): BOOL; stdcall;
1718 {$EXTERNALSYM EnumSystemGeoID}
1719
GetUserGeoIDnull1720 function GetUserGeoID(GeoClass: GEOCLASS): GEOID; stdcall;
1721 {$EXTERNALSYM GetUserGeoID}
1722
SetUserGeoIDnull1723 function SetUserGeoID(GeoId: GEOID): BOOL; stdcall;
1724 {$EXTERNALSYM SetUserGeoID}
1725
ConvertDefaultLocalenull1726 function ConvertDefaultLocale(Locale: LCID): LCID; stdcall;
1727 {$EXTERNALSYM ConvertDefaultLocale}
1728
GetThreadLocalenull1729 function GetThreadLocale: LCID; stdcall;
1730 {$EXTERNALSYM GetThreadLocale}
1731
SetThreadLocalenull1732 function SetThreadLocale(Locale: LCID): BOOL; stdcall;
1733 {$EXTERNALSYM SetThreadLocale}
1734
GetSystemDefaultUILanguagenull1735 function GetSystemDefaultUILanguage: LANGID; stdcall;
1736 {$EXTERNALSYM GetSystemDefaultUILanguage}
1737
GetUserDefaultUILanguagenull1738 function GetUserDefaultUILanguage: LANGID; stdcall;
1739 {$EXTERNALSYM GetUserDefaultUILanguage}
1740
GetSystemDefaultLangIDnull1741 function GetSystemDefaultLangID: LANGID; stdcall;
1742 {$EXTERNALSYM GetSystemDefaultLangID}
1743
GetUserDefaultLangIDnull1744 function GetUserDefaultLangID: LANGID; stdcall;
1745 {$EXTERNALSYM GetUserDefaultLangID}
1746
GetSystemDefaultLCIDnull1747 function GetSystemDefaultLCID: LCID; stdcall;
1748 {$EXTERNALSYM GetSystemDefaultLCID}
1749
GetUserDefaultLCIDnull1750 function GetUserDefaultLCID: LCID; stdcall;
1751 {$EXTERNALSYM GetUserDefaultLCID}
1752
1753 //
1754 // Locale Independent APIs.
1755 //
1756
GetStringTypeExAnull1757 function GetStringTypeExA(Locale: LCID; dwInfoType: DWORD; lpSrcStr: LPCSTR;
1758 cchSrc: Integer; lpCharType: LPWORD): BOOL; stdcall;
1759 {$EXTERNALSYM GetStringTypeExA}
GetStringTypeExWnull1760 function GetStringTypeExW(Locale: LCID; dwInfoType: DWORD; lpSrcStr: LPCWSTR;
1761 cchSrc: Integer; lpCharType: LPWORD): BOOL; stdcall;
1762 {$EXTERNALSYM GetStringTypeExW}
GetStringTypeExnull1763 function GetStringTypeEx(Locale: LCID; dwInfoType: DWORD; lpSrcStr: LPCTSTR;
1764 cchSrc: Integer; lpCharType: LPWORD): BOOL; stdcall;
1765 {$EXTERNALSYM GetStringTypeEx}
1766
1767 //
1768 // NOTE: The parameters for GetStringTypeA and GetStringTypeW are
1769 // NOT the same. The W version was shipped in NT 3.1. The
1770 // A version was then shipped in 16-bit OLE with the wrong
1771 // parameters (ported from Win95). To be compatible, we
1772 // must break the relationship between the A and W versions
callnull1773 // of GetStringType. There will be NO function call for the
1774 // generic GetStringType.
1775 //
1776 // GetStringTypeEx (above) should be used instead.
1777 //
1778
1779 function GetStringTypeA(Locale: LCID; dwInfoType: DWORD; lpSrcStr: LPCSTR;
1780 cchSrc: Integer; lpCharType: LPWORD): BOOL; stdcall;
1781 {$EXTERNALSYM GetStringTypeA}
GetStringTypeWnull1782 function GetStringTypeW(dwInfoType: DWORD; lpSrcStr: LPCWSTR; cchSrc: Integer;
1783 lpCharType: LPWORD): BOOL; stdcall;
1784 {$EXTERNALSYM GetStringTypeW}
1785
FoldStringAnull1786 function FoldStringA(dwMapFlags: DWORD; lpSrcStr: LPCSTR; cchSrc: Integer;
1787 lpDestStr: LPSTR; cchDest: Integer): Integer; stdcall;
1788 {$EXTERNALSYM FoldStringA}
FoldStringWnull1789 function FoldStringW(dwMapFlags: DWORD; lpSrcStr: LPCWSTR; cchSrc: Integer;
1790 lpDestStr: LPWSTR; cchDest: Integer): Integer; stdcall;
1791 {$EXTERNALSYM FoldStringW}
FoldStringnull1792 function FoldString(dwMapFlags: DWORD; lpSrcStr: LPCTSTR; cchSrc: Integer;
1793 lpDestStr: LPTSTR; cchDest: Integer): Integer; stdcall;
1794 {$EXTERNALSYM FoldString}
1795
EnumSystemLanguageGroupsAnull1796 function EnumSystemLanguageGroupsA(lpLanguageGroupEnumProc: LANGUAGEGROUP_ENUMPROCA;
1797 dwFlags: DWORD; lParam: LONG_PTR): BOOL; stdcall;
1798 {$EXTERNALSYM EnumSystemLanguageGroupsA}
EnumSystemLanguageGroupsWnull1799 function EnumSystemLanguageGroupsW(lpLanguageGroupEnumProc: LANGUAGEGROUP_ENUMPROCW;
1800 dwFlags: DWORD; lParam: LONG_PTR): BOOL; stdcall;
1801 {$EXTERNALSYM EnumSystemLanguageGroupsW}
EnumSystemLanguageGroupsnull1802 function EnumSystemLanguageGroups(lpLanguageGroupEnumProc: LANGUAGEGROUP_ENUMPROC;
1803 dwFlags: DWORD; lParam: LONG_PTR): BOOL; stdcall;
1804 {$EXTERNALSYM EnumSystemLanguageGroups}
1805
EnumLanguageGroupLocalesAnull1806 function EnumLanguageGroupLocalesA(lpLangGroupLocaleEnumProc: LANGGROUPLOCALE_ENUMPROCA;
1807 LanguageGroup: LGRPID; dwFlags: DWORD; lParam: LONG_PTR): BOOL; stdcall;
1808 {$EXTERNALSYM EnumLanguageGroupLocalesA}
EnumLanguageGroupLocalesWnull1809 function EnumLanguageGroupLocalesW(lpLangGroupLocaleEnumProc: LANGGROUPLOCALE_ENUMPROCW;
1810 LanguageGroup: LGRPID; dwFlags: DWORD; lParam: LONG_PTR): BOOL; stdcall;
1811 {$EXTERNALSYM EnumLanguageGroupLocalesW}
EnumLanguageGroupLocalesnull1812 function EnumLanguageGroupLocales(lpLangGroupLocaleEnumProc: LANGGROUPLOCALE_ENUMPROC;
1813 LanguageGroup: LGRPID; dwFlags: DWORD; lParam: LONG_PTR): BOOL; stdcall;
1814 {$EXTERNALSYM EnumLanguageGroupLocales}
1815
EnumUILanguagesAnull1816 function EnumUILanguagesA(lpUILanguageEnumProc: UILANGUAGE_ENUMPROCA;
1817 dwFlags: DWORD; lParam: LONG_PTR): BOOL; stdcall;
1818 {$EXTERNALSYM EnumUILanguagesA}
EnumUILanguagesWnull1819 function EnumUILanguagesW(lpUILanguageEnumProc: UILANGUAGE_ENUMPROCW;
1820 dwFlags: DWORD; lParam: LONG_PTR): BOOL; stdcall;
1821 {$EXTERNALSYM EnumUILanguagesW}
EnumUILanguagesnull1822 function EnumUILanguages(lpUILanguageEnumProc: UILANGUAGE_ENUMPROC;
1823 dwFlags: DWORD; lParam: LONG_PTR): BOOL; stdcall;
1824 {$EXTERNALSYM EnumUILanguages}
1825
EnumSystemLocalesAnull1826 function EnumSystemLocalesA(lpLocaleEnumProc: LOCALE_ENUMPROCA;
1827 dwFlags: DWORD): BOOL; stdcall;
1828 {$EXTERNALSYM EnumSystemLocalesA}
EnumSystemLocalesWnull1829 function EnumSystemLocalesW(lpLocaleEnumProc: LOCALE_ENUMPROCW;
1830 dwFlags: DWORD): BOOL; stdcall;
1831 {$EXTERNALSYM EnumSystemLocalesW}
EnumSystemLocalesnull1832 function EnumSystemLocales(lpLocaleEnumProc: LOCALE_ENUMPROC;
1833 dwFlags: DWORD): BOOL; stdcall;
1834 {$EXTERNALSYM EnumSystemLocales}
1835
EnumSystemCodePagesAnull1836 function EnumSystemCodePagesA(lpCodePageEnumProc: CODEPAGE_ENUMPROCA;
1837 dwFlags: DWORD): BOOL; stdcall;
1838 {$EXTERNALSYM EnumSystemCodePagesA}
EnumSystemCodePagesWnull1839 function EnumSystemCodePagesW(lpCodePageEnumProc: CODEPAGE_ENUMPROCW;
1840 dwFlags: DWORD): BOOL; stdcall;
1841 {$EXTERNALSYM EnumSystemCodePagesW}
EnumSystemCodePagesnull1842 function EnumSystemCodePages(lpCodePageEnumProc: CODEPAGE_ENUMPROC;
1843 dwFlags: DWORD): BOOL; stdcall;
1844 {$EXTERNALSYM EnumSystemCodePages}
1845
1846 {$ENDIF JWA_IMPLEMENTATIONSECTION}
1847
1848 {$IFNDEF JWA_OMIT_SECTIONS}
1849 implementation
1850 //uses ...
1851 {$ENDIF JWA_OMIT_SECTIONS}
1852
1853 {$IFNDEF JWA_INTERFACESECTION}
1854
1855 {$IFNDEF JWA_INCLUDEMODE}
1856 const
1857 kernel32 = 'kernel32.dll';
1858
1859 {$IFDEF UNICODE}
1860 AWSuffix = 'W';
1861 {$ELSE}
1862 AWSuffix = 'A';
1863 {$ENDIF UNICODE}
1864 {$ENDIF JWA_INCLUDEMODE}
1865
1866 {$IFDEF DYNAMIC_LINK}
1867
1868 var
1869 _IsValidCodePage: Pointer;
1870
IsValidCodePagenull1871 function IsValidCodePage;
1872 begin
1873 GetProcedureAddress(_IsValidCodePage, kernel32, 'IsValidCodePage');
1874 asm
1875 MOV ESP, EBP
1876 POP EBP
1877 JMP [_IsValidCodePage]
1878 end;
1879 end;
1880
1881 var
1882 _GetACP: Pointer;
1883
GetACPnull1884 function GetACP;
1885 begin
1886 GetProcedureAddress(_GetACP, kernel32, 'GetACP');
1887 asm
1888 MOV ESP, EBP
1889 POP EBP
1890 JMP [_GetACP]
1891 end;
1892 end;
1893
1894 var
1895 _GetOEMCP: Pointer;
1896
GetOEMCPnull1897 function GetOEMCP;
1898 begin
1899 GetProcedureAddress(_GetOEMCP, kernel32, 'GetOEMCP');
1900 asm
1901 MOV ESP, EBP
1902 POP EBP
1903 JMP [_GetOEMCP]
1904 end;
1905 end;
1906
1907 var
1908 _GetCPInfo: Pointer;
1909
GetCPInfonull1910 function GetCPInfo;
1911 begin
1912 GetProcedureAddress(_GetCPInfo, kernel32, 'GetCPInfo');
1913 asm
1914 MOV ESP, EBP
1915 POP EBP
1916 JMP [_GetCPInfo]
1917 end;
1918 end;
1919
1920 var
1921 _GetCPInfoExA: Pointer;
1922
GetCPInfoExAnull1923 function GetCPInfoExA;
1924 begin
1925 GetProcedureAddress(_GetCPInfoExA, kernel32, 'GetCPInfoExA');
1926 asm
1927 MOV ESP, EBP
1928 POP EBP
1929 JMP [_GetCPInfoExA]
1930 end;
1931 end;
1932
1933 var
1934 _GetCPInfoExW: Pointer;
1935
GetCPInfoExWnull1936 function GetCPInfoExW;
1937 begin
1938 GetProcedureAddress(_GetCPInfoExW, kernel32, 'GetCPInfoExW');
1939 asm
1940 MOV ESP, EBP
1941 POP EBP
1942 JMP [_GetCPInfoExW]
1943 end;
1944 end;
1945
1946 var
1947 _GetCPInfoEx: Pointer;
1948
GetCPInfoExnull1949 function GetCPInfoEx;
1950 begin
1951 GetProcedureAddress(_GetCPInfoEx, kernel32, 'GetCPInfoEx' + AWSuffix);
1952 asm
1953 MOV ESP, EBP
1954 POP EBP
1955 JMP [_GetCPInfoEx]
1956 end;
1957 end;
1958
1959 var
1960 _IsDBCSLeadByte: Pointer;
1961
IsDBCSLeadBytenull1962 function IsDBCSLeadByte;
1963 begin
1964 GetProcedureAddress(_IsDBCSLeadByte, kernel32, 'IsDBCSLeadByte');
1965 asm
1966 MOV ESP, EBP
1967 POP EBP
1968 JMP [_IsDBCSLeadByte]
1969 end;
1970 end;
1971
1972 var
1973 _IsDBCSLeadByteEx: Pointer;
1974
IsDBCSLeadByteExnull1975 function IsDBCSLeadByteEx;
1976 begin
1977 GetProcedureAddress(_IsDBCSLeadByteEx, kernel32, 'IsDBCSLeadByteEx');
1978 asm
1979 MOV ESP, EBP
1980 POP EBP
1981 JMP [_IsDBCSLeadByteEx]
1982 end;
1983 end;
1984
1985 var
1986 _MultiByteToWideChar: Pointer;
1987
MultiByteToWideCharnull1988 function MultiByteToWideChar;
1989 begin
1990 GetProcedureAddress(_MultiByteToWideChar, kernel32, 'MultiByteToWideChar');
1991 asm
1992 MOV ESP, EBP
1993 POP EBP
1994 JMP [_MultiByteToWideChar]
1995 end;
1996 end;
1997
1998 var
1999 _WideCharToMultiByte: Pointer;
2000
WideCharToMultiBytenull2001 function WideCharToMultiByte;
2002 begin
2003 GetProcedureAddress(_WideCharToMultiByte, kernel32, 'WideCharToMultiByte');
2004 asm
2005 MOV ESP, EBP
2006 POP EBP
2007 JMP [_WideCharToMultiByte]
2008 end;
2009 end;
2010
2011 var
2012 _CompareStringA: Pointer;
2013
CompareStringAnull2014 function CompareStringA;
2015 begin
2016 GetProcedureAddress(_CompareStringA, kernel32, 'CompareStringA');
2017 asm
2018 MOV ESP, EBP
2019 POP EBP
2020 JMP [_CompareStringA]
2021 end;
2022 end;
2023
2024 var
2025 _CompareStringW: Pointer;
2026
CompareStringWnull2027 function CompareStringW;
2028 begin
2029 GetProcedureAddress(_CompareStringW, kernel32, 'CompareStringW');
2030 asm
2031 MOV ESP, EBP
2032 POP EBP
2033 JMP [_CompareStringW]
2034 end;
2035 end;
2036
2037 var
2038 _CompareString: Pointer;
2039
CompareStringnull2040 function CompareString;
2041 begin
2042 GetProcedureAddress(_CompareString, kernel32, 'CompareString' + AWSuffix);
2043 asm
2044 MOV ESP, EBP
2045 POP EBP
2046 JMP [_CompareString]
2047 end;
2048 end;
2049
2050 var
2051 _LCMapStringA: Pointer;
2052
LCMapStringAnull2053 function LCMapStringA;
2054 begin
2055 GetProcedureAddress(_LCMapStringA, kernel32, 'LCMapStringA');
2056 asm
2057 MOV ESP, EBP
2058 POP EBP
2059 JMP [_LCMapStringA]
2060 end;
2061 end;
2062
2063 var
2064 _LCMapStringW: Pointer;
2065
LCMapStringWnull2066 function LCMapStringW;
2067 begin
2068 GetProcedureAddress(_LCMapStringW, kernel32, 'LCMapStringW');
2069 asm
2070 MOV ESP, EBP
2071 POP EBP
2072 JMP [_LCMapStringW]
2073 end;
2074 end;
2075
2076 var
2077 _LCMapString: Pointer;
2078
LCMapStringnull2079 function LCMapString;
2080 begin
2081 GetProcedureAddress(_LCMapString, kernel32, 'LCMapString' + AWSuffix);
2082 asm
2083 MOV ESP, EBP
2084 POP EBP
2085 JMP [_LCMapString]
2086 end;
2087 end;
2088
2089 var
2090 _GetLocaleInfoA: Pointer;
2091
GetLocaleInfoAnull2092 function GetLocaleInfoA;
2093 begin
2094 GetProcedureAddress(_GetLocaleInfoA, kernel32, 'GetLocaleInfoA');
2095 asm
2096 MOV ESP, EBP
2097 POP EBP
2098 JMP [_GetLocaleInfoA]
2099 end;
2100 end;
2101
2102 var
2103 _GetLocaleInfoW: Pointer;
2104
GetLocaleInfoWnull2105 function GetLocaleInfoW;
2106 begin
2107 GetProcedureAddress(_GetLocaleInfoW, kernel32, 'GetLocaleInfoW');
2108 asm
2109 MOV ESP, EBP
2110 POP EBP
2111 JMP [_GetLocaleInfoW]
2112 end;
2113 end;
2114
2115 var
2116 _GetLocaleInfo: Pointer;
2117
GetLocaleInfonull2118 function GetLocaleInfo;
2119 begin
2120 GetProcedureAddress(_GetLocaleInfo, kernel32, 'GetLocaleInfo' + AWSuffix);
2121 asm
2122 MOV ESP, EBP
2123 POP EBP
2124 JMP [_GetLocaleInfo]
2125 end;
2126 end;
2127
2128 var
2129 _SetLocaleInfoA: Pointer;
2130
SetLocaleInfoAnull2131 function SetLocaleInfoA;
2132 begin
2133 GetProcedureAddress(_SetLocaleInfoA, kernel32, 'SetLocaleInfoA');
2134 asm
2135 MOV ESP, EBP
2136 POP EBP
2137 JMP [_SetLocaleInfoA]
2138 end;
2139 end;
2140
2141 var
2142 _SetLocaleInfoW: Pointer;
2143
SetLocaleInfoWnull2144 function SetLocaleInfoW;
2145 begin
2146 GetProcedureAddress(_SetLocaleInfoW, kernel32, 'SetLocaleInfoW');
2147 asm
2148 MOV ESP, EBP
2149 POP EBP
2150 JMP [_SetLocaleInfoW]
2151 end;
2152 end;
2153
2154 var
2155 _SetLocaleInfo: Pointer;
2156
SetLocaleInfonull2157 function SetLocaleInfo;
2158 begin
2159 GetProcedureAddress(_SetLocaleInfo, kernel32, 'SetLocaleInfo' + AWSuffix);
2160 asm
2161 MOV ESP, EBP
2162 POP EBP
2163 JMP [_SetLocaleInfo]
2164 end;
2165 end;
2166
2167 var
2168 _GetCalendarInfoA: Pointer;
2169
GetCalendarInfoAnull2170 function GetCalendarInfoA;
2171 begin
2172 GetProcedureAddress(_GetCalendarInfoA, kernel32, 'GetCalendarInfoA');
2173 asm
2174 MOV ESP, EBP
2175 POP EBP
2176 JMP [_GetCalendarInfoA]
2177 end;
2178 end;
2179
2180 var
2181 _GetCalendarInfoW: Pointer;
2182
GetCalendarInfoWnull2183 function GetCalendarInfoW;
2184 begin
2185 GetProcedureAddress(_GetCalendarInfoW, kernel32, 'GetCalendarInfoW');
2186 asm
2187 MOV ESP, EBP
2188 POP EBP
2189 JMP [_GetCalendarInfoW]
2190 end;
2191 end;
2192
2193 var
2194 _GetCalendarInfo: Pointer;
2195
GetCalendarInfonull2196 function GetCalendarInfo;
2197 begin
2198 GetProcedureAddress(_GetCalendarInfo, kernel32, 'GetCalendarInfo' + AWSuffix);
2199 asm
2200 MOV ESP, EBP
2201 POP EBP
2202 JMP [_GetCalendarInfo]
2203 end;
2204 end;
2205
2206 var
2207 _SetCalendarInfoA: Pointer;
2208
SetCalendarInfoAnull2209 function SetCalendarInfoA;
2210 begin
2211 GetProcedureAddress(_SetCalendarInfoA, kernel32, 'SetCalendarInfoA');
2212 asm
2213 MOV ESP, EBP
2214 POP EBP
2215 JMP [_SetCalendarInfoA]
2216 end;
2217 end;
2218
2219 var
2220 _SetCalendarInfoW: Pointer;
2221
SetCalendarInfoWnull2222 function SetCalendarInfoW;
2223 begin
2224 GetProcedureAddress(_SetCalendarInfoW, kernel32, 'SetCalendarInfoW');
2225 asm
2226 MOV ESP, EBP
2227 POP EBP
2228 JMP [_SetCalendarInfoW]
2229 end;
2230 end;
2231
2232 var
2233 _SetCalendarInfo: Pointer;
2234
SetCalendarInfonull2235 function SetCalendarInfo;
2236 begin
2237 GetProcedureAddress(_SetCalendarInfo, kernel32, 'SetCalendarInfo' + AWSuffix);
2238 asm
2239 MOV ESP, EBP
2240 POP EBP
2241 JMP [_SetCalendarInfo]
2242 end;
2243 end;
2244
2245 var
2246 _GetTimeFormatA: Pointer;
2247
GetTimeFormatAnull2248 function GetTimeFormatA;
2249 begin
2250 GetProcedureAddress(_GetTimeFormatA, kernel32, 'GetTimeFormatA');
2251 asm
2252 MOV ESP, EBP
2253 POP EBP
2254 JMP [_GetTimeFormatA]
2255 end;
2256 end;
2257
2258 var
2259 _GetTimeFormatW: Pointer;
2260
GetTimeFormatWnull2261 function GetTimeFormatW;
2262 begin
2263 GetProcedureAddress(_GetTimeFormatW, kernel32, 'GetTimeFormatW');
2264 asm
2265 MOV ESP, EBP
2266 POP EBP
2267 JMP [_GetTimeFormatW]
2268 end;
2269 end;
2270
2271 var
2272 _GetTimeFormat: Pointer;
2273
GetTimeFormatnull2274 function GetTimeFormat;
2275 begin
2276 GetProcedureAddress(_GetTimeFormat, kernel32, 'GetTimeFormat' + AWSuffix);
2277 asm
2278 MOV ESP, EBP
2279 POP EBP
2280 JMP [_GetTimeFormat]
2281 end;
2282 end;
2283
2284 var
2285 _GetDateFormatA: Pointer;
2286
GetDateFormatAnull2287 function GetDateFormatA;
2288 begin
2289 GetProcedureAddress(_GetDateFormatA, kernel32, 'GetDateFormatA');
2290 asm
2291 MOV ESP, EBP
2292 POP EBP
2293 JMP [_GetDateFormatA]
2294 end;
2295 end;
2296
2297 var
2298 _GetDateFormatW: Pointer;
2299
GetDateFormatWnull2300 function GetDateFormatW;
2301 begin
2302 GetProcedureAddress(_GetDateFormatW, kernel32, 'GetDateFormatW');
2303 asm
2304 MOV ESP, EBP
2305 POP EBP
2306 JMP [_GetDateFormatW]
2307 end;
2308 end;
2309
2310 var
2311 _GetDateFormat: Pointer;
2312
GetDateFormatnull2313 function GetDateFormat;
2314 begin
2315 GetProcedureAddress(_GetDateFormat, kernel32, 'GetDateFormat' + AWSuffix);
2316 asm
2317 MOV ESP, EBP
2318 POP EBP
2319 JMP [_GetDateFormat]
2320 end;
2321 end;
2322
2323 var
2324 _GetNumberFormatA: Pointer;
2325
GetNumberFormatAnull2326 function GetNumberFormatA;
2327 begin
2328 GetProcedureAddress(_GetNumberFormatA, kernel32, 'GetNumberFormatA');
2329 asm
2330 MOV ESP, EBP
2331 POP EBP
2332 JMP [_GetNumberFormatA]
2333 end;
2334 end;
2335
2336 var
2337 _GetNumberFormatW: Pointer;
2338
GetNumberFormatWnull2339 function GetNumberFormatW;
2340 begin
2341 GetProcedureAddress(_GetNumberFormatW, kernel32, 'GetNumberFormatW');
2342 asm
2343 MOV ESP, EBP
2344 POP EBP
2345 JMP [_GetNumberFormatW]
2346 end;
2347 end;
2348
2349 var
2350 _GetNumberFormat: Pointer;
2351
GetNumberFormatnull2352 function GetNumberFormat;
2353 begin
2354 GetProcedureAddress(_GetNumberFormat, kernel32, 'GetNumberFormat' + AWSuffix);
2355 asm
2356 MOV ESP, EBP
2357 POP EBP
2358 JMP [_GetNumberFormat]
2359 end;
2360 end;
2361
2362 var
2363 _GetCurrencyFormatA: Pointer;
2364
GetCurrencyFormatAnull2365 function GetCurrencyFormatA;
2366 begin
2367 GetProcedureAddress(_GetCurrencyFormatA, kernel32, 'GetCurrencyFormatA');
2368 asm
2369 MOV ESP, EBP
2370 POP EBP
2371 JMP [_GetCurrencyFormatA]
2372 end;
2373 end;
2374
2375 var
2376 _GetCurrencyFormatW: Pointer;
2377
GetCurrencyFormatWnull2378 function GetCurrencyFormatW;
2379 begin
2380 GetProcedureAddress(_GetCurrencyFormatW, kernel32, 'GetCurrencyFormatW');
2381 asm
2382 MOV ESP, EBP
2383 POP EBP
2384 JMP [_GetCurrencyFormatW]
2385 end;
2386 end;
2387
2388 var
2389 _GetCurrencyFormat: Pointer;
2390
GetCurrencyFormatnull2391 function GetCurrencyFormat;
2392 begin
2393 GetProcedureAddress(_GetCurrencyFormat, kernel32, 'GetCurrencyFormat' + AWSuffix);
2394 asm
2395 MOV ESP, EBP
2396 POP EBP
2397 JMP [_GetCurrencyFormat]
2398 end;
2399 end;
2400
2401 var
2402 _EnumCalendarInfoA: Pointer;
2403
EnumCalendarInfoAnull2404 function EnumCalendarInfoA;
2405 begin
2406 GetProcedureAddress(_EnumCalendarInfoA, kernel32, 'EnumCalendarInfoA');
2407 asm
2408 MOV ESP, EBP
2409 POP EBP
2410 JMP [_EnumCalendarInfoA]
2411 end;
2412 end;
2413
2414 var
2415 _EnumCalendarInfoW: Pointer;
2416
EnumCalendarInfoWnull2417 function EnumCalendarInfoW;
2418 begin
2419 GetProcedureAddress(_EnumCalendarInfoW, kernel32, 'EnumCalendarInfoW');
2420 asm
2421 MOV ESP, EBP
2422 POP EBP
2423 JMP [_EnumCalendarInfoW]
2424 end;
2425 end;
2426
2427 var
2428 _EnumCalendarInfo: Pointer;
2429
EnumCalendarInfonull2430 function EnumCalendarInfo;
2431 begin
2432 GetProcedureAddress(_EnumCalendarInfo, kernel32, 'EnumCalendarInfo' + AWSuffix);
2433 asm
2434 MOV ESP, EBP
2435 POP EBP
2436 JMP [_EnumCalendarInfo]
2437 end;
2438 end;
2439
2440 var
2441 _EnumCalendarInfoExA: Pointer;
2442
EnumCalendarInfoExAnull2443 function EnumCalendarInfoExA;
2444 begin
2445 GetProcedureAddress(_EnumCalendarInfoExA, kernel32, 'EnumCalendarInfoExA');
2446 asm
2447 MOV ESP, EBP
2448 POP EBP
2449 JMP [_EnumCalendarInfoExA]
2450 end;
2451 end;
2452
2453 var
2454 _EnumCalendarInfoExW: Pointer;
2455
EnumCalendarInfoExWnull2456 function EnumCalendarInfoExW;
2457 begin
2458 GetProcedureAddress(_EnumCalendarInfoExW, kernel32, 'EnumCalendarInfoExW');
2459 asm
2460 MOV ESP, EBP
2461 POP EBP
2462 JMP [_EnumCalendarInfoExW]
2463 end;
2464 end;
2465
2466 var
2467 _EnumCalendarInfoEx: Pointer;
2468
EnumCalendarInfoExnull2469 function EnumCalendarInfoEx;
2470 begin
2471 GetProcedureAddress(_EnumCalendarInfoEx, kernel32, 'EnumCalendarInfoEx' + AWSuffix);
2472 asm
2473 MOV ESP, EBP
2474 POP EBP
2475 JMP [_EnumCalendarInfoEx]
2476 end;
2477 end;
2478
2479 var
2480 _EnumTimeFormatsA: Pointer;
2481
EnumTimeFormatsAnull2482 function EnumTimeFormatsA;
2483 begin
2484 GetProcedureAddress(_EnumTimeFormatsA, kernel32, 'EnumTimeFormatsA');
2485 asm
2486 MOV ESP, EBP
2487 POP EBP
2488 JMP [_EnumTimeFormatsA]
2489 end;
2490 end;
2491
2492 var
2493 _EnumTimeFormatsW: Pointer;
2494
EnumTimeFormatsWnull2495 function EnumTimeFormatsW;
2496 begin
2497 GetProcedureAddress(_EnumTimeFormatsW, kernel32, 'EnumTimeFormatsW');
2498 asm
2499 MOV ESP, EBP
2500 POP EBP
2501 JMP [_EnumTimeFormatsW]
2502 end;
2503 end;
2504
2505 var
2506 _EnumTimeFormats: Pointer;
2507
EnumTimeFormatsnull2508 function EnumTimeFormats;
2509 begin
2510 GetProcedureAddress(_EnumTimeFormats, kernel32, 'EnumTimeFormats' + AWSuffix);
2511 asm
2512 MOV ESP, EBP
2513 POP EBP
2514 JMP [_EnumTimeFormats]
2515 end;
2516 end;
2517
2518 var
2519 _EnumDateFormatsA: Pointer;
2520
EnumDateFormatsAnull2521 function EnumDateFormatsA;
2522 begin
2523 GetProcedureAddress(_EnumDateFormatsA, kernel32, 'EnumDateFormatsA');
2524 asm
2525 MOV ESP, EBP
2526 POP EBP
2527 JMP [_EnumDateFormatsA]
2528 end;
2529 end;
2530
2531 var
2532 _EnumDateFormatsW: Pointer;
2533
EnumDateFormatsWnull2534 function EnumDateFormatsW;
2535 begin
2536 GetProcedureAddress(_EnumDateFormatsW, kernel32, 'EnumDateFormatsW');
2537 asm
2538 MOV ESP, EBP
2539 POP EBP
2540 JMP [_EnumDateFormatsW]
2541 end;
2542 end;
2543
2544 var
2545 _EnumDateFormats: Pointer;
2546
EnumDateFormatsnull2547 function EnumDateFormats;
2548 begin
2549 GetProcedureAddress(_EnumDateFormats, kernel32, 'EnumDateFormats' + AWSuffix);
2550 asm
2551 MOV ESP, EBP
2552 POP EBP
2553 JMP [_EnumDateFormats]
2554 end;
2555 end;
2556
2557 var
2558 _EnumDateFormatsExA: Pointer;
2559
EnumDateFormatsExAnull2560 function EnumDateFormatsExA;
2561 begin
2562 GetProcedureAddress(_EnumDateFormatsExA, kernel32, 'EnumDateFormatsExA');
2563 asm
2564 MOV ESP, EBP
2565 POP EBP
2566 JMP [_EnumDateFormatsExA]
2567 end;
2568 end;
2569
2570 var
2571 _EnumDateFormatsExW: Pointer;
2572
EnumDateFormatsExWnull2573 function EnumDateFormatsExW;
2574 begin
2575 GetProcedureAddress(_EnumDateFormatsExW, kernel32, 'EnumDateFormatsExW');
2576 asm
2577 MOV ESP, EBP
2578 POP EBP
2579 JMP [_EnumDateFormatsExW]
2580 end;
2581 end;
2582
2583 var
2584 _EnumDateFormatsEx: Pointer;
2585
EnumDateFormatsExnull2586 function EnumDateFormatsEx;
2587 begin
2588 GetProcedureAddress(_EnumDateFormatsEx, kernel32, 'EnumDateFormatsEx' + AWSuffix);
2589 asm
2590 MOV ESP, EBP
2591 POP EBP
2592 JMP [_EnumDateFormatsEx]
2593 end;
2594 end;
2595
2596 var
2597 _IsValidLanguageGroup: Pointer;
2598
IsValidLanguageGroupnull2599 function IsValidLanguageGroup;
2600 begin
2601 GetProcedureAddress(_IsValidLanguageGroup, kernel32, 'IsValidLanguageGroup');
2602 asm
2603 MOV ESP, EBP
2604 POP EBP
2605 JMP [_IsValidLanguageGroup]
2606 end;
2607 end;
2608
2609 var
2610 _GetNLSVersion: Pointer;
2611
GetNLSVersionnull2612 function GetNLSVersion;
2613 begin
2614 GetProcedureAddress(_GetNLSVersion, kernel32, 'GetNLSVersion');
2615 asm
2616 MOV ESP, EBP
2617 POP EBP
2618 JMP [_GetNLSVersion]
2619 end;
2620 end;
2621
2622 var
2623 _IsNLSDefinedString: Pointer;
2624
IsNLSDefinedStringnull2625 function IsNLSDefinedString;
2626 begin
2627 GetProcedureAddress(_IsNLSDefinedString, kernel32, 'IsNLSDefinedString');
2628 asm
2629 MOV ESP, EBP
2630 POP EBP
2631 JMP [_IsNLSDefinedString]
2632 end;
2633 end;
2634
2635 var
2636 _IsValidLocale: Pointer;
2637
IsValidLocalenull2638 function IsValidLocale;
2639 begin
2640 GetProcedureAddress(_IsValidLocale, kernel32, 'IsValidLocale');
2641 asm
2642 MOV ESP, EBP
2643 POP EBP
2644 JMP [_IsValidLocale]
2645 end;
2646 end;
2647
2648 var
2649 _GetGeoInfoA: Pointer;
2650
GetGeoInfoAnull2651 function GetGeoInfoA;
2652 begin
2653 GetProcedureAddress(_GetGeoInfoA, kernel32, 'GetGeoInfoA');
2654 asm
2655 MOV ESP, EBP
2656 POP EBP
2657 JMP [_GetGeoInfoA]
2658 end;
2659 end;
2660
2661 var
2662 _GetGeoInfoW: Pointer;
2663
GetGeoInfoWnull2664 function GetGeoInfoW;
2665 begin
2666 GetProcedureAddress(_GetGeoInfoW, kernel32, 'GetGeoInfoW');
2667 asm
2668 MOV ESP, EBP
2669 POP EBP
2670 JMP [_GetGeoInfoW]
2671 end;
2672 end;
2673
2674 var
2675 _GetGeoInfo: Pointer;
2676
GetGeoInfonull2677 function GetGeoInfo;
2678 begin
2679 GetProcedureAddress(_GetGeoInfo, kernel32, 'GetGeoInfo');
2680 asm
2681 MOV ESP, EBP
2682 POP EBP
2683 JMP [_GetGeoInfo]
2684 end;
2685 end;
2686
2687 var
2688 _EnumSystemGeoID: Pointer;
2689
EnumSystemGeoIDnull2690 function EnumSystemGeoID;
2691 begin
2692 GetProcedureAddress(_EnumSystemGeoID, kernel32, 'EnumSystemGeoID');
2693 asm
2694 MOV ESP, EBP
2695 POP EBP
2696 JMP [_EnumSystemGeoID]
2697 end;
2698 end;
2699
2700 var
2701 _GetUserGeoID: Pointer;
2702
GetUserGeoIDnull2703 function GetUserGeoID;
2704 begin
2705 GetProcedureAddress(_GetUserGeoID, kernel32, 'GetUserGeoID');
2706 asm
2707 MOV ESP, EBP
2708 POP EBP
2709 JMP [_GetUserGeoID]
2710 end;
2711 end;
2712
2713 var
2714 _SetUserGeoID: Pointer;
2715
SetUserGeoIDnull2716 function SetUserGeoID;
2717 begin
2718 GetProcedureAddress(_SetUserGeoID, kernel32, 'SetUserGeoID');
2719 asm
2720 MOV ESP, EBP
2721 POP EBP
2722 JMP [_SetUserGeoID]
2723 end;
2724 end;
2725
2726 var
2727 _ConvertDefaultLocale: Pointer;
2728
ConvertDefaultLocalenull2729 function ConvertDefaultLocale;
2730 begin
2731 GetProcedureAddress(_ConvertDefaultLocale, kernel32, 'ConvertDefaultLocale');
2732 asm
2733 MOV ESP, EBP
2734 POP EBP
2735 JMP [_ConvertDefaultLocale]
2736 end;
2737 end;
2738
2739 var
2740 _GetThreadLocale: Pointer;
2741
GetThreadLocalenull2742 function GetThreadLocale;
2743 begin
2744 GetProcedureAddress(_GetThreadLocale, kernel32, 'GetThreadLocale');
2745 asm
2746 MOV ESP, EBP
2747 POP EBP
2748 JMP [_GetThreadLocale]
2749 end;
2750 end;
2751
2752 var
2753 _SetThreadLocale: Pointer;
2754
SetThreadLocalenull2755 function SetThreadLocale;
2756 begin
2757 GetProcedureAddress(_SetThreadLocale, kernel32, 'SetThreadLocale');
2758 asm
2759 MOV ESP, EBP
2760 POP EBP
2761 JMP [_SetThreadLocale]
2762 end;
2763 end;
2764
2765 var
2766 _GetSystemDefaultUILanguage: Pointer;
2767
GetSystemDefaultUILanguagenull2768 function GetSystemDefaultUILanguage;
2769 begin
2770 GetProcedureAddress(_GetSystemDefaultUILanguage, kernel32, 'GetSystemDefaultUILanguage');
2771 asm
2772 MOV ESP, EBP
2773 POP EBP
2774 JMP [_GetSystemDefaultUILanguage]
2775 end;
2776 end;
2777
2778 var
2779 _GetUserDefaultUILanguage: Pointer;
2780
GetUserDefaultUILanguagenull2781 function GetUserDefaultUILanguage;
2782 begin
2783 GetProcedureAddress(_GetUserDefaultUILanguage, kernel32, 'GetUserDefaultUILanguage');
2784 asm
2785 MOV ESP, EBP
2786 POP EBP
2787 JMP [_GetUserDefaultUILanguage]
2788 end;
2789 end;
2790
2791 var
2792 _GetSystemDefaultLangID: Pointer;
2793
GetSystemDefaultLangIDnull2794 function GetSystemDefaultLangID;
2795 begin
2796 GetProcedureAddress(_GetSystemDefaultLangID, kernel32, 'GetSystemDefaultLangID');
2797 asm
2798 MOV ESP, EBP
2799 POP EBP
2800 JMP [_GetSystemDefaultLangID]
2801 end;
2802 end;
2803
2804 var
2805 _GetUserDefaultLangID: Pointer;
2806
GetUserDefaultLangIDnull2807 function GetUserDefaultLangID;
2808 begin
2809 GetProcedureAddress(_GetUserDefaultLangID, kernel32, 'GetUserDefaultLangID');
2810 asm
2811 MOV ESP, EBP
2812 POP EBP
2813 JMP [_GetUserDefaultLangID]
2814 end;
2815 end;
2816
2817 var
2818 _GetSystemDefaultLCID: Pointer;
2819
GetSystemDefaultLCIDnull2820 function GetSystemDefaultLCID;
2821 begin
2822 GetProcedureAddress(_GetSystemDefaultLCID, kernel32, 'GetSystemDefaultLCID');
2823 asm
2824 MOV ESP, EBP
2825 POP EBP
2826 JMP [_GetSystemDefaultLCID]
2827 end;
2828 end;
2829
2830 var
2831 _GetUserDefaultLCID: Pointer;
2832
GetUserDefaultLCIDnull2833 function GetUserDefaultLCID;
2834 begin
2835 GetProcedureAddress(_GetUserDefaultLCID, kernel32, 'GetUserDefaultLCID');
2836 asm
2837 MOV ESP, EBP
2838 POP EBP
2839 JMP [_GetUserDefaultLCID]
2840 end;
2841 end;
2842
2843 var
2844 _GetStringTypeExA: Pointer;
2845
GetStringTypeExAnull2846 function GetStringTypeExA;
2847 begin
2848 GetProcedureAddress(_GetStringTypeExA, kernel32, 'GetStringTypeExA');
2849 asm
2850 MOV ESP, EBP
2851 POP EBP
2852 JMP [_GetStringTypeExA]
2853 end;
2854 end;
2855
2856 var
2857 _GetStringTypeExW: Pointer;
2858
GetStringTypeExWnull2859 function GetStringTypeExW;
2860 begin
2861 GetProcedureAddress(_GetStringTypeExW, kernel32, 'GetStringTypeExW');
2862 asm
2863 MOV ESP, EBP
2864 POP EBP
2865 JMP [_GetStringTypeExW]
2866 end;
2867 end;
2868
2869 var
2870 _GetStringTypeEx: Pointer;
2871
GetStringTypeExnull2872 function GetStringTypeEx;
2873 begin
2874 GetProcedureAddress(_GetStringTypeEx, kernel32, 'GetStringTypeEx' + AWSuffix);
2875 asm
2876 MOV ESP, EBP
2877 POP EBP
2878 JMP [_GetStringTypeEx]
2879 end;
2880 end;
2881
2882 var
2883 _GetStringTypeA: Pointer;
2884
GetStringTypeAnull2885 function GetStringTypeA;
2886 begin
2887 GetProcedureAddress(_GetStringTypeA, kernel32, 'GetStringTypeA');
2888 asm
2889 MOV ESP, EBP
2890 POP EBP
2891 JMP [_GetStringTypeA]
2892 end;
2893 end;
2894
2895 var
2896 _GetStringTypeW: Pointer;
2897
GetStringTypeWnull2898 function GetStringTypeW;
2899 begin
2900 GetProcedureAddress(_GetStringTypeW, kernel32, 'GetStringTypeW');
2901 asm
2902 MOV ESP, EBP
2903 POP EBP
2904 JMP [_GetStringTypeW]
2905 end;
2906 end;
2907
2908 var
2909 _FoldStringA: Pointer;
2910
FoldStringAnull2911 function FoldStringA;
2912 begin
2913 GetProcedureAddress(_FoldStringA, kernel32, 'FoldStringA');
2914 asm
2915 MOV ESP, EBP
2916 POP EBP
2917 JMP [_FoldStringA]
2918 end;
2919 end;
2920
2921 var
2922 _FoldStringW: Pointer;
2923
FoldStringWnull2924 function FoldStringW;
2925 begin
2926 GetProcedureAddress(_FoldStringW, kernel32, 'FoldStringW');
2927 asm
2928 MOV ESP, EBP
2929 POP EBP
2930 JMP [_FoldStringW]
2931 end;
2932 end;
2933
2934 var
2935 _FoldString: Pointer;
2936
FoldStringnull2937 function FoldString;
2938 begin
2939 GetProcedureAddress(_FoldString, kernel32, 'FoldString' + AWSuffix);
2940 asm
2941 MOV ESP, EBP
2942 POP EBP
2943 JMP [_FoldString]
2944 end;
2945 end;
2946
2947 var
2948 _EnumSystemLanguageGroupsA: Pointer;
2949
EnumSystemLanguageGroupsAnull2950 function EnumSystemLanguageGroupsA;
2951 begin
2952 GetProcedureAddress(_EnumSystemLanguageGroupsA, kernel32, 'EnumSystemLanguageGroupsA');
2953 asm
2954 MOV ESP, EBP
2955 POP EBP
2956 JMP [_EnumSystemLanguageGroupsA]
2957 end;
2958 end;
2959
2960 var
2961 _EnumSystemLanguageGroupsW: Pointer;
2962
EnumSystemLanguageGroupsWnull2963 function EnumSystemLanguageGroupsW;
2964 begin
2965 GetProcedureAddress(_EnumSystemLanguageGroupsW, kernel32, 'EnumSystemLanguageGroupsW');
2966 asm
2967 MOV ESP, EBP
2968 POP EBP
2969 JMP [_EnumSystemLanguageGroupsW]
2970 end;
2971 end;
2972
2973 var
2974 _EnumSystemLanguageGroups: Pointer;
2975
EnumSystemLanguageGroupsnull2976 function EnumSystemLanguageGroups;
2977 begin
2978 GetProcedureAddress(_EnumSystemLanguageGroups, kernel32, 'EnumSystemLanguageGroups' + AWSuffix);
2979 asm
2980 MOV ESP, EBP
2981 POP EBP
2982 JMP [_EnumSystemLanguageGroups]
2983 end;
2984 end;
2985
2986 var
2987 _EnumLanguageGroupLocalesA: Pointer;
2988
EnumLanguageGroupLocalesAnull2989 function EnumLanguageGroupLocalesA;
2990 begin
2991 GetProcedureAddress(_EnumLanguageGroupLocalesA, kernel32, 'EnumLanguageGroupLocalesA');
2992 asm
2993 MOV ESP, EBP
2994 POP EBP
2995 JMP [_EnumLanguageGroupLocalesA]
2996 end;
2997 end;
2998
2999 var
3000 _EnumLanguageGroupLocalesW: Pointer;
3001
EnumLanguageGroupLocalesWnull3002 function EnumLanguageGroupLocalesW;
3003 begin
3004 GetProcedureAddress(_EnumLanguageGroupLocalesW, kernel32, 'EnumLanguageGroupLocalesW');
3005 asm
3006 MOV ESP, EBP
3007 POP EBP
3008 JMP [_EnumLanguageGroupLocalesW]
3009 end;
3010 end;
3011
3012 var
3013 _EnumLanguageGroupLocales: Pointer;
3014
EnumLanguageGroupLocalesnull3015 function EnumLanguageGroupLocales;
3016 begin
3017 GetProcedureAddress(_EnumLanguageGroupLocales, kernel32, 'EnumLanguageGroupLocales' + AWSuffix);
3018 asm
3019 MOV ESP, EBP
3020 POP EBP
3021 JMP [_EnumLanguageGroupLocales]
3022 end;
3023 end;
3024
3025 var
3026 _EnumUILanguagesA: Pointer;
3027
EnumUILanguagesAnull3028 function EnumUILanguagesA;
3029 begin
3030 GetProcedureAddress(_EnumUILanguagesA, kernel32, 'EnumUILanguagesA');
3031 asm
3032 MOV ESP, EBP
3033 POP EBP
3034 JMP [_EnumUILanguagesA]
3035 end;
3036 end;
3037
3038 var
3039 _EnumUILanguagesW: Pointer;
3040
EnumUILanguagesWnull3041 function EnumUILanguagesW;
3042 begin
3043 GetProcedureAddress(_EnumUILanguagesW, kernel32, 'EnumUILanguagesW');
3044 asm
3045 MOV ESP, EBP
3046 POP EBP
3047 JMP [_EnumUILanguagesW]
3048 end;
3049 end;
3050
3051 var
3052 _EnumUILanguages: Pointer;
3053
EnumUILanguagesnull3054 function EnumUILanguages;
3055 begin
3056 GetProcedureAddress(_EnumUILanguages, kernel32, 'EnumUILanguages' + AWSuffix);
3057 asm
3058 MOV ESP, EBP
3059 POP EBP
3060 JMP [_EnumUILanguages]
3061 end;
3062 end;
3063
3064 var
3065 _EnumSystemLocalesA: Pointer;
3066
EnumSystemLocalesAnull3067 function EnumSystemLocalesA;
3068 begin
3069 GetProcedureAddress(_EnumSystemLocalesA, kernel32, 'EnumSystemLocalesA');
3070 asm
3071 MOV ESP, EBP
3072 POP EBP
3073 JMP [_EnumSystemLocalesA]
3074 end;
3075 end;
3076
3077 var
3078 _EnumSystemLocalesW: Pointer;
3079
EnumSystemLocalesWnull3080 function EnumSystemLocalesW;
3081 begin
3082 GetProcedureAddress(_EnumSystemLocalesW, kernel32, 'EnumSystemLocalesW');
3083 asm
3084 MOV ESP, EBP
3085 POP EBP
3086 JMP [_EnumSystemLocalesW]
3087 end;
3088 end;
3089
3090 var
3091 _EnumSystemLocales: Pointer;
3092
EnumSystemLocalesnull3093 function EnumSystemLocales;
3094 begin
3095 GetProcedureAddress(_EnumSystemLocales, kernel32, 'EnumSystemLocales' + AWSuffix);
3096 asm
3097 MOV ESP, EBP
3098 POP EBP
3099 JMP [_EnumSystemLocales]
3100 end;
3101 end;
3102
3103 var
3104 _EnumSystemCodePagesA: Pointer;
3105
EnumSystemCodePagesAnull3106 function EnumSystemCodePagesA;
3107 begin
3108 GetProcedureAddress(_EnumSystemCodePagesA, kernel32, 'EnumSystemCodePagesA');
3109 asm
3110 MOV ESP, EBP
3111 POP EBP
3112 JMP [_EnumSystemCodePagesA]
3113 end;
3114 end;
3115
3116 var
3117 _EnumSystemCodePagesW: Pointer;
3118
EnumSystemCodePagesWnull3119 function EnumSystemCodePagesW;
3120 begin
3121 GetProcedureAddress(_EnumSystemCodePagesW, kernel32, 'EnumSystemCodePagesW');
3122 asm
3123 MOV ESP, EBP
3124 POP EBP
3125 JMP [_EnumSystemCodePagesW]
3126 end;
3127 end;
3128
3129 var
3130 _EnumSystemCodePages: Pointer;
3131
EnumSystemCodePagesnull3132 function EnumSystemCodePages;
3133 begin
3134 GetProcedureAddress(_EnumSystemCodePages, kernel32, 'EnumSystemCodePages' + AWSuffix);
3135 asm
3136 MOV ESP, EBP
3137 POP EBP
3138 JMP [_EnumSystemCodePages]
3139 end;
3140 end;
3141
3142 {$ELSE}
3143
IsValidCodePagenull3144 function IsValidCodePage; external kernel32 name 'IsValidCodePage';
GetACPnull3145 function GetACP; external kernel32 name 'GetACP';
GetOEMCPnull3146 function GetOEMCP; external kernel32 name 'GetOEMCP';
GetCPInfonull3147 function GetCPInfo; external kernel32 name 'GetCPInfo';
GetCPInfoExAnull3148 function GetCPInfoExA; external kernel32 name 'GetCPInfoExA';
GetCPInfoExWnull3149 function GetCPInfoExW; external kernel32 name 'GetCPInfoExW';
GetCPInfoExnull3150 function GetCPInfoEx; external kernel32 name 'GetCPInfoEx' + AWSuffix;
IsDBCSLeadBytenull3151 function IsDBCSLeadByte; external kernel32 name 'IsDBCSLeadByte';
IsDBCSLeadByteExnull3152 function IsDBCSLeadByteEx; external kernel32 name 'IsDBCSLeadByteEx';
MultiByteToWideCharnull3153 function MultiByteToWideChar; external kernel32 name 'MultiByteToWideChar';
WideCharToMultiBytenull3154 function WideCharToMultiByte; external kernel32 name 'WideCharToMultiByte';
CompareStringAnull3155 function CompareStringA; external kernel32 name 'CompareStringA';
CompareStringWnull3156 function CompareStringW; external kernel32 name 'CompareStringW';
CompareStringnull3157 function CompareString; external kernel32 name 'CompareString' + AWSuffix;
LCMapStringAnull3158 function LCMapStringA; external kernel32 name 'LCMapStringA';
LCMapStringWnull3159 function LCMapStringW; external kernel32 name 'LCMapStringW';
LCMapStringnull3160 function LCMapString; external kernel32 name 'LCMapString' + AWSuffix;
GetLocaleInfoAnull3161 function GetLocaleInfoA; external kernel32 name 'GetLocaleInfoA';
GetLocaleInfoWnull3162 function GetLocaleInfoW; external kernel32 name 'GetLocaleInfoW';
GetLocaleInfonull3163 function GetLocaleInfo; external kernel32 name 'GetLocaleInfo' + AWSuffix;
SetLocaleInfoAnull3164 function SetLocaleInfoA; external kernel32 name 'SetLocaleInfoA';
SetLocaleInfoWnull3165 function SetLocaleInfoW; external kernel32 name 'SetLocaleInfoW';
SetLocaleInfonull3166 function SetLocaleInfo; external kernel32 name 'SetLocaleInfo' + AWSuffix;
GetCalendarInfoAnull3167 function GetCalendarInfoA; external kernel32 name 'GetCalendarInfoA';
GetCalendarInfoWnull3168 function GetCalendarInfoW; external kernel32 name 'GetCalendarInfoW';
GetCalendarInfonull3169 function GetCalendarInfo; external kernel32 name 'GetCalendarInfo' + AWSuffix;
SetCalendarInfoAnull3170 function SetCalendarInfoA; external kernel32 name 'SetCalendarInfoA';
SetCalendarInfoWnull3171 function SetCalendarInfoW; external kernel32 name 'SetCalendarInfoW';
SetCalendarInfonull3172 function SetCalendarInfo; external kernel32 name 'SetCalendarInfo' + AWSuffix;
GetTimeFormatAnull3173 function GetTimeFormatA; external kernel32 name 'GetTimeFormatA';
GetTimeFormatWnull3174 function GetTimeFormatW; external kernel32 name 'GetTimeFormatW';
GetTimeFormatnull3175 function GetTimeFormat; external kernel32 name 'GetTimeFormat' + AWSuffix;
GetDateFormatAnull3176 function GetDateFormatA; external kernel32 name 'GetDateFormatA';
GetDateFormatWnull3177 function GetDateFormatW; external kernel32 name 'GetDateFormatW';
GetDateFormatnull3178 function GetDateFormat; external kernel32 name 'GetDateFormat' + AWSuffix;
GetNumberFormatAnull3179 function GetNumberFormatA; external kernel32 name 'GetNumberFormatA';
GetNumberFormatWnull3180 function GetNumberFormatW; external kernel32 name 'GetNumberFormatW';
GetNumberFormatnull3181 function GetNumberFormat; external kernel32 name 'GetNumberFormat' + AWSuffix;
GetCurrencyFormatAnull3182 function GetCurrencyFormatA; external kernel32 name 'GetCurrencyFormatA';
GetCurrencyFormatWnull3183 function GetCurrencyFormatW; external kernel32 name 'GetCurrencyFormatW';
GetCurrencyFormatnull3184 function GetCurrencyFormat; external kernel32 name 'GetCurrencyFormat' + AWSuffix;
EnumCalendarInfoAnull3185 function EnumCalendarInfoA; external kernel32 name 'EnumCalendarInfoA';
EnumCalendarInfoWnull3186 function EnumCalendarInfoW; external kernel32 name 'EnumCalendarInfoW';
EnumCalendarInfonull3187 function EnumCalendarInfo; external kernel32 name 'EnumCalendarInfo' + AWSuffix;
EnumCalendarInfoExAnull3188 function EnumCalendarInfoExA; external kernel32 name 'EnumCalendarInfoExA';
EnumCalendarInfoExWnull3189 function EnumCalendarInfoExW; external kernel32 name 'EnumCalendarInfoExW';
EnumCalendarInfoExnull3190 function EnumCalendarInfoEx; external kernel32 name 'EnumCalendarInfoEx' + AWSuffix;
EnumTimeFormatsAnull3191 function EnumTimeFormatsA; external kernel32 name 'EnumTimeFormatsA';
EnumTimeFormatsWnull3192 function EnumTimeFormatsW; external kernel32 name 'EnumTimeFormatsW';
EnumTimeFormatsnull3193 function EnumTimeFormats; external kernel32 name 'EnumTimeFormats' + AWSuffix;
EnumDateFormatsAnull3194 function EnumDateFormatsA; external kernel32 name 'EnumDateFormatsA';
EnumDateFormatsWnull3195 function EnumDateFormatsW; external kernel32 name 'EnumDateFormatsW';
EnumDateFormatsnull3196 function EnumDateFormats; external kernel32 name 'EnumDateFormats' + AWSuffix;
EnumDateFormatsExAnull3197 function EnumDateFormatsExA; external kernel32 name 'EnumDateFormatsExA';
EnumDateFormatsExWnull3198 function EnumDateFormatsExW; external kernel32 name 'EnumDateFormatsExW';
EnumDateFormatsExnull3199 function EnumDateFormatsEx; external kernel32 name 'EnumDateFormatsEx' + AWSuffix;
IsValidLanguageGroupnull3200 function IsValidLanguageGroup; external kernel32 name 'IsValidLanguageGroup';
GetNLSVersionnull3201 function GetNLSVersion; external kernel32 name 'GetNLSVersion';
IsNLSDefinedStringnull3202 function IsNLSDefinedString; external kernel32 name 'IsNLSDefinedString';
IsValidLocalenull3203 function IsValidLocale; external kernel32 name 'IsValidLocale';
GetGeoInfoAnull3204 function GetGeoInfoA; external kernel32 name 'GetGeoInfoA';
GetGeoInfoWnull3205 function GetGeoInfoW; external kernel32 name 'GetGeoInfoW';
GetGeoInfonull3206 function GetGeoInfo; external kernel32 name 'GetGeoInfo';
EnumSystemGeoIDnull3207 function EnumSystemGeoID; external kernel32 name 'EnumSystemGeoID';
GetUserGeoIDnull3208 function GetUserGeoID; external kernel32 name 'GetUserGeoID';
SetUserGeoIDnull3209 function SetUserGeoID; external kernel32 name 'SetUserGeoID';
ConvertDefaultLocalenull3210 function ConvertDefaultLocale; external kernel32 name 'ConvertDefaultLocale';
GetThreadLocalenull3211 function GetThreadLocale; external kernel32 name 'GetThreadLocale';
SetThreadLocalenull3212 function SetThreadLocale; external kernel32 name 'SetThreadLocale';
GetSystemDefaultUILanguagenull3213 function GetSystemDefaultUILanguage; external kernel32 name 'GetSystemDefaultUILanguage';
GetUserDefaultUILanguagenull3214 function GetUserDefaultUILanguage; external kernel32 name 'GetUserDefaultUILanguage';
GetSystemDefaultLangIDnull3215 function GetSystemDefaultLangID; external kernel32 name 'GetSystemDefaultLangID';
GetUserDefaultLangIDnull3216 function GetUserDefaultLangID; external kernel32 name 'GetUserDefaultLangID';
GetSystemDefaultLCIDnull3217 function GetSystemDefaultLCID; external kernel32 name 'GetSystemDefaultLCID';
GetUserDefaultLCIDnull3218 function GetUserDefaultLCID; external kernel32 name 'GetUserDefaultLCID';
GetStringTypeExAnull3219 function GetStringTypeExA; external kernel32 name 'GetStringTypeExA';
GetStringTypeExWnull3220 function GetStringTypeExW; external kernel32 name 'GetStringTypeExW';
GetStringTypeExnull3221 function GetStringTypeEx; external kernel32 name 'GetStringTypeEx' + AWSuffix;
GetStringTypeAnull3222 function GetStringTypeA; external kernel32 name 'GetStringTypeA';
GetStringTypeWnull3223 function GetStringTypeW; external kernel32 name 'GetStringTypeW';
FoldStringAnull3224 function FoldStringA; external kernel32 name 'FoldStringA';
FoldStringWnull3225 function FoldStringW; external kernel32 name 'FoldStringW';
FoldStringnull3226 function FoldString; external kernel32 name 'FoldString' + AWSuffix;
EnumSystemLanguageGroupsAnull3227 function EnumSystemLanguageGroupsA; external kernel32 name 'EnumSystemLanguageGroupsA';
EnumSystemLanguageGroupsWnull3228 function EnumSystemLanguageGroupsW; external kernel32 name 'EnumSystemLanguageGroupsW';
EnumSystemLanguageGroupsnull3229 function EnumSystemLanguageGroups; external kernel32 name 'EnumSystemLanguageGroups' + AWSuffix;
EnumLanguageGroupLocalesAnull3230 function EnumLanguageGroupLocalesA; external kernel32 name 'EnumLanguageGroupLocalesA';
EnumLanguageGroupLocalesWnull3231 function EnumLanguageGroupLocalesW; external kernel32 name 'EnumLanguageGroupLocalesW';
EnumLanguageGroupLocalesnull3232 function EnumLanguageGroupLocales; external kernel32 name 'EnumLanguageGroupLocales' + AWSuffix;
EnumUILanguagesAnull3233 function EnumUILanguagesA; external kernel32 name 'EnumUILanguagesA';
EnumUILanguagesWnull3234 function EnumUILanguagesW; external kernel32 name 'EnumUILanguagesW';
EnumUILanguagesnull3235 function EnumUILanguages; external kernel32 name 'EnumUILanguages' + AWSuffix;
EnumSystemLocalesAnull3236 function EnumSystemLocalesA; external kernel32 name 'EnumSystemLocalesA';
EnumSystemLocalesWnull3237 function EnumSystemLocalesW; external kernel32 name 'EnumSystemLocalesW';
EnumSystemLocalesnull3238 function EnumSystemLocales; external kernel32 name 'EnumSystemLocales' + AWSuffix;
EnumSystemCodePagesAnull3239 function EnumSystemCodePagesA; external kernel32 name 'EnumSystemCodePagesA';
EnumSystemCodePagesWnull3240 function EnumSystemCodePagesW; external kernel32 name 'EnumSystemCodePagesW';
EnumSystemCodePagesnull3241 function EnumSystemCodePages; external kernel32 name 'EnumSystemCodePages' + AWSuffix;
3242
3243 {$ENDIF DYNAMIC_LINK}
3244
3245 {$ENDIF JWA_INTERFACESECTION}
3246
3247 {$IFNDEF JWA_OMIT_SECTIONS}
3248 end.
3249 {$ENDIF JWA_OMIT_SECTIONS}
3250