/*
 * Copyright (c) 1999-2000 Eric Williams.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

#include <windef.h>
#include <winuser.h>
#include <dlgs.h>

#define CM_U_COLOR	105
#define CM_U_SAVE	104
#define CM_U_OPEN 	107
#define I_OFN_SHAREAWARE	116
#define I_OFN_SHOWHELP	117
#define I_OFN_ALLOWMULTISELECT	101
#define I_OFN_READONLY	115
#define I_OFN_PATHMUSTEXIST	114
#define I_OFN_OVERWRITEPROMPT	113
#define I_OFN_NOVALIDATE	112
#define I_OFN_NOTESTFILECREATE	111
#define I_OFN_NOREADONLYRETURN	110
#define I_OFN_NOCHANGEDIR	109
#define I_OFN_HIDEREADONLY	108
#define I_OFN_FILEMUSTEXIST	107
#define I_OFN_EXTENSIONDIFFERENT	106
#define I_OFN_ENABLETEMPLATEHANDLE	105
#define I_OFN_ENABLETEMPLATE	104
#define I_OFN_ENABLEHOOK	103
#define I_OFN_CREATEPROMPT	102
#define CM_H_USAGE	106
#define CM_H_ABOUT	103
#define CM_F_FILE	102
#define I_PD_SHOWHELP	121
#define I_PD_USEDEVMODECOPIES	122
#define I_PD_SELECTION	120
#define I_PD_RETURNIC	119
#define I_PD_RETURNDEFAULT	118
#define I_PD_RETURNDC	117
#define I_PD_PRINTTOFILE	116
#define I_PD_PRINTSETUP	115
#define I_PD_PAGENUMS	114
#define I_PD_NOWARNING	113
#define I_PD_NOSELECTION	112
#define I_PD_NOPAGENUMS	111
#define I_PD_HIDEPRINTTOFILE	110
#define I_PD_ENABLESETUPTEMPLATEHANDLE	109
#define I_PD_ENABLESETUPTEMPLATE	108
#define I_PD_ENABLESETUPHOOK	107
#define I_PD_ENABLEPRINTTEMPLATEHANDLE	106
#define I_PD_ENABLEPRINTTEMPLATE	105
#define I_PD_ENABLEPRINTHOOK	104
#define I_PD_DISABLEPRINTTOFILE	103
#define I_PD_COLLATE	102
#define I_PD_ALLPAGES	101

#define I_PSD_DEFAULTMINMARGINS		101
#define I_PSD_DISABLEMARGINS		102
#define I_PSD_DISABLEORIENTATION	103
#define I_PSD_DISABLEPAGEPAINTING	104
#define I_PSD_DISABLEPAPER		105
#define I_PSD_DISABLEPRINTER		106
#define I_PSD_ENABLEPAGEPAINTHOOK	107
#define I_PSD_ENABLEPAGESETUPHOOK	108
#define I_PSD_ENABLEPAGESETUPTEMPLATE	109
#define I_PSD_ENABLEPAGESETUPTEMPLATEHANDLE 110
#define I_PSD_INHUNDREDTHSOFMILLIMETERS	111	
#define I_PSD_INTHOUSANDTHSOFINCHES	112
#define I_PSD_INWININIINTLMEASURE	113
#define I_PSD_MARGINS			114
#define I_PSD_MINMARGINS		115
#define I_PSD_NONETWORKBUTTON		116
#define I_PSD_NOWARNING			117
#define I_PSD_RETURNDEFAULT		118
#define I_PSD_SHOWHELP			119

#define I_FR_SHOWHELP	116
#define I_FR_WHOLEWORD	117
#define I_FR_REPLACEALL	115
#define I_FR_REPLACE	114
#define I_FR_NOWHOLEWORD	113
#define I_FR_NOUPDOWN	112
#define I_FR_NOMATCHCASE	111
#define I_FR_MATCHCASE	110
#define I_FR_HIDEUPDOWN	109
#define I_FR_HIDEWHOLEWORD	108
#define I_FR_HIDEMATCHCASE	107
#define I_FR_FINDNEXT	106
#define I_FR_ENABLETEMPLATEHANDLE	105
#define I_FR_ENABLETEMPLATE	104
#define I_FR_ENABLEHOOK	103
#define I_FR_DOWN	102
#define I_FR_DIALOGTERM	101
#define CM_R_HELP              998

#define CM_U_EXIT              1000
#define CM_U_FONT              1002
#define CM_U_FIND              1003
#define CM_U_REPLACE           1004
#define CM_U_PSETUP            1008
#define CM_U_PRINT             1009
#define CM_U_PAGESETUP	       1010
#define CM_F_PRINT	          1100
#define CM_F_FINDREPLACE	    1101
#define CM_F_FONT	             1102
#define CM_F_COLOR	          1103
#define CM_F_PAGESETUP 		1104

#define I_CF_APPLY	               10
#define I_CF_ANSIONLY	            11
#define I_CF_BOTH	                  12
#define I_CF_TTONLY	               13
#define I_CF_EFFECTS	               14
#define I_CF_ENABLEHOOK	            15
#define I_CF_ENABLETEMPLATE	      16
#define I_CF_ENABLETEMPLATEHANDLE	17
#define I_CF_FIXEDPITCHONLY         18
#define I_CF_FORCEFONTEXIST         19
#define I_CF_INITTOLOGFONTSTRUCT    20
#define I_CF_LIMITSIZE	            21
#define I_CF_NOFACESEL	            22
#define I_CF_USESTYLE	            32
#define I_CF_WYSIWYG	               33
#define I_CF_SHOWHELP	            30
#define I_CF_SCREENFONTS	         31
#define I_CF_SCALABLEONLY           29
#define I_CF_PRINTERFONTS	         28
#define I_CF_NOVECTORFONTS	         27
#define I_CF_NOSTYLESEL             26
#define I_CF_NOSIZESEL	            25
#define I_CF_NOSIMULATIONS	         24
#define I_CF_NOOEMFONTS	            23

#define I_CC_RGBINIT	               15
#define I_CC_SHOWHELP	            16
#define I_CC_PREVENTFULLOPEN	      14
#define I_CC_FULLOPEN	            13
#define I_CC_ENABLETEMPLATEHANDLE	12
#define I_CC_ENABLETEMPLATE	      11
#define I_CC_ENABLEHOOK	            10
