windows-nt/Source/XPSP1/NT/base/ntsetup/inf/beta/prnsetup.inf
2020-09-26 16:20:57 +08:00

248 lines
7.1 KiB
INI

;--------------
; PRINTER SETUP
;--------------
[PrintersUiVars]
;
PrinterINF = "printer.inf"
;
; Printer Installation
;
PRINTER_ATTRIBUTE_QUEUED = 1
PRINTER_ATTRIBUTE_QUEUEDDEFAULT = 5
;
; Printer lists..
;
; Each list member is a printer record:
; Field1: Printer Name
; Field2: Printer Port
; Field3: Printer Model
; Field4: Printer Description
; Field5: Print Processor
; Field6: Printer Attributes
;
PrintersToInstall = {}
;
;-----------------------------------------------------------------------
; ROUTINE: DoPrinterSetup
;
; DESCRIPTION: This routine lets the user setup a single printer
;
; INPUTS: None
;
; OUTPUTS: $R0: STATUS: STATUS_SUCCESSFUL |
; STATUS_USERCANCEL |
; STATUS_FAILED
;
; $R1: PrintersToConfigure
;
;------------------------------------------------------------------------
[DoPrinterSetup]
;
; Initialize
;
set Status = STATUS_FAILED
read-syms PrintersUiVars
read-syms Strings$(!STF_LANGUAGE)
set PrintersToInstall = {}
;
; Determine our INF options
;
set OurINFFile = "printer.inf"
shell "other.inf", GetOptionsFromINF $(!STF_LANGUAGE) "Printer" $(PrinterINF)
ifstr(i) $($R0) == STATUS_SUCCESSFUL
set PrinterList = $($R1)
set PrinterTextList = $($R2)
set $R1 = ""
set $R2 = ""
else
EndWait
shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "FATAL" $(String2)
StartWait
goto finish_printer
endif
printersetup=+
read-syms PrintersSetupDlg$(!STF_LANGUAGE)
EndWait
ui start PrinterSetup
ifstr(i) $(DLGEVENT) == "CONTINUE"
ifstr(i) $(EditTextOut) == ""
set ReInit = NO
shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String1)
goto printersetup
else
LibraryProcedure STATUS,$(!LIBHANDLE),AreCharsInString $(EditTextOut) ",\"
ifstr(i) $(STATUS) == YES
set ReInit = NO
shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String8)
goto printersetup
endif
endif
StartWait
set Name = $(EditTextOut)
set Port = $(Combo2Out)
set Model = *( $(PrinterList), ~( $(PrinterTextList), $(Combo1Out) ) )
set Description = $(Combo1Out)" "$(String3)" "$(Combo2Out)
set PrintProcessor = "winprint"
set PrinterAttribute = $(PRINTER_ATTRIBUTE_QUEUEDDEFAULT)
set Printer = { $(Name), +
$(Port), +
$(Model), +
$(Description), +
$(PrintProcessor), +
$(Attributes) +
}
set PrintersToInstall = >( $(PrintersToInstall), $(Printer) )
set Status = STATUS_SUCCESSFUL
ui pop 1
goto install_printers
else-ifstr(i) $(DLGEVENT) == "BACK"
ifstr(i) $(PrintersToInstall) == {}
shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "STATUS" $(String4)
set Status = STATUS_USERCANCEL
ui pop 1
goto finish_printer
endif
else-ifstr(i) $(DLGEVENT) == "EXIT"
shell "subroutn.inf" QueryUserQuit $(!STF_LANGUAGE)
ifstr(i) $($R1) == "OK"
set Status = STATUS_USERQUIT
ui pop 1
goto finish_printer
else
set ReInit = NO
goto printersetup
endif
else
ui pop 1
goto finish_printer
endif
install_printers = +
ForListDo $(PrintersToInstall)
set Model = *($($), 3)
shell "printer.inf" +
InstallOption +
$(!STF_LANGUAGE) +
$(Model) +
$(!STF_SRCDIR) +
YES +
NO +
NO +
{}
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "Failed to execute install routine in Printer.inf"
goto finish_printer
else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "Failed to install printer driver"$(Model)
goto finish_printer
endif
EndForListDo
set Status = STATUS_SUCCESSFUL
finish_printer = +
StartWait
Return $(Status) $(PrintersToInstall)
;-----------------------------------------------------------------------
; ROUTINE: DoPrinterConfigure
;
; DESCRIPTION: This routine lets the user configure printers
;
; INPUTS: $0: PrintersToConfigure
;
; OUTPUTS: $R0: STATUS: STATUS_SUCCESSFUL |
; STATUS_FAILED
;
;------------------------------------------------------------------------
[DoPrinterConfigure]
set Status = STATUS_SUCCESSFUL
read-syms Strings$(!STF_LANGUAGE)
ForListDo $($0)
;
; get printer particulars
;
set Name = *($($), 1)
set Port = *($($), 2)
set Model = *($($), 3)
set Description = *($($), 4)
set PrintProcessor = *($($), 5)
set Attribute = *($($), 6)
;
; First configure the printer model
;
shell "printer.inf" +
InstallOption +
$(!STF_LANGUAGE) +
$(Model) +
"" +
NO +
NO +
YES +
{}
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "Failed to execute install routine in Printer.inf"
goto finish_printerconfigure
else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
Debug-Output "Failed to configure printer driver"$(Model)
goto finish_printerconfigure
endif
;
; then configure the printer
;
LibraryProcedure STATUS,$(!LIBHANDLE), SetupAddPrinter +
$(Name), +
$(Port), +
$(Model), +
$(Description), +
$(PrintProcessor), +
$(Attribute), +
$(!STF_PRINTSERVER)
ifstr(i) $(STATUS) == "ERROR"
EndWait
shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String5)$(Name)$(String7)
StartWait
goto finish_printerconfigure
else-ifstr(i) $(STATUS) == "PRESENT"
EndWait
shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String5)$(Name)$(String6)
StartWait
endif
EndForListDo
set Status = STATUS_SUCCESSFUL
finish_printerconfigure = +
return $(Status)