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