248 lines
7.1 KiB
INI
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)
|