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 Small banner for links to this site: |
diff --git a/frmMpq.frm b/frmMpq.frm
--- a/frmMpq.frm
+++ b/frmMpq.frm
-VERSION 4.00
-Begin VB.Form frmMpq
- BorderStyle = 1 'Fixed Single
- Caption = "MPQ Embedder"
- ClientHeight = 1695
- ClientLeft = 3045
- ClientTop = 2730
- ClientWidth = 2775
- Height = 2385
- Icon = "frmMpq.frx":0000
- Left = 2985
- LinkTopic = "Form1"
- MaxButton = 0 'False
- ScaleHeight = 1695
- ScaleWidth = 2775
- Top = 2100
- Width = 2895
- Begin VB.CommandButton cmdSaveEXE
- Caption = "Save &EXE"
- Enabled = 0 'False
- Height = 375
- Left = 1440
- TabIndex = 3
- Top = 1200
- Width = 1215
- End
- Begin VB.CommandButton cmdRemove
- Caption = "&Remove"
- Enabled = 0 'False
- Height = 375
- Left = 120
- TabIndex = 2
- Top = 1200
- Width = 1215
- End
- Begin VB.CommandButton cmdSaveMPQ
- Caption = "Save &MPQ"
- Enabled = 0 'False
- Height = 375
- Left = 1440
- TabIndex = 1
- Top = 720
- Width = 1215
- End
- Begin VB.CommandButton cmdAdd
- Caption = "&Add"
- Enabled = 0 'False
- Height = 375
- Left = 120
- TabIndex = 0
- Top = 720
- Width = 1215
- End
- Begin VB.Label Label1
- Height = 615
- Left = 120
- TabIndex = 4
- Top = 120
- Width = 2565
- WordWrap = -1 'True
- End
- Begin VB.Menu mnuFile
- Caption = "&File"
- Begin VB.Menu mnuFOpen
- Caption = "&Open..."
- End
- Begin VB.Menu mnuFSep
- Caption = "-"
- End
- Begin VB.Menu mnuFExit
- Caption = "E&xit"
- End
- End
- Begin VB.Menu mnuRun
- Caption = "&Run EXE"
- Enabled = 0 'False
- End
- Begin VB.Menu mnuHelp
- Caption = "&Help"
- Begin VB.Menu mnuHReadme
- Caption = "View &Readme..."
- End
- Begin VB.Menu mnuHSep
- Caption = "-"
- End
- Begin VB.Menu mnuHAbout
- Caption = "&About..."
- End
- End
-End
-Attribute VB_Name = "frmMpq"
-Attribute VB_Creatable = False
-Attribute VB_Exposed = False
-Option Explicit
-
-Dim MpqHeader As Long, IsEXE As Boolean, FileDialog As OPENFILENAME
-Private Sub cmdAdd_Click()
-Dim OldFileName As String, NewMpqHeader As Long, fNum As Long, Text As String, fNum2 As Long, Text2 As String, bNum As Long
-FileDialog.Flags = &H1000 Or &H4 Or &H2
-FileDialog.Filter = "Mpq Archives (*.mpq;*.exe;*.snp;*.scm;*.scx;*.w3m;*.w3x)|*.mpq;*.exe;*.snp;*.scm;*.scx;*.w3m;*.w3x|All Files (*.*)|*.*"
-OldFileName = FileDialog.FileName
-FileDialog.hwndOwner = hWnd
-If ShowOpen(FileDialog) = False Then GoTo Cancel
-NewMpqHeader = FindMpqHeader(FileDialog.FileName)
-If NewMpqHeader = -1 Then
- MsgBox "This file does not contain an MPQ archive.", , "MPQ Embedder"
- GoTo Cancel
-End If
-fNum = FreeFile
-Open FileDialog.FileName For Binary As #fNum
-fNum2 = FreeFile
-Open OldFileName For Binary As #fNum2
-If MpqHeader / 512 <> Int(MpqHeader / 512) Then
- bNum = MsgBox("The file you are adding the MPQ archive to" + vbCrLf + "is not the proper size; therefore, most MPQ" + vbCrLf + "archive readers will not be able to read it." + vbCrLf + "Do you want to increase the size of the file," + vbCrLf + "so other programs can read it?", vbQuestion Or vbYesNo Or vbDefaultButton1, "MPQ Embedder")
- If bNum = vbYes Then
- Text = String(512 - (MpqHeader - Int(MpqHeader / 512) * 512), Chr(0))
- Put #fNum2, MpqHeader + 1, Text
- MpqHeader = MpqHeader + Len(Text)
- End If
-End If
-For bNum = NewMpqHeader + 1 To LOF(fNum) Step 2 ^ 20
- Text = String(2 ^ 20, Chr(0))
- If LOF(fNum) - bNum + 1 >= 2 ^ 20 Then
- Get #fNum, bNum, Text
- Put #fNum2, MpqHeader + bNum - NewMpqHeader, Text
- Else
- Text = String(LOF(fNum) - bNum + 1, Chr(0))
- Get #fNum, bNum, Text
- Put #fNum2, MpqHeader + bNum - NewMpqHeader, Text
- End If
-Next bNum
-Close #fNum2
-Close #fNum
-cmdAdd.Enabled = False
-cmdRemove.Enabled = True
-cmdSaveMPQ.Enabled = True
-cmdSaveEXE.Enabled = True
-If MpqHeader / 512 = Int(MpqHeader / 512) Then
- Label1.Caption = "This file contains an MPQ archive."
-Else
- Label1.Caption = "This file contains an MPQ archive, but other programs may not be able to read it."
-End If
-Cancel:
-FileDialog.FileName = OldFileName
-End Sub
-Private Sub cmdRemove_Click()
-Dim fNum As Long, Text As String, fNum2 As Long, Text2 As String, bNum As Long
-bNum = MsgBox("Are you sure you want to permanently" + vbCrLf + "remove the MPQ archive from this file?", vbQuestion Or vbYesNo Or vbDefaultButton2, "MPQ Embedder")
-If bNum = vbNo Then Exit Sub
-fNum = FreeFile
-Open FileDialog.FileName For Binary As #fNum
-fNum2 = FreeFile
-If Dir(FileDialog.FileName + ".remove") <> "" Then Kill FileDialog.FileName + ".remove"
-Open FileDialog.FileName + ".remove" For Binary As #fNum2
-For bNum = 1 To MpqHeader Step 2 ^ 20
- Text = String(2 ^ 20, Chr(0))
- If MpqHeader - bNum + 1 >= 2 ^ 20 Then
- Get #fNum, bNum, Text
- Put #fNum2, bNum, Text
- Else
- Text = String(MpqHeader - bNum + 1, Chr(0))
- Get #fNum, bNum, Text
- Put #fNum2, bNum, Text
- End If
-Next bNum
-Close #fNum2
-Close #fNum
-Kill FileDialog.FileName
-Name FileDialog.FileName + ".remove" As FileDialog.FileName
-cmdAdd.Enabled = True
-cmdRemove.Enabled = False
-cmdSaveMPQ.Enabled = False
-cmdSaveEXE.Enabled = True
-Label1.Caption = "This file does not contain an MPQ archive."
-End Sub
-Private Sub cmdSaveEXE_Click()
-Dim OldFileName As String, fNum As Long, Text As String, fNum2 As Long, Text2 As String, bNum As Long
-FileDialog.Flags = &H1000 Or &H4 Or &H2
-FileDialog.Filter = "File (*.*)|*.*"
-FileDialog.DefaultExt = ""
-OldFileName = FileDialog.FileName
-FileDialog.FileName = FileDialog.FileName
-FileDialog.hwndOwner = hWnd
-If ShowSave(FileDialog) = False Then GoTo Cancel
-fNum = FreeFile
-Open OldFileName For Binary As #fNum
-fNum2 = FreeFile
-If Dir(FileDialog.FileName) <> "" Then Kill FileDialog.FileName
-Open FileDialog.FileName For Binary As #fNum2
-For bNum = 1 To MpqHeader Step 2 ^ 20
- Text = String(2 ^ 20, Chr(0))
- If MpqHeader - bNum + 1 >= 2 ^ 20 Then
- Get #fNum, bNum, Text
- Put #fNum2, bNum, Text
- Else
- Text = String(MpqHeader - bNum + 1, Chr(0))
- Get #fNum, bNum, Text
- Put #fNum2, bNum, Text
- End If
-Next bNum
-Close #fNum2
-Close #fNum
-Cancel:
-FileDialog.FileName = OldFileName
-End Sub
-Private Sub cmdSaveMPQ_Click()
-Dim OldFileName As String, fNum As Long, Text As String, fNum2 As Long, Text2 As String, bNum As Long
-FileDialog.Flags = &H1000 Or &H4 Or &H2
-FileDialog.Filter = "MPQ Archive (*.mpq)|*.mpq"
-FileDialog.DefaultExt = "mpq"
-OldFileName = FileDialog.FileName
-FileDialog.FileName = FileDialog.FileName + ".mpq"
-FileDialog.hwndOwner = hWnd
-If ShowSave(FileDialog) = False Then GoTo Cancel
-fNum = FreeFile
-Open OldFileName For Binary As #fNum
-fNum2 = FreeFile
-If Dir(FileDialog.FileName) <> "" Then Kill FileDialog.FileName
-Open FileDialog.FileName For Binary As #fNum2
-For bNum = MpqHeader + 1 To LOF(fNum) Step 2 ^ 20
- Text = String(2 ^ 20, Chr(0))
- If LOF(fNum) - bNum + 1 >= 2 ^ 20 Then
- Get #fNum, bNum, Text
- Put #fNum2, bNum - MpqHeader, Text
- Else
- Text = String(LOF(fNum) - bNum + 1, Chr(0))
- Get #fNum, bNum, Text
- Put #fNum2, bNum - MpqHeader, Text
- End If
-Next bNum
-Close #fNum2
-Close #fNum
-Cancel:
-FileDialog.FileName = OldFileName
-End Sub
-
-Private Sub Form_Load()
-FileDialog = CD
-End Sub
-Private Sub mnuFExit_Click()
-Unload Me
-End Sub
-Private Sub mnuFOpen_Click()
-Dim OldFileName As String, OldMpqHeader As Long, fNum As Long, Text As String
-FileDialog.Flags = &H1000 Or &H4 Or &H2
-FileDialog.Filter = "All Files (*.*)|*.*"
-OldFileName = FileDialog.FileName
-OldMpqHeader = MpqHeader
-FileDialog.hwndOwner = hWnd
-If ShowOpen(FileDialog) = False Then GoTo Cancel
-If FileLen(FileDialog.FileName) = 0 Then
- MsgBox "This is an empty file.", vbExclamation, "MPQ Embedder"
- GoTo Cancel
-End If
-fNum = FreeFile
-Open FileDialog.FileName For Binary As #fNum
-Text = String(2, Chr(0))
-If LOF(fNum) >= 2 Then Get #fNum, 1, Text
-Close #fNum
-If Text = "MZ" Then IsEXE = True Else IsEXE = False
-If IsEXE Then mnuRun.Enabled = True Else mnuRun.Enabled = False
-MpqHeader = FindMpqHeader(FileDialog.FileName)
-If MpqHeader <= -1 Then
- cmdAdd.Enabled = True
- cmdRemove.Enabled = False
- cmdSaveMPQ.Enabled = False
- cmdSaveEXE.Enabled = True
- MpqHeader = FileLen(FileDialog.FileName)
- Label1.Caption = "This file does not contain an MPQ archive."
-ElseIf MpqHeader = 0 Then
- cmdAdd.Enabled = False
- cmdRemove.Enabled = False
- cmdSaveMPQ.Enabled = True
- cmdSaveEXE.Enabled = False
- Label1.Caption = "This file is an MPQ archive."
-ElseIf MpqHeader > 0 Then
- cmdAdd.Enabled = False
- cmdRemove.Enabled = True
- cmdSaveMPQ.Enabled = True
- cmdSaveEXE.Enabled = True
- If MpqHeader / 512 = Int(MpqHeader / 512) Then
- Label1.Caption = "This file contains an MPQ archive."
- Else
- Label1.Caption = "This file contains an MPQ archive, but other programs may be unable to read it."
- End If
-End If
-Exit Sub
-Cancel:
-FileDialog.FileName = OldFileName
-MpqHeader = OldMpqHeader
-End Sub
-Private Sub mnuHAbout_Click()
-About.Show 1
-End Sub
-Private Sub mnuHReadme_Click()
-Dim Path As String
-Path = App.Path
-If Right(Path, 1) <> "\" Then Path = Path + "\"
-If Dir(Path + "WMpqEmbed.rtf") = "" Then MsgBox "Could not find WMpqEmbed.rtf!", vbCritical, "MPQ Embedder"
-ShellExecute hWnd, vbNullString, Path + "WMpqEmbed.rtf", vbNullString, vbNullString, 1
-End Sub
-Private Sub mnuRun_Click()
-On Error GoTo NotExecutable
-Shell FileDialog.FileName, 1
-Exit Sub
-NotExecutable:
-MsgBox "This file is not a .exe file.", vbInformation, "MPQ Embedder"
-End Sub
+VERSION 4.00\r
+Begin VB.Form frmMpq \r
+ BorderStyle = 1 'Fixed Single\r
+ Caption = "MPQ Embedder"\r
+ ClientHeight = 1695\r
+ ClientLeft = 3045\r
+ ClientTop = 2730\r
+ ClientWidth = 2775\r
+ Height = 2385\r
+ Icon = "frmMpq.frx":0000\r
+ Left = 2985\r
+ LinkTopic = "Form1"\r
+ MaxButton = 0 'False\r
+ ScaleHeight = 1695\r
+ ScaleWidth = 2775\r
+ Top = 2100\r
+ Width = 2895\r
+ Begin VB.CommandButton cmdSaveEXE \r
+ Caption = "Save &EXE"\r
+ Enabled = 0 'False\r
+ Height = 375\r
+ Left = 1440\r
+ TabIndex = 3\r
+ Top = 1200\r
+ Width = 1215\r
+ End\r
+ Begin VB.CommandButton cmdRemove \r
+ Caption = "&Remove"\r
+ Enabled = 0 'False\r
+ Height = 375\r
+ Left = 120\r
+ TabIndex = 2\r
+ Top = 1200\r
+ Width = 1215\r
+ End\r
+ Begin VB.CommandButton cmdSaveMPQ \r
+ Caption = "Save &MPQ"\r
+ Enabled = 0 'False\r
+ Height = 375\r
+ Left = 1440\r
+ TabIndex = 1\r
+ Top = 720\r
+ Width = 1215\r
+ End\r
+ Begin VB.CommandButton cmdAdd \r
+ Caption = "&Add"\r
+ Enabled = 0 'False\r
+ Height = 375\r
+ Left = 120\r
+ TabIndex = 0\r
+ Top = 720\r
+ Width = 1215\r
+ End\r
+ Begin VB.Label Label1 \r
+ Height = 615\r
+ Left = 120\r
+ TabIndex = 4\r
+ Top = 120\r
+ Width = 2565\r
+ WordWrap = -1 'True\r
+ End\r
+ Begin VB.Menu mnuFile \r
+ Caption = "&File"\r
+ Begin VB.Menu mnuFOpen \r
+ Caption = "&Open..."\r
+ End\r
+ Begin VB.Menu mnuFSep \r
+ Caption = "-"\r
+ End\r
+ Begin VB.Menu mnuFExit \r
+ Caption = "E&xit"\r
+ End\r
+ End\r
+ Begin VB.Menu mnuRun \r
+ Caption = "&Run EXE"\r
+ Enabled = 0 'False\r
+ End\r
+ Begin VB.Menu mnuHelp \r
+ Caption = "&Help"\r
+ Begin VB.Menu mnuHReadme \r
+ Caption = "View &Readme..."\r
+ End\r
+ Begin VB.Menu mnuHSep \r
+ Caption = "-"\r
+ End\r
+ Begin VB.Menu mnuHAbout \r
+ Caption = "&About..."\r
+ End\r
+ End\r
+End\r
+Attribute VB_Name = "frmMpq"\r
+Attribute VB_Creatable = False\r
+Attribute VB_Exposed = False\r
+Option Explicit\r
+\r
+Dim MpqHeader As Long, IsEXE As Boolean, FileDialog As OPENFILENAME\r
+Private Sub cmdAdd_Click()\r
+Dim OldFileName As String, NewMpqHeader As Long, fNum As Long, Text As String, fNum2 As Long, Text2 As String, bNum As Long\r
+FileDialog.Flags = &H1000 Or &H4 Or &H2\r
+FileDialog.Filter = "Mpq Archives (*.mpq;*.exe;*.snp;*.scm;*.scx;*.w3m;*.w3x)|*.mpq;*.exe;*.snp;*.scm;*.scx;*.w3m;*.w3x|All Files (*.*)|*.*"\r
+OldFileName = FileDialog.FileName\r
+FileDialog.hwndOwner = hWnd\r
+If ShowOpen(FileDialog) = False Then GoTo Cancel\r
+NewMpqHeader = FindMpqHeader(FileDialog.FileName)\r
+If NewMpqHeader = -1 Then\r
+ MsgBox "This file does not contain an MPQ archive.", , "MPQ Embedder"\r
+ GoTo Cancel\r
+End If\r
+fNum = FreeFile\r
+Open FileDialog.FileName For Binary As #fNum\r
+fNum2 = FreeFile\r
+Open OldFileName For Binary As #fNum2\r
+If MpqHeader / 512 <> Int(MpqHeader / 512) Then\r
+ bNum = MsgBox("The file you are adding the MPQ archive to" + vbCrLf + "is not the proper size; therefore, most MPQ" + vbCrLf + "archive readers will not be able to read it." + vbCrLf + "Do you want to increase the size of the file," + vbCrLf + "so other programs can read it?", vbQuestion Or vbYesNo Or vbDefaultButton1, "MPQ Embedder")\r
+ If bNum = vbYes Then\r
+ Text = String(512 - (MpqHeader - Int(MpqHeader / 512) * 512), Chr(0))\r
+ Put #fNum2, MpqHeader + 1, Text\r
+ MpqHeader = MpqHeader + Len(Text)\r
+ End If\r
+End If\r
+For bNum = NewMpqHeader + 1 To LOF(fNum) Step 2 ^ 20\r
+ Text = String(2 ^ 20, Chr(0))\r
+ If LOF(fNum) - bNum + 1 >= 2 ^ 20 Then\r
+ Get #fNum, bNum, Text\r
+ Put #fNum2, MpqHeader + bNum - NewMpqHeader, Text\r
+ Else\r
+ Text = String(LOF(fNum) - bNum + 1, Chr(0))\r
+ Get #fNum, bNum, Text\r
+ Put #fNum2, MpqHeader + bNum - NewMpqHeader, Text\r
+ End If\r
+Next bNum\r
+Close #fNum2\r
+Close #fNum\r
+cmdAdd.Enabled = False\r
+cmdRemove.Enabled = True\r
+cmdSaveMPQ.Enabled = True\r
+cmdSaveEXE.Enabled = True\r
+If MpqHeader / 512 = Int(MpqHeader / 512) Then\r
+ Label1.Caption = "This file contains an MPQ archive."\r
+Else\r
+ Label1.Caption = "This file contains an MPQ archive, but other programs may not be able to read it."\r
+End If\r
+Cancel:\r
+FileDialog.FileName = OldFileName\r
+End Sub\r
+Private Sub cmdRemove_Click()\r
+Dim fNum As Long, Text As String, fNum2 As Long, Text2 As String, bNum As Long\r
+bNum = MsgBox("Are you sure you want to permanently" + vbCrLf + "remove the MPQ archive from this file?", vbQuestion Or vbYesNo Or vbDefaultButton2, "MPQ Embedder")\r
+If bNum = vbNo Then Exit Sub\r
+fNum = FreeFile\r
+Open FileDialog.FileName For Binary As #fNum\r
+fNum2 = FreeFile\r
+If Dir(FileDialog.FileName + ".remove") <> "" Then Kill FileDialog.FileName + ".remove"\r
+Open FileDialog.FileName + ".remove" For Binary As #fNum2\r
+For bNum = 1 To MpqHeader Step 2 ^ 20\r
+ Text = String(2 ^ 20, Chr(0))\r
+ If MpqHeader - bNum + 1 >= 2 ^ 20 Then\r
+ Get #fNum, bNum, Text\r
+ Put #fNum2, bNum, Text\r
+ Else\r
+ Text = String(MpqHeader - bNum + 1, Chr(0))\r
+ Get #fNum, bNum, Text\r
+ Put #fNum2, bNum, Text\r
+ End If\r
+Next bNum\r
+Close #fNum2\r
+Close #fNum\r
+Kill FileDialog.FileName\r
+Name FileDialog.FileName + ".remove" As FileDialog.FileName\r
+cmdAdd.Enabled = True\r
+cmdRemove.Enabled = False\r
+cmdSaveMPQ.Enabled = False\r
+cmdSaveEXE.Enabled = True\r
+Label1.Caption = "This file does not contain an MPQ archive."\r
+End Sub\r
+Private Sub cmdSaveEXE_Click()\r
+Dim OldFileName As String, fNum As Long, Text As String, fNum2 As Long, Text2 As String, bNum As Long\r
+FileDialog.Flags = &H1000 Or &H4 Or &H2\r
+FileDialog.Filter = "File (*.*)|*.*"\r
+FileDialog.DefaultExt = ""\r
+OldFileName = FileDialog.FileName\r
+FileDialog.FileName = FileDialog.FileName\r
+FileDialog.hwndOwner = hWnd\r
+If ShowSave(FileDialog) = False Then GoTo Cancel\r
+fNum = FreeFile\r
+Open OldFileName For Binary As #fNum\r
+fNum2 = FreeFile\r
+If Dir(FileDialog.FileName) <> "" Then Kill FileDialog.FileName\r
+Open FileDialog.FileName For Binary As #fNum2\r
+For bNum = 1 To MpqHeader Step 2 ^ 20\r
+ Text = String(2 ^ 20, Chr(0))\r
+ If MpqHeader - bNum + 1 >= 2 ^ 20 Then\r
+ Get #fNum, bNum, Text\r
+ Put #fNum2, bNum, Text\r
+ Else\r
+ Text = String(MpqHeader - bNum + 1, Chr(0))\r
+ Get #fNum, bNum, Text\r
+ Put #fNum2, bNum, Text\r
+ End If\r
+Next bNum\r
+Close #fNum2\r
+Close #fNum\r
+Cancel:\r
+FileDialog.FileName = OldFileName\r
+End Sub\r
+Private Sub cmdSaveMPQ_Click()\r
+Dim OldFileName As String, fNum As Long, Text As String, fNum2 As Long, Text2 As String, bNum As Long\r
+FileDialog.Flags = &H1000 Or &H4 Or &H2\r
+FileDialog.Filter = "MPQ Archive (*.mpq)|*.mpq"\r
+FileDialog.DefaultExt = "mpq"\r
+OldFileName = FileDialog.FileName\r
+FileDialog.FileName = FileDialog.FileName + ".mpq"\r
+FileDialog.hwndOwner = hWnd\r
+If ShowSave(FileDialog) = False Then GoTo Cancel\r
+fNum = FreeFile\r
+Open OldFileName For Binary As #fNum\r
+fNum2 = FreeFile\r
+If Dir(FileDialog.FileName) <> "" Then Kill FileDialog.FileName\r
+Open FileDialog.FileName For Binary As #fNum2\r
+For bNum = MpqHeader + 1 To LOF(fNum) Step 2 ^ 20\r
+ Text = String(2 ^ 20, Chr(0))\r
+ If LOF(fNum) - bNum + 1 >= 2 ^ 20 Then\r
+ Get #fNum, bNum, Text\r
+ Put #fNum2, bNum - MpqHeader, Text\r
+ Else\r
+ Text = String(LOF(fNum) - bNum + 1, Chr(0))\r
+ Get #fNum, bNum, Text\r
+ Put #fNum2, bNum - MpqHeader, Text\r
+ End If\r
+Next bNum\r
+Close #fNum2\r
+Close #fNum\r
+Cancel:\r
+FileDialog.FileName = OldFileName\r
+End Sub\r
+\r
+Private Sub Form_Load()\r
+FileDialog = CD\r
+End Sub\r
+Private Sub mnuFExit_Click()\r
+Unload Me\r
+End Sub\r
+Private Sub mnuFOpen_Click()\r
+Dim OldFileName As String, OldMpqHeader As Long, fNum As Long, Text As String\r
+FileDialog.Flags = &H1000 Or &H4 Or &H2\r
+FileDialog.Filter = "All Files (*.*)|*.*"\r
+OldFileName = FileDialog.FileName\r
+OldMpqHeader = MpqHeader\r
+FileDialog.hwndOwner = hWnd\r
+If ShowOpen(FileDialog) = False Then GoTo Cancel\r
+If FileLen(FileDialog.FileName) = 0 Then\r
+ MsgBox "This is an empty file.", vbExclamation, "MPQ Embedder"\r
+ GoTo Cancel\r
+End If\r
+fNum = FreeFile\r
+Open FileDialog.FileName For Binary As #fNum\r
+Text = String(2, Chr(0))\r
+If LOF(fNum) >= 2 Then Get #fNum, 1, Text\r
+Close #fNum\r
+If Text = "MZ" Then IsEXE = True Else IsEXE = False\r
+If IsEXE Then mnuRun.Enabled = True Else mnuRun.Enabled = False\r
+MpqHeader = FindMpqHeader(FileDialog.FileName)\r
+If MpqHeader <= -1 Then\r
+ cmdAdd.Enabled = True\r
+ cmdRemove.Enabled = False\r
+ cmdSaveMPQ.Enabled = False\r
+ cmdSaveEXE.Enabled = True\r
+ MpqHeader = FileLen(FileDialog.FileName)\r
+ Label1.Caption = "This file does not contain an MPQ archive."\r
+ElseIf MpqHeader = 0 Then\r
+ cmdAdd.Enabled = False\r
+ cmdRemove.Enabled = False\r
+ cmdSaveMPQ.Enabled = True\r
+ cmdSaveEXE.Enabled = False\r
+ Label1.Caption = "This file is an MPQ archive."\r
+ElseIf MpqHeader > 0 Then\r
+ cmdAdd.Enabled = False\r
+ cmdRemove.Enabled = True\r
+ cmdSaveMPQ.Enabled = True\r
+ cmdSaveEXE.Enabled = True\r
+ If MpqHeader / 512 = Int(MpqHeader / 512) Then\r
+ Label1.Caption = "This file contains an MPQ archive."\r
+ Else\r
+ Label1.Caption = "This file contains an MPQ archive, but other programs may be unable to read it."\r
+ End If\r
+End If\r
+Exit Sub\r
+Cancel:\r
+FileDialog.FileName = OldFileName\r
+MpqHeader = OldMpqHeader\r
+End Sub\r
+Private Sub mnuHAbout_Click()\r
+About.Show 1\r
+End Sub\r
+Private Sub mnuHReadme_Click()\r
+Dim Path As String\r
+Path = App.Path\r
+If Right(Path, 1) <> "\" Then Path = Path + "\"\r
+If Dir(Path + "WMpqEmbed.rtf") = "" Then MsgBox "Could not find WMpqEmbed.rtf!", vbCritical, "MPQ Embedder"\r
+ShellExecute hWnd, vbNullString, Path + "WMpqEmbed.rtf", vbNullString, vbNullString, 1\r
+End Sub\r
+Private Sub mnuRun_Click()\r
+On Error GoTo NotExecutable\r
+Shell FileDialog.FileName, 1\r
+Exit Sub\r
+NotExecutable:\r
+MsgBox "This file is not a .exe file.", vbInformation, "MPQ Embedder"\r
+End Sub\r
|