Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2605 lines
77 KiB

;------------------------------------------------------------------------
; 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