Message protocol between the printer applications and other applications (referred to as the client from now on).
INTRO
The printer application manages printer selection and printing files in the
background (scheduled on nul events). The following message reasons are
described below.
Message_PrintFile &80140 Message_WillPrint &80141 Message_PrintSave &80142 Message_PrintBusy &80144Message_PrintTypeOdd &80145
DRAGGING FILE ICON FROM SAVE BOX OF CLIENT TO PRINTER ICON A client can cause the same effect without user intervention by issuing Message_PrintSave. Which is treated by the printer application in the same way as DataSave. Except that if the printer is busy the reply Message_PrintBusy is sent rather than putting up an error box. The printer application receives a DataSave message. In case the client can improve on the default print action the printer application issues the message Message_PrintFile recorded delivery. The parameter block has
12 reference number of original DataSave message
40 file type of data
44 zero terminated scrap filename
The client has 3 options
12 0
40 file type
44 zero terminated filename
If there is client that knows how to print this file type it should acknowledge with the message Message_PrintTypeKnown. The client can either print the file itself or put its output to <Printer$Temp> for the printer application to print in the background. If it uses <Printer$Temp> it should return the file type of the modified data in offset 40 of the message block.
If the broadcast is bounced the printer application will look at Alias$@PrintType_xxx and if this is unset ask for confirmation from the user.