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