README.TXT

Common Dialogs 


SUMMARY
=======

The CDTest sample demonstrates how to use the common dialog boxes provided
in the Win32 API. In addition to displaying each default dialog box, the
sample also allows you to modify the parameters passed to the functions to
create variations of the common dialog boxes.

MORE INFORMATION
================

The CDTest sample dialog box makes use of the following controls:

- The NULL structure check box.

If you check this box, CDTest sends a NULL value for the common dialog
box creation structure to the common dialog box function. The common
dialog box should fail at startup. The common dialog box function
should return FALSE and set the correct CommDlgExtendedError.

- The Preloaded Template check box(es)

If you check this box, CDTest preloads a custom template resource and
puts the value of the handle to the resource in the hInstance member of
the common dialog box structure. CDTest does not create a custom
template dialog box with this preloaded custom template unless you
also put the XXX_ENABLETEMPLATEHANDLE flag in the Flags box. For
example, to create a GetOpenFileName dialog box with a multiple
selection files list box and a preloaded custom dialog box template,
put the following in the Flags box:

OFN_ENABLETEMPLATEHANDLE | OFN_ALLOWMULTISELECT

Check the Preloaded Template box.

- The Reset button.

The Reset button sets all the values for the common dialog box creation
structure back to the default values.

- The Add and Clear buttons.

These buttons are used to edit arrays that might be needed in common
dialog box creation. The Clear button clears the whole array. The Add
button adds what you have typed into the edit control of the combo box
to the left of these buttons.

- The Multithread buttons.

These buttons create two threads and two dialog boxes.

There is no way to create a NULL pointer as a value to be used for one of
the dialog box elements that require a string pointer, such as the
lpstrFile element of the GetOpenFileName structure. If you leave this field
blank, CDTest will call GetOpenFileName with a valid pointer to a string
containing a NULL character as its first value.

Notes:

- ChooseFont dialog box.

When you open the ChooseFont dialog box, you see a list of flags and
fonts on the right of the vertical dividing line. These do not affect
the ChooseFont dialog box creation. These only exist to allow the user
to compare the fonts found by ChooseFont with a list of fonts found
independently of ChooseFont. The lists should be identical when the
same flags are used.

If you want printer fonts to be listed in the ChooseFont dialog box, you
have to mark the Printer radio button in the "HDC Type" group.

The ChooseFont dialog box is designed to give you a "No fonts found"
error if you don't include the CF_SCREENFONTS or CF_PRINTERFONTS flag
as part of the value in the Flags box.

- Open/Save dialog box.

If you want to create a custom template dialog box with the
OFN_ENABLETEMPLATE flag, you need to specify the name of the template
in the lpTemplateName structure field. The names are:

- opentemp1 (single selection files list box)
- opentemp2 (multiple selection files list box)

- Find/Replace dialog box.

If you want to create a custom template dialog box with the
FR_ENABLETEMPLATE flag, you need to specify the name of the template
in the lpTemplateName structure field. The names are:

- frtemp1 (find template)
- frtemp2 (replace template)