jwawinnls.pas 100 KB

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