home *** CD-ROM | disk | FTP | other *** search
/ Kompuutteri Kaikille K-CD 2002 #3 / K-CD_2002-03.iso / OpenOffice / f_0259 / Init.xba < prev    next >
Extensible Markup Language  |  2001-10-10  |  17KB  |  529 lines

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
  3. <script:module xmlns:script="http://openoffice.org/2000/script" script:name="Init" script:language="StarBasic">Option Explicit
  4. REM  *****  BASIC  *****
  5.  
  6. ' Zu diskutieren:
  7. ' Autopilot von Werkzeugleiste f├╝r Textdokumente mit eigener Konverterseite?
  8. ' Konvertierung von Datenbankfeldern '- Problematik der Formatierung mit FS durchsprechen!?
  9. ' Option des einleitenden Welcome-Text, der erkl├ñrt, was eigentlich Sache ist (wie beim Dokumenten Konverter)
  10. ' Option der Checkbox-Gruppe in der die zu konvertierenden Dokumenttypen aufgef├╝hrt sind
  11. ' -> bei den letztgenannten Optionen m├╝sste der Dialog in seiner H├╢he vergr├╢├ƒert werden.
  12. ' Wir sollten informiert werden, ob und wie oder wann das Standard - W├ñhrungsformat f├╝r die Eurol├ñnder umgesetzt
  13. ' wird.
  14.  
  15. Public Const SBRANGEUBOUND = 20
  16. Public StyleRangeAssignmentList(SBRANGEUBOUND)as String
  17. Public SelRangeList(SBRANGEUBOUND) as String
  18. Public RangeList(SBRANGEUBOUND, 1) as String
  19. Public UnprotectList() as String
  20. Public FilterNames(2,1) as String
  21. Public bDoUnProtect as Boolean
  22. Public bCancelTask as Boolean
  23.  
  24. Public sREADY as String
  25. Public sPROTECT as String
  26. Public sCONTINUE as String
  27.  
  28. Public sSELTEMPL as String
  29. Public sSELCELL as String
  30. Public sCURRRANGES as String
  31. Public sTEMPLATES as String
  32.  
  33. Public sSOURCEFILE as String
  34. Public sSOURCEDIR as String
  35. Public sTARGETDIR as String
  36.  
  37. Public sStsPROGRESS as String
  38. Public sStsCELLPROGRSS as String
  39. Public sStsRELRANGES as String
  40. Public sStsRELSHEETRANGES as String
  41. Public sStsREPROTECT as String
  42.  
  43. Public sMsgSELDIR as String
  44. Public sMsgSELFILE as String
  45. Public sMsgTARGETDIR as String
  46. Public sMsgNOTTHERE as String
  47. Public sMsgDLGTITLE as String
  48. Public sMsgUNPROTECT as String
  49. Public sMsgPWPROTECT as String
  50. Public sMsgWRONGPW as String
  51. Public sMsgSHEETPROTECTED as String
  52. Public sMsgWARNING as String
  53. Public sMsgSHEETSNOPROTECT as String
  54. Public sMsgSHEETNOPROTECT as String
  55. Public sMsgCHOOSECURRENCY as String
  56. Public sMsgPASSWORD as String
  57. Public sMsgOK as String
  58. Public sMsgCANCEL as String
  59. Public sMsgFileInvalid as String
  60. Public sMsgNODIRECTORY as String
  61. Public sMsgDOCISREADONLY as String
  62. Public sMsgFileExists as String
  63. Public sMsgCancelConversion as String
  64. Public sMsgCancelTitle as String
  65. Public sCurrPORTUGUESE as String
  66. Public sCurrDUTCH as String
  67. Public sCurrFRENCH as String
  68. Public sCurrSPANISH as String
  69. Public sCurrITALIAN as String
  70. Public sCurrGERMAN as String
  71. Public sCurrBELGIAN as String
  72. Public sCurrIRISH as String
  73. Public sCurrLUXEMBOURG as String
  74. Public sCurrAUSTRIAN as String
  75. Public sCurrFINNISH as String
  76. Public sCurrGREEK as String
  77. Public sCurrUNKNOWN as String
  78. Public sCurrSYSUNKNOWN as String
  79.  
  80. Public sPrgsRETRIEVAL as String
  81. Public sPrgsCONVERTING as String
  82. Public sPrgsUNPROTECT as String
  83. Public sInclusiveSubDir as String
  84.  
  85. Public Const SBCOUNTRYCOUNT = 12
  86. Public CurMimeType as String
  87. Public CurCellCount as Long
  88. Public oSheets as Object
  89. Public oStyles as Object
  90. Public oStyle as Object
  91. Public oFormats as Object
  92. Public aSimpleStr as String
  93. Public nSimpleKey as Long
  94. Public aFormat() as Variant
  95. Public oRanges as Object
  96. Public oRange as Object
  97. Public nLanguage as integer
  98. Public nFormatLanguage as integer
  99. Public aCellFormat as Variant
  100. Public oDocument as Object
  101. Public StartCol, StartRow, EndCol, EndRow as String
  102. Public oSheet as Object
  103. Public IntStartCol,    IntStartRow, IntEndCol,    IntEndRow as integer
  104. Public oSelRanges as Object
  105. Public nFormatType as Integer
  106. Public sFormatCurrency as String
  107. Public sFormatLanguage as String
  108. Public CurSheetName as String
  109. Public oStatusLine as Object
  110. Public Const SBRELGET = 50
  111. Public StatusValue as Single
  112. Public TotCellCount as Long
  113. Public StyleIndex as Integer
  114. Public RangeIndex as Integer
  115. Public CurrIndex as Integer
  116. Public ActLangNumber(1) as Integer
  117. Public CurExtension(2) as String
  118. Public Currfactor as Double
  119. Public CurrSymbolList(2) as String
  120. Public CurrLanguage as String
  121. Public CurrValue(11,5)
  122. Public LangIDValue(11,2,2) as String
  123. Public PreName as String
  124. Public Separator as String
  125. Public BitmapDir as String
  126. Public TypeIndex as Integer, CSIndex as Integer, LangIndex as Integer, FSIndex as Integer
  127. Public oLocale as New com.sun.star.lang.Locale
  128. Public sEuroSign as String
  129. Public oPointer as Object
  130. Public sDocType as String
  131. Public bPreSelected as Boolean
  132. 'Public DocDisposed as Boolean
  133. 'Public bMacroStopped as Boolean
  134. Public bRecursive as Boolean
  135. Public bCancelProtection as Boolean
  136. Public CurrRoundMode as Boolean
  137. Public bRangeListDefined as Boolean
  138. ' Note the variable bDocHasProtectedSheets does not contain information
  139. ' wether sheets have to be reprotected
  140. Public bDocHasProtectedSheets as Boolean
  141. Public sGOON as String
  142. Public sHELP as String
  143. Public sCANCEL as String
  144. Dim sEnd as String
  145.  
  146. Sub InitializeResources()
  147.     With DialogModel
  148.         ' Strings that are also needed by the Password Dialog
  149.         sGoOn = GetResText(1003)
  150.         sHelp = GetResText(1001)
  151.         sCANCEL = GetResText(1418)
  152.         sEnd = GetResText(1000)
  153.         .cmdCancel.Label =  sCANCEL
  154.         .cmdHelp.Label =  sHELP
  155.         .cmdBack.Label =  GetResText(1002)
  156.         .cmdGoOn.Label =  sGOON
  157.         .lblHint.Label =  GetResText(1004)
  158.         .lblCurrencies.Label = GetResText(1006)
  159. ' Todo: Dieses Model sp├ñter am Control unsichtbar machen    
  160.         If .Step = 1 Then
  161.             .chkComplete.Label = GetResText(1100)
  162.             .hlnSelection.Label = GetResText(1101)
  163.             .optCellTemplates.Label = GetResText(1102)
  164.             .optSheetRanges.Label = GetResText(1103)
  165.             .optDocRanges.Label = GetResText(1104)
  166.             .optSelRange.Label = GetResText(1105)
  167.             sCURRRANGES = GetResText(1108)
  168.             .lblSelection.Label = sCURRRANGES
  169.         Else
  170.              .hlnExtent.Label = GetResText(1200)
  171.             .optSingleFile.Label = GetResText(1201) '"Einzelnes StarOffice -Dokument"'GetResText(1201)
  172.              .optWholeDir.Label = GetResText(1202)
  173.              .chkProtect.Label = GetResText(1207)
  174.              .chkTextDocuments.Label = GetResText(1210)     ' "Auch Feldbefehle und Tabellen in Textdokumenten konvertieren"
  175.             sSOURCEFILE = GetResText(1203)
  176.             sSOURCEDIR = GetResText(1204)
  177.              .lblSource.Label = sSOURCEDIR
  178.              sInclusiveSubDir = GetResText(1205)
  179.              .chkRecursive.Label = sInclusiveSubDir
  180.             sTARGETDIR = GetResText(1206)
  181.              .lblTarget.Label = STARGETDIR 
  182.             .optWholeDir.State = 1
  183.             .txtSource.Text = ConvertfromUrl(GetPathSettings("Work"))
  184.             SubstDir = .txtSource.Text
  185.             .txtTarget.Text = .txtSource.Text
  186.             .hlnProgress.Label = GetResText(1600)
  187.             .lblConfig.Label = GetResText(1603)
  188.             sPrgsRETRIEVAL = GetResText(1601)
  189.             sPrgsCONVERTING = GetResText(1602)
  190.             sPrgsUNPROTECT = GetResText(1604)
  191.         End If
  192.         .cmdBack.Enabled = False
  193.         sPROTECT = GetResText(1005)
  194.         sCONTINUE = GetResText(1007)
  195.         sSELTEMPL = GetResText(1106)
  196.         sSELCELL = GetResText(1107)
  197.         sCURRRANGES = GetResText(1108)
  198.         sTEMPLATES = GetResText(1109)
  199.         sStsPROGRESS = GetResText(1300)
  200.         sStsCELLPROGRSS = GetResText(1301)
  201.         sStsRELSHEETRANGES = GetResText(1302)
  202.         sStsRELRANGES = GetResText(1303)
  203.         sStsREPROTECT = GetResText(1304)
  204.         sREADY = GetResText(1400)
  205.         sMsgSELDIR = GetResText(1401)
  206.         sMsgSELFILE = GetResText(1402)
  207.         sMsgTARGETDIR = GetResText(1403)
  208.         sMsgNOTTHERE = GetResText(1404)
  209.         sMsgDLGTITLE = GetResText(1405)
  210.         sMsgUNPROTECT = GetResText(1406)
  211.         sMsgPWPROTECT = GetResText(1407)
  212.         sMsgWRONGPW = GetResText(1408)
  213.         sMsgSHEETPROTECTED = GetResText(1409)
  214.         sMsgWARNING = GetResText(1410)
  215.         sMsgSHEETSNOPROTECT = GetResText(1411)
  216.         sMsgSHEETNOPROTECT = GetResText(1412)
  217.         sMsgCHOOSECURRENCY = GetResText(1415)
  218.         sMsgPASSWORD = GetResText(1416)
  219.         sMsgOK = GetResText(1417)
  220.         sMsgCANCEL = GetResText(1418)
  221.         sMsgFILEINVALID = GetResText(1419)
  222.         sMsgFILEINVALID = ReplaceString(sMsgFILEINVALID,"%PRODUCTNAME", GetProductname())
  223.         SMsgNODIRECTORY = GetResText(1420)
  224.         sMsgDOCISREADONLY = GetResText(1421)
  225.         sMsgFileExists = GetResText(1422)
  226.         sMsgCancelConversion = GetResText(1423)
  227.         sMsgCancelTitle = GetResText(1424)
  228.         sCurrPORTUGUESE = GetResText(1500)
  229.         sCurrDUTCH = GetResText(1501)
  230.         sCurrFRENCH = GetResText(1502)
  231.         sCurrSPANISH = GetResText(1503)
  232.         sCurrITALIAN = GetResText(1504)
  233.         sCurrGERMAN = GetResText(1505)
  234.         sCurrBELGIAN = GetResText(1506)
  235.         sCurrIRISH = GetResText(1507)
  236.         sCurrLUXEMBOURG = GetResText(1508)
  237.         sCurrAUSTRIAN = GetResText(1509)
  238.         sCurrFINNISH = GetResText(1510)
  239.         sCurrGREEK = GetResText(1511)
  240.         sCurrUNKNOWN = GetResText(1511)
  241.         sCurrSYSUNKNOWN = GetResText(1512)
  242.     End With
  243. End Sub
  244.  
  245.  
  246. Sub InitializeLanguages()
  247.     sEuroSign = chr(8364)
  248.  
  249. ' CURRENCIES_PORTUGUESE
  250.     LangIDValue(0,0,0) = "pt"
  251.     LangIDValue(0,0,1) = ""
  252.     LangIDValue(0,0,2) = "-816"
  253.  
  254. ' CURRENCIES_DUTCH
  255.     LangIDValue(1,0,0) = "nl"
  256.     LangIDValue(1,0,1) = ""
  257.     LangIDValue(1,0,2) = "-413"
  258.  
  259. ' CURRENCIES_FRENCH
  260.     LangIDValue(2,0,0) = "fr"
  261.     LangIDValue(2,0,1) = ""
  262.     LangIDValue(2,0,2) = "-40C"
  263.  
  264. ' CURRENCIES_SPANISH
  265.     LangIDValue(3,0,0) = "es"
  266.     LangIDValue(3,0,1) = ""
  267.     LangIDValue(3,0,2) = "-40A"
  268.     
  269.     'Spanish modern
  270.     LangIDValue(3,1,0) = "es"
  271.     LangIDValue(3,1,1) = ""
  272.     LangIDValue(3,1,2) = "-C0A"
  273.  
  274.     'Spanish katalanic
  275.     LangIDValue(3,2,0) = "es"
  276.     LangIDValue(3,2,1) = ""
  277.     LangIDValue(3,2,2) = "-403"
  278.  
  279. ' CURRENCIES_ITALIAN
  280.     LangIDValue(4,0,0) = "it"
  281.     LangIDValue(4,0,1) = ""
  282.     LangIDValue(4,0,2) = "-410"
  283.  
  284. ' CURRENCIES_GERMAN
  285.     LangIDValue(5,0,0) = "de"
  286.     LangIDValue(5,0,1) = "DE"
  287.     LangIDValue(5,0,2) = "-407"
  288.  
  289. ' CURRENCIES_BELGIAN
  290.     LangIDValue(6,0,0) = "fr"
  291.     LangIDValue(6,0,1) = "BE"
  292.     LangIDValue(6,0,2) = "-80C"
  293.  
  294.     LangIDValue(6,1,0) = "nl"
  295.     LangIDValue(6,1,1) = "BE"
  296.     LangIDValue(6,1,2) = "-813"
  297.  
  298. ' CURRENCIES_IRISH
  299.     LangIDValue(7,0,0) = "en"
  300.     LangIDValue(7,0,1) = "IE"
  301.     LangIDValue(7,0,2) = "-1809"
  302.  
  303. ' CURRENCIES_LUXEMBOURG
  304.     LangIDValue(8,0,0) = "fr"
  305.     LangIDValue(8,0,1) = "LU"
  306.     LangIDValue(8,0,2) = "-140C"
  307.     
  308.     LangIDValue(8,1,0) = "de"
  309.     LangIDValue(8,1,1) = "LU"
  310.     LangIDValue(8,1,2) = "-1007"
  311.  
  312. ' CURRENCIES_AUSTRIAN
  313.     LangIDValue(9,0,0) = "de"
  314.     LangIDValue(9,0,1) = "AT"
  315.     LangIDValue(9,0,2) = "-C07"
  316.  
  317. ' CURRENCIES_FINNISH
  318.     LangIDValue(10,0,0) = "fi"
  319.     LangIDValue(10,0,1) = "FI"
  320.     LangIDValue(10,0,2) = "-40B"
  321.  
  322.     LangIDValue(10,1,0) = "sv"
  323.     LangIDValue(10,1,1) = "FI"
  324.     LangIDValue(10,1,2) = "-81D"
  325.  
  326. ' CURRENCIES_GREEK
  327.     LangIDValue(11,0,0) = "el"
  328.     LangIDValue(11,0,1) = "GR"
  329.     LangIDValue(11,0,2) = "-408"
  330. End Sub
  331.  
  332.  
  333.  
  334. Sub InitializeCurrencies()
  335. Dim i as Integer
  336.     GoOn = True
  337.  
  338.     CurrValue(0,0) = sCurrPORTUGUESE
  339.     ' Wahrer Umrechnungskurs
  340.     CurrValue(0,1) = 200.482
  341.     ' Gerundeter Umrechnungskurs
  342.     CurrValue(0,2) = 200
  343.     CurrValue(0,3) = "Esc."
  344.     CurrValue(0,4) = "Esc."
  345.     CurrValue(0,5) = "PTE"
  346.  
  347.     CurrValue(1,0) = sCurrDUTCH
  348.     ' Wahrer Umrechnungskurs
  349.     CurrValue(1,1) = 2.20371
  350.     ' Gerundeter Umrechnungskurs
  351.     CurrValue(1,2) = 2
  352.     CurrValue(1,3) = "F"
  353.     CurrValue(1,4) = "fl"
  354.     CurrValue(1,5) = "NLG"
  355.  
  356.     CurrValue(2,0) = sCurrFRENCH
  357.     ' Wahrer Umrechnungskurs
  358.     CurrValue(2,1) = 6.55957
  359.     ' Gerundeter Umrechnungskurs
  360.     CurrValue(2,2) = 7
  361.     CurrValue(2,3) = "F"
  362.     CurrValue(2,4) = "F"
  363.     CurrValue(2,5) = "FRF"
  364.  
  365.     CurrValue(3,0) = sCurrSPANISH
  366.     ' Wahrer Umrechnungskurs
  367.     CurrValue(3,1) = 166.386
  368.     ' Gerundeter Umrechnungskurs
  369.     CurrValue(3,2) = 170
  370.     CurrValue(3,3) = "Pts"
  371.     CurrValue(3,4) = "Pts"
  372.     CurrValue(3,5) = "ESP"
  373.  
  374.     CurrValue(4,0) = sCurrITALIAN
  375.     ' Wahrer Umrechnungskurs
  376.     CurrValue(4,1) = 1936.27
  377.     ' Gerundeter Umrechnungskurs
  378.     CurrValue(4,2) = 2000
  379.     CurrValue(4,3) = "L."
  380.     CurrValue(4,4) = "L."
  381.     CurrValue(4,5) = "ITL"
  382.  
  383.     CurrValue(5,0) = sCurrGERMAN
  384.     ' Wahrer Umrechnungskurs
  385.     CurrValue(5,1) = 1.95583
  386.     ' Gerundeter Umrechnungskurs
  387.     CurrValue(5,2) = 2
  388.     CurrValue(5,3) = "DM"
  389.     CurrValue(5,4) = "DM"
  390.     CurrValue(5,5) = "DEM"
  391.  
  392.     CurrValue(6,0) = sCurrBELGIAN
  393.     ' Wahrer Umrechnungskurs
  394.     CurrValue(6,1) = 40.3399
  395.     ' Gerundeter Umrechnungskurs
  396.     CurrValue(6,2) = 40
  397.     CurrValue(6,3) = "FB"
  398.     CurrValue(6,4) = "BF"
  399.     CurrValue(6,5) = "BEF"
  400.  
  401.     CurrValue(7,0) = sCurrIRISH
  402.     ' Wahrer Umrechnungskurs
  403.     CurrValue(7,1) = 0.787564
  404.     ' Gerundeter Umrechnungskurs
  405.     CurrValue(7,2) = 0.8
  406.     CurrValue(7,3) = "IR┬ú"
  407.     CurrValue(7,4) = "┬ú"        ' Todo: This is only for backwards compatibility. Follow Bug #92049
  408.     CurrValue(7,5) = "IEP"
  409.  
  410.     CurrValue(8,0) = sCurrLUXEMBOURG
  411.     ' Wahrer Umrechnungskurs
  412.     CurrValue(8,1) = 40.3399
  413.     ' Gerundeter Umrechnungskurs
  414.     CurrValue(8,2) = 40
  415.     CurrValue(8,3) = "F"
  416.     CurrValue(8,4) = "F"
  417.     CurrValue(8,5) = "LUF"
  418.  
  419.     CurrValue(9,0) = sCurrAUSTRIAN
  420.     ' Wahrer Umrechnungskurs
  421.     CurrValue(9,1) = 13.7603
  422.     ' Gerundeter Umrechnungskurs
  423.     CurrValue(9,2) = 15
  424.     CurrValue(9,3) = "├╢S"
  425.     CurrValue(9,4) = "S"
  426.     CurrValue(9,5) = "ATS"
  427.  
  428.     CurrValue(10,0) = sCurrFINNISH
  429.     ' Wahrer Umrechnungskurs
  430.     CurrValue(10,1) = 5.94573
  431.     ' Gerundeter Umrechnungskurs
  432.     CurrValue(10,2) = 6
  433.     CurrValue(10,3) = "mk"
  434.     CurrValue(10,4) = "mk"
  435.     CurrValue(10,5) = "FIM"
  436.  
  437. ' Todo: Werte verlorengegangen?
  438.     CurrValue(11,0) = sCurrGREEK
  439.     ' Wahrer Umrechnungskurs
  440.     CurrValue(11,1) = 340.750
  441.     ' Gerundeter Umrechnungskurs
  442.     CurrValue(11,2) = 400
  443.     CurrValue(11,3) = chr(916) & chr(961) & chr(967)
  444.     CurrValue(11,4) = chr(916) & chr(961) & chr(967)
  445.     CurrValue(11,5) = "GRD"
  446.     i = -1
  447.     CurrSymbolList(0) = ""
  448.     CurrSymbolList(1) = ""
  449.     InitializeCurrencyValues(CurrIndex)
  450. End Sub
  451.  
  452.  
  453. Sub InitializeControls()
  454.     If CurrIndex = -1 Then
  455.         If DialogModel.Step = 1 Then
  456.             EnableStep1DialogControls(True, False, False)
  457.         ElseIf DialogModel.Step = 2 Then
  458.             EnableStep2DialogControls(True)
  459.         End If
  460.     End If
  461. End Sub    
  462.  
  463. Sub InitializeConverter(oLocale, iDialogPage as Integer)
  464. Dim Isthere as Boolean
  465.     ToggleWindow(False)
  466.     bCancelProtection = False
  467. '    bMacroStopped = False
  468.     bRangeListDefined = False
  469.     PWIndex = -1
  470.     sDocType = GetDocumentType(StarDesktop.ActiveFrame.Controller.Model)
  471.     If sDocType = "sCalc" Then
  472.         bDocHasProtectedSheets = CheckSheetProtection(oSheets)
  473.     End If
  474.     DialogConvert = LoadDialog("Euro", "DlgConvert")
  475.     DialogModel = DialogConvert.Model
  476.     DialogPassword = LoadDialog("Euro", "DlgPassword")
  477.     PasswordModel = DialogPassword.Model
  478.     DialogModel.Step = iDialogPage
  479.     InitializeResources()
  480.     InitializeLanguages()
  481.     InitializeLocales(oLocale)
  482.     InitializeCurrencies()
  483.     InitializeControls()
  484.     BitmapDir = GetOfficeSubPath("Template", "wizard/bitmap")
  485.     FillUpCurrencyListbox()
  486.     DialogModel.imgPreview.ImageUrl = BitmapDir & "euro_" & DialogModel.Step & ".bmp"    
  487.     DialogConvert.Title = sMsgDLGTITLE
  488.     DialogModel.cmdGoOn.DefaultButton = True    
  489.     ToggleWindow(True)
  490. End Sub
  491.  
  492.  
  493. Sub    InitializeCurrencyValues(CurrIndex)
  494.     If CurrIndex <> -1 Then
  495.         CurrLanguage = CurrValue(CurrIndex,0)
  496.         CurrFactor = CurrValue(CurrIndex,1)
  497.         CurrSymbolList(0) = CurrValue(CurrIndex,3)
  498.         CurrSymbolList(1) = CurrValue(CurrIndex,4)
  499.         CurrSymbolList(2) = CurrValue(CurrIndex,5)
  500.     End If
  501. End Sub        
  502.  
  503.  
  504. Function InitializeLocales(oLocale) as Boolean
  505. Dim i as Integer, n as Integer, m as Integer
  506. Dim sLanguage as String, sCountry as String
  507. Dim bTakeThisLocale as Boolean
  508.     sLanguage = oLocale.Language
  509.     sCountry = oLocale.Country
  510.     For n = 0 To SBCOUNTRYCOUNT - 1
  511.         For m = 0 TO 1
  512.             If DialogModel.Step = 2 Then
  513.                 bTakeThisLocale = LangIDValue(n,m,0) = sLanguage
  514.             Else
  515.                 bTakeThisLocale = LangIDValue(n,m,0) = sLanguage AND LangIDValue(n,m,1) = sCountry
  516.             End If
  517.             If bTakeThisLocale Then
  518.                 CurrIndex = n
  519.                 For i = 0 To 2
  520.                     CurExtension(i) = LangIDValue(CurrIndex,i,2)
  521.                 Next i
  522.                 InitializeLocales = True
  523.                 Exit Function
  524.             End If
  525.         Next m
  526.     Next n
  527.     CurrIndex = -1
  528.     InitializeLocales = False
  529. End Function</script:module>