home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / d / d009_2 / 1.ddi / SAMPLES / WINAPI / WINCMDLG.IN$ / WINCMDLG.bin
Encoding:
Text File  |  1992-02-03  |  14.4 KB  |  381 lines

  1. '******************************** WINCMDLG.INC ********************************
  2. 'Demonstrates: Sample Declare, Const, and Type structures for calling the
  3. '              common dialog routines in COMMDLG.DLL.
  4. '
  5. 'Required Files: COMMDLG.DLL
  6. '
  7. 'Uses:
  8. '
  9. 'Complexity Level: ADVANCED
  10. '
  11. 'Notes: WINDOWS.INC, WINGDI.INC, or WINKERN.INC should be included first
  12. '       if they are used in conjunction with WINCMDLG.INC.
  13. '
  14. '******************************************************************************
  15.  
  16.  
  17. '*----------------------------------------------------------------
  18. '*   WINGDI pieces necessary
  19. '*----------------------------------------------------------------
  20.     '$IFNDEF WinGDI-WinCmDlg_DECL
  21.         '$DEFINE WinGDI-WinCmDlg_DECL
  22.  
  23.         '  Logical Font definitions from WINGDI.INC
  24.         Const LF_FACESIZE = 32
  25.         Type LOGFONT
  26.             lfHeight As Integer
  27.             lfWidth As Integer
  28.             lfEscapement As Integer
  29.             lfOrientation As Integer
  30.             lfWeight As Integer
  31.             lfItalic As String * 1
  32.             lfUnderline As String * 1
  33.             lfStrikeOut As String * 1
  34.             lfCharSet As String * 1
  35.             lfOutPrecision As String * 1
  36.             lfClipPrecision As String * 1
  37.             lfQuality As String * 1
  38.             lfPitchAndFamily As String * 1
  39.             lfFaceName As String * LF_FACESIZE
  40.         End Type
  41.     '$ENDIF
  42.  
  43. '*----------------------------------------------------------------
  44. '*   WINKern pieces necessary
  45. '*----------------------------------------------------------------
  46.     '$IFNDEF WinKern-WinCmDlg_DECL
  47.         '$DEFINE WinKern-WinCmDlg_DECL
  48.         Const OF_EXIST = &H4000
  49.         Const OF_SHARE_DENY_NONE = &H40
  50.     '$ENDIF
  51.  
  52. '*----------------------------------------------------------------
  53. '*   WINUser pieces necessary
  54. '*----------------------------------------------------------------
  55.     '  Private Window Messages Start Here:
  56.     '$IFNDEF WinUser-WinCmDlg_DECL
  57.         '$DEFINE WinUser-WinCmDlg_DECL
  58.         Const WM_USER = &H400
  59.     '$ENDIF
  60.  
  61.  
  62. '*---------------------------------------------------------------
  63. '*     CDERR section
  64. '*---------------------------------------------------------------
  65.     CONST CDERR_DIALOGFAILURE   = &HFFFF
  66.  
  67.     CONST CDERR_GENERALCODES     = &H0000
  68.     CONST CDERR_STRUCTSIZE       = &H0001
  69.     CONST CDERR_INITIALIZATION   = &H0002
  70.     CONST CDERR_NOTEMPLATE       = &H0003
  71.     CONST CDERR_NOHINSTANCE      = &H0004
  72.     CONST CDERR_LOADSTRFAILURE   = &H0005
  73.     CONST CDERR_FINDRESFAILURE   = &H0006
  74.     CONST CDERR_LOADRESFAILURE   = &H0007
  75.     CONST CDERR_LOCKRESFAILURE   = &H0008
  76.     CONST CDERR_MEMALLOCFAILURE  = &H0009
  77.     CONST CDERR_MEMLOCKFAILURE   = &H000A
  78.     CONST CDERR_NOHOOK           = &H000B
  79.     CONST CDERR_REGISTERMSGFAIL  = &H000C
  80.  
  81.     CONST PDERR_PRINTERCODES     = &H1000
  82.     CONST PDERR_SETUPFAILURE     = &H1001
  83.     CONST PDERR_PARSEFAILURE     = &H1002
  84.     CONST PDERR_RETDEFFAILURE    = &H1003
  85.     CONST PDERR_LOADDRVFAILURE   = &H1004
  86.     CONST PDERR_GETDEVMODEFAIL   = &H1005
  87.     CONST PDERR_INITFAILURE      = &H1006
  88.     CONST PDERR_NODEVICES        = &H1007
  89.     CONST PDERR_NODEFAULTPRN     = &H1008
  90.     CONST PDERR_DNDMMISMATCH     = &H1009
  91.     CONST PDERR_CREATEICFAILURE  = &H100A
  92.     CONST PDERR_PRINTERNOTFOUND  = &H100B
  93.  
  94.     CONST CFERR_CHOOSEFONTCODES  = &H2000
  95.     CONST CFERR_NOFONTS          = &H2001
  96.  
  97.     CONST FNERR_FILENAMECODES    = &H3000
  98.     CONST FNERR_SUBCLASSFAILURE  = &H3001
  99.     CONST FNERR_INVALIDFILENAME  = &H3002
  100.     CONST FNERR_BUFFERTOOSMALL   = &H3003
  101.  
  102.     CONST FRERR_FINDREPLACECODES = &H4000
  103.     CONST FRERR_BUFFERLENGTHZERO = &H4001
  104.  
  105.     CONST CCERR_CHOOSECOLORCODES = &H5000
  106.  
  107.  
  108.  
  109.  
  110. '*----------------------------------------------
  111. '*    Commdlg Section
  112. '*----------------------------------------------
  113.  
  114. '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  115. '! NOTE... If you change ANY of the following Constants, YOU MUST !
  116. '!         Update the OFN_StructSize const to reflect the new size!
  117. '!         of the tagOFN structure.  Each is used to define the   !
  118. '!         length of a FIXED LEN string in the struct...          !
  119. '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  120. CONST CMDLG_BufferSize = 4096
  121. CONST OFN_StructSize = 72
  122. CONST OFN_FileTitleSize = 13
  123. CONST OFN_TitleBarSize = 50
  124. CONST OFN_DefExtSize = 4
  125.  
  126.  
  127. TYPE tagOFN
  128.     lStructSize AS LONG
  129.     hwndOwner AS INTEGER
  130.     hInstance AS INTEGER
  131.     lpstrFilter AS POINTER TO STRING * CMDLG_BufferSize
  132.     lpstrCustomFilter AS POINTER TO STRING * CMDLG_BufferSize
  133.     nMaxCustFilter AS LONG
  134.     nFilterIndex AS LONG
  135.     lpstrFile AS POINTER TO STRING * CMDLG_BufferSize
  136.     nMaxFile AS LONG
  137.     lpstrFileTitle AS POINTER TO STRING * OFN_FileTitleSize
  138.     nMaxFileTitle AS LONG
  139.     lpstrInitialDir AS POINTER TO STRING * CMDLG_BufferSize
  140.     lpstrTitle AS POINTER TO STRING * OFN_TitleBarSize
  141.     Flags AS LONG
  142.     nFileOffset AS INTEGER
  143.     nFileExtension AS INTEGER
  144.     lpstrDefExt AS POINTER TO STRING * OFN_DefExtSize
  145.     lCustData AS LONG
  146.  
  147.     'ALWAYS PASS NULL IN lpfnHook, since TestDRVR doesn't support CALLBACK YET
  148.  
  149.     lpfnHook AS POINTER TO INTEGER
  150.     lpTemplateName AS POINTER TO STRING * CMDLG_BufferSize
  151. END TYPE
  152.  
  153. Declare Function GetOpenFileName Lib "CommDlg.DLL" (LPOPENFILENAME AS tagOFN) As Integer
  154. Declare Function GetSaveFileName Lib "CommDlg.DLL" (LPOPENFILENAME AS tagOFN) As Integer
  155. Declare Function GetFileTitle Lib "CommDlg.DLL" (LPSTR1$, LPSTR2$, WORD%) As Integer
  156.  
  157. CONST OFN_READONLY               = &H00001
  158. CONST OFN_OVERWRITEPROMPT        = &H00002
  159. CONST OFN_HIDEREADONLY           = &H00004
  160. CONST OFN_NOCHANGEDIR            = &H00008
  161. CONST OFN_SHOWHELP               = &H00010
  162. CONST OFN_ENABLEHOOK             = &H00020
  163. CONST OFN_ENABLETEMPLATE         = &H00040
  164. CONST OFN_ENABLETEMPLATEHANDLE   = &H00080
  165. CONST OFN_NOVALIDATE             = &H00100
  166. CONST OFN_ALLOWMULTISELECT       = &H00200
  167. CONST OFN_EXTENSIONDIFFERENT     = &H00400
  168. CONST OFN_PATHMUSTEXIST          = &H00800
  169. CONST OFN_FILEMUSTEXIST          = &H01000
  170. CONST OFN_CREATEPROMPT           = &H02000
  171. CONST OFN_SHAREAWARE             = &H04000
  172. CONST OFN_NOREADONLYRETURN       = &H08000
  173. CONST OFN_NOTESTFILECREATE       = &H10000
  174.  
  175. ' * Return values for the registered message sent to the hook function
  176. ' * when a sharing violation occurs.  OFN_SHAREFALLTHROUGH allows the
  177. ' * filename to be accepted, OFN_SHARENOWARN rejects the name but puts
  178. ' * up no warning (returned when the app has already put up a warning
  179. ' * message), and OFN_SHAREWARN puts up the default warning message
  180. ' * for sharing violations.
  181. ' *
  182. ' * Note:  Undefined return values map to OFN_SHAREWARN, but are
  183. ' *        reserved for future use.
  184.  
  185.  
  186. CONST OFN_SHAREFALLTHROUGH    = 2
  187. CONST OFN_SHARENOWARN         = 1
  188. CONST OFN_SHAREWARN           = 0
  189.  
  190. '* Avoids sharing violations.  Defined 21 Jan 1991   clarkc */
  191. CONST SHARE_EXIST             = (OF_EXIST OR OF_SHARE_DENY_NONE)
  192.  
  193. TYPE CHOOSECOLOR
  194.     lStructSize AS LONG
  195.     hwndOwner AS INTEGER
  196.     hInstance AS INTEGER
  197.     rgbResult AS LONG
  198.     lpCustColors AS POINTER TO LONG
  199.     Flags AS LONG
  200.     lCustData AS LONG
  201.     lpfnHook AS POINTER TO LONG
  202.     lpTemplateName AS POINTER TO STRING * CMDLG_BufferSize
  203. END TYPE
  204.  
  205. Declare Function ChooseColor Lib "CommDlg.DLL" (LPCHOOSECOLOR As ChooseColor) As Integer
  206.  
  207. CONST CC_RGBINIT             = &H00001
  208. CONST CC_FULLOPEN            = &H00002
  209. CONST CC_PREVENTFULLOPEN     = &H00004
  210. CONST CC_SHOWHELP            = &H00008
  211. CONST CC_ENABLEHOOK          = &H00010
  212. CONST CC_ENABLETEMPLATE      = &H00020
  213. CONST CC_ENABLETEMPLATEHANDLE= &H00040
  214.  
  215. TYPE FINDREPLACE
  216.     lStructSize AS LONG        '/* size of this struct = &H20 */
  217.     hwndOwner AS INTEGER       '/* handle to owner's window */
  218.     hInstance AS INTEGER       '/* instance handle of.EXE that contains cust. dlg. template
  219.     Flags AS LONG              '/* one or more of the FR_?? */
  220.     lpstrFindWhat AS POINTER TO STRING * CMDLG_BufferSize    '/* ptr. to search string    */
  221.     lpstrReplaceWith AS POINTER TO STRING * CMDLG_BufferSize '/* ptr. to replace string   */
  222.     wFindWhatLen AS INTEGER    '/* size of find buffer      */
  223.     wReplaceWithLen AS INTEGER '/* size of replace buffer   */
  224.     lCustData AS LONG          '/* data passed to hook fn.  */
  225.     lpfnHook AS POINTER TO LONG'/* ptr. to hook fn. or NULL */
  226.     lpTemplateName AS POINTER TO STRING * CMDLG_BufferSize '/* custom template name     */
  227. END TYPE
  228.  
  229. CONST FR_DOWN           = &H00001
  230. CONST FR_WHOLEWORD      = &H00002
  231. CONST FR_MATCHCASE      = &H00004
  232. CONST FR_FINDNEXT       = &H00008
  233. CONST FR_REPLACE        = &H00010
  234. CONST FR_REPLACEALL     = &H00020
  235. CONST FR_DIALOGTERM     = &H00040
  236. CONST FR_SHOWHELP       = &H00080
  237. CONST FR_ENABLEHOOK     = &H00100
  238. CONST FR_ENABLETEMPLATE = &H00200
  239. CONST FR_NOUPDOWN       = &H00400
  240. CONST FR_NOMATCHCASE    = &H00800
  241. CONST FR_NOWHOLEWORD    = &H01000
  242. CONST FR_ENABLETEMPLATEHANDLE   = &H02000
  243. CONST FR_HIDEUPDOWN     = &H04000
  244. CONST FR_HIDEMATCHCASE  = &H08000
  245. CONST FR_HIDEWHOLEWORD  = &H10000
  246.  
  247. Declare Function FindText Lib "CommDlg.DLL" (LPFINDREPLACE As FindReplace) AS Integer
  248. Declare Function ReplaceText Lib "CommDlg.DLL" (LPFINDREPLACE AS FindReplace) As Integer
  249.  
  250. TYPE LPCHOOSEFONT
  251.     lStructSize AS LONG
  252.     hwndOwner AS INTEGER                '/* caller's window handle   */
  253.     hDC AS INTEGER                      '/* printer DC/IC or NULL    */
  254.     LPLOGFONT AS POINTER TO LOGFONT     '/* ptr. to a LOGFONT struct */
  255.     iPointSize AS INTEGER               '/* 10 * size in points of selected font */
  256.     Flags AS LONG                       '/* enum. type flags     */
  257.     rgbColors AS LONG                   '/* returned text color      */
  258.     lCustData AS LONG                   '/* data passed to hook fn.  */
  259.     lpfnHook AS POINTER TO LONG         '/* ptr. to hook function    */
  260.     lpTemplateName AS POINTER TO STRING * CMDLG_BufferSize '/* custom template name     */
  261.     hInstance AS INTEGER                '/* instance handle of.EXE that contains cust. dlg. template
  262.     lpszStyle AS POINTER TO STRING * CMDLG_BufferSize  '/* return the style field here must be LF_FACESIZE or bigger */
  263.     nFontType AS INTEGER                '/* same value reported to the EnumFonts call back with the extra FONTTYPE_ bits added */
  264.     nSizeMin AS INTEGER                 '/* minimum pt size allowed & */
  265.     nSizeMax AS INTEGER                 '/* max pt size allowed if CF_LIMITSIZE is used      */
  266. END TYPE
  267.  
  268. Declare Function ChooseFont Lib "CommDlg.DLL" (FontStruct AS POINTER TO LPChooseFont) AS INTEGER
  269.  
  270. CONST CF_SCREENFONTS         = &H00001
  271. CONST CF_PRINTERFONTS        = &H00002
  272. CONST CF_BOTH                = (CF_SCREENFONTS OR CF_PRINTERFONTS)
  273. CONST CF_SHOWHELP            = &H00004
  274. CONST CF_ENABLEHOOK          = &H00008
  275. CONST CF_ENABLETEMPLATE      = &H00010
  276. CONST CF_ENABLETEMPLATEHANDLE= &H00020
  277. CONST CF_INITTOLOGFONTSTRUCT = &H00040
  278. CONST CF_USESTYLE            = &H00080
  279. CONST CF_EFFECTS             = &H00100
  280. CONST CF_APPLY               = &H00200
  281. CONST CF_ANSIONLY            = &H00400
  282. CONST CF_NOVECTORFONTS       = &H00800
  283. CONST CF_NOSIMULATIONS       = &H01000
  284. CONST CF_LIMITSIZE           = &H02000
  285. CONST CF_FIXEDPITCHONLY      = &H04000
  286. CONST CF_WYSIWYG             = &H08000  '/* must also have CF_SCREENFONTS & CF_PRINTERFONTS */
  287. CONST CF_FORCEFONTEXIST      = &H10000
  288. CONST CF_SCALABLEONLY        = &H20000
  289. CONST CF_TTONLY              = &H40000
  290. CONST CF_NOFACESEL           = &H80000
  291. CONST CF_NOSTYLESEL          = &H00100000
  292. CONST CF_NOSIZESEL           = &H00200000
  293.  
  294. '/* these are extra nFontType bits that are added to what is returned to the
  295. ' * EnumFonts callback routine */
  296.  
  297. CONST SIMULATED_FONTTYPE= &H8000
  298. CONST PRINTER_FONTTYPE  = &H4000
  299. CONST SCREEN_FONTTYPE   = &H2000
  300. CONST BOLD_FONTTYPE     = &H0100
  301. CONST ITALIC_FONTTYPE   = &H0200
  302. CONST REGULAR_FONTTYPE  = &H0400
  303. CONST WM_CHOOSEFONT_GETLOGFONT = (WM_USER + 1)
  304.  
  305.  
  306. '/* strings used to obtain unique window message for communication
  307. ' * between dialog and caller
  308. CONST LBSELCHSTRING = "commdlg_LBSelChangedNotify"
  309. CONST SHAREVISTRING = "commdlg_ShareViolation"
  310. CONST FILEOKSTRING  = "commdlg_FileNameOK"
  311. CONST COLOROKSTRING = "commdlg_ColorOK"
  312. CONST FINDMSGSTRING = "commdlg_FindReplace"
  313. CONST HELPMSGSTRING = "commdlg_help"
  314.  
  315. '/* HIWORD values for lParam of commdlg_LBSelChangeNotify message */
  316. CONST CD_LBSELNOITEMS = -1
  317. CONST CD_LBSELCHANGE  = 0
  318. CONST CD_LBSELSUB     = 1
  319. CONST CD_LBSELADD     = 2
  320.  
  321.  
  322. Type tagPD
  323.     lStructSize As Long
  324.     hwndOwner AS Integer
  325.     hDevMode AS Integer
  326.     hDevNames AS Integer
  327.     hDC AS Integer
  328.     Flags As Long
  329.     nFromPage AS Integer
  330.     nToPage As Integer
  331.     nMinPage As Integer
  332.     nMaxPage As Integer
  333.     nCopies As Integer
  334.     hInstance As Integer
  335.     lCustData As Long
  336.     lpfnPrintHook As Pointer to Long
  337.     lpfnSetupHook AS Pointer to Long
  338.     lpPrintTemplateName AS Pointer to String * CMDLG_BufferSize
  339.     lpSetupTemplateName AS Pointer to String * CMDLG_BufferSize
  340.     hPrintTemplate As Integer
  341.     hSetupTemplate As Integer
  342. End Type
  343.  
  344. Declare Function PrintDlg Lib "CommDlg.DLL" (LPPRINTDLG As tagPD) As Integer
  345.  
  346. CONST PD_ALLPAGES                = &H00000
  347. CONST PD_SELECTION               = &H00000001
  348. CONST PD_PAGENUMS                = &H00000002
  349. CONST PD_NOSELECTION             = &H00000004
  350. CONST PD_NOPAGENUMS              = &H00000008
  351. CONST PD_COLLATE                 = &H00000010
  352. CONST PD_PRINTTOFILE             = &H00000020
  353. CONST PD_PRINTSETUP              = &H00000040
  354. CONST PD_NOWARNING               = &H00000080
  355. CONST PD_RETURNDC                = &H00000100
  356. CONST PD_RETURNIC                = &H00000200
  357. CONST PD_RETURNDEFAULT           = &H00000400
  358. CONST PD_SHOWHELP                = &H00000800
  359. CONST PD_ENABLEPRINTHOOK         = &H00001000
  360. CONST PD_ENABLESETUPHOOK         = &H00002000
  361. CONST PD_ENABLEPRINTTEMPLATE     = &H00004000
  362. CONST PD_ENABLESETUPTEMPLATE     = &H00008000
  363. CONST PD_ENABLEPRINTTEMPLATEHANDLE=&H0010000
  364. CONST PD_ENABLESETUPTEMPLATEHANDLE=&H00020000
  365. CONST PD_USEDEVMODECOPIES        = &H00040000
  366. CONST PD_DISABLEPRINTTOFILE      = &H00080000
  367. CONST PD_HIDEPRINTTOFILE         = &H00100000
  368.  
  369. TYPE tagDEVNAMES
  370.     wDriverOffset As Integer
  371.     wDeviceOffset As Integer
  372.     wOutputOffset As Integer
  373.     wDefault As Integer
  374. END TYPE
  375.  
  376. CONST DN_DEFAULTPRN    = &H0001
  377.  
  378.  
  379. Declare Function CommDlgExtendedError Lib "CommDlg.DLL" () As Long
  380.  
  381.