Current News
Archived News
Search News
Discussion Forum


Old Forum
Install Programs More Downloads...
Troubleshooting
Source Code
Format Specs.
Misc. Information
Non-SF Stuff
Links




1 VERSION 4.00
2 Begin VB.Form Options 
3    BorderStyle     =   3  'Fixed Dialog
4    Caption         =   "Options"
5    ClientHeight    =   4695
6    ClientLeft      =   1575
7    ClientTop       =   1815
8    ClientWidth     =   5415
9    Height          =   5100
10    Icon            =   "Options.frx":0000
11    KeyPreview      =   -1  'True
12    Left            =   1515
13    LinkTopic       =   "Form1"
14    MaxButton       =   0   'False
15    MinButton       =   0   'False
16    ScaleHeight     =   4695
17    ScaleWidth      =   5415
18    ShowInTaskbar   =   0   'False
19    Top             =   1470
20    Width           =   5535
21    Begin VB.CommandButton Command2 
22       Caption         =   "&Cancel"
23       Height          =   375
24       Left            =   3120
25       TabIndex        =   1
26       Top             =   4200
27       Width           =   1335
28    End
29    Begin VB.CommandButton Command1 
30       Caption         =   "O&k"
31       Height          =   375
32       Left            =   960
33       TabIndex        =   0
34       Top             =   4200
35       Width           =   1335
36    End
37    Begin VB.PictureBox TabDisps 
38       BorderStyle     =   0  'None
39       Height          =   3495
40       Index           =   1
41       Left            =   240
42       ScaleHeight     =   3495
43       ScaleWidth      =   4995
44       TabIndex        =   3
45       Top             =   480
46       Width           =   4995
47       Begin VB.TextBox Text1 
48          Height          =   285
49          Left            =   0
50          MaxLength       =   6
51          TabIndex        =   9
52          Text            =   "1024"
53          Top             =   600
54          Width           =   1215
55       End
56       Begin VB.TextBox Text2 
57          Height          =   285
58          Left            =   0
59          TabIndex        =   8
60          Text            =   "0"
61          Top             =   1200
62          Width           =   1215
63       End
64       Begin VB.CheckBox Check2 
65          Caption         =   "&Associate WinMPQ with MPQ Archives"
66          Height          =   255
67          Left            =   0
68          TabIndex        =   7
69          Top             =   1680
70          Value           =   2  'Grayed
71          Width           =   3375
72       End
73       Begin VB.CheckBox Check4 
74          Caption         =   "Use &wildcards in filenames for drag and drop"
75          Height          =   255
76          Left            =   0
77          TabIndex        =   6
78          Top             =   2400
79          Value           =   2  'Grayed
80          Width           =   3735
81       End
82       Begin VB.CheckBox Check5 
83          Caption         =   "Automatically update &modified files"
84          Height          =   255
85          Left            =   0
86          TabIndex        =   5
87          Top             =   2160
88          Value           =   2  'Grayed
89          Width           =   3015
90       End
91       Begin VB.CheckBox Check6 
92          Caption         =   "&Load extra file information (disable this for quicker MPQ load times)"
93          Height          =   255
94          Left            =   0
95          TabIndex        =   4
96          Top             =   1920
97          Value           =   2  'Grayed
98          Width           =   4995
99       End
100       Begin VB.Label Label1 
101          AutoSize        =   -1  'True
102          Caption         =   "Maximum files for new archives: (this cannot be changed for an existing archive)"
103          Height          =   495
104          Left            =   0
105          TabIndex        =   12
106          Top             =   120
107          Width           =   4335
108          WordWrap        =   -1  'True
109       End
110       Begin VB.Label Label2 
111          AutoSize        =   -1  'True
112          Caption         =   "Locale ID for extracting"
113          Height          =   195
114          Left            =   0
115          TabIndex        =   11
116          Top             =   960
117          Width           =   1650
118       End
119       Begin VB.Label Label3 
120          Caption         =   $"Options.frx":000C
121          Height          =   855
122          Left            =   0
123          TabIndex        =   10
124          Top             =   2640
125          Width           =   4935
126       End
127    End
128    Begin VB.PictureBox TabDisps 
129       BorderStyle     =   0  'None
130       Height          =   3495
131       Index           =   2
132       Left            =   240
133       ScaleHeight     =   3495
134       ScaleWidth      =   4935
135       TabIndex        =   23
136       Top             =   480
137       Visible         =   0   'False
138       Width           =   4935
139       Begin VB.CheckBox Check8 
140          Caption         =   "Do not use above lists when one is found by above option"
141          Height          =   375
142          Left            =   0
143          TabIndex        =   49
144          Top             =   2880
145          Value           =   2  'Grayed
146          Width           =   3375
147       End
148       Begin VB.CheckBox Check7 
149          Caption         =   "Use file lists for similarly named archives"
150          Height          =   195
151          Left            =   0
152          TabIndex        =   48
153          Top             =   2640
154          Width           =   3375
155       End
156       Begin VB.CommandButton cmdDelList 
157          Caption         =   "&Remove"
158          Height          =   375
159          Left            =   3480
160          TabIndex        =   45
161          Top             =   1440
162          Width           =   1335
163       End
164       Begin VB.ListBox FileLists 
165          Height          =   2205
166          Left            =   0
167          TabIndex        =   44
168          Top             =   360
169          Width           =   3375
170       End
171       Begin VB.CommandButton cmdAddList 
172          Caption         =   "&Add List File..."
173          Height          =   375
174          Left            =   3480
175          TabIndex        =   24
176          Top             =   840
177          Width           =   1335
178       End
179       Begin VB.Label Label11 
180          Caption         =   "Note:  Each file list added will increase the load time for archives."
181          Height          =   255
182          Left            =   0
183          TabIndex        =   47
184          Top             =   3240
185          Width           =   4815
186       End
187       Begin VB.Label Label10 
188          AutoSize        =   -1  'True
189          Caption         =   "File Lists:"
190          Height          =   195
191          Left            =   0
192          TabIndex        =   46
193          Top             =   120
194          Width           =   645
195       End
196    End
197    Begin VB.PictureBox TabDisps 
198       BorderStyle     =   0  'None
199       Height          =   3495
200       Index           =   5
201       Left            =   240
202       ScaleHeight     =   3495
203       ScaleWidth      =   4935
204       TabIndex        =   13
205       Top             =   480
206       Visible         =   0   'False
207       Width           =   4935
208       Begin VB.CommandButton Command4 
209          Caption         =   "&Reset size/position"
210          Height          =   375
211          Left            =   360
212          TabIndex        =   22
213          Top             =   840
214          Width           =   1695
215       End
216       Begin VB.CheckBox Check3 
217          Caption         =   "Display &confirmation boxes"
218          Height          =   255
219          Left            =   0
220          TabIndex        =   21
221          Top             =   120
222          Value           =   2  'Grayed
223          Width           =   2415
224       End
225       Begin VB.CheckBox Check1 
226          Caption         =   "&Save last window size and position"
227          Height          =   255
228          Left            =   0
229          TabIndex        =   20
230          Top             =   480
231          Value           =   2  'Grayed
232          Width           =   3015
233       End
234       Begin VB.Frame Frame1 
235          Caption         =   "Startup Path"
236          Height          =   1215
237          Left            =   0
238          TabIndex        =   14
239          Top             =   2280
240          Width           =   4935
241          Begin VB.OptionButton Option1 
242             Caption         =   "Last &open folder"
243             Height          =   255
244             Index           =   0
245             Left            =   120
246             TabIndex        =   19
247             Top             =   240
248             Value           =   -1  'True
249             Width           =   1575
250          End
251          Begin VB.OptionButton Option1 
252             Caption         =   "A&pplication folder"
253             Height          =   255
254             Index           =   1
255             Left            =   1680
256             TabIndex        =   18
257             Top             =   240
258             Width           =   1695
259          End
260          Begin VB.OptionButton Option1 
261             Caption         =   "&User-defined folder"
262             Height          =   255
263             Index           =   2
264             Left            =   120
265             TabIndex        =   17
266             Top             =   480
267             Width           =   1695
268          End
269          Begin VB.TextBox Text3 
270             Enabled         =   0   'False
271             Height          =   285
272             Left            =   120
273             TabIndex        =   16
274             Top             =   840
275             Width           =   3615
276          End
277          Begin VB.CommandButton Command5 
278             Caption         =   "&Folder..."
279             Enabled         =   0   'False
280             Height          =   285
281             Left            =   3840
282             TabIndex        =   15
283             Top             =   840
284             Width           =   975
285          End
286       End
287    End
288    Begin VB.PictureBox TabDisps 
289       BorderStyle     =   0  'None
290       Height          =   3495
291       Index           =   4
292       Left            =   240
293       ScaleHeight     =   3495
294       ScaleWidth      =   4935
295       TabIndex        =   26
296       Top             =   480
297       Visible         =   0   'False
298       Width           =   4935
299       Begin VB.ListBox Actions 
300          Height          =   1215
301          IntegralHeight  =   0   'False
302          Left            =   3120
303          TabIndex        =   38
304          Top             =   2280
305          Width           =   1815
306       End
307       Begin MSComctlLib.ListView FileTypes 
308          Height          =   2535
309          Left            =   0
310          TabIndex        =   43
311          Top             =   960
312          Width           =   3015
313          _ExtentX        =   5318
314          _ExtentY        =   4471
315          View            =   3
316          LabelEdit       =   1
317          Sorted          =   -1  'True
318          MultiSelect     =   -1  'True
319          LabelWrap       =   -1  'True
320          HideSelection   =   -1  'True
321          _Version        =   393217
322          ForeColor       =   -2147483640
323          BackColor       =   -2147483643
324          BorderStyle     =   1
325          Appearance      =   1
326          NumItems        =   1
327          BeginProperty ColumnHeader(1) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
328             Text            =   "Registered file types:"
329             Object.Width           =   2540
330          EndProperty
331       End
332       Begin VB.Label Label9 
333          AutoSize        =   -1  'True
334          Caption         =   "File extensions:"
335          Height          =   195
336          Left            =   3120
337          TabIndex        =   42
338          Top             =   960
339          Width           =   1080
340       End
341       Begin VB.Label Label7 
342          AutoSize        =   -1  'True
343          Caption         =   "Default action:"
344          Height          =   195
345          Left            =   3120
346          TabIndex        =   40
347          Top             =   2040
348          Width           =   1035
349       End
350       Begin VB.Label Label8 
351          Height          =   855
352          Left            =   3120
353          TabIndex        =   41
354          Top             =   1200
355          Width           =   1755
356       End
357       Begin VB.Label Label6 
358          AutoSize        =   -1  'True
359          Caption         =   $"Options.frx":00F6
360          Height          =   855
361          Left            =   0
362          TabIndex        =   39
363          Top             =   120
364          Width           =   4935
365          WordWrap        =   -1  'True
366       End
367    End
368    Begin VB.PictureBox TabDisps 
369       BorderStyle     =   0  'None
370       Height          =   3495
371       Index           =   3
372       Left            =   240
373       ScaleHeight     =   3495
374       ScaleWidth      =   4935
375       TabIndex        =   25
376       Top             =   480
377       Visible         =   0   'False
378       Width           =   4935
379       Begin VB.ListBox List1 
380          Height          =   1815
381          ItemData        =   "Options.frx":01CE
382          Left            =   0
383          List            =   "Options.frx":01D0
384          Sorted          =   -1  'True
385          TabIndex        =   35
386          Top             =   720
387          Width           =   1575
388       End
389       Begin VB.TextBox Text4 
390          Height          =   285
391          Left            =   0
392          TabIndex        =   34
393          Top             =   360
394          Width           =   855
395       End
396       Begin VB.CommandButton cmdAdd 
397          Caption         =   "&Add"
398          Height          =   285
399          Left            =   960
400          TabIndex        =   33
401          Top             =   360
402          Width           =   615
403       End
404       Begin VB.CommandButton Command6 
405          Caption         =   "&Remove"
406          Height          =   255
407          Left            =   0
408          TabIndex        =   32
409          Top             =   2640
410          Width           =   1095
411       End
412       Begin VB.ComboBox Combo1 
413          Enabled         =   0   'False
414          Height          =   315
415          ItemData        =   "Options.frx":01D2
416          Left            =   1800
417          List            =   "Options.frx":01DF
418          Style           =   2  'Dropdown List
419          TabIndex        =   31
420          Top             =   720
421          Width           =   2535
422       End
423       Begin VB.Frame Frame2 
424          Caption         =   "Audio Compression"
425          Height          =   1335
426          Left            =   1800
427          TabIndex        =   27
428          Top             =   1200
429          Visible         =   0   'False
430          Width           =   2535
431          Begin VB.OptionButton AudioC 
432             Caption         =   "Medium"
433             Height          =   255
434             Index           =   0
435             Left            =   120
436             TabIndex        =   30
437             Top             =   600
438             Value           =   -1  'True
439             Width           =   2175
440          End
441          Begin VB.OptionButton AudioC 
442             Caption         =   "Highest (Least space)"
443             Height          =   255
444             Index           =   1
445             Left            =   120
446             TabIndex        =   29
447             Top             =   960
448             Width           =   2175
449          End
450          Begin VB.OptionButton AudioC 
451             Caption         =   "Lowest (Best quality)"
452             Height          =   255
453             Index           =   2
454             Left            =   120
455             TabIndex        =   28
456             Top             =   240
457             Width           =   2175
458          End
459       End
460       Begin VB.Label Label5 
461          Caption         =   "Compression type"
462          Height          =   255
463          Left            =   1800
464          TabIndex        =   37
465          Top             =   480
466          Width           =   1935
467       End
468       Begin VB.Label Label4 
469          Caption         =   "File Extension"
470          Height          =   255
471          Left            =   0
472          TabIndex        =   36
473          Top             =   120
474          Width           =   1215
475       End
476    End
477    Begin MSComctlLib.TabStrip Tabs 
478       Height          =   3975
479       Left            =   120
480       TabIndex        =   2
481       Top             =   120
482       Width           =   5175
483       _ExtentX        =   9128
484       _ExtentY        =   7011
485       HotTracking     =   -1  'True
486       _Version        =   393216
487       BeginProperty Tabs {1EFB6598-857C-11D1-B16A-00C0F0283628} 
488          NumTabs         =   5
489          BeginProperty Tab1 {1EFB659A-857C-11D1-B16A-00C0F0283628} 
490             Caption         =   "General"
491             ImageVarType    =   2
492          EndProperty
493          BeginProperty Tab2 {1EFB659A-857C-11D1-B16A-00C0F0283628} 
494             Caption         =   "File Lists"
495             ImageVarType    =   2
496          EndProperty
497          BeginProperty Tab3 {1EFB659A-857C-11D1-B16A-00C0F0283628} 
498             Caption         =   "Compression Auto-Selection"
499             ImageVarType    =   2
500          EndProperty
501          BeginProperty Tab4 {1EFB659A-857C-11D1-B16A-00C0F0283628} 
502             Caption         =   "File Associations"
503             ImageVarType    =   2
504          EndProperty
505          BeginProperty Tab5 {1EFB659A-857C-11D1-B16A-00C0F0283628} 
506             Caption         =   "Other"
507             ImageVarType    =   2
508          EndProperty
509       EndProperty
510    End
511 End
512 Attribute VB_Name = "Options"
513 Attribute VB_Creatable = False
514 Attribute VB_Exposed = False
515 Option Explicit
517 Dim OldFileName As String, NewListFile As String
518 Dim NewExtNames() As String, NewExtComp() As Integer
519 Dim ActID() As String
521 Private Sub Check8_Click()
522 If Check8.Value = 1 Then Check8.Value = 2
523 End Sub
524 Private Sub cmdAdd_Click()
525 Dim eNum As Integer
526 If Text4 <> "" Then
527     If Left(Text4, 1) <> "." Then Text4 = "." + Text4
528     For eNum = 1 To UBound(NewExtNames)
529         If Text4 = NewExtNames(eNum) Then Exit Sub
530     Next eNum
531     List1.AddItem Text4
532     ReDim Preserve NewExtNames(UBound(NewExtNames) + 1) As String
533     NewExtNames(UBound(NewExtNames)) = Text4
534     ReDim Preserve NewExtComp(UBound(NewExtComp) + 1) As Integer
535     NewExtComp(UBound(NewExtComp)) = -1
536     Text4 = ""
537 End If
538 End Sub
539 Private Sub cmdAddList_Click()
540 Dim lNum As Long
541 CD.Flags = &H1000 Or &H4 Or &H2
542 CD.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*"
543 If ShowOpen(CD) = False Then GoTo Cancel
544 FileLists.AddItem CD.FileName
545 If FileLists.ListCount > 0 Then
546     NewListFile = FileLists.List(0)
547 Else
548     NewListFile = ""
549 End If
550 For lNum = 1 To FileLists.ListCount - 1
551     NewListFile = NewListFile + vbCrLf + FileLists.List(lNum)
552 Next lNum
553 Cancel:
554 End Sub
555 Private Sub cmdDelList_Click()
556 Dim lNum As Long
557 If FileLists.ListIndex > -1 Then
558     FileLists.RemoveItem FileLists.ListIndex
559     If FileLists.ListCount > 0 Then
560         NewListFile = FileLists.List(0)
561     Else
562         NewListFile = ""
563     End If
564     For lNum = 1 To FileLists.ListCount - 1
565         NewListFile = NewListFile + vbCrLf + FileLists.List(lNum)
566     Next lNum
567 End If
568 End Sub
569 Private Sub Combo1_Click()
570 Dim eNum As Integer
571 For eNum = 1 To UBound(NewExtNames)
572     If List1.List(List1.ListIndex) = NewExtNames(eNum) Then Exit For
573 Next eNum
574 If UBound(NewExtNames) = 0 Then eNum = 0
575 If Combo1.ListIndex = 2 Then
576     Frame2.Visible = True
577     NewExtComp(eNum) = Combo1.ListIndex - 2
578 Else
579     Frame2.Visible = False
580     NewExtComp(eNum) = Combo1.ListIndex - 2
581 End If
582 End Sub
583 Private Sub AudioC_Click(Index As Integer)
584 Dim eNum As Integer
585 For eNum = 1 To UBound(NewExtNames)
586     If List1.List(List1.ListIndex) = NewExtNames(eNum) Then Exit For
587 Next eNum
588 If UBound(NewExtNames) = 0 Then eNum = 0
589 NewExtComp(eNum) = Index
590 End Sub
591 Private Sub Check1_Click()
592 If Check1.Value = 1 Then Check1.Value = 2
593 End Sub
595 Private Sub Check2_Click()
596 If Check2.Value = 1 Then Check2.Value = 2
597 End Sub
599 Private Sub Check3_Click()
600 If Check3.Value = 1 Then Check3.Value = 2
601 End Sub
603 Private Sub Check4_Click()
604 If Check4.Value = 1 Then Check4.Value = 2
605 End Sub
607 Private Sub Check5_Click()
608 If Check5.Value = 1 Then Check5.Value = 2
609 End Sub
611 Private Sub Check6_Click()
612 If Check6.Value = 1 Then Check6.Value = 2
613 End Sub
614 Private Sub Command1_Click()
615 Dim Path As String, BatKey As String
616 Dim eNum As Integer, ExtList As String
617 Dim dItem As String, ndItem As String, aNum As Long
618 Path = App.Path
619 If Right(Path, 1) <> "\" Then Path = Path + "\"
620 Text1_LostFocus
621 Text2_LostFocus
622 MpqEx.Mpq.DefaultMaxFiles = Text1
623 LocaleID = Text2
624 MpqEx.Mpq.SetLocale (LocaleID)
625 NewKey AppKey
626 SetReg AppKey + "DefaultMaxFiles", Text1, REG_DWORD
627 SetReg AppKey + "LocaleID", Text2, REG_DWORD
628 If Check1.Value > 0 Then
629     SetReg AppKey + "SaveWindowStatus", 1, REG_DWORD
630 Else
631     SetReg AppKey + "SaveWindowStatus", 0, REG_DWORD
632 End If
633 If Check3.Value > 0 Then
634     SetReg AppKey + "ShowConfirmation", 1, REG_DWORD
635 Else
636     SetReg AppKey + "ShowConfirmation", 0, REG_DWORD
637 End If
638 If Check4.Value > 0 Then
639     SetReg AppKey + "UseDragDropWildcards", 1, REG_DWORD
640 Else
641     SetReg AppKey + "UseDragDropWildcards", 0, REG_DWORD
642 End If
643 If Check5.Value > 0 Then
644     SetReg AppKey + "CheckModDateTime", 1, REG_DWORD
645 Else
646     SetReg AppKey + "CheckModDateTime", 0, REG_DWORD
647     MpqEx.Timer1.Enabled = False
648 End If
649 If Check6.Value > 0 Then
650     SetReg AppKey + "LoadExtraInfo", 1, REG_DWORD
651 Else
652     SetReg AppKey + "LoadExtraInfo", 0, REG_DWORD
653 End If
654 If Check7.Value > 0 Then
655     SetReg AppKey + "AutofindFileLists", 1, REG_DWORD
656 Else
657     SetReg AppKey + "AutofindFileLists", 0, REG_DWORD
658 End If
659 If Check8.Value > 0 Then
660     SetReg AppKey + "UseOnlyAutofindLists", 1, REG_DWORD
661 Else
662     SetReg AppKey + "UseOnlyAutofindLists", 0, REG_DWORD
663 End If
664 If Check2.Value > 0 Then
665     NewKey "HKEY_CLASSES_ROOT\.mpq\", "Mpq.Archive"
666     NewKey "HKEY_CLASSES_ROOT\.mpq\ShellNew\"
667     SetReg "HKEY_CLASSES_ROOT\.mpq\ShellNew\NullFile", ""
668     NewKey "HKEY_CLASSES_ROOT\Mpq.Archive\", "MPQ Archive"
669     NewKey "HKEY_CLASSES_ROOT\Mpq.Archive\DefaultIcon\", Path + App.EXEName + ".exe,1"
670     NewKey "HKEY_CLASSES_ROOT\Mpq.Archive\shell\"
671     NewKey "HKEY_CLASSES_ROOT\Mpq.Archive\shell\open\"
672     NewKey "HKEY_CLASSES_ROOT\Mpq.Archive\shell\open\command\", Chr(34) + Path + App.EXEName + ".exe" + Chr(34) + " " + Chr(34) + "%1" + Chr(34)
673     BatKey = "HKEY_CLASSES_ROOT\" + GetReg("HKEY_CLASSES_ROOT\.bat\", "batfile") + "\"
674     NewKey "HKEY_CLASSES_ROOT\.mscript\", "Mpq.Script"
675     NewKey "HKEY_CLASSES_ROOT\.mbat\", "Mpq.Script"
676     NewKey "HKEY_CLASSES_ROOT\.mscript\ShellNew\"
677     SetReg "HKEY_CLASSES_ROOT\.mscript\ShellNew\NullFile", ""
678     NewKey "HKEY_CLASSES_ROOT\Mpq.Script\", "Mo'PaQ 2000 Script"
679     NewKey "HKEY_CLASSES_ROOT\Mpq.Script\DefaultIcon\", GetReg(BatKey + "DefaultIcon\", "C:\WINDOWS\SYSTEM\shell32.dll,-153")
680     NewKey "HKEY_CLASSES_ROOT\Mpq.Script\shell\"
681     NewKey "HKEY_CLASSES_ROOT\Mpq.Script\shell\open\"
682     NewKey "HKEY_CLASSES_ROOT\Mpq.Script\shell\open\command\", GetReg(BatKey + "shell\edit\command\", "C:\WINDOWS\NOTEPAD.EXE %1")
683     NewKey "HKEY_CLASSES_ROOT\Mpq.Script\shell\"
684     NewKey "HKEY_CLASSES_ROOT\Mpq.Script\shell\run\", "&Run"
685     NewKey "HKEY_CLASSES_ROOT\Mpq.Script\shell\run\command\", Chr(34) + Path + App.EXEName + ".exe" + Chr(34) + " script " + Chr(34) + "%1" + Chr(34)
686 Else
687     If GetReg("HKEY_CLASSES_ROOT\.mpq\") = "Mpq.Archive" Then
688         DelKey "HKEY_CLASSES_ROOT\.mpq\ShellNew\"
689         DelKey "HKEY_CLASSES_ROOT\.mpq\"
690         SetReg "HKEY_CLASSES_ROOT\Mpq.Archive\shell\open\command\", "not used"
691         DelKey "HKEY_CLASSES_ROOT\.mscript\ShellNew\"
692         DelKey "HKEY_CLASSES_ROOT\.mscript\"
693         DelKey "HKEY_CLASSES_ROOT\.mbat\"
694     End If
695 End If
696 SHChangeNotify SHCNE_ASSOCCHANGED, SHCNF_IDLIST, vbNullString, vbNullString
697 If Option1(0).Value = True Then
698     SetReg AppKey + "StartupPathType", 0, REG_DWORD
699     Text3 = CurDir
700 ElseIf Option1(1).Value = True Then
701     SetReg AppKey + "StartupPathType", 1, REG_DWORD
702     Text3 = App.Path
703 ElseIf Option1(2).Value = True Then
704     SetReg AppKey + "StartupPathType", 2, REG_DWORD
705 End If
706 Path = Text3
707 If Right(Path, 1) <> "\" Then Path = Path + "\"
708 If IsDir(Path) Then
709     SetReg AppKey + "StartupPath", Text3
710     ChDir Text3
711 End If
712 DelKey AppKey + "Compression\"
713 NewKey AppKey + "Compression\"
714 For eNum = 1 To UBound(NewExtNames)
715     ExtList = ExtList + NewExtNames(eNum)
716     SetReg AppKey + "Compression\" + NewExtNames(eNum), CStr(NewExtComp(eNum))
717 Next eNum
718 SetReg AppKey + "Compression\List", ExtList
719 NewKey SharedAppKey + "FileDefaultActions\"
720 For aNum = 1 To FileTypes.ListItems.Count
721     dItem = GetReg("HKEY_CLASSES_ROOT\" + FileTypes.ListItems.Item(aNum).Key + "\shell\", "open")
722     dItem = GetReg(SharedAppKey + "FileDefaultActions\" + FileTypes.ListItems.Item(aNum).Key, dItem)
723     ndItem = FileTypes.ListItems.Item(aNum).Tag
724     If LCase(dItem) <> LCase(ndItem) And ndItem <> "" Then
725         SetReg SharedAppKey + "FileDefaultActions\" + FileTypes.ListItems.Item(aNum).Key, ndItem
726     End If
727 Next aNum
728 Hide
729 If LCase(ListFile) <> LCase(NewListFile) Then
730     ListFile = NewListFile
731     SetReg AppKey + "ListFile", ListFile
732     CD.FileName = OldFileName
733     If FileExists(OldFileName) Then MpqEx.OpenMpq
734 End If
735 Unload Me
736 End Sub
737 Private Sub Command2_Click()
738 Unload Me
739 End Sub
740 Private Sub Command4_Click()
741 DelReg AppKey + "Status\WindowState"
742 DelReg AppKey + "Status\WindowHeight"
743 DelReg AppKey + "Status\WindowLeft"
744 DelReg AppKey + "Status\WindowTop"
745 DelReg AppKey + "Status\WindowWidth"
746 Check1.Value = 0
747 End Sub
749 Private Sub Command5_Click()
750 Dim Path As String
751 Path = PathInputBox(PathInput, "WinMPQ Startup Path", Text3)
752 If Path <> "" Then Text3 = Path
753 End Sub
755 Private Sub Command6_Click()
756 Dim eNum As Integer
757 If List1.ListIndex > -1 Then
758     For eNum = 1 To UBound(NewExtNames)
759         If List1.List(List1.ListIndex) = NewExtNames(eNum) Then Exit For
760     Next eNum
761     If eNum < UBound(NewExtNames) Then
762         For eNum = eNum To UBound(NewExtNames) - 1
763             NewExtNames(eNum) = NewExtNames(eNum + 1)
764             NewExtComp(eNum) = NewExtComp(eNum + 1)
765         Next eNum
766     End If
767     ReDim Preserve NewExtNames(UBound(NewExtNames) - 1) As String
768     ReDim Preserve NewExtComp(UBound(NewExtComp) - 1) As Integer
769     On Error Resume Next
770     List1.RemoveItem List1.ListIndex
771 End If
772 End Sub
773 Private Sub Form_Load()
774 Dim Path As String, PathType As Integer, NewFileListNames As String
775 Dim ExtList As String
776 Dim aExt As String, aName As String, aNum As Long
777 Left = MpqEx.Left + 330
778 If Left < 0 Then Left = 0
779 If Left + Width > Screen.Width Then Left = Screen.Width - Width
780 Top = MpqEx.Top + 315
781 If Top < 0 Then Top = 0
782 If Top + Height > Screen.Height Then Top = Screen.Height - Height
783 Path = App.Path
784 If Right(Path, 1) <> "\" Then Path = Path + "\"
785 Text1 = MpqEx.Mpq.DefaultMaxFiles
786 Text2 = LocaleID
787 OldFileName = CD.FileName
788 CD.FileName = ""
789 NewListFile = GetReg(AppKey + "ListFile", Path + "mpq_data.txt")
790 For aNum = 1 To Len(NewListFile)
791     If InStr(aNum, NewListFile, vbCrLf) Then
792         aName = Mid(NewListFile, aNum, InStr(aNum, NewListFile, vbCrLf) - aNum)
793         If FileExists(aName) Then
794             FileLists.AddItem aName
795             NewFileListNames = NewFileListNames + aName + vbCrLf
796         End If
797         aNum = InStr(aNum, NewListFile, vbCrLf) + 1
798     Else
799         aName = Mid(NewListFile, aNum)
800         If FileExists(aName) Then
801             FileLists.AddItem aName
802             NewFileListNames = NewFileListNames + aName
803         End If
804         Exit For
805     End If
806 Next aNum
807 NewListFile = NewFileListNames
808 If Right(NewListFile, 2) = vbCrLf Then NewListFile = Left(NewListFile, Len(NewListFile) - 2)
809 If GetReg(AppKey + "SaveWindowStatus", 1) > 0 Then Check1.Value = 1 Else Check1.Value = 0
810 If GetReg(AppKey + "ShowConfirmation", 1) > 0 Then Check3.Value = 1 Else Check3.Value = 0
811 If GetReg(AppKey + "UseDragDropWildcards", 1) > 0 Then Check4.Value = 1 Else Check4.Value = 0
812 If GetReg(AppKey + "CheckModDateTime", 1) > 0 Then Check5.Value = 1 Else Check5.Value = 0
813 If GetReg(AppKey + "LoadExtraInfo", 1) > 0 Then Check6.Value = 1 Else Check6.Value = 0
814 If GetReg(AppKey + "AutofindFileLists", 0) > 0 Then Check7.Value = 1 Else Check7.Value = 0
815 If GetReg(AppKey + "UseOnlyAutofindLists", 1) > 0 Then Check8.Value = 1 Else Check8.Value = 0
816 If GetReg("HKEY_CLASSES_ROOT\.mpq\", "Mpq.Archive") = "Mpq.Archive" And InStr(1, GetReg("HKEY_CLASSES_ROOT\Mpq.Archive\shell\open\command\", Chr(34) + Path + App.EXEName + ".exe" + Chr(34) + " " + Chr(34) + "%1" + Chr(34)), App.EXEName + ".exe", 1) > 0 Then Check2.Value = 1 Else Check2.Value = 0
817 Text3 = GetReg(AppKey + "StartupPath", CurDir)
818 PathType = GetReg(AppKey + "StartupPathType", 0)
819 If PathType < 0 Then PathType = 0
820 If PathType > 2 Then PathType = 2
821 Option1(PathType).Value = True
822 If PathType = 0 Then
823     Text3 = CurDir
824 ElseIf PathType = 1 Then
825     Text3 = App.Path
826 End If
827 ReDim NewExtNames(0) As String
828 ReDim NewExtComp(0) As Integer
829 Combo1.ListIndex = 1
830 ExtList = GetReg(AppKey + "Compression\List", ".bik.smk.wav")
831 If InStr(1, ExtList, ".") > 0 And Len(ExtList) > 1 Then
832 Do
833     ReDim Preserve NewExtNames(UBound(NewExtNames) + 1) As String
834     ReDim Preserve NewExtComp(UBound(NewExtComp) + 1) As Integer
835     If InStr(2, ExtList, ".") > 0 Then
836         NewExtNames(UBound(NewExtNames)) = Left(ExtList, InStr(2, ExtList, ".") - 1)
837     Else
838         NewExtNames(UBound(NewExtNames)) = ExtList
839     End If
840     ExtList = Mid(ExtList, Len(NewExtNames(UBound(NewExtNames))) + 1)
841     List1.AddItem NewExtNames(UBound(NewExtNames))
842     If LCase(NewExtNames(UBound(NewExtNames))) = ".bik" Then
843         NewExtComp(UBound(NewExtComp)) = CInt(GetReg(AppKey + "Compression\.bik", "-2"))
844     ElseIf LCase(NewExtNames(UBound(NewExtNames))) = ".smk" Then
845         NewExtComp(UBound(NewExtComp)) = CInt(GetReg(AppKey + "Compression\.smk", "-2"))
846     ElseIf LCase(NewExtNames(UBound(NewExtNames))) = ".wav" Then
847         NewExtComp(UBound(NewExtComp)) = CInt(GetReg(AppKey + "Compression\.wav", "0"))
848     Else
849         NewExtComp(UBound(NewExtComp)) = CInt(GetReg(AppKey + "Compression\" + NewExtNames(UBound(NewExtNames)), "-1"))
850     End If
851 Loop Until ExtList = ""
852 End If
853 Do
854     aExt = EnumKey("HKEY_CLASSES_ROOT\", aNum)
855     If Left(aExt, 1) = "." Then
856         aName = GetReg("HKEY_CLASSES_ROOT\" + aExt + "\")
857         If aName <> "" Then
858             On Error GoTo AlreadyExists
859             FileTypes.ListItems.Add(, aName, GetReg("HKEY_CLASSES_ROOT\" + aName + "\", UCase(Mid(aExt, 2)) + " File")).ToolTipText = UCase(aExt)
860             On Error GoTo 0
861         End If
862     ElseIf LCase(aExt) = "unknown" Then
863         FileTypes.ListItems.Add(, aExt, GetReg("HKEY_CLASSES_ROOT\" + aExt + "\")).ToolTipText = ""
864         If FileTypes.ListItems.Item(aExt).Text = "" Then FileTypes.ListItems.Item(aExt).Text = " Unknown File"
865     End If
866     aNum = aNum + 1
867 Loop Until aExt = ""
868 Exit Sub
869 AlreadyExists:
870     FileTypes.ListItems.Item(aName).ToolTipText = FileTypes.ListItems.Item(aName).ToolTipText + " " + UCase(aExt)
871 Resume Next
872 End Sub
873 Private Sub Form_Resize()
874 FileTypes.ColumnHeaders.Item(1).Width = FileTypes.Width - 30 * Screen.TwipsPerPixelX
875 End Sub
877 Private Sub Form_Unload(Cancel As Integer)
878 CD.FileName = OldFileName
879 End Sub
881 Private Sub List1_Click()
882 Dim eNum As Integer, OldExtComp As Integer
883 If List1.ListIndex > -1 Then
884     Combo1.Enabled = True
885     For eNum = 1 To UBound(NewExtNames)
886         If List1.List(List1.ListIndex) = NewExtNames(eNum) Then Exit For
887     Next eNum
888     Select Case NewExtComp(eNum)
889     Case -2
890         AudioC(0).Value = True
891         Combo1.ListIndex = 0
892     Case -1
893         AudioC(0).Value = True
894         Combo1.ListIndex = 1
895     Case 0, 1, 2
896         OldExtComp = NewExtComp(eNum)
897         Combo1.ListIndex = 2
898         AudioC(OldExtComp).Value = True
899     Case Else
900         AudioC(0).Value = True
901         Combo1.ListIndex = 1
902     End Select
903 Else
904     Combo1.ListIndex = 1
905     Combo1.Enabled = False
906 End If
907 End Sub
908 Private Sub Option1_Click(Index As Integer)
909 If Index = 2 Then
910     Text3.Enabled = True
911     Command5.Enabled = True
912 Else
913     Text3.Enabled = False
914     Command5.Enabled = False
915 End If
916 End Sub
918 Private Sub Tabs_Click()
919 Dim TabDisp As PictureBox
920 For Each TabDisp In TabDisps
921     TabDisp.Visible = False
922 Next TabDisp
923 TabDisps(Tabs.SelectedItem.Index).Visible = True
924 End Sub
925 Private Sub Text1_KeyPress(KeyAscii As Integer)
926 If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> 8 Then KeyAscii = 0
927 End Sub
928 Private Sub Text1_LostFocus()
929 If Text1 = "" Then Text1 = 0
930 If Text1 < 16 Then Text1 = 16
931 If Text1 > 262144 Then Text1 = 262144
932 End Sub
933 Private Sub Text2_KeyPress(KeyAscii As Integer)
934 Dim NewValue As Long
935 If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> 8 And KeyAscii <> Asc("-") Then KeyAscii = 0
936 On Error GoTo TooBig
937 If (KeyAscii >= 48 And KeyAscii <= 57) Or KeyAscii = Asc("-") Then NewValue = CLng(Text2 + Chr(KeyAscii))
938 On Error GoTo 0
939 Exit Sub
940 TooBig:
941 KeyAscii = 0
942 End Sub
943 Private Sub Text2_LostFocus()
944 If Text2 = "" Then Text2 = 0
945 End Sub
947 Private Sub Text4_GotFocus()
948 cmdAdd.Default = True
949 End Sub
951 Private Sub Text4_LostFocus()
952 Command1.Default = True
953 End Sub
954 Private Sub Actions_Click()
955 On Error GoTo NotSelected
956 FileTypes.SelectedItem.Tag = FileTypes.SelectedItem.Tag
957 On Error GoTo 0
958 If FileTypes.SelectedItem.Selected = True Then
959     FileTypes.SelectedItem.Tag = ActID(Actions.ListIndex + 1)
960 End If
961 NotSelected:
962 End Sub
963 Private Sub FileTypes_ItemClick(ByVal Item As ListItem)
964 Dim aNum As Long, aItem As String, aName As String, bNum As Long, dItem As String
965 Label8 = Item.ToolTipText
966 Actions.Clear
967 ReDim ActID(0) As String
968 aName = Item.Key
969 Do
970     aItem = EnumKey("HKEY_CLASSES_ROOT\" + aName + "\shell\", aNum)
971     If aItem <> "" Then
972         If LCase(aItem) = "openas" And IsEmpty(GetReg("HKEY_CLASSES_ROOT\" + aName + "\shell\" + aItem + "\")) Then
973             Actions.AddItem "Open with..."
974         Else
975             Actions.AddItem GetReg("HKEY_CLASSES_ROOT\" + aName + "\shell\" + aItem + "\", UCase(Left(aItem, 1)) + Mid(aItem, 2))
976         End If
977         ReDim Preserve ActID(UBound(ActID) + 1) As String
978         ActID(UBound(ActID)) = aItem
979         aNum = aNum + 1
980     End If
981 Loop Until aItem = ""
982 If Item.Tag = "" Then
983     dItem = GetReg("HKEY_CLASSES_ROOT\" + aName + "\shell\", "open")
984     dItem = GetReg(SharedAppKey + "FileDefaultActions\" + aName, dItem)
985 Else
986     dItem = Item.Tag
987 End If
988 If Actions.ListCount > 0 Then Actions.ListIndex = 0
989 For bNum = 0 To Actions.ListCount - 1
990     If LCase(ActID(bNum + 1)) = LCase(dItem) Then
991         Actions.ListIndex = bNum
992     End If
993 Next bNum
994 Item.Tag = dItem
995 End Sub