ࡱ>   ha e bbbbbbb  G";  <bbbbbพߛv~bbbb0 .Auv ;P@a A@ Ĭ϶ 0΢й޹˾C:\My Documents\Scan.dot@G  Times New Roman Symbol &Arial 1hSFSF$,!),.:;?]}áݣ([{ۣ<΢й޹˾΢й޹˾Root Entry F%ߛQߛ:iWordDocumentK 1"MSOfficeMSOFFICEemplateTEMPLATEU@J@Ho"CompObjCE!@ԳJ0IF:iGD E:$j:iSummaryInformation"MSOfficeMSOFFICE(:i+00#C:\(  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGIJKLMNO  i txtNotSaved$i txtWarnNS$i txtNotConv$i txtWarnNC$itxtNone$itxtDone$i badMacro1$i badMacro2$d/0i badMacro3$i badMacro4$i badMacro5$dd/0i savedFrom$itxtNoLogPart1$itxtNoLogPart2$itxtNoLogPart3$i txtChecking$itxtAgainPart1$itxtAgainPart2$itxtAgainPart3$i txtCleaned$itxtCleanNoVirusPart1$itxtCleanNoVirusPart2$itxtCleanVirusPart1$itxtCleanVirusPart2$itxtCleanVirusPart3$itxtCleanVirusPart4$ddd/0itxtCannotOpenFilePart1$itxtCannotOpenFilePart2$itxtCannotOpenFilePart3$itxtLastChancePart1$itxtLastChancePart2$itxtLastChancePart3$itxtLastChancePart4$nitxtCannotSavePart1$itxtCannotSavePart2$itxtCannotSavePart3$itxtCannotConvertFilePart1$itxtCannotConvertFilePart2$itxtCannotConvertFilePart3$dd/0itxtLogFileHeader1$itxtLogFileHeader2$itxtLogFileHeader3Part1$itxtLogFileHeader3Part2$itxtLogFileHeader4$itxtLogFileHeaderMac$itxtLogFileHeaderWin$ddiLocalized|)**** Insert string translation here ****'dRi savedFrRoot Entry F%ߛIߛ:iWordDocumentK 1"MSOfficeMSOFFICEemplateTEMPLATEU@J@"CompObjCE!@ԳJ0IF:iGD E:$j:iSummaryInformation"MSOfficeMSOFFICE(:i+00#C:\(DocumentSummaryInformation8 ws 95@F#@@ޛ@@ߛ՜.+,0HPpx  ΢й޹˾,  FMicrosoft Word 6.0 ĵ MSWordDocWord.Document.69qOh+'0 $0 X d p | ED΢й޹˾KJ Scan.dott΢й޹˾D2JMicrosoft Word for Windoom$ y 01-01-1995dRi defStart$ yc:\dRi defTypes$ y*.doc;*.dot;*.rtfdd|R txtNoLog$ = txtNoLogPart1$ + logDir$ + txtNoLogPart2$ + Dlg.Dir$ + txtNoLogPart3$dRitxtNoLogPart1$ yĴ scanlog.txt dRitxtNoLogPart2$ y dRitxtNoLogPart3$ y, ٲ׻ϣdRi txtChecking$ yԨÅddRitxtAgainPart1$ y׻dRitxtAgainPart2$ yɳdRitxtAgainPart3$ y Ͼ˴Ϣ¿dRi txtCleaned$ yһ׻dd|E cleanTxt$ = txtCleanNoVirusPart1$ + logfile$ + txtCleanNoVirusPart2$dRitxtCleanNoVirusPart1$ yٲɳӢdRitxtCleanNoVirusPart2$ yddd|A cleanTxt$ = txtCleanVirusPart1$ + logfile$ + txtCleanVirusPart2$dRitxtCleanVirusPart1$ yٲɳϢĵdRitxtCleanVirusPart2$ yddRitxtCleanVirusPart3$ yٲɳ򴪿ЦdRitxtCleanVirusPart4$ yddd|e Print #1, txtCannotOpenFilePart1$; fn$; txtCannotOpenFilePart2$ + Chr$(9) + txtCannotOpenFilePart3$dRitxtCannotOpenFilePart1$ y򴪿 dRitxtCannotOpenFilePart2$ y.dRitxtCannotOpenFilePart3$ y ɿɾӡddRitxtLastChancePart1$ y dRitxtLastChancePart2$ y ģͪ׻ɳգ¿dRitxtLastChancePart3$ y dRitxtLastChancePart4$ y ս¿ddRitxtCannotSavePart1$ yģ洺 dRitxtCannotSavePart2$ y.dRitxtCannotSavePart3$ y ɾӡddRitxtCannotConvertFilePart1$ y Ī׻ɳգdRitxtCannotConvertFilePart2$ y.dRitxtCannotConvertFilePart3$ y øɾddRitxtLogFileHeader1$ y%Microsoft Word Document Virus CleanupdRitxtLogFileHeader2$ ydRitxtLogFileHeader3Part1$ yLog file generated at dRitxtLogFileHeader3Part2$ y on dRitxtLogFileHeader4$ yfor scan of directory dRitxtLogFileHeaderMac$ ytypes are WDBN and WTBNdRitxtLogFileHeaderWin$ yusing pattern ddRi batchTitle$ yŦ̳dR| first dialogdRi txtLine1$ yͫĵϳͣƼʷ¶dRifTypes$ y ( &T)dRitxtDir$ y¶(&D) dRi txtdirTerm$ yļ|FolderdRi txtdirTermPl$ yļ|foldersdRi txtSDirs$ y ׿ļ(&S)dR|second dialog - invalid pathdRi txtInvalid$ y ġǷ¶dR|search status line messagedRi txtSLSrch$ yȵWord˸֨ĵ¶ddR|search turned up nothingdRitxtNoneFoundPart1$ yӢdRitxtNoneFoundPart2$ yĵ¶ddRitxtSrchResPart1$ yýĵʺdRitxtSrchResPart2$ y gl yЪһҨ̼?dRitxtWait$ yŦ̳ʯȵ..dRi txtNotOpened$ y򴪿ĵdRi txtwarnNO$ y թɿӡdRi txtNotSaved$ yӣĵdRi txtwarnNS$ y թɿӡdRi txtNotConv$ yӪ׻ĵdRi txtWarnNC$ y թɾʣdRitxtNone$ y ӢĵdRitxtDone$ yǡɳdRi badMacro1$ yautoopendRi badMacro2$ yautonewdRi badMacro3$ y auotclosedRi badMacro4$ y FileSaveAsdnistWhereIsNormal$ y Where are you?| dRiBuiltIn$ yĿ| "Built In"d|!**** End String Translation ****'dddiMAINdR| initdRiquiet ldRilastchancesave ldRi notopened ldRinotsaved ldRi notconverted ldRicleaned ldRiscanAll l|0flag to indicate whether to scan all files founddRiisWord6 ldRiIsDot ldRi CurrentDoc$ g%dRdR)iLocalizeddR|% What platform are we on, Mac or Win?dRggly MacintoshldoiMac ldoiquote$ ydoipathSep$ y:doimacPath$ g ldoi firstColon gimacPath$ipathSep$doimacHD$ gimacPath$i firstColondoilogDir$ imacHD$ySPLogsdRggly Windows 3.ldo| 16-bit WindowsdoiMac ldRggll y6iisWord6 ldo|<16 bit Word 6 transparently converts between ANSI and OEM sodo|0we flag this and do not call DOSToWin$/WinToDOS$doiquote$ ydoipathSep$ y\doilogDir$ i defStart$ySPLogsdR do|32 bit WindowsdoiMac ldoiquote$ gl"doipathSep$ y\doidefDir$ i DefStart$doilogDir$ i defStart$ySPLogsdRddR| What version of Word?dRiWordVer gggllddR|* Preserve user settings and set up our owndRiConfConv gdRgldR/iDlgTOS4gdR>iDlgTOSdRi SumPrompt iDlgTOSs7dRgs7 ldR/iDlgTOG4gdR>iDlgTOGdRiULinks iDlgTOGs+dRgs+ lddRisMe$ iDetectExw FindNormal$dRisMe$ gisMe$ddR| Find out where to cleandRM?g)lhli batchTitle$dogɀlll?l(i txtLine1$dogɀll6lllitxtDir$vDirLabeldogـll6llwDir$doimac ldogɀllPlolifTypes$vPatLabeldogـllNllwPat$dodog؀llnl<li txtSDirs$vSubDirsdogǀlFllXldogȀlllgldR?dR/iDlg4g)deStartDlgdR|initialize the dialog valuesdRimac ldoimacPath$ g ldoi firstColon gimacPath$ipathSep$doiDlgwDir$ imacHD$dR doiDlgwDir$ idefDir$doiDlgwPat$ i defTypes$dRdRiDlgvSubDirs lodRibutton ?iDlgdRibutton ldo*iEndSubdRdRi checkDirValidiDlgwdir$ ldog+i txtInvalid$i batchTitle$l@do*iStartDlgdRddRi savedFrom$ ydRidefDir$ gidlgwdir$ddg+i txtSlSrch$yl|show we are searchingd| Find stuffdimac ldogldo|do two back to back searchesddo|first documentsdoipattern$ gnyWDBNdogcRs iDlgwDir$s ipattern$sx idlgvsubdirssb ysd yse ysc ys ls ls1 ys ls i savedFrom$s ys ys ys ys ls lsw ls ldodo|next templatesdoipattern$ gnyWTBNdogcRs iDlgwDir$s ipattern$sx idlgvsubdirssb ysd yse ysc ys ls ls1 ys ls i savedFrom$s ys ys ys ys ls lsw ls ldogldoisize gdo|now merge the twodo5ifnArray$isizedo#ii l$isizedoifnArray$ii giido&iid |.one search since we can do multiple extensionsdoiisWord6 liDlgwDir$ giDlgwDir$doipattern$ idlgwpat$doipattern$ yipattern$ i defTypes$do|> Debug MsgBox dlg.dir$ + " " + pattern$ + " " + savedfrom$dogcRs iDlgwDir$s ipattern$sx idlgvsubdirssb ysd yse ysc ys ls ls1 ys ls i savedFrom$s ys ys ys ys ls lsw ls ldRisize gdR|= This array is created and filled to avoid odd FoundFileName$dR|< behavior when erroring on opening some mail merge main docsdR|7 whose data source could not be found and you click on dR| Find Source, then press cancel.ddR5iFnArray$isizedR#ii l$isizedoiFnArray$ii giidR&iiddRdRisize ldoibutton g+itxtNoneFoundPart1$gl itxtNoneFoundPart2$i batchTitle$l4doibutton l*iEndSubdo*iStartDlgdRdRdRi txtSrchRes$ itxtSrchResPart1$gisizeitxtSrchResPart2$ddRg+i txtSrchRes$i batchTitle$l4 l*iEndSubdRdR|put up a warning for the userdRdRg+itxtWait$ylddRi StartLoggingilogDir$iDlgwDir$ipattern$ ldoi StartLoggingiDlgwDir$iDlgwDir$ipattern$ ldo| give updoi txtNoLog$ itxtNoLogPart1$ilogDir$itxtNoLogPart2$iDlgwDir$itxtNoLogPart3$dodog+i txtNoLog$i batchTitle$l@do*iEndSubdodRdRdRgրldR#ii l$isizedoifn$ iFnArray$iidoiMac liisWord6 lifn$ gifn$doggifn$idefDir$ l*iEndLoopdoisMe$ gifn$*iEndLoopddoipfn$ ifn$do|8 This checks if the file name plus dir is too long for ado|5 message box later on. If so, it parses out best fit.dogipfn$lAdoiStart gg ipfn$lAipathSep$doiStart liStart ldoipfn$ y...g g ipfn$lAiStartdodRi txtCurStat$ i txtChecking$ifn$y. (giiy/gisizey)dRdRix g+i txtCurStat$yldoiLoadItifn$doiFixItifn$doiSaveItifn$do| success!do6qli txtCleaned$gl (ifn$doicleaned icleanedldododo|. Dispose of it when done, whether fixed or notdo|1 only if it's not the doc that was open when the do| macro was run.dog% i CurrentDoc$gldoeEndLoopdR&dRgրlddR| Stop loggingdR6qldRdRi notopenedl6qli txtNotOpened$(i notopened(i txtwarnNO$dRinotsavedl6qli txtNotSaved$(inotsaved(i txtwarnNS$dRi notconvertedl6qli txtNotConv$(i notconverted(i txtWarnNC$dRitotal icleanedi notopenedinotsavedi notconverteddRitotal l6qlitxtNone$dR6qldR6qldR6qly--------------------itxtDone$dRLqldditotal ldRi cleanTxt$ itxtCleanNoVirusPart1$|"+ logfile$ + txtCleanNoVirusPart2$d dRicleaned ldRi cleanTxt$ itxtCleanVirusPart3$| + logfile$ + txtCleanVirusPart4$dR dRi cleanTxt$ itxtCleanVirusPart1$| + logfile$ + txtCleanVirusPart2$dRTddg+i cleanTxt$i batchTitle$l@deEndSubdR|4 Restore things to the way they were when we starteddRgs7 i SumPromptdRgs+ iULinksddRgldRgրldRiConfConv lgldddiLoadItifn$dRiLoadIt ldR,-*i ErrorHandlerdogPsI lsU ls iquote$ifn$iquote$dR|. is it a Word template? FUTURE: WW2 templates?dR/iDlg4gTdR>iDlgdRiIsDot ldRiDlgs ldo|( not a template, so we're not interesteddogldo*iEndFuncdRdRiextPos gifn$y.dRiext$ gg ifn$iextPosgifn$iextPosldRiext$ y.dotiext$ y.wiziIsDot ldR| if we get here, all is welldRiLoadIt ldR*iEndFuncde ErrorHandlerdRi notopened i notopenedlddR6qlitxtCannotOpenFilePart1$(ifn$(itxtCannotOpenFilePart2$gl itxtCannotOpenFilePart3$dRiErr leEndFuncdddiFixItifn$dRiFoo ld| If IsDot ThendoiFoo iFooiCleanItTi badMacro1$doiFoo iFooiCleanItTi badMacro2$doiFoo iFooiCleanItTi badMacro3$doiFooldo|< remove possibly correct macros only if definitely evil onesdo| detected (above)doiFoo iFooiCleanItTi badMacro4$dod| Elsed| Foo = 1d| End IfdRiFixIt iFooeEndFuncddiCleanItTi BadMacro$dRiCleanItT ldRimfn$ gi BadMacro$dRimfn$ yimfn$ iBuiltIn$dd,-*i UnprotectDocddogs i BadMacro$ssP ls6 ysu ydd*i VirusScande UnprotectDocdog dogs i BadMacro$ssP ls6 ysu ydiErr lde VirusScanddogdogps y MacroCopydogdog׀do| MsgBox "Find Taiwan Virus"dogs s imfn$s i BadMacro$s ldoiCleanItT ldoTdRTeEndFuncddiCleanIti BadMacro$dRiCleanIt ldRimfn$ gi BadMacro$dRimfn$ yimfn$ iBuiltIn$dogs s imfn$s i BadMacro$s ldoiCleanIt ldReEndFuncdddiSaveItifn$dRiSaveIt lddR|6 resolve shortcuts and get name for temporary templatedR/iDlgFSI4gVdR>iDlgFSIdRidotPath$ iDlgFSIshdRi lastchar$ g idotPath$ldRgidotPath$li lastchar$ ipathSep$idotPath$ idotPath$ipathSep$dRi tmpDotFile$ idotPath$y ~___TEMP.DOTdR|C if there's nothing in it to suggest it should still be a template,dR|8 restore it to a document, otherwise leave it a templateddRiquiet ldoitxtLastChance$ itxtLastChancePart3$ipfn$itxtLastChancePart4$doilastchancesave g+itxtLastChance$i batchTitle$l$dRi txtAgain$ itxtAgainPart3$dRibutton g+i txtAgain$l4dRibutton liquiet ldRddRilastchancesave l*i ErrorSaveddRi convertTo glg(lgld| If IsDot = 0 Then convertTo = 0ddRiIsDot ldoi lastchance ldoi convertTo ldo|3 document -- convert from template by tricky means:do|; save cleaned up template, trying hard to preserve passwordddoitxtLastChance$ itxtLastChancePart1$ipfn$itxtLastChancePart2$doi lastchance g+itxtLastChance$i batchTitle$l$doTdoi lastchance ldo/iDlg4gTdo>iDlgdoi password$ iDlgs`do,-*i ErrorHandlerdogTsU ls ls` ys i tmpDotFile$dogldogOsR i tmpDotFile$dogWsR ydo,-*i ErrorHandler2dogifn$|blow away the original filedo|-now save cleaned document under original namedoiWordVer ldogTsU ls ls gl"ifn$gl"s` i password$|quotes to handle LFN chars.doiWordVer liWordVer liWordVer ldogTsU ls ls ifn$s` i password$| regular 8.3dodoiSaveIt ldogi tmpDotFile$|don't need the temp anymoredo*iEndFuncdo doiIsDot ldodRdRiIsDot ldo| file is already a templatedo,-*i ErrorHandlerdogSd| If WordVer = 7 Thend|M FileSaveAs .AddToMru = 0, .Format = 1, .Name '= Chr$(34) + fn$ + Chr$(34)d|9 ElseIf WordVer = 6 Or WordVer = 2 Or WordVer = '1 Thend|7 FileSaveAs .AddToMru = 0, .Format = 1, .Name '= fn$d| End IfdRiSaveIt ldRdR*iEndFuncde ErrorHandlerdRgi tmpDotFile$e ErrorSavedRinotsaved inotsavedldR6qlitxtCannotSavePart1$(ifn$(itxtCannotSavePart2$gl itxtCannotSavePart3$dRiErr ldR*iEndFuncde ErrorHandler2dRiErr ldR,-*i ErrorHandlerdR:idotfile$4ifn$dRi notconverted i notconvertedldR6qlitxtCannotConvertFilePart1$(ifn$(itxtCannotConvertFilePart2$gl itxtCannotConvertFilePart3$dRiErr leEndFuncdddi StartLoggingidir$iscandir$ipat$dR,-*i ErrorHandlerdRi StartLogging ldRilogfile$ idir$dRi lastchar$ g ilogfile$ldRi lastchar$ y\i lastchar$ y:i lastchar$ yQoilogfile$ ilogfile$ipathSep$dRilogfile$ ilogfile$y cleanlog.txtdR|#check if the logfile already existsdRi checkDirValididir$ ldo|(the directory doesn't exist so create itdogidir$doimode l|outputdR do|the file might not existdogilogfile$ ydo| create itdoimode ldo do|it does so append to itdoimode l|appenddogilogfile$ lgilogfile$ l!gilogfile$l|$it's read-only so make it appendabledodRdRimode lRdo=ilogfile$#;4qldR do=ilogfile$#<4qldRdRdR6qly*******************dR6qlitxtLogFileHeader1$dR6qldR6qlitxtLogFileHeader3Part1$(g (itxtLogFileHeader3Part2$(g (y,d|, If Word 6 then don't do dosTOwin conversiondRggll y6do6qlitxtLogFileHeader4$(iscandir$(y.dR do6qlitxtLogFileHeader4$(giscandir$(y.dRddRiMac ldo6qlitxtLogFileHeaderMac$dR do6qlitxtLogFileHeaderWin$(ipat$dRdR6qldRi StartLogging ldR*iEndFuncde ErrorHandlerdRiErr ldoeEndFuncdR,-*ldddi checkDirValididir$dRiMacdoicurPath$ gy:dR doicurPath$ gy.dRdR,-*i ErrHandlerdRgidir$dRgicurPath$dR,-*ldRiresult ldR*iEndFunce ErrHandlerdRiresult ldRiErr leEndFuncdRi checkDirValid iresultddiSetIsDotiflagdiIsDot iflagdd|B *****************************************************************d|/ Created by Microsoft Product Support Services d|# Copyright (c) 1997 Microsoft Corp.d|" Description : Scans for the Virusd| macros and starts CleanAlld|A*****************************************************************dd/0isMe$iMaciWin16iWin32i ScanFileName$ispVerNumi firstInstalli isUpgradei macrosReplititleSP$iflagdd/0i titleInst$i titleFound$i titleUpgr$ititleSP$i MsgInstS$i MsgUpgrS$iMsgConceptFound$i MsgInstalled$i MsgUpgrade$i MsgDoScan$i stFileSaveAs$i stBuiltIn$iConceptFoundAndDeleted1$iConceptFoundAndDeleted2$iScanProtTitle$istCommandValid$dd/0istIf$istThen$istElse$istEndIf$i stFileOpen$i stAutoExit$i stAutoClose$i stShellOpen$i stFileNew$i stFilePrint$i stDocClose$i stBackground$istFilePrintSetup$istFilePrintSetupOn$i stFileExit$istWhereIsNormal$dd/0imsgLine1Part1$imsgLine1Part2$imsgLine1Part3$imsgLine1Part4$imsgLine2Part1$imsgLine2Part2$istGlobalColon$dd/0i autoopen$iautonew$i autoclose$i autoexit$ddiLocalized|)**** Insert string translation here ****'dRiMsgConceptFound$ rdy)ĵӣ֢ϢԫĵϳͬӴиĵ|Virus has been found in your Normal (Global) template and has been removed. The batch cleaning procedure will start now to allow you to remove the Concept Virus from any infected files on your system."ddRi stFileSaveAs$ y FileSaveAsdRi stBuiltIn$ yĿ| "Built In"dRiConceptFoundAndDeleted1$ y ϡ! , dRiConceptFoundAndDeleted2$ y, ӴĵӣdRiScanProtTitle$ y Scan ProtdRistCommandValid$ y CommandValiddRistIf$ yIfdRistThen$ yThendRistElse$ yElsedRistEndIf$ yEnd IfdRi stFileOpen$ yFileOpendRi stAutoExit$ yAutoExitdRi stAutoClose$ y AutoClosedRi stShellOpen$ y ShellOpendRi stFileNew$ yFileNewdRi stFilePrint$ y FilePrintdRi stDocClose$ yDocClosedRi stBackground$ y BackgrounddRistFilePrintSetup$ yFilePrintSetupdRistFilePrintSetupOn$ yondRi stFileExit$ yFileExitdRistWhereIsNormal$ y Where are you?|dRimsgLine1Part1$ y ĵһê dRimsgLine1Part2$ ydRimsgLine1Part3$ ydRimsgLine1Part4$ y.dRimsgLine2Part1$ yԲdRimsgLine2Part2$ ydRistGlobalColon$ y:|Global:d|!**** End String Translation ****'ddddiMaindRdgրldiLocalizedd| Define constantsdi isUpgrade l|6when 1, we are doing an upgrade of an existing installdi firstInstall l|)when 1, we are doing a clean installationdi macrosRepl l|?when 1, one or both of FileOpen and AutoExit have been replaceddi autoopen$ yautoopendi autoclose$ y autoclosediautonew$ yautonewdi autoexit$ yautoexitdd|% What platform are we on, Mac or Win?dggly MacintoshldR| Macintosh WorddRiMac ldggly Windows 3.ldR|+ 16-bit Word on 16-bit Windows or emulationdRiWin16 ld dR| 32-bit Word on 32-bit WindowsdRiWin32 lddd|= Locate Normal (global) template using FindNormal$() functiondi NormalInMem$ i FindNormal$|(stWhereNormal$)disMe$ i NormalInMem$diFoundAutoMacroQRiCleanAutoMacrosdd|? Pass the Virus names to the CleanIt routine. If found, CleanItd| will delete the macros. diflag ldi FoundCheck iCleanItTyautoopendi FoundCheck i FoundCheckiCleanItTy autoclosedi FoundCheck i FoundCheckiCleanItTyautonewddi FoundCheckdRiNoCheck iCleanItTy FileSaveAsldR|+open and save the Normal template right nowdR|save changes to Normal nowdRgi NormalInMem$ ydogPs i NormalInMem$sU ldogldR dog+yError 1078, no Normal.dotdRdde BatchScandR|B Runs the CleanAll macro immediately after this macro is finished.dRgy00:00yCleanAlleEndFuncdddiCleanItTi BadMacro$dRiCleanItT ldRiflag ldoimfn$ isMe$dR doimfn$ gi BadMacro$dRTdRimfn$ yimfn$ iBuiltIn$d,-*i UnprotectDocddogss i BadMacro$sP iflags6 ysu ydd*i VirusScande UnprotectDocdog dogs i BadMacro$ssP iflags6 ysu ydiErr lde VirusScanddogdogps y MacroCopydogdog׀do| MsgBox "Find Taiwan Virus"dogs s imfn$s i BadMacro$s ldoiCleanItT ldoTdRTeEndFuncddiCleanIti BadMacro$dRiCleanIt ldRimfn$ gi BadMacro$dRimfn$ yimfn$ iBuiltIn$dogs s imfn$s i BadMacro$s ldoiCleanIt ldReEndFuncddd| Function FindNormal$()d|@ Does the simple, yet important, job of find the Normal (global)d| template.d|> Used to both locate the Concept Virus and copy the protectived|* macros into the Normal (global) template.ddi FindNormal$|(WhereNormal$)dRgldRgs y WhereIsNormalssP ldRgyREM Where are you?dRgldRi FindNormal$ gy WhereIsNormaldRgs y WhereIsNormalsP ls d| ScreenUpdating 1dddd|5 CopyMacros() is passed CurMacroName$, the macro named|A as it is to be called when it's in the Normal (global) template,d|0 and ScanMacroName$, the macro name as it existsd|: in the Scan tool template. For example, when FileOpenScand|6 is copied as ScanMacroName$, CurMacroName$ stores thed| name FileOpen.ddi CopyMacrosi CurMacroName$iScanMacroName$ddicfn$ g%dimfn$ gi CurMacroName$dimfn$ yimfn$ i stBuiltIn$dRi CurMacroName$ i stFileOpen$i CurMacroName$ i stAutoExit$do|user macro exists, so rename itdoiNewName$ i CurMacroName$yUserdogs i CurMacroName$sP lstsu iNewName$doi MsgLine1$ imsgLine1Part1$i CurMacroName$imsgLine1Part2$imsgLine1Part3$iNewName$imsgLine1Part4$dog+i MsgLine1$ititleSP$l@doi macrosRepl i macrosReplldR doi MsgLine1$ imsgLine2Part1$i CurMacroName$imsgLine2Part2$dog+i MsgLine1$y ldoiNewName$ i CurMacroName$yScanOldRdogs i CurMacroName$sP lstsu iNewName$dRdd|PDebug MsgBox cfn$ + ":" + ScanMacroName$ + " " + stGlobalColon$ + CurMacroName$distGlobalColon$ y:dg€icfn$y:iScanMacroName$istGlobalColon$i CurMacroName$d| Successful copydi CopyMacros ldddiTrim$ia$dRitrim$ ggia$dddiFoundAutoMacrodRiFoundAutoMacro ldRi MacroCount gldR#ii l$i MacroCountdRiMacName$ ggiildRiMacName$ i autoopen$iMacName$ i autoclose$iMacName$ iautonew$iMacName$ i autoexit$doiFoundAutoMacro ldo*ifenddRdR&iiefenddddiCleanAutoMacrosdRinCount gldR!inCountldR#ii l$inCountdoiMacName$ ggiildoiMacName$ i autoopen$iMacName$ i autoclose$iMacName$ iautonew$iMacName$ i autoexit$doiflag ldoiret iCleanItTiMacName$do*iresetdoTdR&iidR*iEndCAMeresetdRinCount gldR"eEndCAMd {'Unknown XiaoYue Cao Davis Wang0΢й޹˾C:\My Documents\Scan.dotU3bU4 U5]HM U6S"XRAutoNewAutoOpenCleanAllDetectEx3AUTONEW4AUTOOPEN5CLEANALL6DETECTEX@pG  Times New Roman Symbol &Arial hSFTF$,!),.:;?]}áݣ([{ۣ<΢й޹˾΢й޹˾ha eobb{{{{{{{{{{{ { {T}G{{{{{{{{3|}}}}}}"}3<?}{{{{{{?}|{{{{'|||{ {{{{3|Qߛ{{{{{{{3||0| .Ab{uv ;P@a A@ Ĭ϶d|C ******************************************************************d| Macro : AutoNewd|# Copyright (c) 1997 Microsoft Corp.d|B *****************************************************************ddiMaindniAutoOpenvMaindd|C ******************************************************************d| Macro : AutoOpend|# Copyright (c) 1997 Microsoft Corp.d|B *****************************************************************ddiMAINdgldiDetectExdd|B *****************************************************************d| Virus cleanupd|# Copyright (c) 1997 Microsoft Corp.d|= Remove Virus from all documents below a specified directory.d|B *****************************************************************ddd/0iquieti notopenedinotsavedi notconvertedicleanediMaciquote$ilogfile$ipfn$iWordVeripathSep$iscanAlliIsDotilastchancesavedd|localiztion string variablesd/0i batchTitle$i txtLine1$ifTypes$itxtDir$itxtSDir$i txtInvalid$itxtSearchSDsPart1$itxtSearchSDsPart2$i txtSLSrch$itxtNoneFoundPart1$itxtNoneFoundPart2$i defTypes$i txtdirTerm$i txtdirTermPl$i txtSDirs$idefDir$iBuiltIn$istWhereNormal$isMe$dd/0i defStart$itxtDir$itxtDate$itxtSrchResPart1$itxtSrchResPart2$imacHD$ilogDir$itxtWait$i txtNotOpened$i txtWarnNO$d/0