Contents of the README.TXT file
Though the printer setup dialog box associated with each Windows 3.0
printer driver is normally accessed through the Windows Control
Panel, it is often convenient to allow users to modify printer
settings directly from Visual Basic applications and Turbo Pascal for
Windows For this reason, PSETUP.DLL was created.
Files included with PSETUP.DLL:
README.TXT - This documentation file.
PRSEL.MAK - Visual Basic makefile for the sample application.
PRSEL.BAS - Global variables, types & declarations for sample app.
PRSEL.FRM - Visual Basic form for printer select dialog box.
FORM1.FRM - Visual Basic form calling printer select dialog box.
PSETUP.PAS TPW Source code for PSETUP.DLL
PSETUP.DLL - DLL providing print setup interface.
PSETUP.DLL contains one function (CallPSetup()), called by a Visual
Basic application, that calls the ExtDeviceMode() function located in
all Windows 3.0 printer drivers. The CallPSetup() DLL function
brings up a dialog box displaying printer settings specific to each
printer, and allows the user to modify those settings, saving them to
an .INI file.
The function declaration for CallPSetup() will appear as: (NOTE: the
following declaration is broken into several lines for readability.
In the actual Visual Basic application, it should be on a single
Declare Function CallPSetup Lib "PSETUP.DLL" (ByVal hWnd%,
ByVal INI$) As Integer
hWnd% is the calling form's window handle. ie: Form1.hWnd.
Driv$ should be a variable-length string containing the print driver
filename ie: "HPPCL.DRV" Note: this can be obtained from the WIN.INI
file via the API calls GetProfileString() or
GetPrivateProfileString() and, since this is a filename, the .DRV
extension must be added to the end of the name.
Dev$ should be a variable-length string containing the device name of
the printer ie: "PCL / HP LaserJet" (Also available from the WIN.INI
Port$ should be a variable-length string containing the actual
printer port name for print driver to send output to ie: "LPT1:"
(Available from the WIN.INI file.)
INI$ should be a variable-length string set to the name of the .INI
file to be modified by CallPSetup(). (Should normally be set to
"WIN.INI". If though, your application has it's own .INI file
associated with it, INI$ should be set to the name of your custom
RETURNS: An integer value indicating the success of the CallPSetup()
function. If the OK button was pressed to exit the setup dialog box,
a value IDOK (1) will be returned. If the CANCEL button was pressed,
a value IDCANCEL (2) will be returned. If the dialog failed to open,
a value less than zero will be returned.
Using the sample application:
To use the sample application provided (PRSEL),Copy the files
to a directory on your hard disk and copy PSETUP.DLL to
your WINDOWS directory. Then, start up Visual Basic and open the
project PRSEL.MAK. From here, run the application (press F5). To
access the printer selection dialog, select Printer Setup... from the
application's file menu. This will display a dialog box containing a
list of available printer drivers (as found in the WIN.INI file) with
the current default printer highlighted. At this point, there are
* Select a printer via the listbox.
* Choose the Setup button to bring up the print setup dialog box for
the currently selected printer driver.
* Choose the Cancel button to abort any new printer selections and
return to the calling form. Note: any changes made from the print
setup dialog specific to each printer will be saved regardless of
whether Cancel or OK are pressed.
* Choose the OK button to save the new default printer to the WIN.INI
PSETUP.DLL is written in Turbo Pascal for Windows, and the source code is
provided in PSETUP.PAS. Advanced programmers can optionally modify and
rebuild PSETUP.DLL by using Turbo Pascal for Windows.