|
|
;------------------------------------------------------------------------ ; Copyright(c) 1992-93 Microsoft Corporation ; ; Services for Macintosh Setup INF File. ; ; Author: KrishG ; ; Revision History: 3/3/93 - Changed for Custom/Express removal ;------------------------------------------------------------------------
[Identification] OptionType = NetTransport [LanguagesSupported] ENG [Options] SFM [OptionsTextENG] SFM = "Services for Macintosh"
[FileConstants]
ProductFullInfName = $(!STF_CWDDIR)oemnxpsm.inf
Manufacturer = "Microsoft" ProductMajorVersion = 3 ProductMinorVersion = 1 ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion)
;------------------------------------------------------------------------ ; SFM Software Data ;------------------------------------------------------------------------
ProductSFMName = "SFM" ProductSFMTitle = "Services for Macintosh"
; AppleTalk Transport Product Descriptions /Net Rules
ProductATALKName = "AppleTalk" ProductATALKDisplayName = "AppleTalk Transport" ProductATALKTitle = "Services for Macintosh" ProductATALKImagePath = "%SystemRoot%\system32\drivers\sfmatalk.sys" ProductATALKSvcType = "kernel" ProductATALKType = "transport" ProductATALKEventDll = "%SystemRoot%\system32\sfmatmsg.dll" NetRuleATALKType = "appletalk appletalktransport" NetRuleATALKUse = transport " yes yes" NetRuleATALKBindForm = """appletalk"" yes yes container" NetRuleATALKClass = {"appletalktransport basic "} NetRuleATALKBindList = {"appletalktransport ndisDriver non non 100", + "appletalktransport ltkndisDriver non exclusive 100" } ;------------------------------------------------------------------------ ; Afp Server Service and Server Product Descriptions /Net Rules ;------------------------------------------------------------------------ ProductAFPSVCName = "AfpServer" ProductAFPSVCDisplayName = "AFP File Server" ProductAFPSVCTitle = "Services for Macintosh" ProductAFPSVCImagePath = "%SystemRoot%\system32\sfmsvc.exe" ProductAFPSVCType = "service" ProductAFPSVCEventDll = "%SystemRoot%\system32\sfmmsg.dll" NetRuleAFPSVCType = "AfpServer lmNetService" NetRuleAFPSVCUse = "service" !UAMVolumeName = "Microsoft UAM Volume"
ProductAFPSRVRName = "AfpSrv" ProductAFPSRVRDisplayName = "AFP Kernel Driver" ProductAFPSRVRImagePath = "%SystemRoot%\system32\drivers\sfmsrv.sys" ProductAFPSRVREventDll = "%SystemRoot%\system32\sfmmsg.dll" ;------------------------------------------------------------------------ ; Macintosh Print Server Product Descriptions /Net Rules ;------------------------------------------------------------------------ ProductMACPRINTName = "MacPrint" ProductMACPRINTDisplayName = "Macintosh Print Service" ProductMACPRINTTitle = "Services for Macintosh" ProductMACPRINTImagePath = "%SystemRoot%\system32\sfmprint.exe" ProductMACPRINTEventDll = "%SystemRoot%\system32\sfmprint.exe" ProductMonitorDll = "sfmmon.dll" ProductMonitorEventDll = "%SystemRoot%\system32\sfmmon.dll"
;------------------------------------------------------------------------ ; Dll And File Names ;------------------------------------------------------------------------ UtilDll = "sfmutil.dll" ResDll = "sfmres.dll" IconsInfFile = "sfmicons.inf" !UamResSrcFile = "sfmuam.rsc" !UamInfoSrcFile = "sfmuam.ifo" !UamResDestFile = "MS UAM:Afp_Resource" !UamInfoDestFile = "MS UAM:Afp_AfpInfo" !UamReadMeSrcFile = "sfmuam.txt" !UamReadMeDestFile = "MS UAM ReadMe.ttxt" !AppleShareFolder = "AppleShare Folder" NtNetIniFileName = "ntnet.ini" WinFileIniFileName = "winfile.ini" AfpMgrCplFile = "sfmmgr.cpl" SrvMgrIniSection = "SMAddons" WinFileIniSection = "Addons" TypeCreatorMapFile = "sfmmap.inf" AtWinSockDll = "sfmshat.dll" PSprintProcFile = "sfmpsprt.dll" PSprintProc = "PSPRINT"
;------------------------------------------------------------------------ ; Product Key Names, Registry Key Names of Interest ;------------------------------------------------------------------------- !ProductKeyBase = $(!NTN_SoftwareBase)"\"$(Manufacturer) !ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSFMName)"\CurrentVersion" !ProductKeyLinkage = $(!NTN_ServiceBase)"\"$(ProductATALKName)"\Linkage" !PrintMonKeyName = "SYSTEM\CurrentControlSet\Control\Print\Monitors" !EventLogKey = $(!NTN_ServiceBase)"\EventLog\Application"
[GeneralConstants]
UtilInf = "UTILITY.INF" SubInf = "SUBROUTN.INF" !KeyNull = "" !ACCESS = 33554432 RegistryErrorIndex = NO_ERROR KeyProduct = "" KeyParameters = "" TRUE = 1 FALSE = 0 NoTitle = 0 !UamCopyStatus = TRUE !DebugOutputControl = 1
[FileConstantsENG]
FunctionTitle = "Services for Macintosh Setup" ProductATALKDescription = "AppleTalk Transport" ProductAFPSVCDescription = "AppleTalk File Server" ProductMACPRINTDescription = "AppleTalk Print Server" ProductSFMDescription = "Macintosh->Windows NT Connectivity"
ProCaption = $(FunctionTitle) ProCancel = "Cancel" ProCancelMsg = "Services for Macintosh is not correctly installed. "+ "Are you sure you want to cancel copying files ?" ProCancelCap = "Services for Macintosh Setup" ProText1 = "Copying:" ProText2 = "To:" Error = "User has cancelled copying files. Copied files will be removed."
MajorVersion = "MajorVersion" MinorVersion = "MinorVersion"
AskLocationText = "Please enter the full path of the Services for "+ "Macintosh distribution files. Then choose continue."
[DialogConstantsENG]
Help = "&Help" Exit = "E&xit Setup" OK = "OK" HelpContext = "" Continue = "Continue" Cancel = "Cancel" ConfigCancel = "Close"
[date] Now = {} ? $(!LIBHANDLE) GetSystemDate
[AvailableSystemMemory]
SystemMemory = "" ? $(!LIBHANDLE) GetMemorySize MinSystemMemory = 2048
[FSAndDiskSpace]
VolumeList = {} ? $(!LIBHANDLE) GetHardDriveLetters VolumeFreeList = {} ? $(!LIBHANDLE) GetHardDriveFreeSpace VolumeFSList = {} ? $(!LIBHANDLE) GetHardDriveFileSystems
[VolList]
VolumeFSList = {} ? $(!LIBHANDLE) GetHardDriveFileSystems VolumeList = {} ? $(!LIBHANDLE) GetHardDriveLetters
[DefAfpParametersENG]
MaxSessions = 255 LoginMessage = "" ServerOptions = 7 PagedMemLimit = 20000 NonPagedMemLimit = 2000
[ExtensionIds]
XCEL1ID = {"ID=1"} XCEL2ID = {"ID=2"} XCEL3ID = {"ID=3"} XCEL4ID = {"ID=4"} XCEL5ID = {"ID=5"} XCEL6ID = {"ID=6"} XCEL7ID = {"ID=7"} XCEL8ID = {"ID=8"} XCEL9ID = {"ID=9"} XCEL10ID = {"ID=10"} XCEL11ID = {"ID=11"} XCEL12ID = {"ID=12"} XCEL13ID = {"ID=13"}
MSWD1ID = {"ID=14"} MSWD2ID = {"ID=15"} MSWD3ID = {"ID=16"} MSWD4ID = {"ID=17"} MSWD5ID = {"ID=18"}
MSPJ1ID = {"ID=19"} MSPJ2ID = {"ID=20"} MSPJ3ID = {"ID=21"} MSPJ4ID = {"ID=22"} MSPJ5ID = {"ID=23"} MSPJ6ID = {"ID=24"}
ALD31ID = {"ID=25"} ALD32ID = {"ID=26"} ALD33ID = {"ID=27"}
MOREID = {"ID=28"} FOX+ID = {"ID=29"} ALD2ID = {"ID=30"} ARTZID = {"ID=31"} SIT!ID = {"ID=32"} PPT2ID = {"ID=33"} PPT3ID = {"ID=34"} L123ID = {"ID=35"} TTXTID = {"ID=36"}
[UAMVarsENG] UAMDirName = "Microsoft UAM Volume" UAMPath = $(UAMDrive)"\"$(UAMDirName)
;------------------------------------------------------------------ ; Express /Custom Mode Install Dialog - Used In Initial Setup Only ;------------------------------------------------------------------
[SetupSpaceDlgENG] DlgType = "MessageBox" STF_MB_TYPE = 5 STF_MB_ICON = 3 STF_MB_DEF = 3 STF_MB_TITLE = $(FunctionTitle) STF_MB_TEXT = "Setup could not find enough space on your Windows NT system partition. "+ "Setup requires atleast 2 MB for installing Services for Macintosh. "+ "You can retry installation by freeing up space on your system drive."
[ConfigureSfmDlgENG] DlgType = "Radio" DlgTemplate = "SFMCONFIGSEL" Caption = $(FunctionTitle) Label1 = "Select the component to be configured" RadioHeader = "" RadioDefault = "1" Radio1Text = "AppleTalk &Transport" Radio2Text = "AppleTalk &File Server" OptionsGreyed = {} HelpContext = #(SfmSetupHelpIds, HC_SFM_SFMCONFIGSEL,1) ComboListItemsOut = {}
[ConfigureAfpDlgENG] DlgType = "RadioCombination" DlgTemplate = "SRVCFG" Caption = "SFM File Server Configuration" Label1 = "Server &Name:" BuildUAMVol = "&Build UAM Volume" CheckItemsIn = {$(FShareUAM)} EditTextIn = $(ServerName) EditTextOut = "" EditTextLim = 31 EditFocus = "ALL" CBOptionsGreyed = $(DisableList) HelpContext = #(SfmSetupHelpIds, HC_SFM_SRVCFG,1) ComboListItemsOut = {}
[UAMVolCreateDlgENG] DlgType = "Edit" DlgTemplate = "UAMVOLCREATE" Caption = "Services for Macintosh Setup" DlgText = "Enter the path for the Microsoft User Authentication files. "+ "The Microsoft User Authentication files will be copied to this "+ "location to allow Macintosh clients to download this module."$(!LF)$(!LF)+ "Press Cancel to cancel installation of this module." Static1Label = "Volume &Path:" EditTextLim = 259 HelpContext = #(SfmSetupHelpIds, HC_SFM_UAMVOLCREATE,1)
[SetupAbortDlgENG] DlgType = "Info" DlgTemplate = "RESTART" Caption = $(FunctionTitle) DlgText = "Setup for Macintosh Services failed."$(!LF)$(!LF)+ "Please choose Exit to exit back to the Windows NT System." Windows = "E&xit to &Windows NT"
[ExitWarningDlgENG] DlgType = "MessageBox" STF_MB_TITLE = "Services for Macintosh Setup" STF_MB_TEXT = "Services for Macintosh is not correctly installed. Are you "+ "sure you want to exit Setup ?" STF_MB_TYPE = 3 STF_MB_ICON = 5 STF_MB_DEF = 2
;------------------------------------------------------------------ ; Error Strings ;------------------------------------------------------------------
;------------------------------------------------------------------ ; Miscellaneous Errors ;------------------------------------------------------------------
[MiscErrorString1ENG] ErrorString = " of Services for Macintosh is already installed in your system. "+ "Use [Update] to update to newer versions."
[MiscErrorString2ENG] ErrorString = "The amount of memory available on your system is not sufficient "+ "to run Services for Macintosh. Services for Macintosh requires "+ "at least 8 MB to run."
[MiscErrorString3ENG] ErrorString = ""
[ShellingErrorENG] ErrorString = " An internal error occurred. Contact MS support."
[UamFileNotCopiedENG] ErrorString = "Setup failed to copy Microsoft User Authentication files. "+ "Setup will not create a volume for allowing Macintosh clients to "+ "download these files. Refer to your user's guide on how to setup "+ "this volume after installation."
[UamFileNotCopied1ENG] ErrorString = "Setup failed to copy Microsoft User Authentication files. "+ "Setup will not create a volume for allowing Macintosh clients to "+ "download these files."
;------------------------------------------------------------------ ; Status Strings ;------------------------------------------------------------------
[IntroMessageENG]
Status = "Setup is ready to install Services for Macintosh. "+ "Setup will install the AppleTalk Transport, the AppleTalk File "+ "Server, the Macintosh Print Server and create a volume for "+ "downloading Microsoft Authentication files to Macintosh clients. "+ "Press OK to start installation."
[Status0ENG] Status = "Checking Disk Space and File System Information..."
[Status1ENG] Status = "Installing "$(Product$(Option))"..."
[StatusAtalk1ENG] Status = "Adding AppleTalk Transport to registry..."
[StatusAtalk3ENG] Status = "Starting AppleTalk ..."
[StatusAfp1ENG] Status = "Adding Afp Server Service to registry..."
[StatusAfp2ENG] Status = "Creating Afp Service ..."
[StatusAfp3ENG] Status = "Adding Afp File Server to File Manager and Server Manager ..."
[StatusMacPrint1ENG] Status = "Adding Macintosh Print Service to registry..."
[StatusRemove1ENG] Status = "Removing Services for Macintosh files..."
[StatusRemove2ENG] Status = "Restoring Services for Macintosh original state..."
[StatusRemoveDoneENG] Status = "Services for Macintosh has been successfully removed. "+ "You must now close the Network Applet and reboot for the system "+ "to work correctly. Do not attempt to reinstall Services for "+ "Macintosh now."
;------------------------------------------------------------------ ; AppleTalk Transport Error Strings ;------------------------------------------------------------------
[AtalkString1ENG] ErrorString = "Setup failed to add WinSock support for the Appletalk transport. "+ "This will not affect installation. Contact your system administrator "+ "for support."
[AtalkString2ENG] ErrorString = "Setup failed to remove WinSock support for the Appletalk transport."
[AtalkString3ENG] ErrorString = "Services for Macintosh has just been installed. Services will be "+ "available to Macintoshes in the default network. If you would like "+ "the services to appear in a different zone or to configure routing, close "+ "the Control Panel, reboot, Start AppleTalk and use the Control Panel "+ "to configure Services for Macintosh."
[AFPString1ENG] ErrorString = "Setup could not find any NT File System volumes in your system. "+ "Services for Macintosh requires a NT File System volume for "+ "Macintosh clients to share files. You can create the NT FileSystem "+ "volume after installing Services for Macintosh. Setup will proceed to "+ "install Services for Macintosh."
[AFPString2ENG] ErrorString = "Unable to add Afp File Server to the File Manager Menu. "+ "You will not be able to use the File Manager to create/edit/delete or edit "+ "type creator associations from File Manager. Consult your user's guide "+ "on how to do this after installation."
[AFPString3ENG] ErrorString = "Unable to add Afp File Server to the Server Manager Menu. "+ "You will not be able to use the Server Manager to administer Afp Servers on your "+ "network. Consult your user's guide on how to do this after installation."
[AFPString10ENG] ErrorString = "An invalid volume path has been entered or this volume is not a NT File System volume."
[AFPString11ENG] ErrorString = "Could not find the volumes key in the AfpServer section in registry. "+ "UAM Volume cannot be built."
[AFPString12ENG] ErrorString = "Could not find any NTFS volumes in your system. UAM Volume cannot be built."
[MacPrintString1ENG] ErrorString = "Unable to create Macintosh Print user account. This account may already exist. "+ "Enter a new account name to create."
[MacPrintString2ENG] ErrorString = "Unable to open registry key for eventlog. Macintosh Print Service event log entries "+ "may not be set correctly."
[MacPrintString3ENG] ErrorString = "Unable to add Macintosh Print Service Print Processor. Macintosh clients will be unable to "+ "print postscript jobs to a non-postscript printer on the Advanced Server network."
[MacPrintString4ENG] ErrorString = "Unable to add Macintosh Print Monitor. You will be unable to use the "+ "Macintosh Print Service. Contact Microsoft Support."
[MacPrintString5ENG] ErrorString = "Unable to remove the Macintosh Print Service Print Processor. "+ "Contact your system admnistrator for support."
[MacPrintString6ENG] ErrorString = "Unable to find the directory to install the Macintosh Print Processor. "+ "Macintosh Print Processor will not be installed."
[MacPrintString7ENG] ErrorString = "Unable to remove the Macintosh Print Monitor. Contact your Administrator. "+ "Temporary Message: Setup will manually delete your monitor registry keys NOW!."
[MacPrintString8ENG] ErrorString = "Unable to create the Macintosh Print User Account. Refer "+ "to your Services for Macintosh User's Guide on how to set up "+ "this account after installation."
[MacPrintString9ENG] ErrorString = "Unable to remove the Macintosh Print User Account. Refer "+ "to your Services for Macintosh User's Guide on how to remove "+ "this account."
[MacPrintString10ENG] ErrorString = "Unable to open registry key for eventlog. The event log entry for "+ "the Macintosh Print Service monitor may not be set correctly."
[NoAdaptersFoundENG]
ErrorString = "Fatal Error: Unable to find any network adapter "+ "for Services for Macintosh. You will not be able "+ "to use Services for Macintosh. Add a network "+ "adapter or enable AppleTalk Transport bindings."
[CantRemoveSfmENG] ErrorString = "Services for Macintosh is currently running on your system. You "+ "cannot remove now. Stop Services for Macintosh and retry."
[RemoveDefaultPortENG] ErrorString = "The default network adapter used by Services"$(!LF)+ "for Macintosh has been removed. An attempt"$(!LF)+ "will be made to change the default port."$(!LF)+ "This may cause Macintosh clients to no longer"$(!LF)+ "see services on the current zone. You must"$(!LF)+ "configure the AppleTalk transport to change"$(!LF)+ "the zone for Services for Macintosh."
[SetupSuccessENG] Status = "Services for Macintosh has been installed."$(LF)+ "Services will self-start on reboot."$(LF)$(LF)+ "Services will be available to Macintosh clients in the default network. "+ "If you would like the services to appear in a different zone or to configure routing, "+ "reboot and use the Control Panel Network Applet to configure the AppleTalk Transport. "+ "Consult your Services for Macintosh User's Guide on things to do after installation." [Identify] read-syms Identification set Status = STATUS_SUCCESSFUL set Identifier = $(OptionType) set Media = #("Source Media Descriptions", 1, 1) Return $(Status) $(Identifier) $(Media)
[ReturnOptions] set Status = STATUS_FAILED set OptionList = {} set OptionTextList = {} set LanguageList = ^(LanguagesSupported, 1) Ifcontains(i) $($0) in $(LanguageList) goto returnoptions else set Status = STATUS_NOLANGUAGE goto finish_ReturnOptions endif returnoptions = + set OptionList = ^(Options, 1) set OptionTextList = ^(OptionsText$($0), 1) set Status = STATUS_SUCCESSFUL
finish_ReturnOptions = + Return $(Status) $(OptionList) $(OptionTextList)
[InstallOption] set Status = STATUS_FAILED set Option = $($1) set SrcDir = $($2) Set AddCopy = $($3) Set DoCopy = $($4) Set DoConfig = $($5)
set LanguageList = ^(LanguagesSupported, 1)
Ifcontains(i) $($0) NOT-IN $(LanguageList) return STATUS_NOLANGUAGE EndIf
StartWait set-subst LF = "\n" set-subst CR = "\r" read-syms GeneralConstants read-syms FileConstants read-syms DialogConstants$(!STF_LANGUAGE)
read-syms FileConstants$(!STF_LANGUAGE) read-syms SfmSetupHelpIds SetHelpFile $(!STF_CWDDIR)sfmsetup.hlp $(MinHelpID) $(MaxHelpID)
detect date set-title $(FunctionTitle) set to = Begin set from = Begin set CommonStatus = STATUS_SUCCESSFUL
Debug-Output "SFMSETUP: Install Mode = "$(!NTN_InstallMode) Debug-Output "SFMSETUP: Origin = "$(!NTN_Origination) Debug-Output "SFMSETUP: Phase = "$(!NTN_InstallPhase) Debug-Output "SFMSETUP: Context INF = "$(!STF_CONTEXTINFNAME) EndWait
Begin = +
Set REMOVE_SOFTWARE = {} Set REMOVE_SERVICES = {}
IfStr(i) $(!NTN_InstallMode) == deinstall Set StartLabel = Removesfm
Set REMOVE_SOFTWARE = { $(ProductATALKName),+ $(ProductAFPSVCName),+ $(ProductMACPRINTName)+ } Set REMOVE_SERVICES = {$(ProductAFPSRVRName)}
LoadLibrary "x" $(!STF_CWDDIR)$(UtilDll) !UTILHANDLE
Debug-Output "Remove Software List = "$(REMOVE_SOFTWARE) Debug-Output "Remove Services List = "$(REMOVE_SERVICES)
else-Ifstr(i) $(!NTN_InstallMode) == Update set StartLabel = Upgradesfm
else-Ifstr(i) $(!NTN_InstallMode) == configure set StartLabel = Configuresfm
else-Ifstr(i) $(!NTN_InstallMode) == bind set StartLabel = Bindingssfm
else-Ifstr(i) $(!NTN_InstallMode) == install set StartLabel = Installsfm else
; CODEWORK - Declare Error and Bomb Out
endif
goto $(StartLabel)
;------------------------------------------------------------------ ; Install the product ;------------------------------------------------------------------
Installsfm = +
Set FLibraryErrCtl = 1 ; Detect if we are already installed. If installed, ask the user to ; use the update option. Otherwise ask the user to input the ; location of the SFM files
OpenRegKey $(!REG_H_LOCAL) "" $(!ProductKeyName) $(!ACCESS) KeyProduct
Ifstr $(KeyProduct) != $(!KeyNull)
GetRegValue $(KeyProduct) $(MajorVersion) VersionInfo set VersionMajor = *($(VersionInfo), 4) GetRegValue $(KeyProduct) $(MinorVersion) VersionInfo set VersionMinor = *($(VersionInfo), 4) set InstalledVersion = $(VersionMajor)"."$(VersionMinor)
ifstr(i) $(ProductVersion) == $(InstalledVersion)
read-syms MiscErrorString1$(!STF_LANGUAGE) Set Text = "Version "$(ProductVersion) Shell $(SubInf), SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(Text)$(ErrorString) goto end
EndIf
Else set Text = $(AskLocationText)
ifstr(i) $(!NTN_InstallPhase) == "secondary"
Shell $(SubInf), DoAskSourceEx, $(SrcDir) $(Text) Ifint $($ShellCode) != $(!SHELL_CODE_OK) Goto fatal Else-Ifstr(i) $($R0) == STATUS_FAILED Shell $(UtilInf) RegistryErrorString "ASK_SOURCE_FAIL" ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) Goto fatal Else-Ifstr(i) $($R0) == STATUS_USERCANCEL Goto initialsetupcancel Endif Set SrcDir = $($R1) EndIf
EndIf
StartWait
Debug-Output "Detecting memory"
read-syms AvailableSystemMemory detect AvailableSystemMemory
Debug-Output "System Memory = "$(SystemMemory) Debug-Output "Min System Memory = "$(MinSystemMemory)
Ifint $(SystemMemory) < $(MinSystemMemory) read-syms MiscErrorString2(!STF_LANGUAGE) shell $(SubInf) SetupMessage $(!STF_LANGUAGE) "FATAL" $(ErrorString) goto end EndIf
Debug-Output "Reading Status 0" read-syms Status0$(!STF_LANGUAGE) Shell $(SubInf) PushBillBoard NETSTATUSDLG $(Status)
Debug-Output "Detecting Disk Space"
read-syms FSAndDiskSpace detect FSAndDiskSpace
GetDriveInPath NtDrive $(!STF_WINDOWSSYSPATH)
; Check if the user has any NTFS Volumes or not
Set NTFSVolExists = FALSE Set !NTFSVolumeList = {}
ForListDo $(VolumeFSList) Ifstr(i) $($) == "NTFS" Set NTFSVolExists = TRUE Set NTFSVolumeList = >($(NTFSVolumeList),*($(VolumeList),$(#))) Endif EndForListDo
ifstr(i) $(NTFSVolExists) == FALSE read-syms AFPString1$(!STF_LANGUAGE) Shell $(SubInf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(ErrorString) endIf
; Check if there is enough space in the Windows NT System Drive. ; If not enough space, tell the user ot make some space and retry
readvollist = +
Debug-Output "Detecting vol list" ForListDo $(VolumeList)
set CurrentVolume = *($(VolumeList), $(#)) set CurrentVolumeFree = *($(VolumeFreeList), $(#))
Ifstr(i) $(CurrentVolume) == $(NtDrive)
Ifint $(CurrentVolumeFree) < $(RequiredSfmSize)
read-syms SetupSpaceDlg$(!STF_LANGUAGE) ui start "SetupSpaceDlg"
Ifstr(i) $(DLGEVENT) == "RETRY" read-syms FSAndDiskSpace detect FSAndDiskSpace goto readvollist else goto initialsetupcancel EndIf
Else goto intromessage EndIf
EndIf
EndForListDo
intromessage = +
Shell $(SubInf) PopBillBoard read-syms IntroMessage$(!STF_LANGUAGE) Shell $(SubInf) SetupMessage $(!STF_LANGUAGE) "STATUS" $(Status)
;------------------------------------------------------------------ ; Copy the SFM Files ;------------------------------------------------------------------
CopySfmFiles = +
install "Install-Initial"
ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
read-syms StatusRemove1$(!STF_LANGUAGE) Shell $(SubInf) PushBillBoard NETSTATUSDLG $(Status)
Shell "" RemoveSfmFiles "INSTALL" Shell $(SubInf) PopBillBoard
goto usercancel
endif
LoadLibrary "x" $(!STF_CWDDIR)$(UtilDll) !UTILHANDLE
Set Result = "" Set FLibraryErrCtl = 1 LibraryProcedure Result, $(!UTILHANDLE), CopyUamFiles, $(SrcDir)"\"$(!UamResSrcFile) $(!STF_WINDOWSSYSPATH)"\"$(!UamResSrcFile) Set FLibraryErrCtl = 0 ifstr(i) $(Result) == "FAILED" read-syms UamFileNotCopied$(!STF_LANGUAGE) Shell $(SubInf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(ErrorString) Set !UamCopyStatus = FALSE goto StartInstall EndIf Set FLibraryErrCtl = 1 LibraryProcedure Result, $(!UTILHANDLE), CopyUamFiles, $(SrcDir)"\"$(!UamInfoSrcFile) $(!STF_WINDOWSSYSPATH)"\"$(!UamInfoSrcFile) Set FLibraryErrCtl = 0 ifstr(i) $(Result) == "FAILED" read-syms UamFileNotCopied$(!STF_LANGUAGE) Shell $(SubInf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(ErrorString) Set !UamCopyStatus = FALSE EndIf
StartInstall = +
Set REMOVE_FLAG = TRUE
Set ThisOption = "SFM" Shell $(UtilInf), InstallSoftwareProduct, $(Manufacturer),$(Product$(ThisOption)Name), $(ProductFullInfName) ifint $(ShellCode) != 0 goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR CloseRegKey $($R1) CloseRegKey $($R2) goto fatalregistry endif
Set SfmProductKey = $($R1) Set SfmNetRuleKey = $($R2)
; set product key information in the registry
set NewValueList = + {{Infname,0,$(!REG_VT_SZ),$(ProductFullInfName)},+ {ServiceName,0,$(!REG_VT_SZ),$(Product$(ThisOption)Name)},+ {Title,0,$(!REG_VT_SZ), $(Product$(ThisOption)Title)},+ {Description,$(NoTitle),$(!REG_VT_SZ),$(Product$(ThisOption)Description)},+ {MajorVersion,0,$(!REG_VT_DWORD),$(ProductMajorVersion)},+ {MinorVersion,0,$(!REG_VT_DWORD),$(ProductMinorVersion)},+ {InstalledComponents,$(NoTitle),$(!REG_VT_MULTI_SZ),$(TobeInstalledList)},+ {InstallDate,0,$(!REG_VT_DWORD),*($(Now),1)}}
Shell $(UtilInf), AddValueList, $(SfmProductKey), $(NewValueList) ifint $(ShellCode) != 0 goto ShellCodeError endif
set RegistryErrorIndex = $($R0) CloseRegKey $(SfmProductKey)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR EndWait CloseRegKey $(SfmNetRuleKey) goto fatalregistry endif
Set NewValueList = {{InfOption,$(NoTitle),$(!REG_VT_SZ),$(ThisOption)}, + {Infname,$(NoTitle),$(!REG_VT_SZ),$(ProductFullInfName)}}
Shell $(UtilInf), AddValueList, $(SfmNetRuleKey), $(NewValueList) ifint $(ShellCode) != 0 goto ShellCodeError endif
set RegistryErrorIndex = $($R0) CloseRegKey $(SfmNetRuleKey) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR goto fatalregistry endif
Set ThisOption = ATALK Set REMOVE_SOFTWARE = >($(REMOVE_SOFTWARE), $(Product$(ThisOption)Name))
read-syms StatusAtalk1$(!STF_LANGUAGE) Shell $(SubInf) PushBillBoard NETSTATUSDLG $(Status) Set Atalk_DependList = {"+NDIS"} Set FLibraryErrCtl = 1 Shell $(UtilInf), AddSoftwareComponent, $(Manufacturer), + $(Product$(ThisOption)Name), $(Product$(ThisOption)Name), + $(Product$(ThisOption)DisplayName), + $(ProductFullInfName), $(Product$(ThisOption)ImagePath),+ "kernelautostart", "", $(Atalk_DependList), "" $(Product$(ThisOption)EventDll) Set FLibraryErrCtl = 0 Set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR CloseRegKey $($R1) CloseRegKey $($R2) CloseRegKey $($R3) CloseRegKey $($R4) CloseRegKey $($R5) goto fatalregistry EndIf
; At this point: ; $R1 contains the product version key handle; ; $R2 contains the NetRules subkey handle; ; $R3 contains the new Services key handle; and ; $R4 contains the Parameters key ; $R5 contains the Linkage Key ;
Set AtkVersKey = $($R1) Set AtkNetRuleKey = $($R2) Set AtkSvcKey = $($R3) Set AtalkParameters = $($R4) Set AtkLinkageKey = $($R5)
set NewValueList = {{SoftwareType,0,$(!REG_VT_SZ),$(Product$(ThisOption)Type)},+ {Title,0,$(!REG_VT_SZ),$(Product$(ThisOption)Title)},+ {Description,0,$(!REG_VT_SZ),$(Product$(ThisOption)Description)},+ {PathName,0,$(!REG_VT_SZ),$(!STF_WINDOWSSYSPATH)},+ {ServiceName,0,$(!REG_VT_SZ),$(Product$(ThisOption)Name)},+ {Review,0,$(!REG_VT_DWORD),1},+ {Hidden,0,$(!REG_VT_DWORD),1},+ {InstallDate,0,$(!REG_VT_DWORD),*($(Now),1)}}
Shell $(UtilInf), AddValueList, $(AtkVersKey), $(NewValueList)
set RegistryErrorIndex = $($R0)
Ifstr $(RegistryErrorIndex) != NO_ERROR CloseRegKey $(AtkVersKey) CloseRegKey $(AtkNetRuleKey) CloseRegKey $(AtkSvcKey) CloseRegKey $(AtkLinkageKey) CloseRegKey $(AtalkParameters) goto fatalregistry EndIf
set NewValueList = {{type,0,$(!REG_VT_SZ),$(NetRule$(ThisOption)Type)}, + {use,0,$(!REG_VT_SZ),$(NetRule$(ThisOption)Use)}, + {bindform,0,$(!REG_VT_SZ),$(NetRule$(ThisOption)BindForm)}, + {class,0, $(!REG_VT_MULTI_SZ),$(NetRule$(ThisOption)Class)}, + {bindable,0, $(!REG_VT_MULTI_SZ), $(NetRule$(ThisOption)BindList)},+ {InfOption,0,$(!REG_VT_SZ),$(ThisOption)}, + {Infname,0,$(!REG_VT_SZ),$(ProductFullInfName)} }
Shell $(UtilInf), AddValueList, $(AtkNetRuleKey), $(NewValueList)
set RegistryErrorIndex = $($R0) CloseRegKey $(AtkVersKey) CloseRegKey $(AtkNetRuleKey)
Ifstr $(RegistryErrorIndex) != NO_ERROR goto fatalregistry EndIf
set NewValueList = {{OtherDependencies,0,$(!REG_VT_MULTI_SZ),{"+NDIS"}}}
shell $(UtilInf), AddValueList, $(AtkLinkageKey), $(NewValueList)
set RegistryErrorIndex = $($R0)
Ifstr $(RegistryErrorIndex) != NO_ERROR EndWait CloseRegKey $(AtkVersKey) CloseRegKey $(AtkNetRuleKey) CloseRegKey $(AtkSvcKey) CloseRegKey $(AtkLinkageKey) CloseRegKey $(AtalkParameters) goto fatalregistry EndIf
; ; Create the Adapters Key ; CreateRegKey $(AtkSvcKey), {"Adapters",0,GenericClass},"", $(!ACCESS),+ "" , KeyAdapters
; write global parameters
Set DesiredZone = "" set NewValueList = {{EnableRouter,0,$(!REG_VT_DWORD),0},+ {DesiredZone,0,$(!REG_VT_SZ),$(DesiredZone)}}
Shell $(UtilInf), AddValueList, $(AtalkParameters), $(NewValueList)
set RegistryErrorIndex = $($R0)
CloseRegKey $(AtalkParameters) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR goto fatalregistry EndIf
; Add WinSock Support to AppleTalk
Set WinAtalkDll = $(!STF_WINDOWSSYSPATH)"\"$(AtWinSockDll) Set MaxSockAddrLen = 8 Set MinSockAddrLen = 6
Shell $(UtilInf) AddWinsockInfo $(Product$(ThisOption)Name), $(WinAtalkDll), + $(MaxSockAddrLen), $(MinSockAddrLen)
ifstr(i) $($R0) != NO_ERROR
read-syms AtalkString1$(!STF_LANGUAGE) Shell $(SubInf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(ErrorString)
Endif
Shell $(SubInf) PopBillBoard
; Install AFPSVC
Set ThisOption = AFPSVC Set REMOVE_SOFTWARE = >($(REMOVE_SOFTWARE), $(Product$(ThisOption)Name)) Set REMOVE_SERVICES = >($(REMOVE_SERVICES), $(ProductAFPSRVRName)) StartWait read-syms StatusAfp1$(!STF_LANGUAGE)
Shell $(SubInf) PushBillBoard NETSTATUSDLG $(Status) Set FLibraryErrCtl = 1 Shell $(UtilInf), AddSoftwareComponent, $(Manufacturer), + $(Product$(ThisOption)Name), $(Product$(ThisOption)Name), + $(Product$(ThisOption)DisplayName), + $(ProductFullInfName), $(Product$(ThisOption)ImagePath),+ "autoserviceshare", "", {"AppleTalk","NetLogon"}, "" $(Product$(ThisOption)EventDll) Set FLibraryErrCtl = 0 Ifint $(ShellCode) != 0 goto ShellCodeError endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR EndWait CloseRegKey $($R1) CloseRegKey $($R2) CloseRegKey $($R3) CloseRegKey $($R4) goto fatalregistry endif ; ; At this point: ; $R1 contains the product version key handle; ; $R2 contains the NetRules subkey handle; ; $R3 contains the new Services key handle; and ; $R4 contains the Parameters key ;
Shell $(SubInf) PopBillBoard
Set McProductKey = $($R1) Set McNetRuleKey = $($R2) Set McServiceKey = $($R3) set McParameters = $($R4) Set McLinkageKey = $($R5)
set NewValueList = {{SoftwareType,0 ,$(!REG_VT_SZ),$(Product$(ThisOption)Type)},+ {Title,0,$(!REG_VT_SZ),$(Product$(ThisOption)Title)},+ {Description,0,$(!REG_VT_SZ),$(Product$(ThisOption)Description)},+ {PathName,0,$(!REG_VT_SZ),$(!STF_CWDDIR)},+ {ServiceName,0,$(!REG_VT_SZ),$(Product$(ThisOption)Name)},+ {Hidden,0,$(!REG_VT_DWORD),1},+ {InstallDate,0,$(!REG_VT_DWORD),*($(Now),1)}}
Shell $(UtilInf),AddValueList,$(McProductKey),$(NewValueList) ifint $(ShellCode) != 0 goto ShellCodeError endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR EndWait CloseRegKey $(McProductKey) CloseRegKey $(McNetRuleKey) CloseRegKey $(McServiceKey) CloseRegKey $(McParameters) CloseRegKey $(McLinkageKey) goto fatalregistry Endif
set NewValueList = {{type,0,$(!REG_VT_SZ),$(NetRule$(ThisOption)Type)},+ {use,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOpton)Use)},+ {InfOption,$(NoTitle),$(!REG_VT_SZ),$(ThisOption)}, + {Infname ,$(NoTitle),$(!REG_VT_SZ),$(ProductFullInfName)}}
Shell $(UtilInf), AddValueList, $(McNetRuleKey), $(NewValueList) ifint $(ShellCode) != 0 goto ShellCodeError endif
set RegistryErrorIndex = $($R0) CloseRegKey $(McNetRuleKey)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR EndWait CloseRegKey $(McParameters) CloseRegKey $(McLinkageKey) goto fatalregistry endif
CreateRegKey $(McParameters) {"Type_Creators",0,GenericClass} "" + $(!ACCESS) "" KeyTypeCreator
CreateRegKey $(McParameters) {"Extensions",0,GenericClass} "" + $(!ACCESS) "" KeyExtensions
CreateRegKey $(McParameters) {"Icons",0,GenericClass} "" + $(!ACCESS) "" KeyIcons
CreateRegKey $(McParameters) {"Volumes",$(NoTitle),GenericClass} "" + $(!ACCESS) "" KeyVolumeList
Shell $(!STF_CWDDIR)$(IconsInfFile) ReadIconVariables
set NewValueList = {{LMANDEXE,0,$(!REG_VT_MULTI_SZ),$(!LMANDEXE)},+ {LMANTEXT,0, $(!REG_VT_MULTI_SZ),$(!LMANTEXT)},+ {SRVRSRVR,0, $(!REG_VT_MULTI_SZ),$(!SRVRSRVR)}}
Shell $(UtilInf),AddValueList,$(KeyIcons),$(NewValueList)
ifint $(ShellCode) != 0 goto ShellCodeError endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR EndWait CloseRegKey $(McProductKey) CloseRegKey $(McNetRuleKey) CloseRegKey $(McServiceKey) CloseRegKey $(McParameters) CloseRegKey $(McLinkageKey) goto fatalregistry endif
; Set TypeCreator Mappings
Shell $(!STF_CWDDIR)$(TypeCreatorMapFile) ReadTypeCreatorMappings
Set NewValueList = + {{1,0,$(!REG_VT_MULTI_SZ),$(!XCEL1CREATOR)},+ {2,0,$(!REG_VT_MULTI_SZ),$(!XCEL2CREATOR)},+ {3,0,$(!REG_VT_MULTI_SZ),$(!XCEL3CREATOR)},+ {4,0,$(!REG_VT_MULTI_SZ),$(!XCEL4CREATOR)},+ {5,0,$(!REG_VT_MULTI_SZ),$(!XCEL5CREATOR)},+ {6,0,$(!REG_VT_MULTI_SZ),$(!XCEL6CREATOR)},+ {7,0,$(!REG_VT_MULTI_SZ),$(!XCEL7CREATOR)},+ {8,0,$(!REG_VT_MULTI_SZ),$(!XCEL8CREATOR)},+ {9,0,$(!REG_VT_MULTI_SZ),$(!XCEL9CREATOR)},+ {10,0,$(!REG_VT_MULTI_SZ),$(!XCEL10CREATOR)},+ {11,0,$(!REG_VT_MULTI_SZ),$(!XCEL11CREATOR)},+ {12,0,$(!REG_VT_MULTI_SZ),$(!XCEL12CREATOR)},+ {13,0,$(!REG_VT_MULTI_SZ),$(!XCEL13CREATOR)},+ {14,0,$(!REG_VT_MULTI_SZ),$(!MSWD1CREATOR)},+ {15,0,$(!REG_VT_MULTI_SZ),$(!MSWD2CREATOR)},+ {16,0,$(!REG_VT_MULTI_SZ),$(!MSPJ1CREATOR)},+ {17,0,$(!REG_VT_MULTI_SZ),$(!MSPJ2CREATOR)},+ {18,0,$(!REG_VT_MULTI_SZ),$(!MSPJ3CREATOR)},+ {19,0,$(!REG_VT_MULTI_SZ),$(!MSPJ4CREATOR)},+ {20,0,$(!REG_VT_MULTI_SZ),$(!MSPJ5CREATOR)},+ {21,0,$(!REG_VT_MULTI_SZ),$(!MSPJ6CREATOR)},+ {22,0,$(!REG_VT_MULTI_SZ),$(!ALD31CREATOR)},+ {23,0,$(!REG_VT_MULTI_SZ),$(!ALD32CREATOR)},+ {24,0,$(!REG_VT_MULTI_SZ),$(!ALD33CREATOR)},+ {25,0,$(!REG_VT_MULTI_SZ),$(!MORECREATOR)},+ {26,0,$(!REG_VT_MULTI_SZ),$(!FOX+CREATOR)},+ {27,0,$(!REG_VT_MULTI_SZ),$(!ALD2CREATOR)},+ {28,0,$(!REG_VT_MULTI_SZ),$(!ARTZCREATOR)},+ {29,0,$(!REG_VT_MULTI_SZ),$(!SIT!CREATOR)},+ {30,0,$(!REG_VT_MULTI_SZ),$(!PPT2CREATOR)},+ {31,0,$(!REG_VT_MULTI_SZ),$(!PPT3CREATOR)},+ {32,0,$(!REG_VT_MULTI_SZ),$(!L123CREATOR)}}
Shell $(UtilInf),AddValueList,$(KeyTypeCreator),$(NewValueList)
ifint $(ShellCode) != 0 goto ShellCodeError endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR EndWait CloseRegKey $(McProductKey) CloseRegKey $(McNetRuleKey) CloseRegKey $(McServiceKey) CloseRegKey $(McParameters) CloseRegKey $(McLinkageKey) goto fatalregistry endif
; Set Extensions
read-syms ExtensionIds
Set NewValueList = + {{XLC,0,$(!REG_VT_MULTI_SZ),$(XCEL1ID)},+ {XLS,0,$(!REG_VT_MULTI_SZ),$(XCEL2ID)},+ {XLM,0,$(!REG_VT_MULTI_SZ),$(XCEL3ID)},+ {XLW,0,$(!REG_VT_MULTI_SZ),$(XCEL4ID)},+ {XLA,0,$(!REG_VT_MULTI_SZ),$(XCEL5ID)},+ {XLT,0,$(!REG_VT_MULTI_SZ),$(XCEL6ID)},+ {SLK,0,$(!REG_VT_MULTI_SZ),$(XCEL7ID)},+ {WKS,0,$(!REG_VT_MULTI_SZ),$(XCEL8ID)},+ {WK1,0,$(!REG_VT_MULTI_SZ),$(XCEL9ID)},+ {CSV,0,$(!REG_VT_MULTI_SZ),$(XCEL10ID)},+ {DIF,0,$(!REG_VT_MULTI_SZ),$(XCEL11ID)},+ {DOC,0,$(!REG_VT_MULTI_SZ),$(MSWD1ID)},+ {WRD,0,$(!REG_VT_MULTI_SZ),$(MSWD2ID)},+ {RTF,0,$(!REG_VT_MULTI_SZ),$(MSWD3ID)},+ {STY,0,$(!REG_VT_MULTI_SZ),$(MSWD4ID)},+ {GLY,0,$(!REG_VT_MULTI_SZ),$(MSWD5ID)},+ {TXT,0,$(!REG_VT_MULTI_SZ),$(MSWD6ID)},+ {MPP,0,$(!REG_VT_MULTI_SZ),$(MSPJ1ID)},+ {MPX,0,$(!REG_VT_MULTI_SZ),$(MSPJ2ID)},+ {MPC,0,$(!REG_VT_MULTI_SZ),$(MSPJ3ID)},+ {MPV,0,$(!REG_VT_MULTI_SZ),$(MSPJ4ID)},+ {MPW,0,$(!REG_VT_MULTI_SZ),$(MSPJ5ID)},+ {PM3,0,$(!REG_VT_MULTI_SZ),$(ALD31ID)},+ {PT3,0,$(!REG_VT_MULTI_SZ),$(ALD32ID)},+ {TEM,0,$(!REG_VT_MULTI_SZ),$(ALD33ID)},+ {TPL,0,$(!REG_VT_MULTI_SZ),$(ALD33ID)},+ {TIF,0,$(!REG_VT_MULTI_SZ),$(ALD33ID)},+ {RDY,0,$(!REG_VT_MULTI_SZ),$(MOREID)},+ {DBF,0,$(!REG_VT_MULTI_SZ),$(FOX+ID)},+ {PUB,0,$(!REG_VT_MULTI_SZ),$(ALD2ID)},+ {EPS,0,$(!REG_VT_MULTI_SZ),$(ARTZID)},+ {SIT,0,$(!REG_VT_MULTI_SZ),$(SIT!ID)},+ {PPT,0,$(!REG_VT_MULTI_SZ),$(PPT2ID)},+ {WK3,0,$(!REG_VT_MULTI_SZ),$(L123ID)}}
Shell $(UtilInf),AddValueList,$(KeyExtensions),$(NewValueList)
ifint $(ShellCode) != 0 goto ShellCodeError endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR EndWait CloseRegKey $(McProductKey) CloseRegKey $(McNetRuleKey) CloseRegKey $(McServiceKey) CloseRegKey $(McParameters) CloseRegKey $(McLinkageKey) goto fatalregistry endif
Ifstr(i) $(NTFSVolExists) == TRUE
Ifstr(i) $(!UamCopyStatus) == TRUE Shell "" DoUAMInstall "INSTALL" EndIf
EndIf
read-syms DefAfpParameters$(!STF_LANGUAGE)
set NewValueList = + {{ServerOptions,0,$(!REG_VT_DWORD),$(ServerOptions)},+ {MaxSessions,0,$(!REG_VT_DWORD),$(MaxSessions)},+ {LoginMsg,0,$(!REG_VT_SZ),$(LoginMessage)}, + {PagedMemLimit,0,$(!REG_VT_DWORD),$(PagedMemLimit)}, + {NonPagedMemLimit,0,$(!REG_VT_DWORD),$(NonPagedMemLimit)}}
Shell $(UtilInf), AddValueList, $(McParameters), $(NewValueList)
set RegistryErrorIndex = $($R0)
CloseRegKey $(McParameters)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR goto fatalregistry endif
read-syms StatusAfp2$(!STF_LANGUAGE) Shell $(SubInf) PushBillBoard NETSTATUSDLG $(Status)
Set Afp_DependList = {"+TDI"} Set FLibraryErrCtl = 1 Shell $(UtilInf) CreateService,+ $(ProductAFPSRVRName),$(ProductAFPSRVRDisplayName),+ $(ProductAFPSRVRImagePath),"system",+ "Network", $(Afp_DependList),"",+ $(ProductAFPSRVREventDll) Set FLibraryErrCtl = 0 Ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif
set RegistryErrorIndex = $($R0) CloseRegKey $($R1) CloseRegKey $($R2) CloseRegKey $($R3)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR goto fatalregistry endif Shell $(SubInf) PopBillBoard
; WRITE Private Profile String in NTNET.INI
read-syms StatusAfp3$(!STF_LANGUAGE) Shell $(SubInf) PushBillBoard NETSTATUSDLG $(Status)
Set IniFile = $(!STF_NTPATH)"\"$(NtNetIniFileName) Set IniString = $(!STF_WINDOWSSYSPATH)"\"$(AfpMgrCplFile) Set IniSection = $(SrvMgrIniSection)
Set FLibraryErrCtl = 1 LibraryProcedure IniStatus $(!UTILHANDLE) WriteAfpMgrIniStrings, $(IniSection), $(IniString), $(IniFile) Set FLibraryErrCtl = 0 ifstr(i) $(IniStatus) == "FAILED" read-syms AFPString3$(!STF_LANGUAGE) shell $(SubInf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(ErrorString)
EndIf
; Do the same thing for File Manager
Set IniFile = $(!STF_NTPATH)"\"$(WinFileIniFileName) Set IniString = $(!STF_WINDOWSSYSPATH)"\"$(AfpMgrCplFile) Set IniSection = $(WinFileIniSection) Set FLibraryErrCtl = 1 LibraryProcedure IniStatus $(!UTILHANDLE) WriteAfpMgrIniStrings, $(IniSection), $(IniString), $(IniFile) Set FLibraryErrCtl = 0 ifstr(i) $(IniStatus) == "FAILED" read-syms AFPString2$(!STF_LANGUAGE) shell $(SubInf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(ErrorString)
EndIf
Shell $(SubInf) PopBillBoard
Set ThisOption = MACPRINT Set REMOVE_SOFTWARE = >($(REMOVE_SOFTWARE), $(Product$(ThisOption)Name))
read-syms StatusMacPrint1$(!STF_LANGUAGE) Shell $(SubInf) PushBillBoard NETSTATUSDLG $(Status) Set FLibraryErrCtl = 1 Shell $(UtilInf), AddSoftwareComponent, $(Manufacturer), + $(Product$(ThisOption)Name), $(Product$(ThisOption)Name),+ $(Product$(ThisOption)DisplayName), + $(ProductFullInfName), $(Product$(ThisOption)ImagePath),+ "serviceauto", "", {"AppleTalk"},"",+ $(Product$(ThisOption)EventDll) "", "Application", "" Set FLibraryErrCtl = 0 ifint $(ShellCode) != 0 goto ShellCodeError EndIf
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR EndWait CloseRegKey $($R1) CloseRegKey $($R2) CloseRegKey $($R3) CloseRegKey $($R4) goto fatalregistry EndIf ; ; At this point: ; $R1 contains the product version key handle; ; $R2 contains the NetRules subkey handle; ; $R3 contains the new Services key handle; and ; $R4 contains the Parameters key ; Shell $(SubInf) PopBillBoard
Set MpProductKey = $($R1) Set MpNetRuleKey = $($R2) Set MpServiceKey = $($R3) Set MpParameters = $($R4) Set MpLinkageKey = $($R5)
set NewValueList = {{SoftwareType,0,$(!REG_VT_SZ),$(Product$(ThisOption)Type)},+ {Title,0,$(!REG_VT_SZ),$(Product$(ThisOption)Title)},+ {Description,0,$(!REG_VT_SZ),$(Product$(ThisOption)Description)},+ {PathName,$(NoTitle),$(!REG_VT_SZ),$(!STF_CWDDIR)},+ {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(Product$(ThisOption)Name)},+ {Hidden,0,$(!REG_VT_DWORD),1},+ {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
Shell $(UtilInf),AddValueList,$(MpProductKey),$(NewValueList)
ifint $(ShellCode) != 0 goto ShellCodeError EndIf
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR EndWait CloseRegKey $(MpProductKey) CloseRegKey $(MpNetRuleKey) CloseRegKey $(MpServiceKey) CloseRegKey $(MpParameters) CloseRegKey $(MpLinkageKey) goto fatalregistry EndIf
set NewValueList = {{InfOption,0,$(!REG_VT_SZ),$(ThisOption)}, + {Infname,0,$(!REG_VT_SZ),$(ProductFullInfName)}}
Shell $(UtilInf), AddValueList, $(MpNetRuleKey), $(NewValueList) ifint $(ShellCode) != 0 goto ShellCodeError EndIf
set RegistryErrorIndex = $($R0)
CloseRegKey $(MpProductKey) CloseRegKey $(MpNetRuleKey)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR EndWait CloseRegKey $(MpParameters) CloseRegKey $(MpLinkageKey) goto fatalregistry EndIf
set NewValueList = {{OtherDependencies,0, $(!REG_VT_MULTI_SZ), {"AppleTalk"}}}
Shell $(UtilInf), AddValueList $(MpLinkageKey), $(NewValueList) ifint $(ShellCode) != 0 goto ShellCodeError EndIf
set RegistryErrorIndex = $($R0)
CloseRegKey $(MpProductKey) CloseRegKey $(MpNetRuleKey)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR EndWait CloseRegKey $(MpParameters) CloseRegKey $(MpLinkageKey) goto fatalregistry EndIf
; Add additional EventLogging Entries for MacPrint
Set MacPrintEventLogKey = $(!EventLogKey)"\"$(ThisOption)
OpenRegKey $(!REG_H_LOCAL) "" $(MacPrintEventLogKey) $(!ACCESS) MacEvntLogKey
ifstr(i) $(MacEvntLogKey) != $(!KeyNull)
Set EventFile = "%SystemRoot%\System32\sfmprint.exe"
Set NewValueList = {{CategoryMessageFile,0,$(!REG_VT_EXPAND_SZ),$(EventFile)}, + {CategoryCount,0,$(!REG_VT_DWORD),4}}
Shell $(UtilInf) AddValueList, $(MacEvntLogKey), $(NewValueList)
ifint $(ShellCode) != 0 goto ShellCodeError EndIf
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR CloseRegKey $(KeyMcEventLog) goto fatalregistry EndIf
Else read-syms MacPrintString2$(!STF_LANGUAGE) Shell $(SubInf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(ErrorString) EndIf
; Add the AppleTalk Print Monitor Stuff
Set AddMonStatus = "" Set FLibraryErrCtl = 1 LibraryProcedure AddMonStatus $(!UTILHANDLE) SfmAddPrintMonitor Set FLibraryErrCtl = 0 ifstr(i) $(AddMonStatus) == "FAILED" read-syms MacPrintString4$(!STF_LANGUAGE) Shell $(SubInf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(ErrorString) EndIf
; Set up Event Loggin for the AppleTalk Monitor
OpenRegKey $(!REG_H_LOCAL) "" $(!EventLogKey) $(!ACCESS) EvntLogKey
ifstr(i) $(EvntLogKey) != $(!KeyNull)
CreateRegKey $(EvntLogKey) {"AppleTalk Print Monitor",0,GenericClass} "" + $(!ACCESS) "" AtalkMonKey
Set EventFile = "%SystemRoot%\system32\sfmmon.dll"
Set NewValueList = {{CategoryMessageFile,0,$(!REG_VT_EXPAND_SZ),$(EventFile)},+ {EventMessageFile,0,$(!REG_VT_EXPAND_SZ),$(EventFile)},+ {CategoryCount,0,$(!REG_VT_DWORD),4},+ {TypesSupported,0,$(!REG_VT_DWORD),7}}
Shell $(UtilInf) AddValueList $(AtalkMonKey) $(NewValueList)
ifint $(ShellCode) != 0 goto ShellCodeError EndIf
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR CloseRegKey $(AtalkMonKey) goto fatalregistry EndIf
Else read-syms MacPrintString10$(!STF_LANGUAGE) Shell $(SubInf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(ErrorString) EndIf
; Install PSTODIB Stuff
Set PrintProcDir = ""
Set FLibraryErrCtl = 1 LibraryProcedure PrintProcDir $(!UTILHANDLE) GetPrintProcDir Set FLibraryErrCtl = 0 Debug-Output "SFMSETUP: GetPrintProcDir Return Val = "$(PrintProcDir)
ifstr(i) $(PrintProcDir) == "FAILED" read-syms MacPrintString6$(!STF_LANGUAGE) Shell $(SubInf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(ErrorString) goto pstodibdone Endif
; Copy PSPRINT.DLL to the Print Processor Directory
Set !PrintProcDir = $(PrintProcDir)
install "Install-PSPrint"
; Call AddPrintProcessor to add the PrintProcessor to system
Set FLibraryErrCtl = 1 LibraryProcedure Status $(!UTILHANDLE) AddPrintProc $(PSprintProcFile) $(PSprintProc) Set FLibraryErrCtl = 0 ifstr(i) $(Status) != SUCCESS read-syms MacPrintString3$(!STF_LANGUAGE) Shell $(SubInf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(ErrorString) EndIf
pstodibdone = +
EndWait FreeLibrary $(!UTILHANDLE)
read-syms SetupSuccess$(!STF_LANGUAGE) Shell $(SubInf) SetupMessage $(!STF_LANGUAGE) "STATUS" $(Status)
goto successful
;=============================Install Section End=========================
;=============================Configure Section Begin=========================
Configuresfm = +
LoadLibrary "x" $(!STF_CWDDIR)$(ResDll) !SFMDLGHANDLE LoadLibrary "x" $(!STF_CWDDIR)$(UtilDll) !UTILHANDLE
read-syms ConfigureSfmDlg$(!STF_LANGUAGE)
beginconfigui = +
ui start "cfgsfm" $(!SFMDLGHANDLE)
Ifstr(i) $(DLGEVENT) == "CONTINUE" Ifstr(i) $(ButtonChecked) == "1" Set Option = ATALK else Set Option = AFPSVC Endif ui pop 1 else-ifstr(i) $(DLGEVENT) == "BACK" ui pop 1 goto endconfigui EndIf
ifstr(i) $(Option) == "ATALK" StartWait
OpenRegKey $(!REG_H_LOCAL) "" $(!ProductKeyLinkage) $(!ACCESS) LinkageKey
ifstr(i) $(LinkageKey) != $(!KeyNull) GetRegValue $(LinkageKey) "Bind" BindList ifstr(i) $(BindList) == "" read-syms AtalkString3$(!STF_LANGUAGE) Shell $(SubInf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(ErrorString) goto endconfigui endif else Set RegistryErrorIndex = $($R0) goto fatalregistry EndIf
LoadLibrary "x" $(!STF_CWDDIR)sfmatcfg.dll ATHANDLE Set FLibraryErrCtl = 1 LibraryProcedure "", $(ATHANDLE),EnterAtalkConfigDLL $(!STF_HWND) FreeLibrary $(ATHANDLE) Set FLibraryErrCtl = 0 goto endconfigui
else-ifstr(i) $(Option) == "AFPSVC"
Set ParamKeyName = $(!NTN_ServiceBase)"\"$(Product$(Option)Name)"\Parameters" OpenRegKey $(!REG_H_LOCAL) "" $(ParamKeyName) $(!ACCESS) AfpParameters
Ifstr(i) $(AfpParameters) == $(!KeyNull) set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE goto fatalregistry endif
set ValueList = {} set ServerName = ""
EnumRegValue $(AfpParameters) ValueList
ForListDo $(ValueList) Ifstr(i) *($($),1) == "ServerName" set ServerName = *($($),4) endif EndForListDo
Ifstr(i) $(ServerName) == ""
Set ServerName = $(!STF_COMPUTERNAME)
EndIf
read-syms ConfigureAfpDlg$(!STF_LANGUAGE)
processui = + ui start "afpdlg" $(!SFMDLGHANDLE)
Debug-Output "DLGEVENT = "$(DLGEVENT)
ifstr(i) $(DLGEVENT) == "CONTINUE"
set ServerName = *($(EditTextOut),1)
; If Server Name is same as Computer Name, donot update
ifstr(i) $(ServerName) != $(!STF_COMPUTERNAME)
set NewValueList = {{ServerName,0,$(!REG_VT_SZ),$(ServerName)}}
Shell $(UtilInf), AddValueList, $(AfpParameters), $(NewValueList)
CloseRegKey $(AfpParameters)
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR goto fatalregistry endif
else DeleteRegValue $(AfpParameters) "ServerName" EndIf ui pop 1 Else-ifstr(i) $(DLGEVENT) == "EXIT"
Shell "" DoUAMInstall "CONFIGURE" goto processui
Else ui pop 1 EndIf
EndIf
endconfigui = + FreeLibrary $(!SFMDLGHANDLE) FreeLibrary $(!UTILHANDLE) Set CommonStatus = STATUS_USERCANCEL goto usercancel
;=============================Configure Section End=========================
;=============================Bindings Section Begin========================= Bindingssfm = +
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\AppleTalk\Linkage" $(!ACCESS) LinkageKey Ifstr(i) $(LinkageKey) == $(!KeyNull) Set RegistryErrorIndex = UNABLE_ACCESS_CONFIGURE_SERVICE Goto fatalregistry Endif Set BindList = {} Set ExportList = {} Set RouteList = {}
GetRegValue $(LinkageKey) "Bind" BindList GetRegValue $(LinkageKey) "Export" ExportList GetRegValue $(LinkageKey) "Route" RouteList GetRegValue $(LinkageKey) "Exclude" ExcludeList QueryListSize BindCount $(BindList) IfInt $(BindCount) == 0 Goto endbinding Endif
set NewBindList = {} set NewExportList = {} set NewRouteList = {}
ForListDo *($(BindList),4) Split-String $($), "\", BindInfo set NewBindList = >($(NewBindList), *($(BindInfo),4)) EndForListDo
ForListDo *($(ExportList),4) set NewExportList = >($(NewExportList), $($)) EndForListDo
ForListDo *($(RouteList),4) set NewRouteList = >($(NewRouteList), $($)) EndForListDo
ForListDo *($(ExcludeList),4) set NewExcludeList = >($(NewExcludeList), $($)) EndForListDo
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\AppleTalk\Adapters" $(!ACCESS) AdapterKey Ifstr(i) $(AdapterKey) == $(!KeyNull) Set RegistryErrorIndex = UNABLE_ACCESS_CONFIGURE_SERVICE Goto fatalregistry Endif
set AdapterList = "" EnumRegKey $(AdapterKey) AdapterList
Set AtalkAdapterList = {}
ForListDo $(AdapterList) Set AtalkAdapterList = >($(AtalkAdapterList), *($($),1)) EndForListDo
Set NewBindings = "" Set TobeUsedBindList = {} Set TobeUsedExportList = {} Set TobeUsedRouteList = {}
ForListDo $(NewBindList) IfContains(i) $($) not-in $(AtalkAdapterList) Set NewBindings = TRUE Set TobeUsedBindList = >($(TobeUsedBindList),"\Device\"$($)) Set TobeUsedExportList = >($(TobeUsedExportList),*($(NewExportList),$(#))) Set TobeUsedRouteList = >($(TobeUsedRouteList),*($(NewRouteList),$(#)))
Shell "" CreateAtalkConfig $($) $(AdapterKey) Ifstr(i) $($R0) != STATUS_SUCCESSFUL CloseRegKey $(AdapterKey) Set RegistryErrorIndex = $($R1) goto fatalregistry EndIf
Else Set TobeUsedBindList = >($(TobeUsedBindList),"\Device\"$($)) Set TobeUsedExportList = >($(TobeUsedExportList),*($(NewExportList),$(#))) Set TobeUsedRouteList = >($(TobeUsedRouteList),*($(NewRouteList),$(#))) Endif
EndForListDo
set NewValueList = {{Bind,0,$(!REG_VT_MULTI_SZ),$(TobeUsedBindList)}, + {Export,0,$(!REG_VT_MULTI_SZ),$(TobeUsedExportList)}, + {Route,0,$(!REG_VT_MULTI_SZ),$(TobeUsedRouteList)}}
Ifstr(i) $(NewBindings) == TRUE Shell $(UtilInf), AddValueList, $(LinkageKey), $(NewValueList) set RegistryErrorIndex = $($R0) CloseRegKey $(LinkageKey) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR goto fatalregistry EndIf EndIf
; Add the Default Port
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\AppleTalk\Parameters" $(!ACCESS) ParmKey Ifstr(i) $(ParmKey) == $(!KeyNull) Set RegistryErrorIndex = UNABLE_ACCESS_CONFIGURE_SERVICE Goto fatalregistry Endif Set DefaultPort = {} Set MediaTypeList = {} GetRegValue $(ParmKey) "DefaultPort" DefaultPort Ifstr(i) $(DefaultPort) != {} goto removeadapters EndIf
finddefaultport = +
ForListDo $(TobeUsedBindList) Split-String $($) "\" PortName Shell "" FindMediaType *($(PortName),4) Ifstr(i) $($R0) == STATUS_SUCCESSFUL Set MediaTypeList = >($(MediaTypeList), $($R1)) EndIf EndForListDo
Ifcontains(i) "1" in $(MediaTypeList) ForListDo $(MediaTypeList) Ifint $($) == 1 Set DefaultPort = *($(TobeUsedBindList),$(#)) goto defportdone EndIf EndForListDo else-ifcontains(i) "2" in $(MediaTypeList) ForListDo $(MediaTypeList) Ifint $($) == 2 Set DefaultPort = *($(TobeUsedBindList),$(#)) goto defportdone EndIf EndForListDo else-ifcontains(i) "3" in $(MediaTypeList) Set DefaultPort = *($(TobeUsedBindList),1) else read-syms NoAdaptersFound$(!STF_LANGUAGE) Shell $(SubInf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(ErrorString) goto endbinding Endif
defportdone = +
Set NewValueList = {{DefaultPort,0,$(!REG_VT_SZ),$(DefaultPort)}} Shell $(UtilInf), AddValueList, $(ParmKey), $(NewValueList) set RegistryErrorIndex = $($R0) CloseRegKey $(ParmKey) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR goto fatalregistry EndIf goto endbinding
removeadapters = + Split-String *($(DefaultPort),4) "\" PortName ForListDo $(AtalkAdapterList) Ifcontains(i) $($) not-in $(NewBindList) DeleteRegKey $(AdapterKey) $($) Ifstr(i) $($) == *($(PortName),4) read-syms RemoveDefaultPort$(!STF_LANGUAGE) Shell $(SubInf) SetupMessage $(!STF_LANGUAGE) "FATAL" $(ErrorString) goto finddefaultport Endif EndIf EndForListDo
endbinding = + goto end
;=============================Bindings Section End========================= Removesfm = +
; Remove the SMAddons String in regnet.ini. This is done first, because ; we remove the util dll in "SfmRemoveFiles". If RemoveFiles failed, ; the SMAddons section will be restored to it's former shape.
Set FLibraryErrCtl = 1
Ifcontains(i) "AfpServer" in $(REMOVE_SOFTWARE)
Set IniFile = $(!STF_NTPATH)"\"$(NtNetIniFileName) Set IniSection = $(SrvMgrIniSection) Set Result = "" Set FLibraryErrCtl = 1 LibraryProcedure Result, $(!UTILHANDLE), WriteAfpMgrIniStrings, $(IniSection), NULL, $(IniFile) Set FLibraryErrCtl = 0 ifstr(i) $(Result) == "FAILED"
endif
; Remove the file manager addons also
Set IniFile = $(!STF_NTPATH)"\"$(WinFileIniFileName) Set IniSection = $(WinFileIniSection) Set FLibraryErrCtl = 1 LibraryProcedure Result, $(!UTILHANDLE), WriteAfpMgrIniStrings, $(IniSection), NULL, $(IniFile) Set FLibraryErrCtl = 0 ifstr(i) $(Result) == "FAILED"
endif
EndIf
read-syms StatusRemove1$(!STF_LANGUAGE) Shell $(SubInf) PushBillBoard NETSTATUSDLG $(Status)
Shell "" RemoveSfmFiles "REMOVE"
Shell $(SubInf) PopBillBoard
Ifstr(i) $($R0) != STATUS_SUCCESSFUL
; restore the Afp Server SMAddons
read-syms CantRemoveSfm$(!STF_LANGUAGE) Shell $(SubInf) SetupMessage $(!STF_LANGUAGE) "FATAL" $(ErrorString)
read-syms StatusRemove2$(!STF_LANGUAGE) Shell $(SubInf) PushBillBoard NETSTATUSDLG $(Status)
Ifcontains(i) "AfpServer" in $(REMOVE_SOFTWARE)
Set IniString = $(!STF_WINDOWSSYSPATH)"\"$(AfpMgrCplFile) Set IniFile = $(!STF_NTPATH)"\"$(NtNetIniFileName) Set IniSection = $(SrvMgrIniSection) Set FLibraryErrCtl = 1 LibraryProcedure Result, $(!UTILHANDLE), WriteAfpMgrIniStrings, + $(IniSection), $(IniString), $(IniFile) Set FLibraryErrCtl = 0 ifstr(i) $(Result) == "FAILED"
endif
; Restore the File Manager Addons too
Set IniString = $(!STF_WINDOWSSYSPATH)"\"$(AfpMgrCplFile) Set IniFile = $(!STF_NTPATH)"\"$(WinFileIniFileName) Set IniSection = $(WinFileIniSection) Set FLibraryErrCtl = 1 LibraryProcedure Result, $(!UTILHANDLE), WriteAfpMgrIniStrings, + $(IniSection), $(IniString), $(IniFile) Set FLibraryErrCtl = 0 ifstr(i) $(Result) == "FAILED"
endif
EndIf
Shell $(SubInf) PopBillBoard goto removeabort
EndIf
OpenRegKey $(!REG_H_LOCAL) "" $(!ProductKeyBase) $(!ACCESS) ProductKey
Ifstr $(ProductKey) == $(!KeyNull) set RegistryErrorIndex = UNABLE_ACCESS_CONFIGURE_SERVICE goto fatalregistry endif
DeleteRegTree $(ProductKey) $(ProductSFMName) CloseRegKey $(ProductKey)
ForListDo $(REMOVE_SOFTWARE) debug-output "Removing component: "$($) Shell $(UtilInf), RemoveSoftwareComponent, $(Manufacturer), $($) EndForListDo
ForListDo $(REMOVE_SERVICES) debug-output "Removing component service: "$($) Shell $(UtilInf), RemoveService, $($), "YES" EndForListDo
; Use Deletemonitor Api Ifcontains(i) "MACPRINT" in $(REMOVE_SOFTWARE)
Set DelMonStatus = "" Set FLibraryErrCtl = 1 LibraryProcedure DelMonStatus $(!UTILHANDLE) SfmDeletePrintMonitor Set FLibraryErrCtl = 0 ifstr(i) $(DelMonStatus) == "FAILED" read-syms MacPrintString7$(!STF_LANGUAGE) Shell $(SubInf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(ErrorString) EndIf
; Temporary Fix
OpenRegKey $(!REG_H_LOCAL) "" $(!PrintMonKeyName) $(!ACCESS) MonitorKey DeleteRegTree $(MonitorKey) "AppleTalk Printers"
; Delete EventLog entries for MacPrint and AppleTalk Monitors
OpenRegKey $(!REG_H_LOCAL) "" $(!EventLogKey) $(!ACCESS) LogKey
Ifstr(i) $(LogKey) == $(!KeyNull) Set RegistryErrorIndex = $($R0) goto fatalregistry EndIf
Set AtalkMonKey = "AppleTalk Print Monitor" DeleteRegTree $(LogKey) $(AtalkMonKey)
Set MacPrintKey = "MACPRINT" DeleteRegTree $(LogKey) $(MacPrintKey)
CloseRegKey $(!EventLogKey)
; Delete the PSPRINT Print Processor
Set DelStatus = "" Set FLibraryErrCtl = 1 LibraryProcedure DelStatus $(!UTILHANDLE) DeletePrintProc "\\"$(!STF_COMPUTERNAME) PSPRINT Set FLibraryErrCtl = 0 Ifstr(i) $(DelStatus) == FAILED read-syms MacPrintString5$(!STF_LANGUAGE) Shell $(SubInf) SetupMessage "NONFATAL" $(ErrorString) EndIf
EndIf
; Update WinSock Service to remove from Transport List Ifcontains(i) "AppleTalk" in $(REMOVE_SOFTWARE) Shell $(UtilInf) UpdateWinsockService "AppleTalk" FALSE EndIf
Ifstr(i) $($R0) != NO_ERROR read-syms AtalkString2$(!STF_LANGUAGE) Shell $(SubInf) SetupMessage "NONFATAL" $(ErrorString) EndIf
FreeLibrary $(!UTILHANDLE) Set FLibraryErrCtl = 1 LibraryProcedure Status, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)$(UtilDll) Set FLibraryErrCtl = 0
read-syms StatusRemoveDone$(!STF_LANGUAGE) Shell $(SubInf) SetupMessage $(!STF_LANGUAGE) "STATUS" $(Status)
goto end
removeabort = +
FreeLibrary $(!UTILHANDLE)
goto usercancel
Upgradesfm = +
ifstr(i) $(!ProductKeyName) == $(!NTN_RegBase)
OpenRegKey $(!REG_H_LOCAL) "" $(!ProductKeyName) $(!ACCESS) KeyProduct
Ifstr $(KeyProduct) != $(!KeyNull)
GetRegValue $(KeyProduct),"MajorVersion", VersionInfo set Version = *($(VersionInfo), 4) Split-String $(!NTN_Infname), "\", FilenameList QueryListSize ListSize $(FilenameList) set !UG_Filename = *($(FilenameList), $(ListSize))
install Install-Initial ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS goto fatal endif SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)} SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)} CloseRegKey $(KeyProduct) else Set RegistryErrorIndex = $($R0) goto fatalregistry endif endif
goto end
successful = +
Set Status = STATUS_SUCCESSFUL goto end
fatalregistry = + EndWait Shell $(UtilInf) RegistryErrorString $(RegistryErrorIndex) IfInt $(ShellCode) != 0 goto ShellCodeError EndIf set Error = $($R0) goto fatal
fatal = + Ifint $(BillboardVisible) != 0 Shell $(SubInf) PopBillboard Set BillboardVisible = 0 Endif read-syms MiscErrorString3$(!STF_LANGUAGE) Shell $(SubInf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(ThisOption):$(Error) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif goto failed
ShellCodeError = +
read-syms ShellingError$(!STF_LANGUAGE) Shell $(SubInf) SetupMessage $(!STF_LANGUAGE) "FATAL" $(ErrorString)
failed = + set CommonStatus = STATUS_FAILED ifstr(i) $(REMOVE_FLAG) == TRUE set REMOVE_FLAG = FALSE goto Removesfm endif goto end
setupabort = + read-syms SetupAbortDlg$(!STF_LANGUAGE) ui start "setupabort"
initialsetupcancel = +
Set CommonStatus = STATUS_USERCANCEL goto end
usercancel = +
Set CommonStatus = STATUS_USERCANCEL
end = +
Return $(CommonStatus)
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;------------------------------------------------------------- ; ROUTINE : Find MediaType ; DESCRIPTION : Gets the media type of the card ; RETURNS : R0: STATUS_SUCCESSFUL | STATUS_FAILED ; : R1: RegistryErrorIndex, if error, else media type ; ;------------------------------------------------------------
[FindMediaType]
Set Status = STATUS_FAILED
Set CardName = $(!NTN_ServiceBase)"\"$($0)"\Parameters"
OpenRegKey $(!REG_H_LOCAL) "" $(CardName) $(!ACCESS) CardKey
Ifstr(i) $(CardKey) == $(!KeyNull) Set RegistryErrorIndex = $($R0) Return $(Status) $(RegistryErrorIndex) EndIf
GetRegValue $(CardKey) "MediaType" MediaTypeList
Set MediaType = *($(MediaTypeList),4) Set Status = STATUS_SUCCESSFUL Return $(Status) $(MediaType)
;------------------------------------------------------------- ; ROUTINE : CreateAtalkConfig ; DESCRIPTION : Creates the registry entries for AppleTalk ; RETURNS : R0: STATUS_SUCCESSFUL | STATUS_FAILED ; : R1: RegistryErrorIndex ; ;------------------------------------------------------------
[CreateAtalkConfig] Set AdapterName = $($0) Set KeyAdapters = $($1) Set RetStatus = STATUS_SUCCESSFUL
read-syms GeneralConstants CreateRegKey $(KeyAdapters) {$(AdapterName), 0, GenericClass} "" $(!ACCESS) "", TempKeyAdapters
Shell "" FindMediaType $($0)
Ifstr(i) $($R0) == STATUS_SUCCESSFUL Set MediaType = $($R1) else Set RegistryErrorIndex = $($R1) Set RetStatus = $($R0) goto return EndIf set PortName = $($0)"@"$(!STF_COMPUTERNAME) set ZoneList = {""} IfInt $(MediaType) == 3 set NewValueList = {{"NetworkRangeUpperEnd",0,$(!REG_VT_DWORD),0 },+ {"NetworkRangeLowerEnd",0,$(!REG_VT_DWORD),0 },+ {"ZoneList",0,$(!REG_VT_MULTI_SZ),$(ZoneList)},+ {"SeedingNetwork", 0,$(!REG_VT_DWORD),0},+ {"DdpCheckSums", 0,$(!REG_VT_DWORD),0},+ {"PortName",0,$(!REG_VT_SZ),$(PortName)}} else set AarpRetries = 10 set DefaultZone = "" set NewValueList = {{"AarpRetries",0,$(!REG_VT_DWORD),$(AarpRetries)}, + {"DefaultZone", 0,$(!REG_VT_SZ),$(DefaultZone)},+ {"NetworkRangeUpperEnd",0,$(!REG_VT_DWORD),0 },+ {"NetworkRangeLowerEnd",0,$(!REG_VT_DWORD),0 },+ {"ZoneList",0,$(!REG_VT_MULTI_SZ),$(ZoneList)},+ {"SeedingNetwork", 0,$(!REG_VT_DWORD),0},+ {"DdpCheckSums", 0,$(!REG_VT_DWORD),0},+ {"PortName",0,$(!REG_VT_SZ),$(PortName)}} EndIf
Shell $(UtilInf),AddValueList, $(TempKeyAdapters), $(NewValueList)
set RegistryErrorIndex = $($R0) Ifstr $(RegistryErrorIndex) != NO_ERROR CloseRegKey $(TmpKeyAdapters) Set RetStatus = STATUS_FAILED EndIf
return = +
Return $(RetStatus) $(RegistryErrorIndex)
;------------------------------------------------------------------------- ; ; DO UAM INSTALL ; ;-------------------------------------------------------------------------
[DoUAMInstall]
Set Status = STATUS_FAILED Set Mode = $($0)
read-syms DialogConstants$(!STF_LANGUAGE)
read-syms VolList detect VolList
Set NTFSVolumeList = {}
; loop thru the volume list and find the first NTFS Volume
ForListDo $(VolumeFSList)
Ifstr(i) $($) == "NTFS"
Set NTFSExists = TRUE Set NTFSVolumeList = >($(NTFSVolumeList),*($(VolumeList),$(#)))
EndIf
EndForListDo
Ifstr(i) $(NTFSExists) != TRUE read-syms AFPString12$(!STF_LAMGUAGE) Shell $(SubInf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(ErrorString) goto enduam EndIf
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\AfpServer\Parameters\Volumes" $(!ACCESS) KeyVol
ifstr(i) $(KeyVol) == $(!KeyNull) read-syms AFPString11$(!STF_LAMGUAGE) Shell $(SubInf) SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(ErrorString) goto enduam endif
Ifstr(i) $(Mode) == "INSTALL" Set UAMDrive = *($(NTFSVolumeList),1) read-syms UAMVars$(!STF_LANGUAGE) goto uamuidone
Else-Ifstr(i) $(Mode) == "CONFIGURE" Set UAMDrive = *($(NTFSVolumeList),1) read-syms UAMVars$(!STF_LANGUAGE) Set EditTextIn = $(UAMPath) read-syms UAMVolCreateDlg$(!STF_LANGUAGE) EndIf
; display the uam ui
uamui = +
ui start "uaminstall" $(!SFMDLGHANDLE)
ifstr(i) $(DLGEVENT) == "CONTINUE" Set FLibraryErrCtl = 1 LibraryProcedure IsFullPath, $(!LIBHANDLE), CheckPathFullPathSpec $(EditTextOut) Set FLibraryErrCtl = 0 ifstr(i) $(IsFullPath) == "YES"
Split-String $(EditTextOut) ":" DriveLetter
Set NTFSDrive = *($(DriveLetter),1)":"
IfContains(i) $(NTFSDrive) not-in $(NTFSVolumeList)
read-syms AFPString10$(!STF_LANGUAGE) Shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "FATAL" $(ErrorString) goto uamui
Endif
Else
read-syms AFPString10$(!STF_LANGUAGE) Shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "FATAL" $(ErrorString) goto uamui
EndIf
ui pop 1 Set UAMPath = $(EditTextOut)
Else-ifstr(i) $(DLGEVENT) == "BACK" ui pop 1
EndIf
uamuidone = +
install "CreateUAMDir" Set Result = "" Set FLibraryErrCtl = 1 LibraryProcedure Result, $(!UTILHANDLE), CopyUamFiles, + $(!STF_CWDDIR)$(!UamResSrcFile), + $(UAMPath)"\"$(!AppleShareFolder)"\"$(!UamResDestFile) Set FLibraryErrCtl = 0 ifstr(i) $(Result) == "FAILED" read-syms UamFileNotCopied1$(!STF_LANGUAGE) Shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(ErrorString) Set Status = STATUS_USERCANCEL goto enduam EndIf
Set Result = "" Set FLibraryErrCtl = 1 LibraryProcedure Result, $(!UTILHANDLE), CopyUamFiles, $(!STF_CWDDIR)$(!UamInfoSrcFile) + $(UAMPath)"\"$(!AppleShareFolder)"\"$(!UamInfoDestFile) Set FLibraryErrCtl = 0 ifstr(i) $(Result) == "FAILED" read-syms UamFileNotCopied1$(!STF_LANGUAGE) Shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(ErrorString) Set Status = STATUS_USERCANCEL goto enduam EndIf
; copy the UAM Readme Set Result = "" Set FLibraryErrCtl = 1 LibraryProcedure Result, $(!UTILHANDLE), CopyUamFiles, $(!STF_CWDDIR)$(!UamReadMeSrcFile) + $(UAMPath)"\"$(!AppleShareFolder)"\"$(!UamReadMeDestFile) Set FLibraryErrCtl = 0 ifstr(i) $(Result) == "FAILED" read-syms UamFileNotCopied1$(!STF_LANGUAGE) Shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(ErrorString) Set Status = STATUS_USERCANCEL goto enduam EndIf
Set VolProperties = {"MAXUSES=25", "PROPERTIES=32768","PASSWORD="} Set VolProperties = >($(VolProperties),"PATH="$(UAMPath))
set NewValueList = {{$(!UAMVolumeName), 0, $(!REG_VT_MULTI_SZ),+ $(VolProperties)}}
Shell "utility.inf" AddValueList $(KeyVol) $(NewValueList)
set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR CloseRegKey $(KeyVol) Set Status = STATUS_FAILED goto enduam EndIf
Set Status = STATUS_SUCCESSFUL
enduam = +
Return $(Status) $(RegistryErrorIndex)
[RemoveSfmFiles]
Set Mode = $($0)
Set RemoveList = {} Set RenameList = {}
Set RemoveList = >($(RemoveList), #(Files-RemoveList, ATALKSYS, 1)) Set RemoveList = >($(RemoveList), #(Files-RemoveList, ATALKMSG, 1)) Set RemoveList = >($(RemoveList), #(Files-RemoveList, ATCONFIG, 1))
Set RemoveList = >($(RemoveList), #(Files-RemoveList, AFPSVCEXE, 1)) Set RemoveList = >($(RemoveList), #(Files-RemoveList, AFPSVCMSG, 1)) Set RenameList = >($(RenameList), #(Files-RemoveList, AFPSVCAPI, 1)) Set RenameList = >($(RenameList), #(Files-RemoveList, AFPSVCMGR, 1)) Set RemoveList = >($(RemoveList), #(Files-RemoveList, AFPSRVR, 1)) Set RemoveList = >($(RemoveList), #(Files-RemoveList, AFPICONS, 1)) Set RemoveList = >($(RemoveList), #(Files-RemoveList, AFPTYPECRTR, 1)) Set RemoveList = >($(RemoveList), #(Files-RemoveList, UAMRES, 1)) Set RemoveList = >($(RemoveList), #(Files-RemoveList, UAMINF, 1))
Set RemoveList = >($(RemoveList), #(Files-RemoveList, PSTODIB1, 1)) Set RemoveList = >($(RemoveList), #(Files-RemoveList, PSTODIB2, 1)) Set RenameList = >($(RenameList), #(Files-RemoveList, PSTODIB3, 1)) Set RemoveList = >($(RemoveList), #(Files-RemoveList, PSTODIB4, 1))
Set RemoveList = >($(RemoveList), #(Files-RemoveList, MACPRINT, 1)) Set RenameList = >($(RenameList), #(Files-RemoveList, ATALKMON, 1))
; Remove resource dll's and other dll's
Set RemoveList = >($(RemoveList), #(Files-RemoveList, SFMRESDLL, 1)) Set RemoveList = >($(RemoveList), #(Files-RemoveList, SFMSETUPINF, 1))
ForListDo $(RemoveList)
Set DelStatus = "" Debug-Output "Deleting File "$($) Set FLibraryErrCtl = 1
Ifstr(i) $(Mode) == "REMOVE" LibraryProcedure DelStatus $(!UTILHANDLE), DelFile $($) else LibraryProcedure DelStatus $(!LIBHANDLE), DelFile $($) EndIf Set FLibraryErrCtl = 0 Debug-Output "Del File Status = "$(DelStatus)
ifstr(i) $(DelStatus) == "FAILED" Ifstr(i) $(Mode) == "REMOVE" read-syms CantRemoveSfm$(!STF_LANGUAGE) Shell $(SubInf) SetupMessage $(!STF_LANGUAGE) "FATAL" $(ErrorString) Set Status = STATUS_FAILED goto endremove EndIf Endif
EndForListDo
ForListDo $(RenameList)
Ifstr(i) $(Mode) == "REMOVE" Debug-Output "File to remove on reboot = "$($) AddFileToDeleteList $($) else Set FLibraryErrCtl = 1 LibraryProcedure DelStatus $(!LIBHANDLE), DelFile $($) Set FLibraryErrCtl = 0 EndIf
EndForListDo
Set Status = STATUS_SUCCESSFUL
endremove = +
Return $(Status)
[SfmSetupHelpIds]
MinHelpID = 25000 MaxHelpID = 30000 InitialSfmId = 25000
HC_SFM_SFMCONFIGSEL = 25023 HC_SFM_SRVCFG = 25024 HC_SFM_UAMVOLCREATE = 25026
;----------------------------------------------------------------------------- ; ; Copy File /Install Sections ; ;-----------------------------------------------------------------------------
[Install-Initial]
set STF_VITAL = ""
AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-SFM $(SrcDir) $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-SFMDrivers $(SrcDir) $(!STF_WINDOWSSYSPATH)"\drivers" CopyFilesInCopyList
Exit
[Install-PSPrint] AddSectionFilesToCopyList Files-PRINTPROC $(!STF_CWDDIR) $(!PrintProcDir) CopyFilesInCopyList Exit
[CreateUAMDir]
CreateDir $(UAMPath) CreateDir $(UAMPath)"\"$(!AppleShareFolder)
Exit
[Source Media Descriptions] 1 = "Windows NT Advanced Server Setup Disk #1" , TAGFILE = sfmutil.dll 2 = "Windows NT Advanced Server Setup CD-ROM Disk" , TAGFILE = sfmutil.dll
[ProductType] STF_PRODUCT = LanmanNT STF_PLATFORM = I386
[Files-Inf] 2, oemsetup.inf, SIZE=75000, RENAME=oemnxpsm.inf, DECOMPRESS 2, sfmicons.inf, SIZE=2599, DECOMPRESS 2, sfmmap.inf, SIZE=2599, DECOMPRESS
[Files-SFM] 2, sfmres.dll, SIZE=10752, DECOMPRESS 2, sfmutil.dll, SIZE=9210, DECOMPRESS 2, sfmatmsg.dll, SIZE=55555, DECOMPRESS 2, sfmatcfg.dll, SIZE=72704, DECOMPRESS 2, sfmwshat.dll, SIZE=55555, DECOMPRESS 2, sfmsvc.exe, SIZE=141824, DECOMPRESS 2, sfmmsg.dll, SIZE=10752, DECOMPRESS 2, sfmapi.dll, SIZE=61440, DECOMPRESS 2, sfmmgr.dll, SIZE=126976, RENAME=sfmmgr.cpl, DECOMPRESS 2, sfmprint.exe, SIZE=76288, DECOMPRESS 2, sfmmon.dll, SIZE=47616, DECOMPRESS 2, sfmpsexe.exe, SIZE=55555, DECOMPRESS 2, sfmpsfnt.dll, SIZE=55555, DECOMPRESS 2, sfmpsprt.dll, SIZE=55555, DECOMPRESS 2, sfmpsdib.dll, SIZE=55555, DECOMPRESS 2. sfmuam.txt SIZE=55555, DECOMPRESS
[Files-SFMDrivers] 2, sfmatalk.sys, SIZE=436224, DECOMPRESS 2, sfmsrv.sys, SIZE=274432, DECOMPRESS
[Files-PRINTPROC] 2, sfmpsprt.dll, SIZE=55555, DECOMPRESS
[Files-RemoveList]
SFMSETUPINF = $(!STF_WINDOWSSYSPATH)\oemnxpsm.inf SFMRESDLL = $(!STF_WINDOWSSYSPATH)\sfmres.dll SFMUTILDLL = $(!STF_WINDOWSSYSPATH)\sfmutil.dll
ATALKSYS = $(!STF_WINDOWSSYSPATH)\drivers\sfmatalk.sys ATALKMSG = $(!STF_WINDOWSSYSPATH)\sfmatmsg.dll ATCONFIG = $(!STF_WINDOWSSYSPATH)\sfmatcfg.dll ATWINSOCK = $(!STF_WINDOWSSYSPATH)\sfmwshat.dll
AFPSVCEXE = $(!STF_WINDOWSSYSPATH)\sfmsvc.exe AFPSVCMSG = $(!STF_WINDOWSSYSPATH)\sfmmsg.dll AFPSVCAPI = $(!STF_WINDOWSSYSPATH)\sfmapi.dll AFPSVCMGR = $(!STF_WINDOWSSYSPATH)\sfmmgr.cpl
AFPSRVR = $(!STF_WINDOWSSYSPATH)\drivers\sfmsrv.sys AFPICONS = $(!STF_WINDOWSSYSPATH)\sfmicons.inf AFPTYPECRTR = $(!STF_WINDOWSSYSPATH)\sfmmap.inf UAMINF = $(!STF_WINDOWSSYSPATH)\sfmuam.ifo UAMRES = $(!STF_WINDOWSSYSPATH)\sfmuam.rs
MACPRINT = $(!STF_WINDOWSSYSPATH)\sfmprint.exe ATALKMON = $(!STF_WINDOWSSYSPATH)\sfmmon.dll
PSTODIB1 = $(!STF_WINDOWSSYSPATH)\sfmpsexe.exe PSTODIB2 = $(!STF_WINDOWSSYSPATH)\sfmpsfnt.dll PSTODIB3 = $(!STF_WINDOWSSYSPATH)\sfmpsprt.dll PSTODIB4 = $(!STF_WINDOWSSYSPATH)\sfmpsdib.dll
|