Using the AdvancedSetUpDialog() Configuration Call
ID: Q90563
|
The information in this article applies to:
-
Microsoft Windows Device Development Kit (DDK) for Windows, version 3.1
SUMMARY
Windows printer drivers are expected to export the ExtDeviceMode()
function, which displays a configuration dialog box for the printer. This
dialog box generally prompts the user for characteristics of the printout,
such as orientation, paper size, and paper source. This box is displayed
whenever an application or DLL calls into the ExtDeviceMode() function; for
example, when the Configure button in the printer control panel application
is clicked.
However, with the introduction of the common dialog box DLL, this top-level
configuration dialog box has been generalized and is now being provided by
the print common dialog box. Thus, those applications that configure the
printer via the common print dialog box will raise a different top-level
configuration dialog box than those applications that call ExtDeviceMode()
directly for this purpose.
MORE INFORMATION
To still allow the user to configure driver-specific characteristics,
Windows version 3.1 printer drivers can export the AdvancedSetUpDialog()
procedure that, when invoked, raises another dialog box to prompt the user
for additional print configuration information. If the common print dialog
box detects the presence of this function in the driver, it activates a
button labeled Options that, when clicked, calls the AdvancedSetUpDialog()
function. The dialog box that is raised upon invocation of the
ExtDeviceMode() function, however, frequently has the same Options button
that, in turn, calls AdvancedSetUpDialog().
This approach bears the problem that a printer driver may want to know
whether the AdvancedSetUpDialog() function has been called from the Options
button of the common print dialog box or the top-level ExtDeviceMode()
configuration dialog box. For example, if the printer driver offers a
feature that is included in the ExtDeviceMode() dialog box, then this
feature should also be available in the AdvancedSetUpDialog() box in case
the top-level configuration box has been bypassed by the common print
dialog box; however, IF the advanced dialog box has been selected through
the ExtDeviceMode() dialog box, the feature should not be available in the
advanced dialog box to avoid redundancy.
To work around this problem, the dialog box procedure for the top-level
dialog box procedure should set a global flag that the advanced dialog box
can test upon to determine whether it has been called from the driver's top-
level configuration dialog box. In addition, the first parameter passed to
AdvancedSetUpDialog()--the window handle that serves as the parent for the
dialog box--can be used to determine where the AdvancedSetUpDialog()
function was called from.
Microsoft recommends that applications use the common print dialog box
wherever possible when setting up a printer, and that printer drivers do
not duplicate functionality in the AdvancedSetUpDialog() and
ExtDeviceMode() dialog boxes to prompt the user for printer-specific
characteristics.
REFERENCE
The AdvancedSetUpDialog() function is documented on pages 134-135 in the
Microsoft Windows version 3.1 "Device Driver Adaptation Guide."
Additional query words:
3.10
Keywords :
Version : :3.1
Platform :
Issue type :