VERSION 5.00 Begin VB.Form frmWizard Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 1 'Fixed Single Caption = "OpenOffice.org Document Analysis Wizard" ClientHeight = 5520 ClientLeft = 1965 ClientTop = 1815 ClientWidth = 8175 BeginProperty Font Name = "Arial" Size = 8.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Icon = "Wizard.frx":0000 KeyPreview = -1 'True LinkTopic = "Form1" LockControls = -1 'True MaxButton = 0 'False MinButton = 0 'False ScaleHeight = 5520 ScaleWidth = 8175 Tag = "1000" Begin VB.Frame fraStep BorderStyle = 0 'None Caption = "Introduction" ClipControls = 0 'False Enabled = 0 'False BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 4905 Index = 0 Left = -10000 TabIndex = 25 Tag = "1000" Top = 0 Width = 8235 Begin VB.PictureBox Picture4 Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 0 'None ForeColor = &H80000008& Height = 4935 Index = 0 Left = 0 ScaleHeight = 4935 ScaleWidth = 2565 TabIndex = 2 TabStop = 0 'False Top = 0 Width = 2565 Begin VB.PictureBox Picture10 Height = 735 Left = 2580 ScaleHeight = 735 ScaleWidth = 30 TabIndex = 68 TabStop = 0 'False Top = 2610 Width = 30 End Begin VB.PictureBox Picture6 Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 0 'None ForeColor = &H80000008& Height = 1485 Left = 150 ScaleHeight = 1485 ScaleWidth = 2355 TabIndex = 67 TabStop = 0 'False Top = 3390 Width = 2355 Begin VB.PictureBox Picture1 Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 0 'None ForeColor = &H80000008& Height = 1200 Index = 0 Left = 200 Picture = "Wizard.frx":482C2 ScaleHeight = 1200 ScaleWidth = 1980 TabIndex = 7 TabStop = 0 'False Tag = "1060" Top = 300 Width = 1980 End End Begin VB.Label lblStep1_4 BackColor = &H00EED3C2& BackStyle = 0 'Transparent Caption = "4. Analyze" ForeColor = &H00BF4F59& Height = 195 Left = 120 TabIndex = 89 Tag = "1044" Top = 1800 Width = 2140 End Begin VB.Line Line2 BorderColor = &H00808080& Index = 2 X1 = 2550 X2 = 2550 Y1 = 0 Y2 = 4920 End Begin VB.Line Line3 Index = 1 X1 = 120 X2 = 2280 Y1 = 480 Y2 = 480 End Begin VB.Label Label7 BackColor = &H00EED3C2& Caption = "1. Introduction" ForeColor = &H00BF4F59& Height = 255 Index = 1 Left = 120 TabIndex = 11 Tag = "1041" Top = 720 Width = 2140 End Begin VB.Label Label8 BackColor = &H00EED3C2& BackStyle = 0 'Transparent Caption = "3. Results" ForeColor = &H00BF4F59& Height = 255 Index = 1 Left = 120 TabIndex = 9 Tag = "1043" Top = 1440 Width = 2140 End Begin VB.Label Label9 BackColor = &H00EED3C2& BackStyle = 0 'Transparent Caption = "2. Documents" ForeColor = &H00BF4F59& Height = 255 Index = 1 Left = 120 TabIndex = 10 Tag = "1042" Top = 1080 Width = 2140 End Begin VB.Label Label12 BackStyle = 0 'Transparent Caption = "Steps" BeginProperty Font Name = "Arial" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Index = 1 Left = 120 TabIndex = 8 Tag = "1040" Top = 240 Width = 2115 End End Begin VB.PictureBox Picture8 Appearance = 0 'Flat BorderStyle = 0 'None ForeColor = &H80000008& Height = 4935 Left = 2400 ScaleHeight = 4935 ScaleWidth = 5925 TabIndex = 3 TabStop = 0 'False Top = -30 Width = 5925 Begin VB.CheckBox chkShowIntro Caption = "Do not show this introduction again" Enabled = 0 'False Height = 315 Left = 690 MaskColor = &H00000000& TabIndex = 6 Tag = "1103" Top = 4890 Visible = 0 'False Width = 3810 End Begin VB.Label lblIntroduction1 AutoSize = -1 'True Caption = $"Wizard.frx":4F8B8 Height = 585 Left = 690 TabIndex = 93 Tag = "1101" Top = 750 Width = 4890 WordWrap = -1 'True End Begin VB.Label lblIntroduction3 AutoSize = -1 'True Caption = "The wizard will remain on screen while the analysis is carried out." Height = 195 Left = 690 TabIndex = 0 Tag = "1104" Top = 2670 Width = 4845 WordWrap = -1 'True End Begin VB.Label lblIntroduction2 AutoSize = -1 'True Caption = "You will be able to select which documents you want to analyze as well as where you want the results to the analysis to be saved. " Height = 390 Left = 690 TabIndex = 1 Tag = "1102" Top = 1800 Width = 4875 WordWrap = -1 'True End Begin VB.Label Label12 BackStyle = 0 'Transparent Caption = "Introduction" BeginProperty Font Name = "Arial" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Index = 2 Left = 450 TabIndex = 5 Tag = "1100" Top = 270 Width = 4000 End End End Begin VB.Frame fraStep BorderStyle = 0 'None Caption = "Setup" Enabled = 0 'False BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 4905 Index = 1 Left = -10000 TabIndex = 32 Tag = "2000" Top = 0 Width = 8235 Begin VB.PictureBox Picture4 Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 0 'None ForeColor = &H80000008& Height = 4905 Index = 1 Left = 0 ScaleHeight = 4905 ScaleWidth = 2565 TabIndex = 61 TabStop = 0 'False Top = 0 Width = 2565 Begin VB.PictureBox Picture1 Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 0 'None ForeColor = &H80000008& Height = 1200 Index = 1 Left = 350 Picture = "Wizard.frx":4F971 ScaleHeight = 1200 ScaleWidth = 1980 TabIndex = 62 TabStop = 0 'False Tag = "1060" Top = 3690 Width = 1980 End Begin VB.Label lblStep2_4 BackColor = &H00EED3C2& BackStyle = 0 'Transparent Caption = "4. Analyze" ForeColor = &H00BF4F59& Height = 195 Left = 120 TabIndex = 90 Tag = "1044" Top = 1800 Width = 2140 End Begin VB.Line Line2 BorderColor = &H00808080& Index = 1 X1 = 2550 X2 = 2550 Y1 = 0 Y2 = 4920 End Begin VB.Label Label12 BackStyle = 0 'Transparent Caption = "Steps" BeginProperty Font Name = "Arial" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Index = 3 Left = 120 TabIndex = 66 Tag = "1040" Top = 240 Width = 1335 End Begin VB.Label Label9 BackColor = &H00EED3C2& Caption = "2. Documents" ForeColor = &H00BF4F59& Height = 255 Index = 2 Left = 120 TabIndex = 65 Tag = "1042" Top = 1080 Width = 2140 End Begin VB.Label Label8 BackColor = &H00EED3C2& BackStyle = 0 'Transparent Caption = "3. Results" ForeColor = &H00BF4F59& Height = 255 Index = 2 Left = 120 TabIndex = 64 Tag = "1043" Top = 1440 Width = 2140 End Begin VB.Label Label7 BackColor = &H00EED3C2& BackStyle = 0 'Transparent Caption = "1. Introduction" ForeColor = &H00BF4F59& Height = 255 Index = 2 Left = 120 TabIndex = 63 Tag = "1041" Top = 720 Width = 2140 End Begin VB.Line Line3 Index = 2 X1 = 120 X2 = 2280 Y1 = 480 Y2 = 480 End End Begin VB.PictureBox Picture7 Appearance = 0 'Flat BorderStyle = 0 'None ForeColor = &H80000008& Height = 4725 Left = 2580 ScaleHeight = 4725 ScaleWidth = 5535 TabIndex = 58 TabStop = 0 'False Top = 0 Width = 5535 Begin VB.ComboBox cbIgnoreOld Height = 330 ItemData = "Wizard.frx":56F67 Left = 3950 List = "Wizard.frx":56F74 Style = 2 'Dropdown List TabIndex = 99 Top = 1570 Width = 1215 End Begin VB.CheckBox chkIgnoreOld Caption = "Ignore documents older than" Height = 225 Left = 450 TabIndex = 98 Top = 1600 Width = 3400 End Begin VB.CheckBox chkWordDoc Caption = "Documents (*.doc)" Height = 225 Left = 2160 TabIndex = 19 Tag = "1208" Top = 2600 Value = 1 'Checked Width = 3200 End Begin VB.CheckBox chkWordTemplate Caption = "Templates (*.dot)" Height = 225 Left = 2160 TabIndex = 20 Tag = "1209" Top = 2900 Width = 3200 End Begin VB.CheckBox chkPPTemplate Caption = "Templates (*.pot)" Height = 225 Left = 2160 TabIndex = 24 Tag = "1215" Top = 4400 Width = 3200 End Begin VB.CheckBox chkPPDoc Caption = "Presentations (*.ppt)" Height = 225 Left = 2160 TabIndex = 23 Tag = "1214" Top = 4100 Width = 3200 End Begin VB.CheckBox chkExcelDoc Caption = "Spreadsheets (*.xls)" Height = 225 Left = 2160 TabIndex = 21 Tag = "1211" Top = 3350 Width = 3200 End Begin VB.CheckBox chkExcelTemplate Caption = "Templates (*.xlt)" Height = 225 Left = 2160 TabIndex = 22 Tag = "1212" Top = 3650 Width = 3200 End Begin VB.CommandButton btnBrowseDirInput Caption = "..." Height = 315 Left = 4740 TabIndex = 17 Top = 900 Width = 400 End Begin VB.TextBox txtInputDir Height = 315 Left = 450 TabIndex = 16 Tag = "1205" Text = "C:\" Top = 900 Width = 4155 End Begin VB.CheckBox chkIncludeSubdirs Caption = "Include subdirectories in the analysis" Height = 225 Left = 450 TabIndex = 18 Tag = "1202" Top = 1300 Width = 4965 End Begin VB.Label lblDocTypes Caption = "Document types to analyze" Height = 225 Left = 450 TabIndex = 95 Tag = "1206" Top = 2250 Width = 4905 End Begin VB.Label lblChooseDocs AutoSize = -1 'True Caption = "Choose the documents you want to analyze" BeginProperty Font Name = "Arial" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Left = 300 TabIndex = 94 Tag = "1200" Top = 240 Width = 5115 WordWrap = -1 'True End Begin VB.Label Label13 AutoSize = -1 'True Caption = "PowerPoint" Height = 225 Index = 2 Left = 690 TabIndex = 74 Tag = "1213" Top = 4100 Width = 1245 WordWrap = -1 'True End Begin VB.Label Label13 AutoSize = -1 'True Caption = "Excel" Height = 225 Index = 1 Left = 690 TabIndex = 73 Tag = "1210" Top = 3350 Width = 1245 WordWrap = -1 'True End Begin VB.Label Label13 AutoSize = -1 'True Caption = "Word" Height = 225 Index = 0 Left = 690 TabIndex = 72 Tag = "1207" Top = 2600 Width = 1245 WordWrap = -1 'True End Begin VB.Label Label1 Caption = "Location of Microsoft Office documents" Height = 200 Left = 450 TabIndex = 59 Tag = "1201" Top = 600 Width = 4935 End End End Begin VB.Frame fraStep BorderStyle = 0 'None Caption = "Options" Enabled = 0 'False BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 4905 Index = 2 Left = -10000 TabIndex = 33 Tag = "2002" Top = 0 Width = 8235 Begin VB.PictureBox Picture11 BorderStyle = 0 'None Height = 555 Left = 7260 ScaleHeight = 555 ScaleWidth = 705 TabIndex = 75 Top = 1890 Width = 705 Begin VB.CommandButton btnBrowseDirOut Caption = "..." Height = 375 Left = 90 TabIndex = 28 Top = 90 Width = 495 End End Begin VB.TextBox txtResultsName Height = 375 Left = 3030 TabIndex = 26 Tag = "1302" Text = "Analysis Results.xls" Top = 1140 Width = 3045 End Begin VB.TextBox txtOutputDir Height = 375 Left = 3030 TabIndex = 27 Top = 1980 Width = 4185 End Begin VB.PictureBox Picture5 Appearance = 0 'Flat BorderStyle = 0 'None ForeColor = &H80000008& Height = 1365 Left = 3300 ScaleHeight = 1365 ScaleWidth = 4635 TabIndex = 57 TabStop = 0 'False Top = 3210 Width = 4635 Begin VB.OptionButton rdbResultsPrompt Caption = "Ask me before overwriting" Height = 435 Left = 0 TabIndex = 29 Tag = "1312" Top = 0 Value = -1 'True Width = 4485 End Begin VB.OptionButton rdbResultsOverwrite Caption = "Overwrite without asking me" Height = 435 Left = 0 TabIndex = 30 Tag = "1313" Top = 450 Width = 4455 End Begin VB.OptionButton rdbResultsAppend Caption = "Append the new results to the existing results" Height = 675 Left = 0 TabIndex = 31 Tag = "1314" Top = 780 Visible = 0 'False Width = 4515 End End Begin VB.Frame Frame3 Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 0 'None Enabled = 0 'False ForeColor = &H0099A8AC& Height = 5175 Index = 0 Left = 0 TabIndex = 39 Top = 0 Width = 2535 Begin VB.PictureBox Picture1 Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 0 'None ForeColor = &H80000008& Height = 1200 Index = 3 Left = 350 Picture = "Wizard.frx":56F97 ScaleHeight = 1200 ScaleWidth = 1980 TabIndex = 40 TabStop = 0 'False Top = 3690 Width = 1980 End Begin VB.Label lblStep3_4 BackColor = &H00EED3C2& BackStyle = 0 'Transparent Caption = "4. Analyze" ForeColor = &H00BF4F59& Height = 195 Left = 120 TabIndex = 91 Tag = "1044" Top = 1800 Width = 2140 End Begin VB.Label Label12 BackStyle = 0 'Transparent Caption = "Steps" BeginProperty Font Name = "Arial" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Index = 0 Left = 120 TabIndex = 53 Tag = "1040" Top = 240 Width = 1335 End Begin VB.Label Label9 BackColor = &H00EED3C2& BackStyle = 0 'Transparent Caption = "2. Documents" ForeColor = &H00BF4F59& Height = 255 Index = 0 Left = 120 TabIndex = 43 Tag = "1042" Top = 1080 Width = 2140 End Begin VB.Label Label8 BackColor = &H00EED3C2& Caption = "3. Results" ForeColor = &H00BF4F59& Height = 255 Index = 0 Left = 120 TabIndex = 42 Tag = "1043" Top = 1440 Width = 2140 End Begin VB.Label Label7 BackColor = &H00EED3C2& BackStyle = 0 'Transparent Caption = "1. Introduction" ForeColor = &H00BF4F59& Height = 255 Index = 0 Left = 120 TabIndex = 41 Tag = "1041" Top = 720 Width = 2140 End Begin VB.Line Line3 Index = 0 X1 = 120 X2 = 2280 Y1 = 480 Y2 = 480 End End Begin VB.Label Label3 Caption = "File name for the results spreadsheet" Height = 195 Left = 3030 TabIndex = 71 Tag = "1301" Top = 840 Width = 4785 End Begin VB.Label lblResultsLocation Caption = "Location" Height = 195 Left = 3030 TabIndex = 70 Tag = "1304" Top = 1710 Width = 4755 End Begin VB.Label Label13 AutoSize = -1 'True Caption = "If results already exisit under the same name and location:" Height = 195 Index = 5 Left = 3030 TabIndex = 38 Tag = "1311" Top = 2730 Width = 4230 WordWrap = -1 'True End Begin VB.Line Line2 BorderColor = &H00808080& Index = 0 X1 = 2550 X2 = 2550 Y1 = 0 Y2 = 4920 End Begin VB.Label lblChooseResults AutoSize = -1 'True Caption = "Choose where and how to save the analysis results" BeginProperty Font Name = "Arial" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Left = 2880 TabIndex = 37 Tag = "1300" Top = 240 Width = 5055 WordWrap = -1 'True End End Begin VB.Frame fraStep BorderStyle = 0 'None Caption = "Analyze" Enabled = 0 'False BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 4905 Index = 3 Left = 0 TabIndex = 34 Tag = "3000" Top = 0 Width = 2.45745e5 Begin VB.PictureBox Picture12 Appearance = 0 'Flat BorderStyle = 0 'None ForeColor = &H80000008& Height = 4905 Left = 10020 ScaleHeight = 4905 ScaleWidth = 8175 TabIndex = 69 TabStop = 0 'False Top = 0 Width = 8175 End Begin VB.CommandButton btnPrepare Caption = "Prepare" Enabled = 0 'False Height = 375 Left = 3340 TabIndex = 97 Tag = "1411" Top = 4410 Visible = 0 'False Width = 4000 End Begin VB.CommandButton btnRunAnalysis Caption = "Run" Height = 375 Left = 3340 TabIndex = 35 Tag = "1404" Top = 3410 Width = 4000 End Begin VB.CommandButton btnViewResults Caption = "View" Enabled = 0 'False Height = 375 Left = 3340 TabIndex = 36 Tag = "1406" Top = 3910 Width = 4000 End Begin VB.Frame Frame3 Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 0 'None Enabled = 0 'False ForeColor = &H0099A8AC& Height = 5175 Index = 3 Left = 0 TabIndex = 44 Top = 0 Width = 2535 Begin VB.PictureBox Picture4 Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 0 'None ForeColor = &H80000008& Height = 1575 Index = 2 Left = 150 ScaleHeight = 1575 ScaleWidth = 2385 TabIndex = 55 TabStop = 0 'False Top = 3390 Width = 2385 Begin VB.PictureBox Picture1 Appearance = 0 'Flat BackColor = &H80000005& BorderStyle = 0 'None ForeColor = &H80000008& Height = 1200 Index = 2 Left = 200 Picture = "Wizard.frx":5E58D ScaleHeight = 1200 ScaleWidth = 2475 TabIndex = 56 TabStop = 0 'False Tag = "1060" Top = 300 Width = 2480 End End Begin VB.Label lblStep4_4 BackColor = &H00EED3C2& Caption = "4. Analyze" ForeColor = &H00BF4F59& Height = 255 Left = 120 TabIndex = 92 Tag = "1044" Top = 1800 Width = 2140 End Begin VB.Label Label12 BackStyle = 0 'Transparent Caption = "Steps" BeginProperty Font Name = "Arial" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 255 Index = 5 Left = 120 TabIndex = 54 Tag = "1040" Top = 240 Width = 1335 End Begin VB.Label Label9 BackColor = &H00EED3C2& BackStyle = 0 'Transparent Caption = "2. Documents" ForeColor = &H00BF4F59& Height = 255 Index = 3 Left = 120 TabIndex = 47 Tag = "1042" Top = 1080 Width = 2140 End Begin VB.Label Label8 BackColor = &H00EED3C2& BackStyle = 0 'Transparent Caption = "3. Results" ForeColor = &H00BF4F59& Height = 255 Index = 3 Left = 120 TabIndex = 46 Tag = "1043" Top = 1440 Width = 2140 End Begin VB.Label Label7 BackColor = &H00EED3C2& BackStyle = 0 'Transparent Caption = "1. Introduction" ForeColor = &H00BF4F59& Height = 255 Index = 3 Left = 120 TabIndex = 45 Tag = "1041" Top = 720 Width = 2140 End Begin VB.Line Line3 Index = 3 X1 = 120 X2 = 2280 Y1 = 480 Y2 = 480 End End Begin VB.Label lblSkippedOld Caption = "Skipped documets, because they were too old" Height = 195 Left = 3180 TabIndex = 60 Top = 2880 Width = 4935 End Begin VB.Label lblSetupDone AutoSize = -1 'True Caption = "Run the analysis and view the results" BeginProperty Font Name = "Arial" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 195 Left = 2880 TabIndex = 96 Tag = "1400" Top = 240 Width = 4905 WordWrap = -1 'True End Begin VB.Label lblNumPPT Caption = " Presentations" Height = 255 Left = 4620 TabIndex = 88 Tag = "1409" Top = 2280 Width = 3375 End Begin VB.Label lblNumPOT Caption = " Templates" Height = 255 Left = 4620 TabIndex = 87 Tag = "1403" Top = 2550 Width = 3375 End Begin VB.Label lblNumXLS Caption = " Spreadsheets" Height = 255 Left = 4620 TabIndex = 86 Tag = "1408" Top = 1680 Width = 3375 End Begin VB.Label lblNumXLT Caption = " Templates" Height = 255 Left = 4620 TabIndex = 85 Tag = "1403" Top = 1950 Width = 3375 End Begin VB.Label Label16 AutoSize = -1 'True Caption = "PowerPoint" Height = 195 Left = 3360 TabIndex = 82 Tag = "1213" Top = 2280 Width = 1095 WordWrap = -1 'True End Begin VB.Label Label13 Caption = "Word" Height = 705 Index = 10 Left = 0 TabIndex = 81 Tag = "1207" Top = 0 Width = 1245 End Begin VB.Label Label13 Caption = "Excel" Height = 705 Index = 9 Left = 0 TabIndex = 80 Tag = "1210" Top = 810 Width = 1245 End Begin VB.Label Label13 Caption = "PowerPoint" Height = 585 Index = 8 Left = 0 TabIndex = 79 Tag = "1213" Top = 1620 Width = 1245 End Begin VB.Label Label13 Caption = "Word" Height = 585 Index = 7 Left = 0 TabIndex = 78 Tag = "1207" Top = 0 Width = 1245 End Begin VB.Label Label13 Caption = "Excel" Height = 585 Index = 6 Left = 0 TabIndex = 77 Tag = "1210" Top = 810 Width = 1245 End Begin VB.Label Label13 Caption = "PowerPoint" Height = 465 Index = 4 Left = 0 TabIndex = 76 Tag = "1213" Top = 1620 Width = 1245 End Begin VB.Label lblNumTemplates Caption = " Templates" Height = 255 Left = 4620 TabIndex = 52 Tag = "1403" Top = 1350 Width = 3375 End Begin VB.Label lblNumDocs Caption = " Documents" Height = 255 Left = 4620 TabIndex = 51 Tag = "1402" Top = 1080 Width = 3375 End Begin VB.Line Line6 BorderColor = &H00808080& X1 = 2640 X2 = 8040 Y1 = 3270 Y2 = 3270 End Begin VB.Label Label15 AutoSize = -1 'True Caption = "Excel" Height = 195 Left = 3360 TabIndex = 50 Tag = "1210" Top = 1680 Width = 1095 WordWrap = -1 'True End Begin VB.Label Label14 AutoSize = -1 'True Caption = "Word" Height = 195 Left = 3360 TabIndex = 49 Tag = "1207" Top = 1080 Width = 1110 WordWrap = -1 'True End Begin VB.Label lblTotalNumDocs AutoSize = -1 'True Caption = "A total of documents will be analyzed:" Height = 195 Left = 3180 TabIndex = 48 Tag = "1401" Top = 660 Width = 4800 WordWrap = -1 'True End Begin VB.Line Line2 BorderColor = &H00808080& Index = 3 X1 = 2550 X2 = 2550 Y1 = 0 Y2 = 4920 End End Begin VB.PictureBox picNav Align = 2 'Align Bottom Appearance = 0 'Flat BorderStyle = 0 'None BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H80000008& Height = 570 Left = 0 ScaleHeight = 570 ScaleWidth = 8175 TabIndex = 4 TabStop = 0 'False Top = 4950 Width = 8175 Begin VB.CommandButton cmdNav Caption = "Finish" Height = 312 Index = 4 Left = 5325 MaskColor = &H00000000& TabIndex = 14 Tag = "1023" Top = 120 Width = 1320 End Begin VB.CommandButton cmdNav Caption = "Next >>" Height = 312 Index = 3 Left = 3870 MaskColor = &H00000000& TabIndex = 13 Tag = "1022" Top = 120 Width = 1320 End Begin VB.CommandButton cmdNav Caption = "<< Back" Height = 312 Index = 2 Left = 2535 MaskColor = &H00000000& TabIndex = 12 Tag = "1021" Top = 120 Width = 1320 End Begin VB.CommandButton cmdNav Cancel = -1 'True Caption = "Cancel" Height = 312 Index = 1 Left = 6750 MaskColor = &H00000000& TabIndex = 15 Tag = "1024" Top = 120 Width = 1320 End End Begin VB.Label Label18 Caption = " Documents" Height = 255 Left = 0 TabIndex = 84 Top = 0 Width = 2085 WordWrap = -1 'True End Begin VB.Label Label17 Caption = " Templates" Height = 255 Left = 0 TabIndex = 83 Top = 390 Width = 3615 WordWrap = -1 'True End Begin VB.Line Line4 BorderColor = &H00808080& X1 = 0 X2 = 8160 Y1 = 4920 Y2 = 4920 End End Attribute VB_Name = "frmWizard" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False ' ******************************************************************************* ' * ' * Copyright 2000, 2010 Oracle and/or its affiliates. All rights reserved. Use of this ' * product is subject to license terms. ' * ' ******************************************************************************* Option Explicit Const TOPIC_STR = "" Const TOPIC2_STR = "" Const CR_STR = "" Const CDEBUG_LEVEL_DEFAULT = 1 'Will output all Debug output to analysis.log file Const CSUPPORTED_VERSION = 9# Const NUM_STEPS = 4 Const CAPPNAME_WORD = "Word" Const CAPPNAME_EXCEL = "Excel" Const CAPPNAME_POWERPOINT = "PowerPoint" Const CANALYZING = "Analyzing" Const BTN_CANCEL = 1 Const BTN_BACK = 2 Const BTN_NEXT = 3 Const BTN_FINISH = 4 Const STEP_INTRO = 0 Const STEP_1 = 1 Const STEP_2 = 2 Const STEP_FINISH = 3 Const DIR_NONE = 0 Const DIR_BACK = 1 Const DIR_NEXT = 2 Const CPRODUCTNAME_STR = "" Const CSTR_ANALYSIS_LOG_DONE = "Done" Const CINPUT_DIR = "indir" Const COUTPUT_DIR = "outdir" Const CRESULTS_FILE = "resultsfile" Const CLOG_FILE = "logfile" Const CRESULTS_TEMPLATE = "resultstemplate" Const CRESULTS_EXIST = "resultsexist" Const CPROMPT_FILE = "promptfile" Const COVERWRITE_FILE = "overwritefile" Const CAPPEND_FILE = "appendfile" Const CNEW_RESULTS_FILE = "newresultsfile" Const CINCLUDE_SUBDIRS = "includesubdirs" Const CDEBUG_LEVEL = "debuglevel" Const CTYPE_WORDDOC = "typeworddoc" Const CTYPE_WORDDOT = "typeworddot" Const CTYPE_EXCELDOC = "typeexceldoc" Const CTYPE_EXCELDOT = "typeexceldot" Const CTYPE_PPDOC = "typepowerpointdoc" Const CTYPE_PPDOT = "typepowerpointdot" Const COUTPUT_TYPE = "outputtype" Const COUTPUT_TYPE_XLS = "xls" Const COUTPUT_TYPE_XML = "xml" Const COUTPUT_TYPE_BOTH = "both" Const CVERSION = "version" Const CDOPREPARE = "prepare" Const CTITLE = "title" Const CIGNORE_OLD_DOCS = "ignoreolddocuments" Const CISSUE_LIMIT = "issuesmonthlimit" Const CISSUE_LIMIT_DAW = 6 Private mIssueLimit As Integer Const CDEFAULT_PASSWORD = "defaultpassword" Const CSTR_TEST_PASSWORD = "test" Private mDefaultPassword As String Const CLAST_CHECKPOINT As String = "LastCheckpoint" Const CNEXT_FILE As String = "NextFile" Const C_ABORT_ANALYSIS As String = "AbortAnalysis" Const CNUMBER_TOTAL_DOCS = "total_numberdocs" Const CNUMBER_DOCS_DOC = "numberdocs_doc" Const CNUMBER_TEMPLATES_DOT = "numbertemplates_dot" Const CNUMBER_DOCS_XLS = "numberdocs_xls" Const CNUMBER_TEMPLATES_XLT = "numbertemplates_xlt" Const CNUMBER_DOCS_PPT = "numberdocs_ppt" Const CNUMBER_TEMPLATES_POT = "numbertemplates_pot" Const CSTART_TIME = "start" Const CEND_TIME = "end" Const CELAPSED_TIME = "time_for_analysis" Const CWINVERSION = "win_version" Const CUSER_LOCALE_INFO = "user_locale" Const CSYS_LOCALE_INFO = "system_locale" Const CWORD_VERSION = "word_ver" Const CEXCEL_VERSION = "excel_ver" Const CPOWERPOINT_VERSION = "powerpoint_ver" Const CNOT_INSTALLED = "not installed" Const CRESULTS_FILE_EXTENSION = ".xls" Const CCONFIG_BACKUP_EXT = "_bak" Const CDEFAULT_README_NAME = "UserGuide" Const C_DOCS_LESS_3_MONTH = "DocumentsYoungerThan3Month" Const C_DOCS_LESS_6_MONTH = "DocumentsYoungerThan6Month" Const C_DOCS_LESS_12_MONTH = "DocumentsYoungerThan12Month" Const C_DOCS_MORE_12_MONTH = "DocumentsOlderThan12Month" 'module level vars Dim mnCurStep As Integer Dim mbTrue As Boolean Dim mbFalse As Boolean Dim mLblSteps As String Dim mChbSubdirs As String Dim mWordDocCount As Long Dim mExcelDocCount As Long Dim mPPDocCount As Long Dim mWordTemplateCount As Long Dim mExcelTemplateCount As Long Dim mPPTemplateCount As Long Dim mTotalDocCount As Long Dim mIgnoredDocCount As Long Public VBInst As VBIDE.VBE Dim mbFinishOK As Boolean Dim mbAllowExit As Boolean Private mStrTrue As String Private mLogFilePath As String Private mDebugLevel As String Private mIniFilePath As String Private mbDocCountCurrent As Boolean Private mbDoPrepare As Boolean Dim mDocFiles As CollectedFiles Private Declare Sub InitCommonControls Lib "comctl32" () Private Declare Function GetTickCount Lib "kernel32" () As Long Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000 Private Declare Function FormatMessage Lib "kernel32" Alias _ "FormatMessageA" (ByVal dwFlags As Long, lpSource As Long, _ ByVal dwMessageId As Long, ByVal dwLanguageId As Long, _ ByVal lpBuffer As String, ByVal nSize As Long, Arguments As Any) As Long Private Const HKEY_CURRENT_USER As Long = &H80000001 Private Const HKEY_LOCAL_MACHINE As Long = &H80000002 Const WORD_APP = "word" Const EXCEL_APP = "excel" Const PP_APP = "pp" Const REG_KEY_APP_PATH = "Software\Microsoft\Windows\CurrentVersion\App Paths\" Function GetAppPath(myApp As String) As String Dim myPath As String If (myApp = WORD_APP) Then myPath = GetRegistryInfo(HKEY_LOCAL_MACHINE, REG_KEY_APP_PATH & "winword.exe", "") ElseIf (myApp = EXCEL_APP) Then myPath = GetRegistryInfo(HKEY_LOCAL_MACHINE, REG_KEY_APP_PATH & "excel.exe", "") ElseIf (myApp = PP_APP) Then myPath = GetRegistryInfo(HKEY_LOCAL_MACHINE, REG_KEY_APP_PATH & "powerpnt.exe", "") Else MsgBox "Unknown application: " & myApp, vbCritical Exit Function End If If (myPath = "") Then If (myApp = WORD_APP) Then myPath = GetRegistryInfo(HKEY_CURRENT_USER, REG_KEY_APP_PATH & "winword.exe", "") ElseIf (myApp = EXCEL_APP) Then myPath = GetRegistryInfo(HKEY_CURRENT_USER, REG_KEY_APP_PATH & "excel.exe", "") ElseIf (myApp = PP_APP) Then myPath = GetRegistryInfo(HKEY_CURRENT_USER, REG_KEY_APP_PATH & "powerpnt.exe", "") End If End If GetAppPath = myPath End Function Function GetDriverDoc(myApp As String) As String Dim myPath As String Dim errStr As String Dim fso As New FileSystemObject If (myApp = WORD_APP) Then myPath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CWORD_DRIVER_FILE) ElseIf (myApp = EXCEL_APP) Then myPath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CEXCEL_DRIVER_FILE) ElseIf (myApp = PP_APP) Then myPath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CPP_DRIVER_FILE) Else MsgBox "Unknown application: " & myApp, vbCritical GoTo FinalExit End If If Not fso.FileExists(myPath) Then errStr = ReplaceTopic2Tokens(GetResString(ERR_MISSING_WORD_DRIVER), _ TOPIC_STR, myPath, CR_STR, Chr(13)) WriteDebug errStr MsgBox errStr, vbCritical GoTo FinalExit End If GetDriverDoc = myPath FinalExit: Set fso = Nothing End Function Private Function AutomationMessageText(lCode As Long) As String Dim sRtrnCode As String Dim lRet As Long sRtrnCode = Space$(256) lRet = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, 0&, lCode, 0&, _ sRtrnCode, 256&, 0&) If lRet > 0 Then AutomationMessageText = Left(sRtrnCode, lRet) Else AutomationMessageText = "Error not found." End If End Function Private Sub btnBrowseDirInput_Click() Dim folder As String Dim StartDir As String If Len(txtInputDir.Text) > 0 Then StartDir = txtInputDir.Text End If folder = BrowseForFolder(Me, GetResString(BROWSE_FOR_DOC_DIR_ID), StartDir) If Len(folder) = 0 Then Exit Sub 'User Selected Cancel End If txtInputDir.Text = folder txtInputDir.ToolTipText = folder If Len(txtOutputDir.Text) = 0 Then txtOutputDir.Text = folder txtOutputDir.ToolTipText = folder End If End Sub Private Sub btnBrowseDirOut_Click() Dim folder As String Dim StartDir As String If Len(txtOutputDir.Text) > 0 Then StartDir = txtOutputDir.Text End If folder = BrowseForFolder(Me, GetResString(BROWSE_FOR_RES_DIR_ID), StartDir) If Len(folder) = 0 Then Exit Sub 'User Selected Cancel End If txtOutputDir.Text = folder txtOutputDir.ToolTipText = folder End Sub Private Sub btnPrepare_Click() On Error GoTo HandleErrors Dim currentFunctionName As String currentFunctionName = "btnPrepare_Click" mbDoPrepare = True mbAllowExit = True btnViewResults.Enabled = False btnRunAnalysis.Enabled = False btnPrepare.Enabled = False cmdNav(BTN_CANCEL).Enabled = False cmdNav(BTN_BACK).Enabled = False cmdNav(BTN_NEXT).Enabled = False cmdNav(BTN_FINISH).Enabled = False btnPrepare.Caption = GetResString(RUNBTN_RUNNING_ID) Dim str As String If RunAnalysis(True) Then cmdNav(BTN_FINISH).Enabled = True btnRunAnalysis.Enabled = True btnViewResults.Enabled = True btnPrepare.Enabled = True btnViewResults.SetFocus str = ReplaceTopic2Tokens(GetResString(RID_STR_ENG_OTHER_PREPARE_COMPLETED_PREP_ID), _ TOPIC_STR, getOutputDir, CR_STR, Chr(13)) MsgBox str, vbInformation Else cmdNav(BTN_FINISH).Enabled = False btnRunAnalysis.Enabled = True btnViewResults.Enabled = False btnPrepare.Enabled = False End If FinalExit: mbDoPrepare = False cmdNav(BTN_CANCEL).Enabled = True cmdNav(BTN_BACK).Enabled = True cmdNav(BTN_NEXT).Enabled = False btnPrepare.Caption = GetResString(PREPAREBTN_START_ID) Exit Sub HandleErrors: cmdNav(BTN_FINISH).Enabled = False btnRunAnalysis.Enabled = True btnViewResults.Enabled = False btnPrepare.Enabled = False WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source Resume FinalExit End Sub Private Sub cmdNav_Click(Index As Integer) On Error GoTo HandleError Dim currentFunctionName As String currentFunctionName = "cmdNav_Click" Dim nAltStep As Integer Dim rc As Long Dim fso As Scripting.FileSystemObject Select Case Index Case BTN_CANCEL 'Copy backup configuration file over existing If fso Is Nothing Then Set fso = New Scripting.FileSystemObject End If If fso.FileExists(mIniFilePath & CCONFIG_BACKUP_EXT) Then DeleteFile mIniFilePath AttemptToCopyFile mIniFilePath & CCONFIG_BACKUP_EXT, mIniFilePath End If Set mDocFiles = Nothing Unload Me Case BTN_BACK nAltStep = mnCurStep - 1 SetStep nAltStep, DIR_BACK Case BTN_NEXT nAltStep = mnCurStep + 1 SetStep nAltStep, DIR_NEXT Case BTN_FINISH If (Not mbAllowExit) Then Dim str As String Dim response As Integer str = ReplaceTopicTokens(GetResString(RID_STR_ENG_ANALYSE_NOT_RUN), CR_STR, Chr(13)) response = MsgBox(str, vbOKCancel + vbInformation) If response = vbOK Then ' User chose Ok. mbAllowExit = True End If End If If (mbAllowExit) Then DeleteFile mIniFilePath & CCONFIG_BACKUP_EXT Set mDocFiles = Nothing Unload Me End If End Select FinalExit: Set fso = Nothing Exit Sub HandleError: WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source Resume FinalExit End Sub Private Sub btnRunAnalysis_Click() On Error GoTo HandleErrors Dim bViewResults As Boolean Dim str As String Dim response As Integer btnViewResults.Enabled = False btnRunAnalysis.Enabled = False btnPrepare.Enabled = False bViewResults = False mbAllowExit = True cmdNav(BTN_CANCEL).Enabled = False cmdNav(BTN_BACK).Enabled = False cmdNav(BTN_NEXT).Enabled = False cmdNav(BTN_FINISH).Enabled = False btnRunAnalysis.Caption = GetResString(RUNBTN_RUNNING_ID) If RunAnalysis(False) Then cmdNav(BTN_FINISH).Enabled = True btnRunAnalysis.Enabled = True btnViewResults.Enabled = True btnPrepare.Enabled = True btnViewResults.SetFocus btnRunAnalysis.Caption = GetResString(RUNBTN_START_ID) str = ReplaceTopicTokens(GetResString(RID_STR_ENG_ANALYZE_COMPLETED_ID), CR_STR, Chr(13)) response = MsgBox(str, vbOKCancel + vbInformation) If response = vbOK Then ' User chose Ok. bViewResults = True End If Else btnRunAnalysis.Enabled = True btnViewResults.Enabled = False btnPrepare.Enabled = False End If FinalExit: cmdNav(BTN_CANCEL).Enabled = True cmdNav(BTN_BACK).Enabled = True cmdNav(BTN_NEXT).Enabled = False btnRunAnalysis.Caption = GetResString(RUNBTN_START_ID) If bViewResults Then btnViewResults_Click End If Exit Sub HandleErrors: cmdNav(BTN_FINISH).Enabled = False btnRunAnalysis.Enabled = True btnViewResults.Enabled = False btnPrepare.Enabled = False WriteDebug "Document Analysis: View Analysis Results" & Err.Number & " " & Err.Description & " " & Err.Source Resume FinalExit End Sub Private Sub btnViewResults_Click() On Error GoTo HandleErrors Dim resultsFile As String Dim fso As New FileSystemObject Dim str As String mbAllowExit = True resultsFile = getOutputDir & "\" & txtResultsName.Text If GetIniSetting(COUTPUT_TYPE) = COUTPUT_TYPE_XML Or _ GetIniSetting(COUTPUT_TYPE) = COUTPUT_TYPE_BOTH Then Dim base As String Dim path As String base = fso.GetParentFolderName(resultsFile) & "\" & fso.GetBaseName(txtResultsName.Text) If CheckWordDocsToAnalyze Then path = base & "_" & CAPPNAME_WORD & "." & COUTPUT_TYPE_XML End If If CheckExcelDocsToAnalyze Then If path <> "" Then path = path & vbLf path = path & base & "_" & CAPPNAME_EXCEL & "." & COUTPUT_TYPE_XML End If If CheckPPDocsToAnalyze Then If path <> "" Then path = path & vbLf path = path & base & "_" & CAPPNAME_POWERPOINT & "." & COUTPUT_TYPE_XML End If str = ReplaceTopic2Tokens(GetResString(XML_RESULTS_ID), _ TOPIC_STR, path, CR_STR, Chr(13)) WriteDebug str MsgBox str, vbInformation If GetIniSetting(COUTPUT_TYPE) = COUTPUT_TYPE_XML Then Resume FinalExit End If End If If Not fso.FileExists(resultsFile) Then str = ReplaceTopic2Tokens(GetResString(ERR_MISSING_RESULTS_DOC), _ TOPIC_STR, resultsFile, CR_STR, Chr(13)) WriteDebug str MsgBox str, vbCritical Resume FinalExit End If Dim xl As Excel.application Set xl = New Excel.application xl.Visible = True xl.Workbooks.Open resultsFile FinalExit: Set xl = Nothing Set fso = Nothing Exit Sub HandleErrors: WriteDebug "Document Analysis: View Analysis Results" & Err.Number & " " & Err.Description & " " & Err.Source End Sub Private Sub Form_Activate() Dim currentFunctionName As String Dim missingFile As String currentFunctionName = "Form_Activate" On Error GoTo HandleErrors If Not CheckNeededFiles(missingFile) Then Dim str As String str = ReplaceTopic2Tokens(GetResString(ERR_MISSING_WORD_DRIVER), _ TOPIC_STR, missingFile, CR_STR, Chr(13)) WriteDebug str MsgBox str, vbCritical End 'Exit application - some needed files are missing End If FinalExit: Exit Sub HandleErrors: WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source GoTo FinalExit End Sub Private Sub Form_Initialize() Dim currentFunctionName As String currentFunctionName = "Form_Initialize" On Error GoTo ErrorHandler Call InitCommonControls 'Use Windows XP Visual Style FinalExit: Exit Sub ErrorHandler: WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source GoTo FinalExit End Sub Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyF1 Then 'cmdNav_Click BTN_HELP End If End Sub Private Sub Form_Load() Const COS_CHECK = "oscheck" On Error GoTo HandleErrors Dim currentFunctionName As String currentFunctionName = "Form_Load" Dim fso As New FileSystemObject Dim i As Integer 'init all vars mbFinishOK = False mbTrue = True mbFalse = False mLogFilePath = GetLogFilePath mIniFilePath = GetIniFilePath mbDocCountCurrent = False mbDoPrepare = False mbAllowExit = False 'Check OS before running Dim bOSCheck As Boolean bOSCheck = IIf(GetIniSetting(COS_CHECK) = "False", False, True) If bOSCheck Then If Not IsWin98Plus Then Dim str As String Dim winVer As RGB_WINVER str = ReplaceTopic2Tokens(GetResString(ERR_SUPPORTED_OSVERSION), _ TOPIC_STR, GetWinVersion(winVer), CR_STR, Chr(13)) WriteDebug str MsgBox str, vbCritical End 'Exit application - unsupported OS End If Else Err.Clear WriteDebug "IsWin2000Plus OS Check bypassed by analysis.ini oscheck=False setting" End If For i = 0 To NUM_STEPS - 1 fraStep(i).Left = -10000 Next 'Load All string info for Form LoadResStrings Me frmWizard.Caption = ReplaceTopicTokens(GetResString(TITLE_ID), CPRODUCTNAME_STR, _ GetResString(PRODUCTNAME_ID)) lblIntroduction1.Caption = ReplaceTopicTokens(GetResString(INTRO1_ID), CPRODUCTNAME_STR, _ GetResString(PRODUCTNAME_ID)) mLblSteps = GetResString(LBL_STEPS_ID) mChbSubdirs = GetResString(CHK_SUBDIRS_ID) ' Setup Doc Preparation specific strings If gBoolPreparation Then ' Steps lblStep1_4.Caption = GetResString(RID_STR_ENG_SIDEBAR_ANALYZE_PREP_ID) lblStep2_4.Caption = GetResString(RID_STR_ENG_SIDEBAR_ANALYZE_PREP_ID) lblStep3_4.Caption = GetResString(RID_STR_ENG_SIDEBAR_ANALYZE_PREP_ID) lblStep4_4.Caption = GetResString(RID_STR_ENG_SIDEBAR_ANALYZE_PREP_ID) ' Preparation - Step 1. Introduction lblIntroduction1.Caption = ReplaceTopicTokens(GetResString(RID_STR_ENG_INTRODUCTION_INTRO1_PREP_ID), CPRODUCTNAME_STR, _ GetResString(PRODUCTNAME_ID)) lblIntroduction2.Caption = GetResString(RID_STR_ENG_INTRODUCTION_INTRO2_PREP_ID) lblIntroduction3.Caption = GetResString(RID_STR_ENG_INTRODUCTION_INTRO3_PREP_ID) ' Preparation - Step 2. Documents lblChooseDocs.Caption = GetResString(RID_STR_ENG_DOCUMENTS_CHOOSE_DOCUMENTS_PREP_ID) lblDocTypes.Caption = GetResString(RID_STR_ENG_DOCUMENTS_CHOOSE_DOC_TYPES_PREP_ID) 'mChbSubdirs = GetResString(RID_STR_ENG_DOCUMENTS_INCLUDE_SUBDIRECTORIES_PREP_ID) chkIgnoreOld.Caption = GetResString(RID_STR_IGNORE_OLDER_CB_ID) cbIgnoreOld.Clear cbIgnoreOld.AddItem (GetResString(RID_STR_IGNORE_OLDER_3_MONTHS_ID)) cbIgnoreOld.AddItem (GetResString(RID_STR_IGNORE_OLDER_6_MONTHS_ID)) cbIgnoreOld.AddItem (GetResString(RID_STR_IGNORE_OLDER_12_MONTHS_ID)) cbIgnoreOld.ListIndex = 0 ' Preparation - Step 3. Results lblChooseResults.Caption = GetResString(RID_STR_ENG_RESULTS_CHOOSE_OPTIONS_PREP_ID) txtResultsName.Text = GetResString(RID_STR_ENG_RESULTS_ANALYSIS_XLS_PREP_ID) 'Show Append option rdbResultsAppend.Visible = True ' Preparation - Step 4. Analysis lblSetupDone.Caption = GetResString(RID_STR_ENG_ANALYZE_SETUP_COMPLETE_PREP_ID) btnPrepare.Visible = True Else ' The next line is a work around for a wrong translated string and should be removed ' when RID_STR_ENG_RESULTS_CHOOSE_OPTIONS has been corrected lblChooseResults.Caption = GetResString(RID_STR_ENG_RESULTS_CHOOSE_OPTIONS_PREP_ID) mDefaultPassword = IIf(GetIniSetting(CDEFAULT_PASSWORD) = "", _ CSTR_TEST_PASSWORD, GetIniSetting(CDEFAULT_PASSWORD)) End If SetStep 0, DIR_NEXT Dim tmpStr As String 'Setup Params tmpStr = GetIniSetting(CINPUT_DIR) If tmpStr <> "" Then txtInputDir.Text = tmpStr txtInputDir.ToolTipText = tmpStr End If tmpStr = GetIniSetting(COUTPUT_DIR) If tmpStr <> "" Then If Right(tmpStr, 1) = ":" And Len(tmpStr) = 2 Then tmpStr = tmpStr & "\" End If txtOutputDir.Text = tmpStr txtOutputDir.ToolTipText = tmpStr End If tmpStr = GetIniSetting(CRESULTS_FILE) If tmpStr <> "" Then txtResultsName.Text = tmpStr rdbResultsPrompt.value = False rdbResultsOverwrite.value = False rdbResultsAppend.value = False Dim resultsSetting As String resultsSetting = GetIniSetting(CRESULTS_EXIST) If resultsSetting = CPROMPT_FILE Then rdbResultsPrompt.value = True ElseIf resultsSetting = CAPPEND_FILE Then rdbResultsAppend.value = True Else rdbResultsOverwrite.value = True End If chkWordDoc.value = IIf(GetIniSetting(CTYPE_WORDDOC) = CStr(True), vbChecked, 0) chkWordTemplate.value = IIf(GetIniSetting(CTYPE_WORDDOT) = CStr(True), vbChecked, 0) chkExcelDoc.value = IIf(GetIniSetting(CTYPE_EXCELDOC) = CStr(True), vbChecked, 0) chkExcelTemplate.value = IIf(GetIniSetting(CTYPE_EXCELDOT) = CStr(True), vbChecked, 0) chkPPDoc.value = IIf(GetIniSetting(CTYPE_PPDOC) = CStr(True), vbChecked, 0) chkPPTemplate.value = IIf(GetIniSetting(CTYPE_PPDOT) = CStr(True), vbChecked, 0) chkIncludeSubdirs.value = IIf(GetIniSetting(CINCLUDE_SUBDIRS) = CStr(True), vbChecked, 0) mDebugLevel = IIf(GetIniSetting(CDEBUG_LEVEL) = "", CDEBUG_LEVEL_DEFAULT, GetIniSetting(CDEBUG_LEVEL)) chkIgnoreOld.value = IIf(GetIniSetting(CIGNORE_OLD_DOCS) = CStr(True), vbChecked, 0) mIssueLimit = IIf(GetIniSetting(CISSUE_LIMIT) = "", CISSUE_LIMIT_DAW, GetIniSetting(CISSUE_LIMIT)) If (mIssueLimit <= 3) Then cbIgnoreOld.ListIndex = 0 ElseIf (mIssueLimit <= 6) Then cbIgnoreOld.ListIndex = 1 Else cbIgnoreOld.ListIndex = 2 End If 'Always ensure at least one doc type is selected on startup If (chkWordDoc.value <> vbChecked) And _ (chkWordTemplate.value <> vbChecked) And _ (chkExcelDoc.value <> vbChecked) And _ (chkExcelTemplate.value <> vbChecked) And _ (chkPPDoc.value <> vbChecked) And _ (chkPPTemplate.value <> vbChecked) Then chkWordDoc.value = vbChecked End If FinalExit: Set fso = Nothing Exit Sub HandleErrors: WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source Resume FinalExit End Sub Private Sub SetStep(nStep As Integer, nDirection As Integer) On Error GoTo HandleError Const driveTypeIsCDROM = 4 Dim val As String Dim fso As Scripting.FileSystemObject Set fso = New Scripting.FileSystemObject Dim drive mbDocCountCurrent = False Select Case nStep Case STEP_INTRO 'MsgBox "Enter Intro" Case STEP_1 'Leave Introduction 'Workaround - resource bug for SubDir checkbox, have to set it explicitly chkIncludeSubdirs.Caption = mChbSubdirs Case STEP_2 'Leave Documents Set drive = fso.GetDrive(fso.GetDriveName(txtInputDir.Text)) If drive.DriveType = driveTypeIsCDROM Then If Not drive.IsReady Then MsgBox GetResString(ERR_CDROM_NOT_READY), vbCritical Exit Sub End If End If If txtInputDir.Text = "" Or Not fso.FolderExists(txtInputDir.Text) Then ' fso.FolderExists() has replaced dir() MsgBox ReplaceTopicTokens(GetResString(ERR_NO_DOC_DIR), _ CR_STR, Chr(13)), vbCritical Exit Sub End If If Not CheckUserChosenDocsToAnalyze Then MsgBox GetResString(ERR_NO_DOC_TYPES), vbCritical Exit Sub End If 'Expand directory name only without path to full path txtInputDir.Text = fso.GetAbsolutePathName(txtInputDir.Text) If txtOutputDir.Text = "" Then txtOutputDir.Text = txtInputDir.Text End If mbFinishOK = False 'Workaround - label resource bug for Steps, have to set it explicitly Label12(0).Caption = mLblSteps Label12(5).Caption = mLblSteps Case STEP_FINISH 'Leave Results If Not CheckResultsDir(getOutputDir) Then Exit Sub End If 'Expand directory name only without path to full path txtOutputDir.Text = fso.GetAbsolutePathName(txtOutputDir) 'Check Results file is there and has a valid extension If fso.GetBaseName(txtResultsName.Text) = "" Then txtResultsName.Text = GetResString(SETUP_ANALYSIS_XLS_ID) End If txtResultsName.Text = fso.GetBaseName(txtResultsName.Text) & CRESULTS_FILE_EXTENSION Screen.MousePointer = vbHourglass DeleteFile mLogFilePath Set mDocFiles = Nothing If Not CheckNumberDocsToAnalyze Then Screen.MousePointer = vbDefault Exit Sub End If Screen.MousePointer = vbDefault btnRunAnalysis.Enabled = True If GetNumberOfDocsToAnalyze = 0 Then btnRunAnalysis.Enabled = False End If 'Backup configuration If Not AttemptToCopyFile(mIniFilePath, mIniFilePath & CCONFIG_BACKUP_EXT) Then Exit Sub End If 'Save current Wizard Settings WriteWizardSettingsToLog mIniFilePath 'If results file already exists, enable View and Prepare If fso.FileExists(getOutputDir & "\" & txtResultsName.Text) Then btnViewResults.Enabled = True btnPrepare.Enabled = True End If mbFinishOK = True End Select 'move to new step fraStep(mnCurStep).Enabled = False fraStep(nStep).Left = 0 If nStep <> mnCurStep Then fraStep(mnCurStep).Left = -10000 fraStep(mnCurStep).Enabled = False End If fraStep(nStep).Enabled = True SetNavBtns nStep Exit Sub FinalExit: Set fso = Nothing Set drive = Nothing Exit Sub HandleError: Screen.MousePointer = vbDefault WriteDebug "Document Analysis: SetStep() " & Err.Number & " " & Err.Description & " " & Err.Source Resume FinalExit End Sub Function CheckResultsDir(resultsDir As String) As Boolean On Error GoTo HandleError Dim fso As Scripting.FileSystemObject Set fso = New Scripting.FileSystemObject Const driveTypeIsCDROM = 4 Const readOnlyFolderRemainder = 1 Dim drive CheckResultsDir = False If resultsDir = "" Then MsgBox ReplaceTopicTokens(GetResString(ERR_NO_RESULTS_DIRECTORY), _ CR_STR, Chr(13)), vbCritical CheckResultsDir = False Exit Function End If Set drive = fso.GetDrive(fso.GetDriveName(resultsDir)) If drive.DriveType = driveTypeIsCDROM Then 'If CD-ROM Drive Then Dim Msg1 As String Msg1 = ReplaceTopic2Tokens(GetResString(ERR_CREATE_FILE), _ TOPIC_STR, txtResultsName.Text, CR_STR, Chr(13)) MsgBox Msg1, vbCritical CheckResultsDir = False Exit Function End If If Not fso.FolderExists(resultsDir) Then Dim Msg, Style, response Msg = ReplaceTopicTokens(GetResString(ERR_NO_RES_DIR), CR_STR, Chr(13)) Style = vbYesNo + vbQuestion + vbDefaultButton1 ' Define buttons. response = MsgBox(Msg, Style) If response = vbYes Then ' User chose Yes. If Not CreateDir(getOutputDir) Then CheckResultsDir = False Exit Function End If Else ' User chose No. CheckResultsDir = False Exit Function End If End If Dim testFile As String testFile = resultsDir & "\" & fso.GetTempName Do While fso.FileExists(testFile) testFile = resultsDir & "\" & fso.GetTempName Loop On Error GoTo HandleReadOnly Dim aText As TextStream Set aText = fso.CreateTextFile(testFile, False, False) aText.WriteLine ("Dies ist ein Test.") aText.Close fso.DeleteFile (testFile) ' GetAttr doesn't work reliable ( returns read only for 'my Documents' and rw for read only network folder ' If ((GetAttr(resultsDir) Mod 2) = readOnlyFolderRemainder) Then 'If the attribute is odd then the folder is read-only ' MsgBox GetResString(ERR_NO_WRITE_TO_READ_ONLY_FOLDER), vbCritical ' CheckResultsDir = False ' Exit Function ' End If CheckResultsDir = True Exit Function HandleError: WriteDebug "Document Analysis: CheckResultsDir() " & Err.Number & " " & Err.Description & " " & Err.Source CheckResultsDir = False Exit Function HandleReadOnly: Dim str As String str = ReplaceTopic2Tokens(GetResString(ERR_CREATE_FILE), _ TOPIC_STR, txtResultsName.Text, CR_STR, Chr(13)) MsgBox str, vbCritical CheckResultsDir = False Exit Function End Function Function CheckUserChosenDocsToAnalyze() As Boolean CheckUserChosenDocsToAnalyze = Not ((chkWordDoc.value <> vbChecked) And (chkWordTemplate.value <> vbChecked) And _ (chkExcelDoc.value <> vbChecked) And (chkExcelTemplate.value <> vbChecked) And _ (chkPPDoc.value <> vbChecked) And (chkPPTemplate.value <> vbChecked)) End Function Function AttemptToCopyFile(Source As String, dest As String) As Boolean On Error GoTo HandleErrors Dim fso As Scripting.FileSystemObject Set fso = New Scripting.FileSystemObject If fso.FileExists(Source) Then fso.CopyFile Source, dest End If 'True if no source or copy succeeded AttemptToCopyFile = True FinalExit: Set fso = Nothing Exit Function HandleErrors: AttemptToCopyFile = False Dim str As String str = ReplaceTopic2Tokens(GetResString(ERR_CREATE_FILE), _ TOPIC_STR, mIniFilePath & CCONFIG_BACKUP_EXT, CR_STR, Chr(13)) Resume FinalExit End Function Function CreateDir(dir As String) As Boolean On Error GoTo HandleErrors Dim fso As Scripting.FileSystemObject Set fso = New Scripting.FileSystemObject fso.CreateFolder (dir) CreateDir = True FinalExit: Set fso = Nothing Exit Function HandleErrors: Dim str As String str = ReplaceTopic2Tokens(GetResString(ERR_CREATE_DIR), _ TOPIC_STR, dir, CR_STR, Chr(13)) Select Case Err.Number Case 76 WriteDebug str MsgBox str, vbCritical CreateDir = False Case 58 'Don't care if it exists already CreateDir = True Case Else WriteDebug str MsgBox str, vbCritical CreateDir = False End Select Resume FinalExit End Function Private Sub SetNavBtns(nStep As Integer) mnCurStep = nStep If mnCurStep = 0 Then cmdNav(BTN_BACK).Enabled = False cmdNav(BTN_NEXT).Enabled = True ElseIf mnCurStep = NUM_STEPS - 1 Then cmdNav(BTN_NEXT).Enabled = False cmdNav(BTN_BACK).Enabled = True Else cmdNav(BTN_BACK).Enabled = True cmdNav(BTN_NEXT).Enabled = True End If If mbFinishOK Then cmdNav(BTN_FINISH).Enabled = True Else cmdNav(BTN_FINISH).Enabled = False End If End Sub Function CheckForSupportedApp(app As String, lowerVerLimit As Long) As Boolean Dim appRegStr As String Dim appVer As Long appRegStr = GetRegistryInfo(HKEY_CLASSES_ROOT, app & ".Application\CurVer", "") appVer = val(Right(appRegStr, Len(appRegStr) - Len(app & ".Application."))) If appVer >= lowerVerLimit Then CheckForSupportedApp = True Else CheckForSupportedApp = False End If End Function Function GetAppVersion(app As String) As Long Dim appRegStr As String Dim appVer As Long appRegStr = GetRegistryInfo(HKEY_CLASSES_ROOT, app & ".Application\CurVer", "") GetAppVersion = val(Right(appRegStr, Len(appRegStr) - Len(app & ".Application."))) End Function Function GetInstalledApp(app As String) As String GetInstalledApp = GetRegistryInfo(HKEY_CLASSES_ROOT, app & ".Application\CurVer", "") End Function Sub WriteInfoToApplicationLog(wordAppStr As String, excelAppStr As String, ppAppStr As String) On Error GoTo HandleErrors Dim currentFunctionName As String currentFunctionName = "WriteInfoToApplicationLog" Dim userLCID As Long userLCID = GetUserDefaultLCID() Dim sysLCID As Long sysLCID = GetSystemDefaultLCID() WriteToLog CWORD_VERSION, IIf(wordAppStr <> "", wordAppStr, CNOT_INSTALLED) WriteToLog CEXCEL_VERSION, IIf(excelAppStr <> "", excelAppStr, CNOT_INSTALLED) WriteToLog CPOWERPOINT_VERSION, IIf(ppAppStr <> "", ppAppStr, CNOT_INSTALLED) WriteToLog CUSER_LOCALE_INFO, _ "langid: " & GetUserLocaleInfo(userLCID, LOCALE_ILANGUAGE) & ": " & _ GetUserLocaleInfo(userLCID, LOCALE_SENGLANGUAGE) & _ "-" & GetUserLocaleInfo(userLCID, LOCALE_SENGCOUNTRY) & _ " abrv: " & GetUserLocaleInfo(userLCID, LOCALE_SISO639LANGNAME) & _ "-" & GetUserLocaleInfo(userLCID, LOCALE_SISO3166CTRYNAME) & _ " sdate: " & GetUserLocaleInfo(userLCID, LOCALE_SSHORTDATE) WriteToLog CSYS_LOCALE_INFO, _ "langid: " & GetUserLocaleInfo(sysLCID, LOCALE_ILANGUAGE) & ": " & _ GetUserLocaleInfo(sysLCID, LOCALE_SENGLANGUAGE) & _ "-" & GetUserLocaleInfo(sysLCID, LOCALE_SENGCOUNTRY) & _ " abrv: " & GetUserLocaleInfo(sysLCID, LOCALE_SISO639LANGNAME) & _ "-" & GetUserLocaleInfo(sysLCID, LOCALE_SISO3166CTRYNAME) & _ " sdate: " & GetUserLocaleInfo(userLCID, LOCALE_SSHORTDATE) Dim myWinVer As RGB_WINVER GetWinVersion myWinVer WriteToLog CWINVERSION, myWinVer.VersionName & " " & myWinVer.VersionNo & _ " " & myWinVer.ServicePack & _ " build " & myWinVer.BuildNo WriteToLog CNUMBER_TOTAL_DOCS, CStr(mTotalDocCount) WriteToLog CNUMBER_DOCS_DOC, CStr(mWordDocCount) WriteToLog CNUMBER_TEMPLATES_DOT, CStr(mWordTemplateCount) WriteToLog CNUMBER_DOCS_XLS, CStr(mExcelDocCount) WriteToLog CNUMBER_TEMPLATES_XLT, CStr(mExcelTemplateCount) WriteToLog CNUMBER_DOCS_PPT, CStr(mPPDocCount) WriteToLog CNUMBER_TEMPLATES_POT, CStr(mPPTemplateCount) FinalExit: Exit Sub HandleErrors: WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source Resume FinalExit End Sub Function CheckTemplatePath(sMigrationResultsTemplatePath As String, fso As FileSystemObject) As Boolean If Not fso.FileExists(sMigrationResultsTemplatePath) Then Dim str As String str = ReplaceTopic2Tokens(GetResString(ERR_MISSING_RESULTS_TEMPLATE), _ TOPIC_STR, sMigrationResultsTemplatePath, CR_STR, Chr(13)) WriteDebug str MsgBox str, vbCritical CheckTemplatePath = False Else CheckTemplatePath = True End If End Function Function RunAnalysis(bDoPrepare) As Boolean On Error GoTo HandleErrors Dim currentFunctionName As String currentFunctionName = "RunAnalysis" Dim tstart As Single 'timer var for this routine only Dim tend As Single 'timer var for this routine only Dim fso As New FileSystemObject Dim wordAppStr As String Dim excelAppStr As String Dim ppAppStr As String Dim sMigrationResultsTemplatePath As String Dim startDate As Variant Dim bSuccess bSuccess = True startDate = Now tstart = GetTickCount() app.OleRequestPendingMsgText = GetResString(RUNBTN_RUNNING_ID) app.OleRequestPendingMsgTitle = frmWizard.Caption wordAppStr = GetInstalledApp(CAPPNAME_WORD) excelAppStr = GetInstalledApp(CAPPNAME_EXCEL) ppAppStr = GetInstalledApp(CAPPNAME_POWERPOINT) 'Write locale, version info and settings to the Application log WriteInfoToApplicationLog wordAppStr, excelAppStr, ppAppStr 'Check for template sMigrationResultsTemplatePath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CRESULTS_TEMPLATE_FILE) If Not CheckTemplatePath(sMigrationResultsTemplatePath, fso) Then bSuccess = False GoTo FinalExit End If 'Check for installed Apps If Not CheckInstalledApps(wordAppStr, excelAppStr, ppAppStr) Then bSuccess = False GoTo FinalExit End If If bDoPrepare Then 'Show MsgBox ( to give apps some time to quit ) Dim strMsgBox As String Dim response As Integer strMsgBox = ReplaceTopic2Tokens(GetResString(RID_STR_ENG_OTHER_PREPARE_PROMPT_PREP_ID), _ TOPIC_STR, getOutputDir & "\" & txtResultsName.Text, TOPIC2_STR, getOutputDir) strMsgBox = ReplaceTopicTokens(strMsgBox, CR_STR, Chr(13)) response = MsgBox(strMsgBox, Buttons:=vbOKCancel + vbInformation) If response <> vbOK Then bSuccess = False GoTo FinalExit End If End If 'Write Wizard Setting to Application log WriteWizardSettingsToLog mLogFilePath 'Write to Analysis ini file - used by driver docs WriteCommonParamsToLog sMigrationResultsTemplatePath, mLogFilePath, mIniFilePath, fso Screen.MousePointer = vbHourglass ' Doc Counts are setup by CheckNumberDocsToAnalyze() when user moves to Analysis Panel ' Takes account of user Options selected and inspects source directory Dim analysisAborted As Boolean analysisAborted = False SetupInputVariables mLogFilePath, fso Load ShowProgress Call ShowProgress.SP_Init(mDocFiles.WordFiles.count + _ mDocFiles.ExcelFiles.count + _ mDocFiles.PowerPointFiles.count) Dim myOffset As Long myOffset = 0 If (mDocFiles.WordFiles.count > 0) Then bSuccess = AnalyseList(mDocFiles.WordFiles, "word", mIniFilePath, myOffset, analysisAborted) 'bSuccess = RunWordAnalysis(sMigrationResultsTemplatePath, mLogFilePath, fso) End If myOffset = mDocFiles.WordFiles.count If ((mDocFiles.ExcelFiles.count > 0) And (Not analysisAborted)) Then bSuccess = bSuccess And _ AnalyseList(mDocFiles.ExcelFiles, "excel", mIniFilePath, myOffset, analysisAborted) 'bSuccess = RunExcelAnalysis(sMigrationResultsTemplatePath, mLogFilePath, fso) End If myOffset = myOffset + mDocFiles.ExcelFiles.count If ((mDocFiles.PowerPointFiles.count > 0) And (Not analysisAborted)) Then bSuccess = bSuccess And _ AnalyseList(mDocFiles.PowerPointFiles, "pp", mIniFilePath, myOffset, analysisAborted) 'bSuccess = RunPPAnalysis(sMigrationResultsTemplatePath, mLogFilePath, fso) End If SetupInputVariables mLogFilePath, fso tend = GetTickCount() WriteToLog CELAPSED_TIME, (FormatNumber((tend - tstart) / 1000, 0) & " seconds: ") & _ (FormatNumber((tend - tstart), 0) & " miliseconds") FinalExit: Unload ShowProgress Screen.MousePointer = vbDefault WriteToLog CSTART_TIME, CDate(startDate) WriteToLog CEND_TIME, Now Set fso = Nothing RunAnalysis = bSuccess Exit Function HandleErrors: bSuccess = False WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source Resume FinalExit End Function Function CheckInstalledApps(wordAppStr As String, excelAppStr As String, ppAppStr As String) As Boolean On Error GoTo HandleErrors Dim currentFunctionName As String Dim str As String currentFunctionName = "CheckInstalledApps" Dim missingInstalledApps As String Dim unsupportedApps As String Dim runningApps As String Dim bSuccess As Boolean bSuccess = False If mWordDocCount > 0 Or mWordTemplateCount > 0 Then If wordAppStr = "" Then 'Word not installed missingInstalledApps = CAPPNAME_WORD ElseIf Not CheckForSupportedApp(CAPPNAME_WORD, CSUPPORTED_VERSION) Then unsupportedApps = CAPPNAME_WORD ElseIf IsOfficeAppRunning(CAPPNAME_WORD) Then runningApps = CAPPNAME_WORD End If End If If excelAppStr = "" Then If missingInstalledApps <> "" Then missingInstalledApps = missingInstalledApps & ", " missingInstalledApps = missingInstalledApps & CAPPNAME_EXCEL ElseIf Not CheckForSupportedApp(CAPPNAME_EXCEL, CSUPPORTED_VERSION) Then If unsupportedApps <> "" Then unsupportedApps = unsupportedApps & ", " unsupportedApps = unsupportedApps & CAPPNAME_EXCEL ElseIf IsOfficeAppRunning(CAPPNAME_EXCEL) Then If runningApps <> "" Then runningApps = runningApps & ", " runningApps = runningApps & CAPPNAME_EXCEL End If If mPPDocCount > 0 Or mPPTemplateCount > 0 Then If ppAppStr = "" Then 'PP not installed If missingInstalledApps <> "" Then missingInstalledApps = missingInstalledApps & ", " missingInstalledApps = missingInstalledApps & CAPPNAME_POWERPOINT ElseIf Not CheckForSupportedApp(CAPPNAME_POWERPOINT, CSUPPORTED_VERSION) Then If unsupportedApps <> "" Then unsupportedApps = unsupportedApps & ", " unsupportedApps = unsupportedApps & CAPPNAME_POWERPOINT ElseIf IsOfficeAppRunning(CAPPNAME_POWERPOINT) Then If runningApps <> "" Then runningApps = runningApps & ", " runningApps = runningApps & CAPPNAME_POWERPOINT End If End If If missingInstalledApps <> "" Then str = ReplaceTopic2Tokens(GetResString(ERR_NOT_INSTALLED), _ TOPIC_STR, missingInstalledApps, CR_STR, Chr(13)) WriteDebug str MsgBox str, vbCritical GoTo FinalExit End If If unsupportedApps <> "" Then str = ReplaceTopic2Tokens(GetResString(ERR_SUPPORTED_VERSION), _ TOPIC_STR, unsupportedApps, CR_STR, Chr(13)) WriteDebug str MsgBox str, vbCritical GoTo FinalExit End If If runningApps <> "" Then str = ReplaceTopic2Tokens(GetResString(ERR_APPLICATION_IN_USE), _ TOPIC_STR, runningApps, CR_STR, Chr(13)) WriteDebug str MsgBox str, vbCritical GoTo FinalExit End If 'Check for Excel automation server If CheckForExcel Then str = ReplaceTopicTokens(GetResString(ERR_EXCEL_OPEN), _ CR_STR, Chr(13)) WriteDebug str MsgBox str, vbCritical bSuccess = False GoTo FinalExit End If bSuccess = True FinalExit: CheckInstalledApps = bSuccess Exit Function HandleErrors: bSuccess = False WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source Resume FinalExit End Function Function RunPPAnalysis(resultsTemplate As String, logFile As String, fsObject As FileSystemObject) As Boolean 'DV: do we need this? get some error handling ideas here On Error GoTo HandleErrors Dim currentFunctionName As String currentFunctionName = "RunPPAnalysis" Const APP_PP = "PowerPoint" Dim str As String Dim bSuccess bSuccess = False If (chkPPDoc.value <> vbChecked) And (chkPPTemplate.value <> vbChecked) Then RunPPAnalysis = True Exit Function End If Dim sPPDriverDocPath As String sPPDriverDocPath = fsObject.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CPP_DRIVER_FILE) If Not fsObject.FileExists(sPPDriverDocPath) Then str = ReplaceTopic2Tokens(GetResString(ERR_MISSING_PP_DRIVER), _ TOPIC_STR, sPPDriverDocPath, CR_STR, Chr(13)) WriteDebug str MsgBox str, vbCritical bSuccess = False GoTo FinalExit End If Dim pp As PowerPoint.application Dim po As Object Dim aPres As PowerPoint.Presentation Dim RegValue As Long Set po = GetObject(sPPDriverDocPath) Set pp = po.application If val(pp.Version) < CSUPPORTED_VERSION Then str = ReplaceTopic2Tokens(GetResString(ERR_SUPPORTED_VERSION), _ TOPIC_STR, pp.Version, CR_STR, Chr(13)) WriteDebug str MsgBox str, vbCritical bSuccess = False GoTo FinalExit End If If Not CheckForAccesToPPVBProject(pp, aPres) Then RegValue = -1 If Not GiveAccessToMacroProject(APP_PP, pp.Version, RegValue) Then Dim Style, response str = ReplaceTopic2Tokens(GetResString(ERR_NO_ACCESS_TO_VBPROJECT), _ TOPIC_STR, CAPPNAME_POWERPOINT, CR_STR, Chr(13)) WriteDebug str Style = vbYesNo + vbQuestion + vbDefaultButton1 response = MsgBox(str, Style) If response <> vbYes Then bSuccess = False GoTo FinalExit End If End If End If Set aPres = pp.Presentations(1) Dim ppSlideHidden As PowerPoint.Slide Set ppSlideHidden = aPres.Slides(2) 'Setup Input Variables 'SetupInputVariables resultsTemplate, logFile, fsObject, CAPPNAME_POWERPOINT 'Run PowerPoint Analysis pp.Run (fsObject.GetFileName(CBASE_RESOURCE_DIR & "\" & CPP_DRIVER_FILE) & "!AnalysisDriver.AnalyseDirectory") bSuccess = True FinalExit: 'Cannot seem to close it down from VB 'Workaround is to close it in macro ' 'If Not aPres Is Nothing Then ' aPres.Saved = msoTrue 'End If 'If Not pp Is Nothing Then pp.Quit 'Swallow error as we are closing down PP from macro 'Does not seem to be possible to close it down from VB On Error Resume Next If RegValue <> -1 Then SetDefaultRegValue APP_PP, pp.Version, RegValue End If If RegValue = 0 Then DeleteRegValue APP_PP, pp.Version End If If Not pp Is Nothing Then pp.Run (fsObject.GetFileName(CBASE_RESOURCE_DIR & "\" & CPP_DRIVER_FILE) & "!ApplicationSpecific.QuitPowerPoint") End If Set aPres = Nothing Set pp = Nothing Set po = Nothing RunPPAnalysis = bSuccess Exit Function HandleErrors: bSuccess = False Set pp = Nothing Dim failedDoc As String WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source failedDoc = GetDebug(CAPPNAME_POWERPOINT, CANALYZING) If failedDoc = "" Or failedDoc = CSTR_ANALYSIS_LOG_DONE Then str = ReplaceTopic2Tokens(GetResString(ERR_AUTOMATION_FAILURE), _ TOPIC_STR, CAPPNAME_POWERPOINT, CR_STR, Chr(13)) Else str = ReplaceTopic2Tokens(GetResString(ERR_PP_DRIVER_CRASH), _ TOPIC_STR, failedDoc, CR_STR, Chr(13)) End If WriteDebug str MsgBox str, vbCritical Resume FinalExit End Function Sub SetupInputVariables(logFile As String, fso As FileSystemObject) Dim bNewResultsFile As Boolean bNewResultsFile = CheckCreateNewResultsFile(fso) WriteToLog CNEW_RESULTS_FILE, IIf(bNewResultsFile, "True", "False"), mIniFilePath WriteToLog CNEW_RESULTS_FILE, IIf(bNewResultsFile, "True", "False"), logFile End Sub Function RunExcelAnalysis(resultsTemplate As String, logFile As String, fsObject As FileSystemObject) As Boolean On Error GoTo HandleErrors Dim currentFunctionName As String currentFunctionName = "RunExcelAnalysis" Const APP_EXCEL = "Excel" Dim str As String Dim bSuccess bSuccess = False If (chkExcelDoc.value <> vbChecked) And (chkExcelTemplate.value <> vbChecked) Then RunExcelAnalysis = True Exit Function End If Dim xl As Excel.application Dim aWb As Excel.Workbook Dim sExcelDriverDocPath As String Dim RegValue As Long sExcelDriverDocPath = fsObject.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CEXCEL_DRIVER_FILE) If Not fsObject.FileExists(sExcelDriverDocPath) Then str = ReplaceTopic2Tokens(GetResString(ERR_MISSING_EXCEL_DRIVER), _ TOPIC_STR, sExcelDriverDocPath, CR_STR, Chr(13)) WriteDebug str MsgBox str, vbCritical bSuccess = False GoTo FinalExit End If Set xl = GetExcelInstance If val(xl.Version) < CSUPPORTED_VERSION Then str = ReplaceTopic2Tokens(GetResString(ERR_SUPPORTED_VERSION), _ TOPIC_STR, xl.Version, CR_STR, Chr(13)) WriteDebug str MsgBox str, vbCritical bSuccess = False GoTo FinalExit End If If Not CheckForAccesToExcelVBProject(xl) Then RegValue = -1 If Not GiveAccessToMacroProject(APP_EXCEL, xl.Version, RegValue) Then Dim Style, response str = ReplaceTopic2Tokens(GetResString(ERR_NO_ACCESS_TO_VBPROJECT), _ TOPIC_STR, CAPPNAME_EXCEL, CR_STR, Chr(13)) WriteDebug str Style = vbYesNo + vbQuestion + vbDefaultButton1 response = MsgBox(str, Style) If response <> vbYes Then bSuccess = False GoTo FinalExit End If End If End If Set aWb = xl.Workbooks.Open(fileName:=sExcelDriverDocPath) 'Setup Input Variables 'SetupInputVariables resultsTemplate, logFile, fsObject, CAPPNAME_EXCEL 'Run Excel Analysis xl.Run ("AnalysisTool.AnalysisDriver.AnalyseDirectory") bSuccess = True FinalExit: If RegValue <> -1 Then SetDefaultRegValue APP_EXCEL, xl.Version, RegValue End If If RegValue = 0 Then DeleteRegValue APP_EXCEL, xl.Version End If If Not aWb Is Nothing Then If xl.Workbooks.count = 1 Then xl.Visible = False End If aWb.Close (False) End If Set aWb = Nothing If Not xl Is Nothing Then If xl.Workbooks.count = 0 Then xl.Quit End If End If Set xl = Nothing RunExcelAnalysis = bSuccess Exit Function HandleErrors: bSuccess = False Set aWb = Nothing Set xl = Nothing Dim failedDoc As String WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source failedDoc = GetDebug(CAPPNAME_EXCEL, CANALYZING) If failedDoc = "" Or failedDoc = CSTR_ANALYSIS_LOG_DONE Then str = ReplaceTopic2Tokens(GetResString(ERR_AUTOMATION_FAILURE), _ TOPIC_STR, CAPPNAME_EXCEL, CR_STR, Chr(13)) Else str = ReplaceTopic2Tokens(GetResString(ERR_EXCEL_DRIVER_CRASH), _ TOPIC_STR, failedDoc, CR_STR, Chr(13)) End If WriteDebug str MsgBox str, vbCritical On Error Resume Next Resume FinalExit End Function Sub WriteWizardSettingsToLog(path As String) '### DO NOT USE Boolean True/ False it is loaclised by the OS - use "True"/ "False" WriteToLog CINPUT_DIR, getInputDir, path WriteToLog CINCLUDE_SUBDIRS, IIf(chkIncludeSubdirs.value, "True", "False"), path WriteToLog COUTPUT_DIR, getOutputDir, path WriteToLog CRESULTS_FILE, txtResultsName.Text, path WriteToLog CTYPE_WORDDOC, IIf(chkWordDoc.value, "True", "False"), path WriteToLog CTYPE_WORDDOT, IIf(chkWordTemplate.value, "True", "False"), path WriteToLog CTYPE_EXCELDOC, IIf(chkExcelDoc.value, "True", "False"), path WriteToLog CTYPE_EXCELDOT, IIf(chkExcelTemplate.value, "True", "False"), path WriteToLog CTYPE_PPDOC, IIf(chkPPDoc.value, "True", "False"), path WriteToLog CTYPE_PPDOT, IIf(chkPPTemplate.value, "True", "False"), path Dim resultsSetting As String If rdbResultsPrompt.value Then resultsSetting = CPROMPT_FILE ElseIf rdbResultsAppend.value Then resultsSetting = CAPPEND_FILE Else resultsSetting = COVERWRITE_FILE End If WriteToLog CRESULTS_EXIST, resultsSetting, path WriteToLog CIGNORE_OLD_DOCS, IIf(chkIgnoreOld.value, "True", "False"), path WriteToLog CISSUE_LIMIT, CStr(mIssueLimit), path 'WriteToLog CVERSION, Version, path End Sub Sub WriteCommonParamsToLog(resultsTemplate As String, logFile As String, path As String, fso As Scripting.FileSystemObject) WriteToLog CLOG_FILE, logFile, path WriteToLog CRESULTS_TEMPLATE, resultsTemplate, path WriteToLog CDEBUG_LEVEL, CLng(mDebugLevel), path WriteToLog CDOPREPARE, IIf(mbDoPrepare, "True", "False"), path WriteToLog CTITLE, frmWizard.Caption, path WriteToLog CLAST_CHECKPOINT, "" WriteToLog CNEXT_FILE, "" WriteToLog C_ABORT_ANALYSIS, "" End Sub Function GetNumberOfDocsToAnalyze() As Long Dim count As Long count = 0 If CheckWordDocsToAnalyze Then count = mWordDocCount + mWordTemplateCount End If If CheckExcelDocsToAnalyze Then count = count + mExcelDocCount + mExcelTemplateCount End If If CheckPPDocsToAnalyze Then count = count + mPPDocCount + mPPTemplateCount End If GetNumberOfDocsToAnalyze = count End Function Function CheckWordDocsToAnalyze() As Boolean CheckWordDocsToAnalyze = mbDocCountCurrent And (chkWordDoc.value = vbChecked And mWordDocCount > 0) Or _ (chkWordTemplate.value = vbChecked And mWordTemplateCount > 0) End Function Function CheckExcelDocsToAnalyze() As Boolean CheckExcelDocsToAnalyze = mbDocCountCurrent And (chkExcelDoc.value = vbChecked And mExcelDocCount > 0) Or _ (chkExcelTemplate.value = vbChecked And mExcelTemplateCount > 0) End Function Function CheckPPDocsToAnalyze() As Boolean CheckPPDocsToAnalyze = mbDocCountCurrent And (chkPPDoc.value = vbChecked And mPPDocCount > 0) Or _ (chkPPTemplate.value = vbChecked And mPPTemplateCount > 0) End Function Function CheckNumberDocsToAnalyze() As Boolean On Error GoTo HandleErrors Dim currentFunctionName As String currentFunctionName = "CheckNumberDocsToAnalyze" Set mDocFiles = New CollectedFiles Dim docSearchTypes As Collection Set docSearchTypes = New Collection mbDocCountCurrent = False SetupDocSearchTypes docSearchTypes If (cbIgnoreOld.ListIndex = 0) Then mIssueLimit = 3 ElseIf (cbIgnoreOld.ListIndex = 1) Then mIssueLimit = 6 Else mIssueLimit = 12 End If If Not mDocFiles.Search(rootDir:=getInputDir, FileSpecs:=docSearchTypes, _ IncludeSubdirs:=IIf(chkIncludeSubdirs.value, mbTrue, mbFalse), _ ignoreOld:=IIf(chkIgnoreOld.value, mbTrue, mbFalse), Months:=mIssueLimit) Then CheckNumberDocsToAnalyze = False GoTo FinalExit End If SetDocCountsFromFileSearch mDocFiles WriteFileDateCountsToLog mDocFiles 'WriteDocsToAnalyzeToLog mDocFiles 'UNCOMMENT Recovery - want to list out files to analyze mbDocCountCurrent = True lblNumDocs.Caption = ReplaceTopicTokens(GetResString(ANALYZE_DOCUMENTS_ID), TOPIC_STR, _ CStr(mWordDocCount)) lblNumTemplates.Caption = ReplaceTopicTokens(GetResString(ANALYZE_TEMPLATES_ID), TOPIC_STR, _ CStr(mWordTemplateCount)) lblNumXLS.Caption = ReplaceTopicTokens(GetResString(ANALYZE_DOCUMENTS_XLS_ID), TOPIC_STR, _ CStr(mExcelDocCount)) lblNumXLT.Caption = ReplaceTopicTokens(GetResString(ANALYZE_TEMPLATES_ID), TOPIC_STR, _ CStr(mExcelTemplateCount)) lblNumPPT.Caption = ReplaceTopicTokens(GetResString(ANALYZE_DOCUMENTS_PPT_ID), TOPIC_STR, _ CStr(mPPDocCount)) lblNumPOT.Caption = ReplaceTopicTokens(GetResString(ANALYZE_TEMPLATES_ID), TOPIC_STR, _ CStr(mPPTemplateCount)) lblTotalNumDocs.Caption = ReplaceTopicTokens(GetResString(ANALYZE_TOTAL_NUM_DOCS_ID), TOPIC_STR, _ CStr(mTotalDocCount)) If (mIgnoredDocCount > 0) Then lblSkippedOld.Caption = ReplaceTopicTokens(GetResString(RID_STR_ENG_ANALYZE_IGNORED_DOCS_ID), _ TOPIC_STR, CStr(mIgnoredDocCount)) lblSkippedOld.Visible = True Else lblSkippedOld.Visible = False End If CheckNumberDocsToAnalyze = True FinalExit: Set docSearchTypes = Nothing Exit Function HandleErrors: WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source Resume FinalExit End Function Sub SetDocCountsFromFileSearch(myDocFiles As CollectedFiles) 'No Error handling required mWordDocCount = myDocFiles.DocCount mWordTemplateCount = myDocFiles.DotCount mExcelDocCount = myDocFiles.XlsCount mExcelTemplateCount = myDocFiles.XltCount mPPDocCount = myDocFiles.PptCount mPPTemplateCount = myDocFiles.PotCount mTotalDocCount = mWordDocCount + mWordTemplateCount + mExcelDocCount + mExcelTemplateCount + _ mPPDocCount + mPPTemplateCount mIgnoredDocCount = myDocFiles.IgnoredDocCount End Sub Sub SetupDocSearchTypes(docSearchTypes As Collection) 'No Error handling required If chkWordDoc.value Then docSearchTypes.add ("*.doc") If chkWordTemplate.value Then docSearchTypes.add ("*.dot") If chkExcelDoc.value Then docSearchTypes.add ("*.xls") If chkExcelTemplate.value Then docSearchTypes.add ("*.xlt") If chkPPDoc.value Then docSearchTypes.add ("*.ppt") If chkPPTemplate.value Then docSearchTypes.add ("*.pot") End Sub Sub WriteDocsToAnalyzeToLog(myDocFiles As CollectedFiles) On Error GoTo HandleErrors Dim currentFunctionName As String currentFunctionName = "WriteDocsToAnalyzeToLog" Dim vFileName As Variant Dim Index As Long Dim limit As Long limit = myDocFiles.WordFiles.count For Index = 1 To limit vFileName = myDocFiles.WordFiles(Index) WriteToLog "Doc" & Index, CStr(vFileName), section:=(WIZARD_NAME & "ListFor" & CAPPNAME_WORD) Next limit = myDocFiles.ExcelFiles.count For Index = 1 To limit vFileName = myDocFiles.ExcelFiles(Index) WriteToLog "Doc" & Index, CStr(vFileName), section:=(WIZARD_NAME & "ListFor" & CAPPNAME_EXCEL) Next limit = myDocFiles.PowerPointFiles.count For Index = 1 To limit vFileName = myDocFiles.PowerPointFiles(Index) WriteToLog "Doc" & Index, CStr(vFileName), section:=(WIZARD_NAME & "ListFor" & CAPPNAME_POWERPOINT) Next FinalExit: Exit Sub HandleErrors: WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source Resume FinalExit End Sub Sub WriteFileDateCountsToLog(myDocFiles As CollectedFiles) On Error GoTo HandleErrors Dim currentFunctionName As String currentFunctionName = "WriteFileDateCountsToLog" WriteToLog C_DOCS_LESS_3_MONTH, CStr(myDocFiles.DocsLessThan3Months), mIniFilePath WriteToLog C_DOCS_LESS_6_MONTH, CStr(myDocFiles.DocsLessThan6Months), mIniFilePath WriteToLog C_DOCS_LESS_12_MONTH, CStr(myDocFiles.DocsLessThan12Months), mIniFilePath WriteToLog C_DOCS_MORE_12_MONTH, CStr(myDocFiles.DocsMoreThan12Months), mIniFilePath FinalExit: Exit Sub HandleErrors: WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source Resume FinalExit End Sub Function RunWordAnalysis(resultsTemplate As String, logFile As String, fsObject As FileSystemObject) As Boolean On Error GoTo HandleErrors Dim currentFunctionName As String currentFunctionName = "RunWordAnalysis" Const APP_WORD = "Word" Dim str As String Dim bSuccess bSuccess = False Dim wrd As Word.application Dim aDoc As Word.Document Dim sWordDriverDocPath As String Dim RegValue As Long If (chkWordDoc.value <> vbChecked) And (chkWordTemplate.value <> vbChecked) Then 'No Word doc filters selected RunWordAnalysis = True Exit Function End If sWordDriverDocPath = fsObject.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CWORD_DRIVER_FILE) If Not fsObject.FileExists(sWordDriverDocPath) Then str = ReplaceTopic2Tokens(GetResString(ERR_MISSING_WORD_DRIVER), _ TOPIC_STR, sWordDriverDocPath, CR_STR, Chr(13)) WriteDebug str MsgBox str, vbCritical bSuccess = False GoTo FinalExit End If Set wrd = New Word.application If val(wrd.Version) < CSUPPORTED_VERSION Then str = ReplaceTopic2Tokens(GetResString(ERR_SUPPORTED_VERSION), _ TOPIC_STR, wrd.Version, CR_STR, Chr(13)) WriteDebug str MsgBox str, vbCritical bSuccess = False GoTo FinalExit End If If Not CheckForAccesToWordVBProject(wrd) Then RegValue = -1 If Not GiveAccessToMacroProject(APP_WORD, wrd.Version, RegValue) Then Dim Style, response str = ReplaceTopic2Tokens(GetResString(ERR_NO_ACCESS_TO_VBPROJECT), _ TOPIC_STR, CAPPNAME_WORD, CR_STR, Chr(13)) WriteDebug str Style = vbYesNo + vbQuestion + vbDefaultButton1 response = MsgBox(str, Style) If response <> vbYes Then bSuccess = False GoTo FinalExit End If End If End If Set aDoc = wrd.Documents.Open(fileName:=sWordDriverDocPath) 'Clear out any doc vars Dim MyObj As Variable For Each MyObj In aDoc.Variables MyObj.Delete Next 'Setup Input Variables 'SetupInputVariables resultsTemplate, logFile, fsObject, CAPPNAME_WORD wrd.Run ("AnalysisTool.AnalysisDriver.AnalyseDirectory") wrd.Visible = False bSuccess = True FinalExit: If RegValue <> -1 Then SetDefaultRegValue APP_WORD, wrd.Version, RegValue End If If RegValue = 0 Then DeleteRegValue APP_WORD, wrd.Version End If If Not aDoc Is Nothing Then aDoc.Close (False) Set aDoc = Nothing If Not wrd Is Nothing Then wrd.Quit (False) Set wrd = Nothing RunWordAnalysis = bSuccess Exit Function HandleErrors: On Error Resume Next bSuccess = False Set aDoc = Nothing Set wrd = Nothing Dim failedDoc As String WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source failedDoc = GetDebug(CAPPNAME_WORD, CANALYZING) If failedDoc = "" Or failedDoc = CSTR_ANALYSIS_LOG_DONE Then str = ReplaceTopic2Tokens(GetResString(ERR_AUTOMATION_FAILURE), _ TOPIC_STR, CAPPNAME_WORD, CR_STR, Chr(13)) Else str = ReplaceTopic2Tokens(GetResString(ERR_WORD_DRIVER_CRASH), _ TOPIC_STR, failedDoc, CR_STR, Chr(13)) End If WriteDebug str MsgBox str, vbCritical Resume FinalExit End Function Function stripLastBackslash(inputStr As String) As String Const MIN_DIR_SIZE = 3 On Error GoTo HandleErrors Dim currentFunctionName As String currentFunctionName = "stripLastBackslash" If Len(inputStr) > MIN_DIR_SIZE Then Dim lastStrChar As String lastStrChar = Right(inputStr, 1) If lastStrChar = "\" Then inputStr = Left(inputStr, Len(inputStr) - 1) End If End If stripLastBackslash = inputStr Exit Function HandleErrors: WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source stripLastBackslash = inputStr End Function Function getInputDir() As String getInputDir = stripLastBackslash(txtInputDir.Text) End Function Function getOutputDir() As String Dim tmpStr As String tmpStr = stripLastBackslash(txtOutputDir.Text) 'Bug when specifying C:\ If tmpStr <> "" Then If Right(tmpStr, 1) = "\" Then tmpStr = Left(tmpStr, Len(tmpStr) - 1) End If End If getOutputDir = tmpStr End Function Function CheckCreateNewResultsFile(fsObject As FileSystemObject) As Boolean If Not fsObject.FileExists(getOutputDir & "\" & txtResultsName.Text) Then 'No Results File - Create it CheckCreateNewResultsFile = True ElseIf rdbResultsAppend.value Then 'Results File exists and user wants to append to it CheckCreateNewResultsFile = False Else 'Results File exists and user has elected not to append CheckCreateNewResultsFile = True End If End Function Sub DeleteFile(file As String) On Error GoTo HandleErrors Dim currentFunctionName As String currentFunctionName = "DeleteFile" Dim fso As Scripting.FileSystemObject Set fso = New Scripting.FileSystemObject Dim filePath As String filePath = fso.GetAbsolutePathName(file) If fso.FileExists(filePath) Then fso.DeleteFile filePath, True End If FinalExit: Set fso = Nothing Exit Sub HandleErrors: WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source Resume FinalExit End Sub Public Property Get Version() As String Version = app.Major & "." & app.Minor & "." & app.Revision End Property Function GetExcelInstance() As Excel.application Dim xl As Excel.application On Error Resume Next 'Try and get an existing instance Set xl = GetObject(, "Excel.Application") If Err.Number = 429 Then Set xl = CreateObject("Excel.Application") ElseIf Err.Number <> 0 Then Set xl = Nothing MsgBox "Error: " & Err.Description Exit Function End If Set GetExcelInstance = xl Set xl = Nothing End Function Function CheckForAnalysisResultsWorkbook(analysisResultsName As String) As Boolean On Error GoTo HandleErrors Dim currentFunctionName As String currentFunctionName = "CheckForAnalysisResultsWorkbook" CheckForAnalysisResultsWorkbook = False Dim xl As Excel.application Set xl = GetExcelInstance Dim aWb As Excel.Workbook For Each aWb In xl.Workbooks If aWb.Name = analysisResultsName Then CheckForAnalysisResultsWorkbook = True Exit For End If Next aWb FinalExit: If Not xl Is Nothing Then If xl.Workbooks.count = 0 Then xl.Quit End If End If Set xl = Nothing Exit Function HandleErrors: Set xl = Nothing WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source Resume FinalExit End Function Function CheckForExcel() As Boolean On Error GoTo HandleErrors Dim currentFunctionName As String currentFunctionName = "CheckForExcel" CheckForExcel = False Dim xl As Excel.application Set xl = GetExcelInstance If xl.Workbooks.count > 0 Then CheckForExcel = True End If FinalExit: If Not xl Is Nothing Then If xl.Workbooks.count = 0 Then xl.Quit End If End If Set xl = Nothing Exit Function HandleErrors: Set xl = Nothing WriteDebug currentFunctionName & " : " & Err.Number & " " & Err.Description & " " & Err.Source Resume FinalExit End Function Public Function GetIniSetting(key As String) As String If mIniFilePath = "" Or key = "" Then Exit Function GetIniSetting = ProfileGetItem(WIZARD_NAME, key, "", mIniFilePath) End Function Sub WriteIniSetting(key As String, value As String) If mIniFilePath = "" Or key = "" Then Exit Sub Call WritePrivateProfileString(WIZARD_NAME, key, value, mIniFilePath) End Sub Private Sub lblSetupComplete_Click(Index As Integer) End Sub Private Function CheckNeededFiles(missingFile As String) As Boolean Dim fso As New FileSystemObject Dim filePath As String CheckNeededFiles = False filePath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CWORD_DRIVER_FILE) If Not fso.FileExists(filePath) Then missingFile = filePath Exit Function End If filePath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CEXCEL_DRIVER_FILE) If Not fso.FileExists(filePath) Then missingFile = filePath Exit Function End If filePath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CPP_DRIVER_FILE) If Not fso.FileExists(filePath) Then missingFile = filePath Exit Function End If filePath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CLAUNCH_DRIVERS_EXE) If Not fso.FileExists(filePath) Then missingFile = filePath Exit Function End If filePath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CMSO_KILL_EXE) If Not fso.FileExists(filePath) Then missingFile = filePath Exit Function End If filePath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CRESULTS_TEMPLATE_FILE) If Not fso.FileExists(filePath) Then missingFile = filePath Exit Function End If filePath = fso.GetAbsolutePathName(CBASE_RESOURCE_DIR & "\" & CRESOURCE_DLL) If Not fso.FileExists(filePath) Then missingFile = filePath Exit Function End If CheckNeededFiles = True End Function