PRINTDLG

This structure contains information the PrintDlg function uses to initialize the Print common dialog box. After a user closes the dialog box, the system uses this structure to return information about the user’s print option selections.

For Windows CE versions 2.10 and later, this structure has been replaced by the PAGESETUPDLG structure.

At a Glance

Header file: Commdlg.h
Windows CE versions: 2.0 and 2.01

Syntax

typedef struct tagPD {
DWORD
cbStruct;
HWND
hwndOwner;
HDC
hdc;
DWORD
dwFlags;
RECT
rcMinMargin;
RECT
rcMargin;
HINSTANCE
hinst;
LPARAM
lCustData;
LPPRINTHOOKPROC
pfnPrintHook;
LPCTSTR
pszPrintTemplateName;
HGLOBAL
hglbPrintTemplateResource;
} PRINTDLG , *LPPRINTDLG ;

Members

cbStruct

Specifies the structure size, in bytes.

hwndOwner

Handle to the window that owns the dialog box. This member can be any valid window handle, or it can be NULL if the dialog box has no owner.

hdc

When PrintDlg returns, hdc contains the handle to the device context of the printer.

dwFlags

Specifies a bitmask of flags used to initialize the Print common dialog box. When the dialog box returns, it sets these flags to indicate the user’s input. It can be a combination of the following flags:

Value Description
On input, this flag causes the All radio button to be selected when the dialog is created. On output, it indicates that the user selected the All radio button. PD_SELECTALLPAGES
On input, this flag causes the Selection radio button to be in the selected state when the dialog box is created. On output, it indicates that the user selected the Selection radio button. If this flag is not specified, the All radio button is selected by default. PD_SELECTSELECTION
Indicates the user selected the Draft mode check box. PD_SELECTDRAFTMODE
Indicates the user selected “A4” size paper. PD_SELECTA4
Indicates the user selected letter size paper. PD_SELECTLETTER
Indicates the user selected the infrared printer port. PD_SELECTINFRARED
Indicates the user selected the serial printer port. PD_SELECTSERIAL
Disables paper size selection. PD_DISABLEPAPERSIZE
Disables print range selection. PD_DISABLEPRINTRANGE
Disables margin selection. PD_DISABLEMARGINS
Disables page orientation selection. PD_DISABLEORIENTATION
Returns the device context (DC) of the default printer without displaying the dialog. PD_RETURNDEFAULTDC
Enables the hook procedure specified in the pfnPrintHook member. This enables the hook procedure for the Print dialog box. PD_ENABLEPRINTHOOK
Indicates that the hinst and pszPrintTemplateName members specify a dialog box template to use in place of the default template for the Print dialog box. PD_ENABLEPRINTTEMPLATE
Indicates that the hglbPrintTemplateResource member identifies a data block that contains a preloaded dialog box template. The system uses this template in place of the default template for the Print dialog box. The system ignores the pszPrintTemplateName member if this flag is specified. PD_ENABLEPRINTTEMPLATEHANDLE
On input, this flag specifies the Print dialog box should be initialized with Portrait orientation selected as the default. On output, this flag indicates that the user selected Portrait orientation. PD_SELECTPORTRAIT
On input, this flag specifies the Print dialog box should be initialized with Landscape orientation selected as the default. On output, this flag indicates the user selected Landscape orientation. PD_SELECTLANDSCAPE
On input, this flag specifies that the rcMargin member contains initial margin values. On output, it indicates that the rcMargin member contains user-specified margin values. PD_MARGINS
If this flag is not specified, the Print dialog box uses the default margins, which are 1 inch for the top and bottom margins and 1.25 inches for the left and right margins.  
Indicates the unit of measure in which margins are specified. If neither this flag nor the PD_INHUNDREDTHSOFMILLIMETERS flag is specified, the Print dialog box uses the LOCALE_IMEASURE setting in the locale table to determine whether to use the U.S. system of measurements or the metric system. PD_INTHOUSANDTHSOFINCHES
Indicates the unit of measure in which margins are specified. If neither this flag nor the PD_INHUNDREDTHSOFMILLIMETERS flag is specified, the Print dialog box uses the LOCALE_IMEASURE setting in the locale table to determine whether to use the U.S. system of measurements or the metric system. PD_INHUNDREDTHSOFMILLIMETERS
On input, this flag specifies that the rcMinMargin member contains initial minimum margin values. On output it indicates that the rcMinMargin member contains user-specified minimum margin values. If the value in the rcMinMargin member is zero on output, it means the user did not specify any minimum margin values. PD_MINMARGINS

rcMargin

Specifies the widths of the left, top, right, and bottom margins. If you set the PSD_MARGINS flag, rcMargin specifies the initial margin values. When PrintDlg returns, rcMargin contains the margin widths selected by the user. The PSD_INHUNDREDTHSOFMILLIMETERS or PSD_INTHOUSANDTHSOFINCHES flag indicates the units of measurement.

rcMinMargin

Specifies the minimum allowable widths for the left, top, right, and bottom margins. The system ignores this member if the PSD_MINMARGINS flag is not set. These values must be less than or equal to the values specified in the rcMargin member. The PSD_INTHOUSANDTHSOFINCHES or PSD_INHUNDREDTHSOFMILLIMETERS flag indicates the units of measurement.

hinst

Handle to the application or module instance that contains the dialog box template named by the pszPrintTemplateName member. This member is only valid if the PD_ENABLEPRINTTEMPLATE or PD_ENABLESETUPTEMPLATE flag is set in the dwFlags member.

lCustData

Specifies application-defined data that the system passes to the hook procedure identified by the pfnPrintHook member. When the system sends the WM_INITDIALOG message to the hook procedure, the message’s lParam parameter is a pointer to the PRINTDLG structure specified when the dialog was created. The hook procedure can use this pointer to get the lCustData value.

pfnPrintHook

Pointer to a PrintHookProc hook procedure that can process messages intended for the Print dialog box. This member is ignored unless the PD_ENABLEPRINTHOOK flag is set in the Flags member.

pszPrintTemplateName

Pointer to a null-terminated string that names a dialog box template resource in the module identified by the hinst member. This template is substituted for the standard Print dialog box template. This member is ignored unless the PD_ENABLEPRINTTEMPLATE flag is set in the Flags member.

hglbPrintTemplateResource

If the PD_ENABLEPRINTTEMPLATEHANDLE flag is set in the Flags member, hglbPrintTemplateResource is the handle to a memory object that contains a dialog box template. This template is substituted for the standard Print dialog box template.

Remarks

If the application does not specify the paper orientation, the Print dialog box reads the last paper orientation the user selected, which it saved to the registry. If there is no value in the registry, the dialog box selects portrait as the default. The dialog box also uses the last printer, port, and paper size the user selected. If these values are not in the registry, the dialog box selects the first printer, first port, and a paper size that is appropriate for the regional setting as the defaults.

See Also

PrintDlg, WM_INITDIALOG