home *** CD-ROM | disk | FTP | other *** search
- '******************************** WINCMDLG.INC ********************************
- 'Demonstrates: Sample Declare, Const, and Type structures for calling the
- ' common dialog routines in COMMDLG.DLL.
- '
- 'Required Files: COMMDLG.DLL
- '
- 'Uses:
- '
- 'Complexity Level: ADVANCED
- '
- 'Notes: WINDOWS.INC, WINGDI.INC, or WINKERN.INC should be included first
- ' if they are used in conjunction with WINCMDLG.INC.
- '
- '******************************************************************************
-
-
- '*----------------------------------------------------------------
- '* WINGDI pieces necessary
- '*----------------------------------------------------------------
- '$IFNDEF WinGDI-WinCmDlg_DECL
- '$DEFINE WinGDI-WinCmDlg_DECL
-
- ' Logical Font definitions from WINGDI.INC
- Const LF_FACESIZE = 32
- Type LOGFONT
- lfHeight As Integer
- lfWidth As Integer
- lfEscapement As Integer
- lfOrientation As Integer
- lfWeight As Integer
- lfItalic As String * 1
- lfUnderline As String * 1
- lfStrikeOut As String * 1
- lfCharSet As String * 1
- lfOutPrecision As String * 1
- lfClipPrecision As String * 1
- lfQuality As String * 1
- lfPitchAndFamily As String * 1
- lfFaceName As String * LF_FACESIZE
- End Type
- '$ENDIF
-
- '*----------------------------------------------------------------
- '* WINKern pieces necessary
- '*----------------------------------------------------------------
- '$IFNDEF WinKern-WinCmDlg_DECL
- '$DEFINE WinKern-WinCmDlg_DECL
- Const OF_EXIST = &H4000
- Const OF_SHARE_DENY_NONE = &H40
- '$ENDIF
-
- '*----------------------------------------------------------------
- '* WINUser pieces necessary
- '*----------------------------------------------------------------
- ' Private Window Messages Start Here:
- '$IFNDEF WinUser-WinCmDlg_DECL
- '$DEFINE WinUser-WinCmDlg_DECL
- Const WM_USER = &H400
- '$ENDIF
-
-
- '*---------------------------------------------------------------
- '* CDERR section
- '*---------------------------------------------------------------
- CONST CDERR_DIALOGFAILURE = &HFFFF
-
- CONST CDERR_GENERALCODES = &H0000
- CONST CDERR_STRUCTSIZE = &H0001
- CONST CDERR_INITIALIZATION = &H0002
- CONST CDERR_NOTEMPLATE = &H0003
- CONST CDERR_NOHINSTANCE = &H0004
- CONST CDERR_LOADSTRFAILURE = &H0005
- CONST CDERR_FINDRESFAILURE = &H0006
- CONST CDERR_LOADRESFAILURE = &H0007
- CONST CDERR_LOCKRESFAILURE = &H0008
- CONST CDERR_MEMALLOCFAILURE = &H0009
- CONST CDERR_MEMLOCKFAILURE = &H000A
- CONST CDERR_NOHOOK = &H000B
- CONST CDERR_REGISTERMSGFAIL = &H000C
-
- CONST PDERR_PRINTERCODES = &H1000
- CONST PDERR_SETUPFAILURE = &H1001
- CONST PDERR_PARSEFAILURE = &H1002
- CONST PDERR_RETDEFFAILURE = &H1003
- CONST PDERR_LOADDRVFAILURE = &H1004
- CONST PDERR_GETDEVMODEFAIL = &H1005
- CONST PDERR_INITFAILURE = &H1006
- CONST PDERR_NODEVICES = &H1007
- CONST PDERR_NODEFAULTPRN = &H1008
- CONST PDERR_DNDMMISMATCH = &H1009
- CONST PDERR_CREATEICFAILURE = &H100A
- CONST PDERR_PRINTERNOTFOUND = &H100B
-
- CONST CFERR_CHOOSEFONTCODES = &H2000
- CONST CFERR_NOFONTS = &H2001
-
- CONST FNERR_FILENAMECODES = &H3000
- CONST FNERR_SUBCLASSFAILURE = &H3001
- CONST FNERR_INVALIDFILENAME = &H3002
- CONST FNERR_BUFFERTOOSMALL = &H3003
-
- CONST FRERR_FINDREPLACECODES = &H4000
- CONST FRERR_BUFFERLENGTHZERO = &H4001
-
- CONST CCERR_CHOOSECOLORCODES = &H5000
-
-
-
-
- '*----------------------------------------------
- '* Commdlg Section
- '*----------------------------------------------
-
- '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- '! NOTE... If you change ANY of the following Constants, YOU MUST !
- '! Update the OFN_StructSize const to reflect the new size!
- '! of the tagOFN structure. Each is used to define the !
- '! length of a FIXED LEN string in the struct... !
- '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- CONST CMDLG_BufferSize = 4096
- CONST OFN_StructSize = 72
- CONST OFN_FileTitleSize = 13
- CONST OFN_TitleBarSize = 50
- CONST OFN_DefExtSize = 4
-
-
- TYPE tagOFN
- lStructSize AS LONG
- hwndOwner AS INTEGER
- hInstance AS INTEGER
- lpstrFilter AS POINTER TO STRING * CMDLG_BufferSize
- lpstrCustomFilter AS POINTER TO STRING * CMDLG_BufferSize
- nMaxCustFilter AS LONG
- nFilterIndex AS LONG
- lpstrFile AS POINTER TO STRING * CMDLG_BufferSize
- nMaxFile AS LONG
- lpstrFileTitle AS POINTER TO STRING * OFN_FileTitleSize
- nMaxFileTitle AS LONG
- lpstrInitialDir AS POINTER TO STRING * CMDLG_BufferSize
- lpstrTitle AS POINTER TO STRING * OFN_TitleBarSize
- Flags AS LONG
- nFileOffset AS INTEGER
- nFileExtension AS INTEGER
- lpstrDefExt AS POINTER TO STRING * OFN_DefExtSize
- lCustData AS LONG
-
- 'ALWAYS PASS NULL IN lpfnHook, since TestDRVR doesn't support CALLBACK YET
-
- lpfnHook AS POINTER TO INTEGER
- lpTemplateName AS POINTER TO STRING * CMDLG_BufferSize
- END TYPE
-
- Declare Function GetOpenFileName Lib "CommDlg.DLL" (LPOPENFILENAME AS tagOFN) As Integer
- Declare Function GetSaveFileName Lib "CommDlg.DLL" (LPOPENFILENAME AS tagOFN) As Integer
- Declare Function GetFileTitle Lib "CommDlg.DLL" (LPSTR1$, LPSTR2$, WORD%) As Integer
-
- CONST OFN_READONLY = &H00001
- CONST OFN_OVERWRITEPROMPT = &H00002
- CONST OFN_HIDEREADONLY = &H00004
- CONST OFN_NOCHANGEDIR = &H00008
- CONST OFN_SHOWHELP = &H00010
- CONST OFN_ENABLEHOOK = &H00020
- CONST OFN_ENABLETEMPLATE = &H00040
- CONST OFN_ENABLETEMPLATEHANDLE = &H00080
- CONST OFN_NOVALIDATE = &H00100
- CONST OFN_ALLOWMULTISELECT = &H00200
- CONST OFN_EXTENSIONDIFFERENT = &H00400
- CONST OFN_PATHMUSTEXIST = &H00800
- CONST OFN_FILEMUSTEXIST = &H01000
- CONST OFN_CREATEPROMPT = &H02000
- CONST OFN_SHAREAWARE = &H04000
- CONST OFN_NOREADONLYRETURN = &H08000
- CONST OFN_NOTESTFILECREATE = &H10000
-
- ' * Return values for the registered message sent to the hook function
- ' * when a sharing violation occurs. OFN_SHAREFALLTHROUGH allows the
- ' * filename to be accepted, OFN_SHARENOWARN rejects the name but puts
- ' * up no warning (returned when the app has already put up a warning
- ' * message), and OFN_SHAREWARN puts up the default warning message
- ' * for sharing violations.
- ' *
- ' * Note: Undefined return values map to OFN_SHAREWARN, but are
- ' * reserved for future use.
-
-
- CONST OFN_SHAREFALLTHROUGH = 2
- CONST OFN_SHARENOWARN = 1
- CONST OFN_SHAREWARN = 0
-
- '* Avoids sharing violations. Defined 21 Jan 1991 clarkc */
- CONST SHARE_EXIST = (OF_EXIST OR OF_SHARE_DENY_NONE)
-
- TYPE CHOOSECOLOR
- lStructSize AS LONG
- hwndOwner AS INTEGER
- hInstance AS INTEGER
- rgbResult AS LONG
- lpCustColors AS POINTER TO LONG
- Flags AS LONG
- lCustData AS LONG
- lpfnHook AS POINTER TO LONG
- lpTemplateName AS POINTER TO STRING * CMDLG_BufferSize
- END TYPE
-
- Declare Function ChooseColor Lib "CommDlg.DLL" (LPCHOOSECOLOR As ChooseColor) As Integer
-
- CONST CC_RGBINIT = &H00001
- CONST CC_FULLOPEN = &H00002
- CONST CC_PREVENTFULLOPEN = &H00004
- CONST CC_SHOWHELP = &H00008
- CONST CC_ENABLEHOOK = &H00010
- CONST CC_ENABLETEMPLATE = &H00020
- CONST CC_ENABLETEMPLATEHANDLE= &H00040
-
- TYPE FINDREPLACE
- lStructSize AS LONG '/* size of this struct = &H20 */
- hwndOwner AS INTEGER '/* handle to owner's window */
- hInstance AS INTEGER '/* instance handle of.EXE that contains cust. dlg. template
- Flags AS LONG '/* one or more of the FR_?? */
- lpstrFindWhat AS POINTER TO STRING * CMDLG_BufferSize '/* ptr. to search string */
- lpstrReplaceWith AS POINTER TO STRING * CMDLG_BufferSize '/* ptr. to replace string */
- wFindWhatLen AS INTEGER '/* size of find buffer */
- wReplaceWithLen AS INTEGER '/* size of replace buffer */
- lCustData AS LONG '/* data passed to hook fn. */
- lpfnHook AS POINTER TO LONG'/* ptr. to hook fn. or NULL */
- lpTemplateName AS POINTER TO STRING * CMDLG_BufferSize '/* custom template name */
- END TYPE
-
- CONST FR_DOWN = &H00001
- CONST FR_WHOLEWORD = &H00002
- CONST FR_MATCHCASE = &H00004
- CONST FR_FINDNEXT = &H00008
- CONST FR_REPLACE = &H00010
- CONST FR_REPLACEALL = &H00020
- CONST FR_DIALOGTERM = &H00040
- CONST FR_SHOWHELP = &H00080
- CONST FR_ENABLEHOOK = &H00100
- CONST FR_ENABLETEMPLATE = &H00200
- CONST FR_NOUPDOWN = &H00400
- CONST FR_NOMATCHCASE = &H00800
- CONST FR_NOWHOLEWORD = &H01000
- CONST FR_ENABLETEMPLATEHANDLE = &H02000
- CONST FR_HIDEUPDOWN = &H04000
- CONST FR_HIDEMATCHCASE = &H08000
- CONST FR_HIDEWHOLEWORD = &H10000
-
- Declare Function FindText Lib "CommDlg.DLL" (LPFINDREPLACE As FindReplace) AS Integer
- Declare Function ReplaceText Lib "CommDlg.DLL" (LPFINDREPLACE AS FindReplace) As Integer
-
- TYPE LPCHOOSEFONT
- lStructSize AS LONG
- hwndOwner AS INTEGER '/* caller's window handle */
- hDC AS INTEGER '/* printer DC/IC or NULL */
- LPLOGFONT AS POINTER TO LOGFONT '/* ptr. to a LOGFONT struct */
- iPointSize AS INTEGER '/* 10 * size in points of selected font */
- Flags AS LONG '/* enum. type flags */
- rgbColors AS LONG '/* returned text color */
- lCustData AS LONG '/* data passed to hook fn. */
- lpfnHook AS POINTER TO LONG '/* ptr. to hook function */
- lpTemplateName AS POINTER TO STRING * CMDLG_BufferSize '/* custom template name */
- hInstance AS INTEGER '/* instance handle of.EXE that contains cust. dlg. template
- lpszStyle AS POINTER TO STRING * CMDLG_BufferSize '/* return the style field here must be LF_FACESIZE or bigger */
- nFontType AS INTEGER '/* same value reported to the EnumFonts call back with the extra FONTTYPE_ bits added */
- nSizeMin AS INTEGER '/* minimum pt size allowed & */
- nSizeMax AS INTEGER '/* max pt size allowed if CF_LIMITSIZE is used */
- END TYPE
-
- Declare Function ChooseFont Lib "CommDlg.DLL" (FontStruct AS POINTER TO LPChooseFont) AS INTEGER
-
- CONST CF_SCREENFONTS = &H00001
- CONST CF_PRINTERFONTS = &H00002
- CONST CF_BOTH = (CF_SCREENFONTS OR CF_PRINTERFONTS)
- CONST CF_SHOWHELP = &H00004
- CONST CF_ENABLEHOOK = &H00008
- CONST CF_ENABLETEMPLATE = &H00010
- CONST CF_ENABLETEMPLATEHANDLE= &H00020
- CONST CF_INITTOLOGFONTSTRUCT = &H00040
- CONST CF_USESTYLE = &H00080
- CONST CF_EFFECTS = &H00100
- CONST CF_APPLY = &H00200
- CONST CF_ANSIONLY = &H00400
- CONST CF_NOVECTORFONTS = &H00800
- CONST CF_NOSIMULATIONS = &H01000
- CONST CF_LIMITSIZE = &H02000
- CONST CF_FIXEDPITCHONLY = &H04000
- CONST CF_WYSIWYG = &H08000 '/* must also have CF_SCREENFONTS & CF_PRINTERFONTS */
- CONST CF_FORCEFONTEXIST = &H10000
- CONST CF_SCALABLEONLY = &H20000
- CONST CF_TTONLY = &H40000
- CONST CF_NOFACESEL = &H80000
- CONST CF_NOSTYLESEL = &H00100000
- CONST CF_NOSIZESEL = &H00200000
-
- '/* these are extra nFontType bits that are added to what is returned to the
- ' * EnumFonts callback routine */
-
- CONST SIMULATED_FONTTYPE= &H8000
- CONST PRINTER_FONTTYPE = &H4000
- CONST SCREEN_FONTTYPE = &H2000
- CONST BOLD_FONTTYPE = &H0100
- CONST ITALIC_FONTTYPE = &H0200
- CONST REGULAR_FONTTYPE = &H0400
- CONST WM_CHOOSEFONT_GETLOGFONT = (WM_USER + 1)
-
-
- '/* strings used to obtain unique window message for communication
- ' * between dialog and caller
- CONST LBSELCHSTRING = "commdlg_LBSelChangedNotify"
- CONST SHAREVISTRING = "commdlg_ShareViolation"
- CONST FILEOKSTRING = "commdlg_FileNameOK"
- CONST COLOROKSTRING = "commdlg_ColorOK"
- CONST FINDMSGSTRING = "commdlg_FindReplace"
- CONST HELPMSGSTRING = "commdlg_help"
-
- '/* HIWORD values for lParam of commdlg_LBSelChangeNotify message */
- CONST CD_LBSELNOITEMS = -1
- CONST CD_LBSELCHANGE = 0
- CONST CD_LBSELSUB = 1
- CONST CD_LBSELADD = 2
-
-
- Type tagPD
- lStructSize As Long
- hwndOwner AS Integer
- hDevMode AS Integer
- hDevNames AS Integer
- hDC AS Integer
- Flags As Long
- nFromPage AS Integer
- nToPage As Integer
- nMinPage As Integer
- nMaxPage As Integer
- nCopies As Integer
- hInstance As Integer
- lCustData As Long
- lpfnPrintHook As Pointer to Long
- lpfnSetupHook AS Pointer to Long
- lpPrintTemplateName AS Pointer to String * CMDLG_BufferSize
- lpSetupTemplateName AS Pointer to String * CMDLG_BufferSize
- hPrintTemplate As Integer
- hSetupTemplate As Integer
- End Type
-
- Declare Function PrintDlg Lib "CommDlg.DLL" (LPPRINTDLG As tagPD) As Integer
-
- CONST PD_ALLPAGES = &H00000
- CONST PD_SELECTION = &H00000001
- CONST PD_PAGENUMS = &H00000002
- CONST PD_NOSELECTION = &H00000004
- CONST PD_NOPAGENUMS = &H00000008
- CONST PD_COLLATE = &H00000010
- CONST PD_PRINTTOFILE = &H00000020
- CONST PD_PRINTSETUP = &H00000040
- CONST PD_NOWARNING = &H00000080
- CONST PD_RETURNDC = &H00000100
- CONST PD_RETURNIC = &H00000200
- CONST PD_RETURNDEFAULT = &H00000400
- CONST PD_SHOWHELP = &H00000800
- CONST PD_ENABLEPRINTHOOK = &H00001000
- CONST PD_ENABLESETUPHOOK = &H00002000
- CONST PD_ENABLEPRINTTEMPLATE = &H00004000
- CONST PD_ENABLESETUPTEMPLATE = &H00008000
- CONST PD_ENABLEPRINTTEMPLATEHANDLE=&H0010000
- CONST PD_ENABLESETUPTEMPLATEHANDLE=&H00020000
- CONST PD_USEDEVMODECOPIES = &H00040000
- CONST PD_DISABLEPRINTTOFILE = &H00080000
- CONST PD_HIDEPRINTTOFILE = &H00100000
-
- TYPE tagDEVNAMES
- wDriverOffset As Integer
- wDeviceOffset As Integer
- wOutputOffset As Integer
- wDefault As Integer
- END TYPE
-
- CONST DN_DEFAULTPRN = &H0001
-
-
- Declare Function CommDlgExtendedError Lib "CommDlg.DLL" () As Long
-
-