home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / header45.zip / pmstddlg.h < prev    next >
C/C++ Source or Header  |  1999-04-30  |  118KB  |  2,216 lines

  1. /****************************** Module Header ******************************\
  2. *
  3. * Module Name: PMSTDDLG.H
  4. *
  5. * OS/2 Presentation Manager CUA controls and dialogs declarations
  6. *
  7. * Copyright (c) International Business Machines Corporation 1981, 1988-1992
  8. *
  9. * ===========================================================================
  10. *
  11. * The folowing symbols are used in this file for conditional sections.
  12. *
  13. *   #define:                To include:
  14. *
  15. *   INCL_WINSTDDLGS         include all dialogs/controls
  16. *   INCL_WINSTDBOOK         book control class
  17. *   INCL_WINSTDCNR          container control class
  18. *   INCL_WINSTDDRAG         standard drag dll
  19. *   INCL_WINSTDFILE         standard file dialog
  20. *   INCL_WINSTDFONT         standard font dialog
  21. *   INCL_WINSTDSLIDER       slider control class
  22. *   INCL_WINCIRCULARSLIDER  circular slider control class
  23. *   INCL_WINSTDSPIN         spin button control class
  24. *   INCL_WINSTDVALSET       value set control class
  25. *
  26. * ===========================================================================
  27. *
  28. * Comments at the end of each typedef line give the name tags used in
  29. * the assembler include version of this file.
  30. *
  31. * The assembler include version of this file excludes lines between NOINC
  32. * and INC comments.
  33. *
  34. \***************************************************************************/
  35.  
  36. /* NOINC */
  37. #if __IBMC__ || __IBMCPP__
  38.    #pragma info( none )
  39.    #ifndef __CHKHDR__
  40.       #pragma info( none )
  41.    #endif
  42.    #pragma info( restore )
  43. #endif
  44. #ifdef __cplusplus
  45.       extern "C" {
  46. #endif
  47. /* INC */
  48.  
  49. #define STDDLG_INCLUDED
  50.  
  51.  
  52. #ifdef INCL_WINSTDDLGS /* enable everything */
  53.    #define INCL_WINSTDFILE
  54.    #define INCL_WINSTDFONT
  55.    #define INCL_WINSTDSPIN
  56.    #define INCL_WINSTDDRAG
  57.    #define INCL_WINSTDCNR
  58.    #define INCL_WINSTDSLIDER
  59.    #define INCL_WINCIRCULARSLIDER
  60.    #define INCL_WINSTDVALSET
  61.    #define INCL_WINSTDBOOK
  62. #endif /* INCL_WINSTDDLGS */
  63.  
  64. #if (defined (INCL_WINSTDCNR) || defined (INCL_WINSTDVALSET))
  65.    #define INCL_WINSTDDRAG
  66. #endif /* INCL_WINSTDCNR || INCL_WINSTDVALSET */
  67.  
  68. #if !(defined (INCL_WINSTDFILE_INCLUDED) || !defined (INCL_WINSTDFILE))
  69.    #define INCL_WINSTDFILE_INCLUDED
  70.    /**********************************************************************/
  71.    /*                                                                    */
  72.    /*                     F I L E    D I A L O G                         */
  73.    /*                                                                    */
  74.    /**********************************************************************/
  75.    
  76.    /*--------------------------------------------------------------------*/
  77.    /* File Dialog Invocation Flag Definitions.                           */
  78.    /*--------------------------------------------------------------------*/
  79.    #define FDS_CENTER           0x00000001L /* Center within owner wnd   */
  80.    #define FDS_CUSTOM           0x00000002L /* Use custom user template  */
  81.    #define FDS_FILTERUNION      0x00000004L /* Use union of filters      */
  82.    #define FDS_HELPBUTTON       0x00000008L /* Display Help button       */
  83.    #define FDS_APPLYBUTTON      0x00000010L /* Display Apply button      */
  84.    #define FDS_PRELOAD_VOLINFO  0x00000020L /* Preload volume info       */
  85.    #define FDS_MODELESS         0x00000040L /* Make dialog modeless      */
  86.    #define FDS_INCLUDE_EAS      0x00000080L /* Always load EA info       */
  87.    #define FDS_OPEN_DIALOG      0x00000100L /* Select Open dialog        */
  88.    #define FDS_SAVEAS_DIALOG    0x00000200L /* Select SaveAs dialog      */
  89.    #define FDS_MULTIPLESEL      0x00000400L /* Enable multiple selection */
  90.    #define FDS_ENABLEFILELB     0x00000800L /* Enable SaveAs Listbox     */
  91.    #define FDS_NATIONAL_LANGUAGE 0x80000000L/* Reserved for bidirectional*/
  92.    /* language support.         */
  93.    
  94.    /*--------------------------------------------------------------------*/
  95.    /* File Dialog Selection returned attribute                           */
  96.    /*--------------------------------------------------------------------*/
  97.    #define  FDS_EFSELECTION    0
  98.    #define  FDS_LBSELECTION    1
  99.    
  100.    /*--------------------------------------------------------------------*/
  101.    /* Error Return Codes from dialog (self defining)                     */
  102.    /*--------------------------------------------------------------------*/
  103.    #define  FDS_SUCCESSFUL                            0
  104.    #define  FDS_ERR_DEALLOCATE_MEMORY                 1
  105.    #define  FDS_ERR_FILTER_TRUNC                      2
  106.    #define  FDS_ERR_INVALID_DIALOG                    3
  107.    #define  FDS_ERR_INVALID_DRIVE                     4
  108.    #define  FDS_ERR_INVALID_FILTER                    5
  109.    #define  FDS_ERR_INVALID_PATHFILE                  6
  110.    #define  FDS_ERR_OUT_OF_MEMORY                     7
  111.    #define  FDS_ERR_PATH_TOO_LONG                     8
  112.    #define  FDS_ERR_TOO_MANY_FILE_TYPES               9
  113.    #define  FDS_ERR_INVALID_VERSION                   10
  114.    #define  FDS_ERR_INVALID_CUSTOM_HANDLE             11
  115.    #define  FDS_ERR_DIALOG_LOAD_ERROR                 12
  116.    #define  FDS_ERR_DRIVE_ERROR                       13
  117.    
  118.    /*--------------------------------------------------------------------*/
  119.    /* File Dialog Messages.                                              */
  120.    /*--------------------------------------------------------------------*/
  121.    #define FDM_FILTER       WM_USER+40  /* mp1 = PSZ pszFileName         */
  122.    /*                                      mp2 = PSZ EA .TYPE value      */
  123.    /*                                      mr  = TRUE -> keep file.      */
  124.    #define FDM_VALIDATE     WM_USER+41  /* mp1 = PSZ pszPathName         */
  125.    /*                                      mp2 = USHORT Field name id    */
  126.    /*                                      mr  = TRUE -> Valid name      */
  127.    #define FDM_ERROR        WM_USER+42  /* mp1 = USHORT Error message id */
  128.    /*                                      mp2 = NULL   reserved         */
  129.    /*                                      mr  = NULL -> Use default msg */
  130.    
  131.    /*--------------------------------------------------------------------*/
  132.    /* Define the type that is a pointer to an array of pointers.         */
  133.    /*     Hence: pointer to an array of Z string pointers.               */
  134.    /*--------------------------------------------------------------------*/
  135.    typedef  PSZ       APSZ[1];
  136.    typedef  APSZ *PAPSZ;          /* papsz */
  137.    
  138.    /*--------------------------------------------------------------------*/
  139.    /* File Dialog application data structure.                            */
  140.    /*--------------------------------------------------------------------*/
  141.    typedef struct _FILEDLG     /* fildlg */
  142.    {
  143.       ULONG    cbSize;            /* Size of FILEDLG structure.         */
  144.       ULONG    fl;                /* FDS_ flags. Alter behavior of dlg. */
  145.       ULONG    ulUser;            /* User defined field.                */
  146.       LONG     lReturn;           /* Result code from dialog dismissal. */
  147.       LONG     lSRC;              /* System return code.                */
  148.       PSZ      pszTitle;          /* String to display in title bar.    */
  149.       PSZ      pszOKButton;       /* String to display in OK button.    */
  150.       PFNWP    pfnDlgProc;        /* Entry point to custom dialog proc. */
  151.       PSZ      pszIType;          /* Pointer to string containing       */
  152.       /*                               initial EA type filter. Type     */
  153.       /*                               does not have to exist in list.  */
  154.       PAPSZ    papszITypeList;    /* Pointer to table of pointers that  */
  155.       /*                                point to null terminated Type   */
  156.       /*                                strings. End of table is marked */
  157.       /*                                by a NULL pointer.              */
  158.       PSZ      pszIDrive;         /* Pointer to string containing       */
  159.       /*                               initial drive. Drive does not    */
  160.       /*                               have to exist in drive list.     */
  161.       PAPSZ    papszIDriveList;   /* Pointer to table of pointers that  */
  162.       /*                                point to null terminated Drive  */
  163.       /*                                strings. End of table is marked */
  164.       /*                                by a NULL pointer.              */
  165.       HMODULE  hMod;              /* Custom File Dialog template.       */
  166.       CHAR     szFullFile[CCHMAXPATH]; /* Initial or selected fully     */
  167.       /*                                  qualified path and file.      */
  168.       PAPSZ    papszFQFilename;   /* Pointer to table of pointers that  */
  169.       /*                                point to null terminated FQFname*/
  170.       /*                                strings. End of table is marked */
  171.       /*                                by a NULL pointer.              */
  172.       ULONG    ulFQFCount;        /* Number of files selected           */
  173.       USHORT   usDlgId;           /* Custom dialog id.                  */
  174.       SHORT    x;                 /* X coordinate of the dialog         */
  175.       SHORT    y;                 /* Y coordinate of the dialog         */
  176.       SHORT    sEAType;           /* Selected file's EA Type.           */
  177.    } FILEDLG;
  178.    typedef FILEDLG *PFILEDLG;
  179.    
  180.    /*--------------------------------------------------------------------*/
  181.    /* File Dialog - Function Prototype                                   */
  182.    /*--------------------------------------------------------------------*/
  183.    HWND    APIENTRY WinFileDlg(HWND hwndP,
  184.                                HWND hwndO,
  185.                                PFILEDLG pfild);
  186.    MRESULT APIENTRY WinDefFileDlgProc(HWND hwnd,
  187.                                       ULONG msg,
  188.                                       MPARAM mp1,
  189.                                       MPARAM mp2);
  190.    
  191.    BOOL    APIENTRY WinFreeFileDlgList(PAPSZ papszFQFilename);
  192.    
  193.    #ifndef FILEDLG_DID_INCLUDED
  194.       #define FILEDLG_DID_INCLUDED
  195.       /*--------------------------------------------------------------------*/
  196.       /* File Dialog - dialog and control ids                               */
  197.       /*--------------------------------------------------------------------*/
  198.       #define   DID_FILE_DIALOG             256
  199.       #define   DID_FILENAME_TXT            257
  200.       #define   DID_FILENAME_ED             258
  201.       #define   DID_DRIVE_TXT               259
  202.       #define   DID_DRIVE_CB                260
  203.       #define   DID_FILTER_TXT              261
  204.       #define   DID_FILTER_CB               262
  205.       #define   DID_DIRECTORY_TXT           263
  206.       #define   DID_DIRECTORY_LB            264
  207.       #define   DID_FILES_TXT               265
  208.       #define   DID_FILES_LB                266
  209.       #define   DID_HELP_PB                 267
  210.       #define   DID_APPLY_PB                268
  211.       #define   DID_READ_ONLY               269
  212.       #define   DID_DIRECTORY_SELECTED      270
  213.       #define   DID_OK_PB                   DID_OK
  214.       #define   DID_CANCEL_PB               DID_CANCEL
  215.    #endif /* FILEDLG_DID_INCLUDED */
  216.    
  217.    #define   IDS_FILE_ALL_FILES_SELECTOR      1000
  218.    #define   IDS_FILE_BACK_CUR_PATH           1001
  219.    #define   IDS_FILE_BACK_PREV_PATH          1002
  220.    #define   IDS_FILE_BACK_SLASH              1003
  221.    #define   IDS_FILE_BASE_FILTER             1004
  222.    #define   IDS_FILE_BLANK                   1005
  223.    #define   IDS_FILE_COLON                   1006
  224.    #define   IDS_FILE_DOT                     1007
  225.    #define   IDS_FILE_DRIVE_LETTERS           1008
  226.    #define   IDS_FILE_FWD_CUR_PATH            1009
  227.    #define   IDS_FILE_FWD_PREV_PATH           1010
  228.    #define   IDS_FILE_FORWARD_SLASH           1011
  229.    #define   IDS_FILE_PARENT_DIR              1012
  230.    #define   IDS_FILE_Q_MARK                  1013
  231.    #define   IDS_FILE_SPLAT                   1014
  232.    #define   IDS_FILE_SPLAT_DOT               1015
  233.    #define   IDS_FILE_SAVEAS_TITLE            1016
  234.    #define   IDS_FILE_SAVEAS_FILTER_TXT       1017
  235.    #define   IDS_FILE_SAVEAS_FILENM_TXT       1018
  236.    #define   IDS_FILE_DUMMY_FILE_NAME         1019
  237.    #define   IDS_FILE_DUMMY_FILE_EXT          1020
  238.    #define   IDS_FILE_DUMMY_DRIVE             1021
  239.    #define   IDS_FILE_DUMMY_ROOT_DIR          1022
  240.    #define   IDS_FILE_PATH_PTR                1023
  241.    #define   IDS_FILE_VOLUME_PREFIX           1024
  242.    #define   IDS_FILE_VOLUME_SUFFIX           1025
  243.    #define   IDS_FILE_PATH_PTR2               1026
  244.    #define   IDS_FILE_INVALID_CHARS           1027
  245.    #define   IDS_FILE_ETC_BACK_SLASH          1028
  246.    #define   IDS_FILE_OPEN_PARENTHESIS        1029
  247.    #define   IDS_FILE_CLOSE_PARENTHESIS       1030
  248.    #define   IDS_FILE_SEMICOLON               1031
  249.    
  250.    #define   IDS_FILE_BAD_DRIVE_NAME          1100
  251.    #define   IDS_FILE_BAD_DRIVE_OR_PATH_NAME  1101
  252.    #define   IDS_FILE_BAD_FILE_NAME           1102
  253.    #define   IDS_FILE_BAD_FQF                 1103
  254.    #define   IDS_FILE_BAD_NETWORK_NAME        1104
  255.    #define   IDS_FILE_BAD_SUB_DIR_NAME        1105
  256.    #define   IDS_FILE_DRIVE_NOT_AVAILABLE     1106
  257.    #define   IDS_FILE_FQFNAME_TOO_LONG        1107
  258.    #define   IDS_FILE_OPEN_DIALOG_NOTE        1108
  259.    #define   IDS_FILE_PATH_TOO_LONG           1109
  260.    #define   IDS_FILE_SAVEAS_DIALOG_NOTE      1110
  261.    
  262.    #define   IDS_FILE_DRIVE_DISK_CHANGE       1120
  263.    #define   IDS_FILE_DRIVE_NOT_READY         1122
  264.    #define   IDS_FILE_DRIVE_LOCKED            1123
  265.    #define   IDS_FILE_DRIVE_NO_SECTOR         1124
  266.    #define   IDS_FILE_DRIVE_SOME_ERROR        1125
  267.    #define   IDS_FILE_DRIVE_INVALID           1126
  268.    #define   IDS_FILE_INSERT_DISK_NOTE        1127
  269.    #define   IDS_FILE_OK_WHEN_READY           1128
  270.    
  271. #endif  /* !INCL_WINSTDFILE_INCLUDED && INCL_WINSTDFILE */
  272.  
  273.  
  274. #if !(defined (INCL_WINSTDFONT_INCLUDED) || !defined (INCL_WINSTDFONT))
  275.    #define INCL_WINSTDFONT_INCLUDED
  276.    /**********************************************************************/
  277.    /*                                                                    */
  278.    /*                     F O N T    D I A L O G                         */
  279.    /*                                                                    */
  280.    /**********************************************************************/
  281.    
  282.    /**********************************************************************/
  283.    /* Font Dialog Creation Structure                                     */
  284.    /**********************************************************************/
  285.    typedef struct _FONTDLG     /* fntdlg */
  286.    {
  287.       ULONG   cbSize;                /* sizeof(FONTDLG)                 */
  288.       HPS     hpsScreen;             /* Screen presentation space       */
  289.       HPS     hpsPrinter;            /* Printer presentation space      */
  290.       PSZ     pszTitle;              /* Application supplied title      */
  291.       PSZ     pszPreview;            /* String to print in preview wndw */
  292.       PSZ     pszPtSizeList;         /* Application provided size list  */
  293.       PFNWP   pfnDlgProc;            /* Dialog subclass procedure       */
  294.       PSZ     pszFamilyname;         /* Family name of font             */
  295.       FIXED   fxPointSize;           /* Point size the user selected    */
  296.       ULONG   fl;                    /* FNTS_* flags - dialog styles    */
  297.       ULONG   flFlags;               /* FNTF_* state flags              */
  298.       ULONG   flType;                /* Font type option bits           */
  299.       ULONG   flTypeMask;            /* Mask of which font types to use */
  300.       ULONG   flStyle;               /* The selected style bits         */
  301.       ULONG   flStyleMask;           /* Mask of which style bits to use */
  302.       LONG    clrFore;               /* Selected foreground color       */
  303.       LONG    clrBack;               /* Selected background color       */
  304.       ULONG   ulUser;                /* Blank field for application     */
  305.       LONG    lReturn;               /* Return Value of the Dialog      */
  306.       LONG    lSRC;                  /* System return code.             */
  307.       LONG    lEmHeight;             /* Em height of the current font   */
  308.       LONG    lXHeight;              /* X height of the current font    */
  309.       LONG    lExternalLeading;      /* External Leading of font        */
  310.       HMODULE hMod;                  /* Module to load custom template  */
  311.       FATTRS  fAttrs;                /* Font attribute structure        */
  312.       SHORT   sNominalPointSize;     /* Nominal Point Size of font      */
  313.       USHORT  usWeight;              /* The boldness of the font        */
  314.       USHORT  usWidth;               /* The width of the font           */
  315.       SHORT   x;                     /* X coordinate of the dialog      */
  316.       SHORT   y;                     /* Y coordinate of the dialog      */
  317.       USHORT  usDlgId;               /* ID of a custom dialog template  */
  318.       USHORT  usFamilyBufLen;        /* Length of family buffer provided*/
  319.       USHORT  usReserved;            /* reserved                        */
  320.    } FONTDLG;
  321.    typedef FONTDLG *PFONTDLG;
  322.    
  323.    /**********************************************************************/
  324.    /* Font Dialog Style Flags                                            */
  325.    /**********************************************************************/
  326.    #define FNTS_CENTER              0x00000001L /* Center in owner dialog*/
  327.    #define FNTS_CUSTOM              0x00000002L /* Use custom template   */
  328.    #define FNTS_OWNERDRAWPREVIEW    0x00000004L /* Allow app to draw     */
  329.    #define FNTS_HELPBUTTON          0x00000008L /* Display Help button   */
  330.    #define FNTS_APPLYBUTTON         0x00000010L /* Display Apply button  */
  331.    #define FNTS_RESETBUTTON         0x00000020L /* Display Reset button  */
  332.    #define FNTS_MODELESS            0x00000040L /* Make dialog modeless  */
  333.    #define FNTS_INITFROMFATTRS      0x00000080L /* Initialize from FATTRs*/
  334.    #define FNTS_BITMAPONLY          0x00000100L /* Only allow bitmap font*/
  335.    #define FNTS_VECTORONLY          0x00000200L /* Only allow vector font*/
  336.    #define FNTS_FIXEDWIDTHONLY      0x00000400L /* Only allow monospaced */
  337.    #define FNTS_PROPORTIONALONLY    0x00000800L /* Only proportional font*/
  338.    #define FNTS_NOSYNTHESIZEDFONTS  0x00001000L /* Don't synthesize fonts*/
  339.    #define FNTS_NATIONAL_LANGUAGE   0x80000000L /* Reserved: bidirectio- */
  340.    /* -nal language support.*/
  341.    
  342.    /**********************************************************************/
  343.    /* Font Dialog Flags                                                  */
  344.    /**********************************************************************/
  345.    #define FNTF_NOVIEWSCREENFONTS      1L
  346.    #define FNTF_NOVIEWPRINTERFONTS     2L
  347.    #define FNTF_SCREENFONTSELECTED     4L
  348.    #define FNTF_PRINTERFONTSELECTED    8L
  349.    
  350.    /**********************************************************************/
  351.    /* Color code definitions                                             */
  352.    /**********************************************************************/
  353.    #define CLRC_FOREGROUND             1L
  354.    #define CLRC_BACKGROUND             2L
  355.    
  356.    /**********************************************************************/
  357.    /* Filter List message string identifiers                             */
  358.    /**********************************************************************/
  359.    #define FNTI_BITMAPFONT         0x0001
  360.    #define FNTI_VECTORFONT         0x0002
  361.    #define FNTI_FIXEDWIDTHFONT     0x0004
  362.    #define FNTI_PROPORTIONALFONT   0x0008
  363.    #define FNTI_SYNTHESIZED        0x0010
  364.    #define FNTI_DEFAULTLIST        0x0020
  365.    #define FNTI_FAMILYNAME         0x0100
  366.    #define FNTI_STYLENAME          0x0200
  367.    #define FNTI_POINTSIZE          0x0400
  368.    
  369.    /**********************************************************************/
  370.    /* Error Return Codes from dialog (self defining)                     */
  371.    /**********************************************************************/
  372.    #define  FNTS_SUCCESSFUL                           0
  373.    #define  FNTS_ERR_INVALID_DIALOG                   3
  374.    #define  FNTS_ERR_ALLOC_SHARED_MEM                 4
  375.    #define  FNTS_ERR_INVALID_PARM                     5
  376.    #define  FNTS_ERR_OUT_OF_MEMORY                    7
  377.    #define  FNTS_ERR_INVALID_VERSION                 10
  378.    #define  FNTS_ERR_DIALOG_LOAD_ERROR               12
  379.    
  380.    /**********************************************************************/
  381.    /* Font Dialog Messages                                               */
  382.    /**********************************************************************/
  383.    #define FNTM_FACENAMECHANGED   WM_USER+50  /* mp1 = PSZ pszFacename   */
  384.    #define FNTM_POINTSIZECHANGED  WM_USER+51  /* mp1 = PSZ pszPointSize, */
  385.    /*                                            mp2 = FIXED fxPointSize */
  386.    #define FNTM_STYLECHANGED      WM_USER+52  /* mp1 = PSTYLECHANGE pstyc*/
  387.    #define FNTM_COLORCHANGED      WM_USER+53  /* mp1 = LONG clr          */
  388.    /*                                            mp2 = USHORT codeClr    */
  389.    #define FNTM_UPDATEPREVIEW     WM_USER+54  /* mp1 = HWND hWndPreview  */
  390.    #define FNTM_FILTERLIST        WM_USER+55  /* mp1 = PSZ pszFacename   */
  391.    /*                                            mp2 = USHORT usStrStyle */
  392.    /*                                            mr=TRUE(Add),FALSE(Dont)*/
  393.    
  394.    /**********************************************************************/
  395.    /* Stylechange message parameter structure                            */
  396.    /**********************************************************************/
  397.    typedef struct _STYLECHANGE     /* stylc */
  398.    {
  399.       USHORT      usWeight;
  400.       USHORT      usWeightOld;
  401.       USHORT      usWidth;
  402.       USHORT      usWidthOld;
  403.       ULONG       flType;
  404.       ULONG       flTypeOld;
  405.       ULONG       flTypeMask;
  406.       ULONG       flTypeMaskOld;
  407.       ULONG       flStyle;
  408.       ULONG       flStyleOld;
  409.       ULONG       flStyleMask;
  410.       ULONG       flStyleMaskOld;
  411.    } STYLECHANGE;
  412.    typedef STYLECHANGE *PSTYLECHANGE;
  413.    
  414.    /**********************************************************************/
  415.    /* Font Dialog Function Prototypes                                    */
  416.    /**********************************************************************/
  417.    HWND    APIENTRY WinFontDlg(HWND hwndP,
  418.                                HWND hwndO,
  419.                                PFONTDLG pfntd);
  420.    MRESULT APIENTRY WinDefFontDlgProc(HWND hwnd,
  421.                                       ULONG msg,
  422.                                       MPARAM mp1,
  423.                                       MPARAM mp2);
  424.    
  425.    #ifndef FONTDLG_DID_INCLUDED
  426.       #define FONTDLG_DID_INCLUDED
  427.       /**********************************************************************/
  428.       /* font dialog and control id's                                       */
  429.       /**********************************************************************/
  430.       #define DID_FONT_DIALOG          300
  431.       #define DID_NAME                 301
  432.       #define DID_STYLE                302
  433.       #define DID_DISPLAY_FILTER       303
  434.       #define DID_PRINTER_FILTER       304
  435.       #define DID_SIZE                 305
  436.       #define DID_SAMPLE               306
  437.       #define DID_OUTLINE              307
  438.       #define DID_UNDERSCORE           308
  439.       #define DID_STRIKEOUT            309
  440.       #define DID_HELP_BUTTON          310
  441.       #define DID_APPLY_BUTTON         311
  442.       #define DID_RESET_BUTTON         312
  443.       #define DID_OK_BUTTON            DID_OK
  444.       #define DID_CANCEL_BUTTON        DID_CANCEL
  445.       #define DID_NAME_PREFIX          313
  446.       #define DID_STYLE_PREFIX         314
  447.       #define DID_SIZE_PREFIX          315
  448.       #define DID_SAMPLE_GROUPBOX      316
  449.       #define DID_EMPHASIS_GROUPBOX    317
  450.       #define DID_FONT_ISO_SUPPORT     318
  451.       #define DID_FONT_ISO_UNTESTED    319
  452.    #endif /* FONTDLG_DID_INCLUDED */
  453.    
  454.    /**********************************************************************/
  455.    /* Stringtable id's                                                   */
  456.    /**********************************************************************/
  457.    #define IDS_FONT_SAMPLE            350
  458.    #define IDS_FONT_BLANK             351
  459.    #define IDS_FONT_KEY_0             352
  460.    #define IDS_FONT_KEY_9             353
  461.    #define IDS_FONT_KEY_SEP           354
  462.    #define IDS_FONT_DISP_ONLY         355
  463.    #define IDS_FONT_PRINTER_ONLY      356
  464.    #define IDS_FONT_COMBINED          357
  465.    #define IDS_FONT_WEIGHT1           358
  466.    #define IDS_FONT_WEIGHT2           359
  467.    #define IDS_FONT_WEIGHT3           360
  468.    #define IDS_FONT_WEIGHT4           361
  469.    #define IDS_FONT_WEIGHT5           362
  470.    #define IDS_FONT_WEIGHT6           363
  471.    #define IDS_FONT_WEIGHT7           364
  472.    #define IDS_FONT_WEIGHT8           365
  473.    #define IDS_FONT_WEIGHT9           366
  474.    #define IDS_FONT_WIDTH1            367
  475.    #define IDS_FONT_WIDTH2            368
  476.    #define IDS_FONT_WIDTH3            369
  477.    #define IDS_FONT_WIDTH4            370
  478.    #define IDS_FONT_WIDTH5            371
  479.    #define IDS_FONT_WIDTH6            372
  480.    #define IDS_FONT_WIDTH7            373
  481.    #define IDS_FONT_WIDTH8            374
  482.    #define IDS_FONT_WIDTH9            375
  483.    #define IDS_FONT_OPTION0           376
  484.    #define IDS_FONT_OPTION1           377
  485.    #define IDS_FONT_OPTION2           378
  486.    #define IDS_FONT_OPTION3           379
  487.    #define IDS_FONT_POINT_SIZE_LIST   380
  488.    #define IDS_FONT_COLOR_NAME_BASE   381
  489.    #define IDS_FONT_COLOR_BLACK       381
  490.    #define IDS_FONT_COLOR_MAROON      382
  491.    #define IDS_FONT_COLOR_GREEN       383
  492.    #define IDS_FONT_COLOR_OLIVE       384
  493.    #define IDS_FONT_COLOR_NAVY        385
  494.    #define IDS_FONT_COLOR_PURPLE      386
  495.    #define IDS_FONT_COLOR_TEAL        387
  496.    #define IDS_FONT_COLOR_GRAY        388
  497.    #define IDS_FONT_COLOR_SILVER      389
  498.    #define IDS_FONT_COLOR_RED         390
  499.    #define IDS_FONT_COLOR_LIME        391
  500.    #define IDS_FONT_COLOR_YELLOW      392
  501.    #define IDS_FONT_COLOR_BLUE        393
  502.    #define IDS_FONT_COLOR_FUSCIA      394
  503.    #define IDS_FONT_COLOR_AQUA        395
  504.    #define IDS_FONT_COLOR_WHITE       396
  505.    #define IDS_FONT_COLOR_NAME_LAST   397
  506.    #define IDS_FONT_COLORS            (IDS_FONT_COLOR_NAME_LAST-IDS_FONT_COLOR_NAME_BASE)
  507.    #define IDS_FONT_NAME_LENGTH       32
  508.    
  509. #endif  /* !INCL_WINSTDFONT_INCLUDED && INCL_WINSTDFONT */
  510.  
  511.  
  512. #if !(defined (INCL_WINSTDSPIN_INCLUDED) || !defined (INCL_WINSTDSPIN))
  513.    #define INCL_WINSTDSPIN_INCLUDED
  514.    /**********************************************************************/
  515.    /*                                                                    */
  516.    /*                          S P I N    B U T T O N                    */
  517.    /*                                                                    */
  518.    /**********************************************************************/
  519.    
  520.    /**********************************************************************/
  521.    /* SPINBUTTON Creation Flags                                          */
  522.    /**********************************************************************/
  523.    
  524.    /**********************************************************************/
  525.    /* Character Acceptance                                               */
  526.    /**********************************************************************/
  527.    #define SPBS_ALLCHARACTERS 0x00000000L /* Default: All chars accepted */
  528.    #define SPBS_NUMERICONLY   0x00000001L /* Only 0 - 9 accepted & VKeys */
  529.    #define SPBS_READONLY      0x00000002L /* No chars allowed in entryfld*/
  530.    
  531.    /**********************************************************************/
  532.    /* Type of Component                                                  */
  533.    /**********************************************************************/
  534.    #define SPBS_MASTER        0x00000010L
  535.    #define SPBS_SERVANT       0x00000000L /* Default: Servant            */
  536.    
  537.    /**********************************************************************/
  538.    /* Type of Justification                                              */
  539.    /**********************************************************************/
  540.    #define SPBS_JUSTDEFAULT  0x00000000L /* Default: Same as Left        */
  541.    #define SPBS_JUSTLEFT     0x00000008L
  542.    #define SPBS_JUSTRIGHT    0x00000004L
  543.    #define SPBS_JUSTCENTER   0x0000000CL
  544.    
  545.    /**********************************************************************/
  546.    /* Border or not                                                      */
  547.    /**********************************************************************/
  548.    #define SPBS_NOBORDER     0x00000020L /* Borderless SpinField         */
  549.    /*                                       Default is to have a border. */
  550.    
  551.    /**********************************************************************/
  552.    /* Fast spin or not                                                   */
  553.    /**********************************************************************/
  554.    #define SPBS_FASTSPIN     0x00000100L /* Allow fast spinning.  Fast   */
  555.    /*                                       spinning is performed by     */
  556.    /*                                       skipping over numbers        */
  557.    
  558.    /**********************************************************************/
  559.    /* Pad numbers on front with 0's                                      */
  560.    /**********************************************************************/
  561.    #define SPBS_PADWITHZEROS 0x00000080L /* Pad the number with zeroes   */
  562.    
  563.    /**********************************************************************/
  564.    /* SPINBUTTON Messages                                                */
  565.    /**********************************************************************/
  566.    
  567.    /**********************************************************************/
  568.    /* Notification from Spinbutton to the application is sent in a       */
  569.    /* WM_CONTROL message.                                                */
  570.    /**********************************************************************/
  571.    #define SPBN_UPARROW       0x20A      /* up arrow button was pressed  */
  572.    #define SPBN_DOWNARROW     0x20B      /* down arrow button was pressed*/
  573.    #define SPBN_ENDSPIN       0x20C      /* mouse button was released    */
  574.    #define SPBN_CHANGE        0x20D      /* spinfield text has changed   */
  575.    #define SPBN_SETFOCUS      0x20E      /* spinfield received focus     */
  576.    #define SPBN_KILLFOCUS     0x20F      /* spinfield lost focus         */
  577.    
  578.    /**********************************************************************/
  579.    /* Messages from application to Spinbutton                            */
  580.    /**********************************************************************/
  581.    #define SPBM_OVERRIDESETLIMITS 0x200  /* Set spinbutton limits without*/
  582.    /*                                        resetting the current value */
  583.    #define SPBM_QUERYLIMITS       0x201  /* Query limits set by          */
  584.    /*                                        SPBM_SETLIMITS              */
  585.    #define SPBM_SETTEXTLIMIT      0x202  /* Max entryfield characters    */
  586.    #define SPBM_SPINUP            0x203  /* Tell entry field to spin up  */
  587.    #define SPBM_SPINDOWN          0x204  /* Tell entry field to spin down*/
  588.    #define SPBM_QUERYVALUE        0x205  /* Tell entry field to send     */
  589.    /*                                        current value               */
  590.    
  591.    /**********************************************************************/
  592.    /* Query Flags                                                        */
  593.    /**********************************************************************/
  594.    #define SPBQ_UPDATEIFVALID    0       /* Default                      */
  595.    #define SPBQ_ALWAYSUPDATE     1
  596.    #define SPBQ_DONOTUPDATE      3
  597.    
  598.    /**********************************************************************/
  599.    /* Return value for Empty Field.                                      */
  600.    /*    If ptr too long, variable sent in query msg                     */
  601.    /**********************************************************************/
  602.    #define SPBM_SETARRAY          0x206  /* Change the data to spin      */
  603.    #define SPBM_SETLIMITS         0x207  /* Change the numeric Limits    */
  604.    #define SPBM_SETCURRENTVALUE   0x208  /* Change the current value     */
  605.    #define SPBM_SETMASTER         0x209  /* Tell entryfield who master is*/
  606.    
  607.    
  608.    /**********************************************************************/
  609.    /* Spin Button control data structure                                  */
  610.    /**********************************************************************/
  611.    typedef struct _SPBCDATA     /* spbcd */
  612.    {
  613.       ULONG   cbSize;                /* Size of control block             */
  614.       ULONG   ulTextLimit;           /* Entryfield text limit             */
  615.       LONG    lLowerLimit;           /* Spin lower limit (numeric only)   */
  616.       LONG    lUpperLimit;           /* Spin upper limit (numeric only)   */
  617.       ULONG   idMasterSpb;           /* ID of the servant's master spb    */
  618.       PVOID   pHWXCtlData;           /* reserved for Pen CtlData (penpm.h)*/
  619.    } SPBCDATA;
  620.    typedef SPBCDATA *PSPBCDATA;
  621.    
  622.    
  623. #endif  /* !INCL_WINSTDSPIN_INCLUDED && INCL_WINSTDSPIN */
  624.  
  625.  
  626. #if !(defined (INCL_WINSTDDRAG_INCLUDED) || !defined (INCL_WINSTDDRAG))
  627.    #define INCL_WINSTDDRAG_INCLUDED
  628.    /**********************************************************************/
  629.    /*                                                                    */
  630.    /*                D I R E C T   M A N I P U L A T I O N               */
  631.    /*                                                                    */
  632.    /**********************************************************************/
  633.    
  634.    #define PMERR_NOT_DRAGGING     0x1f00
  635.    #define PMERR_ALREADY_DRAGGING 0x1f01
  636.    
  637.    #define MSGF_DRAG              0x0010    /* message filter identifier */
  638.    
  639.    #define WM_DRAGFIRST           0x0310
  640.    #define WM_DRAGLAST            0x032f
  641.    
  642.    #define DM_DROP                0x032f
  643.    #define DM_DRAGOVER            0x032e
  644.    #define DM_DRAGLEAVE           0x032d
  645.    #define DM_DROPHELP            0x032c
  646.    #define DM_ENDCONVERSATION     0x032b
  647.    #define DM_PRINT               0x032a
  648.    #define DM_RENDER              0x0329
  649.    #define DM_RENDERCOMPLETE      0x0328
  650.    #define DM_RENDERPREPARE       0x0327
  651.    #define DM_DRAGFILECOMPLETE    0x0326
  652.    #define DM_EMPHASIZETARGET     0x0325
  653.    #define DM_DRAGERROR           0x0324
  654.    #define DM_FILERENDERED        0x0323
  655.    #define DM_RENDERFILE          0x0322
  656.    #define DM_DRAGOVERNOTIFY      0x0321
  657.    #define DM_PRINTOBJECT         0x0320
  658.    #define DM_DISCARDOBJECT       0x031f
  659.    #define DM_DROPNOTIFY          0x031e
  660.    
  661.    #define DRT_ASM                "Assembler Code"   /* drag type constants  */
  662.    #define DRT_BASIC              "BASIC Code"
  663.    #define DRT_BINDATA            "Binary Data"
  664.    #define DRT_BITMAP             "Bitmap"
  665.    #define DRT_C                  "C Code"
  666.    #define DRT_COBOL              "COBOL Code"
  667.    #define DRT_DLL                "Dynamic Link Library"
  668.    #define DRT_DOSCMD             "DOS Command File"
  669.    #define DRT_EXE                "Executable"
  670.    #define DRT_FORTRAN            "FORTRAN Code"
  671.    #define DRT_ICON               "Icon"
  672.    #define DRT_LIB                "Library"
  673.    #define DRT_METAFILE           "Metafile"
  674.    #define DRT_OS2CMD             "OS/2 Command File"
  675.    #define DRT_PASCAL             "Pascal Code"
  676.    #define DRT_RESOURCE           "Resource File"
  677.    #define DRT_TEXT               "Plain Text"
  678.    #define DRT_UNKNOWN            "Unknown"
  679.    
  680.    #define DOR_NODROP             0x0000   /* DM_DRAGOVER response codes */
  681.    #define DOR_DROP               0x0001
  682.    #define DOR_NODROPOP           0x0002
  683.    #define DOR_NEVERDROP          0x0003
  684.    
  685.    #define DO_COPYABLE            0x0001   /* supported operation flags  */
  686.    #define DO_MOVEABLE            0x0002
  687.    #define DO_LINKABLE            0x0004
  688.    #define DO_CREATEABLE          0x0008
  689.    #define DO_CREATEPROGRAMOBJECTABLE  0x0010
  690.    
  691.    #define DC_OPEN                0x0001   /* source control flags       */
  692.    #define DC_REF                 0x0002
  693.    #define DC_GROUP               0x0004
  694.    #define DC_CONTAINER           0x0008
  695.    #define DC_PREPARE             0x0010
  696.    #define DC_REMOVEABLEMEDIA     0x0020
  697.    
  698.    #define DO_DEFAULT             0xBFFE   /* Default operation          */
  699.    #define DO_UNKNOWN             0xBFFF   /* Unknown operation          */
  700.    #define DO_COPY                0x0010
  701.    #define DO_MOVE                0x0020
  702.    #define DO_LINK                0x0018
  703.    #define DO_CREATE              0x0040
  704.    #define DO_CREATEPROGRAMOBJECT 0x0080
  705.    
  706.    /* Drag Status Flags */
  707.    #define DGS_DRAGINPROGRESS         0x0001  /* Standard Drag in Progress. */
  708.    #define DGS_LAZYDRAGINPROGRESS     0x0002  /* Lazy Drag in Progress.     */
  709.    
  710.    #define DMFL_TARGETSUCCESSFUL  0x0001   /* transfer reply flags       */
  711.    #define DMFL_TARGETFAIL        0x0002
  712.    #define DMFL_NATIVERENDER      0x0004
  713.    #define DMFL_RENDERRETRY       0x0008
  714.    #define DMFL_RENDEROK          0x0010
  715.    #define DMFL_RENDERFAIL        0x0020
  716.    
  717.    #define DRG_ICON          0x00000001L   /* drag image manipulation    */
  718.    #define DRG_BITMAP        0x00000002L   /*   flags                    */
  719.    #define DRG_POLYGON       0x00000004L
  720.    #define DRG_STRETCH       0x00000008L
  721.    #define DRG_TRANSPARENT   0x00000010L
  722.    #define DRG_CLOSED        0x00000020L
  723.    #define DRG_MINIBITMAP    0x00000040L
  724.    
  725.    #define DME_IGNOREABORT        1        /* DM_DRAGERROR return values */
  726.    #define DME_IGNORECONTINUE     2
  727.    #define DME_REPLACE            3
  728.    #define DME_RETRY              4
  729.    
  730.    #define DF_MOVE                0x0001   /* DM_DRAGFILECOMPLETE flags  */
  731.    #define DF_SOURCE              0x0002
  732.    #define DF_SUCCESSFUL          0x0004
  733.    
  734.    #define DRR_SOURCE            1L
  735.    #define DRR_TARGET            2L
  736.    #define DRR_ABORT             3L
  737.    
  738.    #define DFF_MOVE               1        /* DM_DRAGERROR operation IDs */
  739.    #define DFF_COPY               2
  740.    #define DFF_DELETE             3
  741.    
  742.    
  743.    typedef LHANDLE HSTR;  /* hstr */
  744.    
  745.    typedef struct _DRAGITEM     /* ditem */
  746.    {
  747.       HWND    hwndItem;                  /* conversation partner          */
  748.       ULONG   ulItemID;                  /* identifies item being dragged */
  749.       HSTR    hstrType;                  /* type of item                  */
  750.       HSTR    hstrRMF;                   /* rendering mechanism and format*/
  751.       HSTR    hstrContainerName;         /* name of source container      */
  752.       HSTR    hstrSourceName;            /* name of item at source        */
  753.       HSTR    hstrTargetName;            /* suggested name of item at dest*/
  754.       SHORT   cxOffset;                  /* x offset of the origin of the */
  755.       /*                                      image from the mouse hotspot*/
  756.       SHORT   cyOffset;                  /* y offset of the origin of the */
  757.       /*                                      image from the mouse hotspot*/
  758.       USHORT  fsControl;                 /* source item control flags     */
  759.       USHORT  fsSupportedOps;            /* ops supported by source       */
  760.    } DRAGITEM;
  761.    typedef DRAGITEM *PDRAGITEM;
  762.    
  763.    typedef struct _DRAGINFO     /* dinfo */
  764.    {
  765.       ULONG    cbDraginfo;               /* Size of DRAGINFO and DRAGITEMs*/
  766.       USHORT   cbDragitem;               /* size of DRAGITEM              */
  767.       USHORT   usOperation;              /* current drag operation        */
  768.       HWND     hwndSource;               /* window handle of source       */
  769.       SHORT    xDrop;                    /* x coordinate of drop position */
  770.       SHORT    yDrop;                    /* y coordinate of drop position */
  771.       USHORT   cditem;                   /* count of DRAGITEMs            */
  772.       USHORT   usReserved;               /* reserved for future use       */
  773.    } DRAGINFO;
  774.    typedef DRAGINFO *PDRAGINFO;
  775.    
  776.    typedef struct _DRAGIMAGE     /* dimg */
  777.    {
  778.       USHORT  cb;                        /* size control block            */
  779.       USHORT  cptl;                      /* count of pts, if DRG_POLYGON  */
  780.       LHANDLE hImage;                    /* image handle passed to DrgDrag*/
  781.       SIZEL   sizlStretch;               /* size to strecth ico or bmp to */
  782.       ULONG   fl;                        /* flags passed to DrgDrag       */
  783.       SHORT   cxOffset;                  /* x offset of the origin of the */
  784.       /*                                      image from the mouse hotspot*/
  785.       SHORT   cyOffset;                  /* y offset of the origin of the */
  786.       /*                                      image from the mouse hotspot*/
  787.    } DRAGIMAGE;
  788.    typedef DRAGIMAGE *PDRAGIMAGE;
  789.    
  790.    typedef struct _DRAGTRANSFER     /* dxfer */
  791.    {
  792.       ULONG      cb;                     /* size of control block         */
  793.       HWND       hwndClient;             /* handle of target              */
  794.       PDRAGITEM  pditem;                 /* DRAGITEM being transferred    */
  795.       HSTR       hstrSelectedRMF;        /* rendering mech & fmt of choice*/
  796.       HSTR       hstrRenderToName;       /* name source will use          */
  797.       ULONG      ulTargetInfo;           /* reserved for target's use     */
  798.       USHORT     usOperation;            /* operation being performed     */
  799.       USHORT     fsReply;                /* reply flags                   */
  800.    } DRAGTRANSFER;
  801.    typedef DRAGTRANSFER *PDRAGTRANSFER;
  802.    
  803.    typedef struct _RENDERFILE     /* rndf */
  804.    {
  805.       HWND   hwndDragFiles;              /* conversation window           */
  806.       HSTR   hstrSource;                 /* handle to source file name    */
  807.       HSTR   hstrTarget;                 /* handle to target file name    */
  808.       USHORT fMove;                      /* TRUE - move, FALSE - copy     */
  809.       USHORT usRsvd;                     /* reserved                      */
  810.    } RENDERFILE;
  811.    typedef RENDERFILE *PRENDERFILE;
  812.    
  813. #ifdef __cplusplus
  814.    BOOL      APIENTRY DrgAcceptDroppedFiles(HWND hwnd,
  815.                                             PCSZ  pszPath,
  816.                                             PCSZ  pszTypes,
  817.                                             ULONG ulDefaultOp,
  818.                                             ULONG ulRsvd);
  819. #else
  820.    BOOL      APIENTRY DrgAcceptDroppedFiles(HWND hwnd,
  821.                                             PSZ pszPath,
  822.                                             PSZ pszTypes,
  823.                                             ULONG ulDefaultOp,
  824.                                             ULONG ulRsvd);
  825. #endif
  826.    
  827.    PDRAGINFO APIENTRY DrgAllocDraginfo(ULONG cditem);
  828.    
  829.    PDRAGTRANSFER APIENTRY DrgAllocDragtransfer(ULONG cdxfer);
  830.    
  831.    HWND      APIENTRY DrgDrag(HWND hwndSource,
  832.                               PDRAGINFO pdinfo,
  833.                               PDRAGIMAGE pdimg,
  834.                               ULONG cdimg,
  835.                               LONG vkTerminate,
  836.                               PVOID pRsvd);
  837.    
  838. #ifdef __cplusplus
  839.    BOOL      APIENTRY DrgDragFiles(HWND hwnd,
  840.                                    PCSZ  *apszFiles,
  841.                                    PCSZ  *apszTypes,
  842.                                    PCSZ  *apszTargets,
  843.                                    ULONG cFiles,
  844.                                    HPOINTER hptrDrag,
  845.                                    ULONG vkTerm,
  846.                                    BOOL fSourceRender,
  847.                                    ULONG ulRsvd);
  848. #else
  849.    BOOL      APIENTRY DrgDragFiles(HWND hwnd,
  850.                                    PSZ *apszFiles,
  851.                                    PSZ *apszTypes,
  852.                                    PSZ *apszTargets,
  853.                                    ULONG cFiles,
  854.                                    HPOINTER hptrDrag,
  855.                                    ULONG vkTerm,
  856.                                    BOOL fSourceRender,
  857.                                    ULONG ulRsvd);
  858. #endif
  859.    
  860.    BOOL      APIENTRY DrgPostTransferMsg(HWND hwnd,
  861.                                          ULONG msg,
  862.                                          PDRAGTRANSFER pdxfer,
  863.                                          ULONG fl,
  864.                                          ULONG ulRsvd,
  865.                                          BOOL fRetry);
  866.    
  867.    BOOL      APIENTRY DrgQueryDragitem(PDRAGINFO pdinfo,
  868.                                        ULONG cbBuffer,
  869.                                        PDRAGITEM pditem,
  870.                                        ULONG iItem);
  871.    
  872.    ULONG     APIENTRY DrgQueryDragitemCount(PDRAGINFO pdinfo);
  873.    
  874.    PDRAGITEM APIENTRY DrgQueryDragitemPtr(PDRAGINFO pdinfo,
  875.                                           ULONG i);
  876.    
  877.    BOOL      APIENTRY DrgQueryNativeRMF(PDRAGITEM pditem,
  878.                                         ULONG cbBuffer,
  879.                                         PCHAR pBuffer);
  880.    
  881.    ULONG     APIENTRY DrgQueryNativeRMFLen(PDRAGITEM pditem);
  882.    
  883. #ifdef __cplusplus
  884.    ULONG     APIENTRY DrgQueryStrName(HSTR hstr,
  885.                                       ULONG cbBuffer,
  886.                                       PCSZ  pBuffer);
  887. #else
  888.    ULONG     APIENTRY DrgQueryStrName(HSTR hstr,
  889.                                       ULONG cbBuffer,
  890.                                       PSZ pBuffer);
  891. #endif
  892.    
  893.    ULONG     APIENTRY DrgQueryStrNameLen(HSTR hstr);
  894.    
  895. #ifdef __cplusplus
  896.    BOOL      APIENTRY DrgQueryTrueType(PDRAGITEM pditem,
  897.                                        ULONG cbBuffer,
  898.                                        PCSZ  pBuffer);
  899. #else
  900.    BOOL      APIENTRY DrgQueryTrueType(PDRAGITEM pditem,
  901.                                        ULONG cbBuffer,
  902.                                        PSZ pBuffer);
  903. #endif
  904.    
  905.    ULONG     APIENTRY DrgQueryTrueTypeLen(PDRAGITEM pditem);
  906.    
  907.    MRESULT   APIENTRY DrgSendTransferMsg(HWND hwnd,
  908.                                          ULONG msg,
  909.                                          MPARAM mp1,
  910.                                          MPARAM mp2);
  911.    
  912.    BOOL      APIENTRY DrgSetDragitem(PDRAGINFO pdinfo,
  913.                                      PDRAGITEM pditem,
  914.                                      ULONG cbBuffer,
  915.                                      ULONG iItem);
  916.    
  917.    BOOL      APIENTRY DrgSetDragImage(PDRAGINFO pdinfo,
  918.                                       PDRAGIMAGE pdimg,
  919.                                       ULONG cdimg,
  920.                                       PVOID pRsvd);
  921.    
  922. #ifdef __cplusplus
  923.    BOOL      APIENTRY DrgVerifyTypeSet(PDRAGITEM pditem,
  924.                                        PCSZ  pszType,
  925.                                        ULONG cbMatch,
  926.                                        PCSZ  pszMatch);
  927. #else
  928.    BOOL      APIENTRY DrgVerifyTypeSet(PDRAGITEM pditem,
  929.                                        PSZ pszType,
  930.                                        ULONG cbMatch,
  931.                                        PSZ pszMatch);
  932. #endif
  933.    
  934.    BOOL      APIENTRY DrgAccessDraginfo(PDRAGINFO pdinfo);
  935.    
  936. #ifdef __cplusplus
  937.    HSTR      APIENTRY DrgAddStrHandle(PCSZ  psz);
  938. #else
  939.    HSTR      APIENTRY DrgAddStrHandle(PSZ psz);
  940. #endif
  941.    
  942.    BOOL      APIENTRY DrgDeleteDraginfoStrHandles(PDRAGINFO pdinfo);
  943.    
  944.    BOOL      APIENTRY DrgDeleteStrHandle(HSTR hstr);
  945.    
  946.    BOOL      APIENTRY DrgFreeDraginfo(PDRAGINFO pdinfo);
  947.    
  948.    BOOL      APIENTRY DrgFreeDragtransfer(PDRAGTRANSFER pdxfer);
  949.    
  950.    HPS       APIENTRY DrgGetPS(HWND hwnd);
  951.    
  952.    BOOL      APIENTRY DrgPushDraginfo(PDRAGINFO pdinfo,
  953.                                       HWND hwndDest);
  954.    
  955.    BOOL      APIENTRY DrgReleasePS(HPS hps);
  956.    
  957.    BOOL      APIENTRY DrgSetDragPointer(PDRAGINFO pdinfo,
  958.                                         HPOINTER hptr);
  959.    
  960. #ifdef __cplusplus
  961.    BOOL      APIENTRY DrgVerifyNativeRMF(PDRAGITEM pditem,
  962.                                          PCSZ  pszRMF);
  963. #else
  964.    BOOL      APIENTRY DrgVerifyNativeRMF(PDRAGITEM pditem,
  965.                                          PSZ pszRMF);
  966. #endif
  967.    
  968. #ifdef __cplusplus
  969.    BOOL      APIENTRY DrgVerifyRMF(PDRAGITEM pditem,
  970.                                    PCSZ  pszMech,
  971.                                    PCSZ  pszFmt);
  972. #else
  973.    BOOL      APIENTRY DrgVerifyRMF(PDRAGITEM pditem,
  974.                                    PSZ pszMech,
  975.                                    PSZ pszFmt);
  976. #endif
  977.    
  978. #ifdef __cplusplus
  979.    BOOL      APIENTRY DrgVerifyTrueType(PDRAGITEM pditem,
  980.                                         PCSZ  pszType);
  981. #else
  982.    BOOL      APIENTRY DrgVerifyTrueType(PDRAGITEM pditem,
  983.                                         PSZ pszType);
  984. #endif
  985.    
  986. #ifdef __cplusplus
  987.    BOOL      APIENTRY DrgVerifyType(PDRAGITEM pditem,
  988.                                     PCSZ  pszType);
  989. #else
  990.    BOOL      APIENTRY DrgVerifyType(PDRAGITEM pditem,
  991.                                     PSZ pszType);
  992. #endif
  993.    
  994.    /**************************************************/
  995.    /* Lazy Drag API's.                               */
  996.    /**************************************************/
  997.    BOOL APIENTRY DrgLazyDrag( HWND hwndSource,
  998.                              PDRAGINFO pdinfo,
  999.                              PDRAGIMAGE pdimg,
  1000.                              ULONG cdimg,
  1001.                              PVOID pRsvd );
  1002.    
  1003.    BOOL APIENTRY DrgCancelLazyDrag( VOID );
  1004.    
  1005.    BOOL APIENTRY DrgLazyDrop( HWND hwndTarget,
  1006.                              ULONG ulOperation,
  1007.                              PPOINTL pptlDrop );
  1008.    
  1009.    PDRAGINFO APIENTRY DrgQueryDraginfoPtr( PDRAGINFO pRsvd );
  1010.    
  1011.    PDRAGINFO APIENTRY DrgQueryDraginfoPtrFromHwnd( HWND hwndSource );
  1012.    
  1013.    PDRAGINFO APIENTRY DrgQueryDraginfoPtrFromDragitem( PDRAGITEM pditem );
  1014.    
  1015.    ULONG APIENTRY DrgQueryDragStatus(VOID);
  1016.    
  1017.    PDRAGINFO APIENTRY DrgReallocDraginfo (PDRAGINFO pdinfoOld,
  1018.                                           ULONG cditem);
  1019.    
  1020. #ifdef __cplusplus
  1021.    ULONG APIENTRY DrgQueryFormat(PDRAGITEM pditem,
  1022.                                  PCSZ  pszAppMech,
  1023.                                  ULONG cbBuffer,
  1024.                                  PCSZ  pBuffer,
  1025.                                  ULONG ulFMTIndex);
  1026. #else
  1027.    ULONG APIENTRY DrgQueryFormat(PDRAGITEM pditem,
  1028.                                  PSZ pszAppMech,
  1029.                                  ULONG cbBuffer,
  1030.                                  PSZ pBuffer,
  1031.                                  ULONG ulFMTIndex);
  1032. #endif
  1033.    
  1034.    
  1035. #endif  /* !INCL_WINSTDDRAG_INCLUDED && INCL_WINSTDDRAG */
  1036.  
  1037.  
  1038. #if !(defined (INCL_WINSTDCNR_INCLUDED) || !defined (INCL_WINSTDCNR))
  1039.    #define INCL_WINSTDCNR_INCLUDED
  1040.    /**********************************************************************/
  1041.    /*                                                                    */
  1042.    /*                         C O N T A I N E R                          */
  1043.    /*                                                                    */
  1044.    /**********************************************************************/
  1045.    
  1046.    #define CFA_IGNORE      0x80000000L  /* flData bit for FieldInfo        */
  1047.    #define CRA_IGNORE      0x00008000L  /* flRecordAttr bit for Recordcore */
  1048.    #define CRA_SOURCE      0x00004000L  /* flRecordAttr bit for Recordcore */
  1049.    #define CRA_DISABLED    0x00001000L  /* flRecordAttr bit for Recordcore */
  1050.    #define CRA_OWNERFREE   0x00010000L  /* flRecordAttr bit for Recordcore */
  1051.    #define CRA_OWNERDRAW   0x00020000L  /* flRecordAttr bit for Recordcore */
  1052.    #define CV_EXACTLENGTH  0x10000000L  /* Exact match for SearchString    */
  1053.    #define CMA_FILTER      0x1000       /* Filtering through invalidation  */
  1054.    #define CCS_MINIICONS    0x00000800L  /* Style to have container support */
  1055.    /* mini icons with the minirecord. */
  1056.    #define CCS_NOCONTROLPTR 0x00001000L  /* don't send WM_CONTROLPOINTER on */
  1057.    /* WM_MOUSEMOVE                    */
  1058.    
  1059.    /**********************************************************************/
  1060.    /* Error constants                                                    */
  1061.    /**********************************************************************/
  1062.    #define PMERR_NOFILTERED_ITEMS          0x1f02
  1063.    #define PMERR_COMPARISON_FAILED         0x1f03
  1064.    #define PMERR_RECORD_CURRENTLY_INSERTED 0x1f04
  1065.    #define PMERR_FI_CURRENTLY_INSERTED     0x1f05
  1066.    
  1067.    /**********************************************************************/
  1068.    /* Container control styles.                                          */
  1069.    /**********************************************************************/
  1070.    #define CCS_EXTENDSEL             0x00000001L
  1071.    #define CCS_MULTIPLESEL           0x00000002L
  1072.    #define CCS_SINGLESEL             0x00000004L
  1073.    #define CCS_AUTOPOSITION          0x00000008L
  1074.    #define CCS_VERIFYPOINTERS        0x00000010L
  1075.    #define CCS_READONLY              0x00000020L
  1076.    #define CCS_MINIRECORDCORE        0x00000040L
  1077.    /* Style to have container support mini icons with the minirecord. */
  1078.    #define CCS_MINIICONS             0x00000800L
  1079.    /* don't send WM_CONTROLPOINTER on WM_MOUSEMOVE                    */
  1080.    #define CCS_NOCONTROLPTR          0x00001000L
  1081.    
  1082.    /**********************************************************************/
  1083.    /* view identifiers           (flWindowAttr)                          */
  1084.    /**********************************************************************/
  1085.    #define CV_TEXT                  0x00000001L  /* text view            */
  1086.    #define CV_NAME                  0x00000002L  /* name view            */
  1087.    #define CV_ICON                  0x00000004L  /* icon view            */
  1088.    #define CV_DETAIL                0x00000008L  /* detail view          */
  1089.    #define CV_FLOW                  0x00000010L  /* flow items           */
  1090.    #define CV_MINI                  0x00000020L  /* use mini icon        */
  1091.    #define CV_TREE                  0x00000040L  /* tree view            */
  1092.    #define CV_GRID                  0x00000080L  /* gridded icon view    */
  1093.    #define CV_EXACTLENGTH           0x10000000L  /* Exact match for SearchString */
  1094.    
  1095.    /**********************************************************************/
  1096.    /* Container Attributes        (flWindowAttr)                         */
  1097.    /**********************************************************************/
  1098.    #define CA_CONTAINERTITLE        0x00000200L
  1099.    #define CA_TITLESEPARATOR        0x00000400L
  1100.    #define CA_TITLELEFT             0x00000800L
  1101.    #define CA_TITLERIGHT            0x00001000L
  1102.    #define CA_TITLECENTER           0x00002000L
  1103.    #define CA_OWNERDRAW             0x00004000L
  1104.    #define CA_DETAILSVIEWTITLES     0x00008000L
  1105.    #define CA_ORDEREDTARGETEMPH     0x00010000L
  1106.    #define CA_DRAWBITMAP            0x00020000L
  1107.    #define CA_DRAWICON              0x00040000L
  1108.    #define CA_TITLEREADONLY         0x00080000L
  1109.    #define CA_OWNERPAINTBACKGROUND  0x00100000L
  1110.    #define CA_MIXEDTARGETEMPH       0x00200000L
  1111.    #define CA_TREELINE              0x00400000L
  1112.    
  1113.    /**********************************************************************/
  1114.    /* child window IDs                                                   */
  1115.    /**********************************************************************/
  1116.    #define CID_LEFTCOLTITLEWND     0x7FF0   /* column title (left)       */
  1117.    #define CID_RIGHTCOLTITLEWND    0x7FF1   /* right column title        */
  1118.    #define CID_BLANKBOX            0x7FF2   /* blank box at bottom right */
  1119.    #define CID_HSCROLL             0x7FF3   /* horizontal scroll bar     */
  1120.    #define CID_RIGHTHSCROLL        0x7FF4   /* right horz scroll bar     */
  1121.    #define CID_CNRTITLEWND         0x7FF5   /* Container title window    */
  1122.    #define CID_LEFTDVWND           0x7FF7   /* Left Details View window  */
  1123.    #define CID_RIGHTDVWND          0x7FF8   /* Right Details View window */
  1124.    #define CID_VSCROLL             0x7FF9   /* vertical scroll bar       */
  1125.    #define CID_MLE                 0x7FFA   /* MLE window for direct edit*/
  1126.    
  1127.    /**********************************************************************/
  1128.    /* Bitmap descriptor array element.                                   */
  1129.    /**********************************************************************/
  1130.    typedef struct _TREEITEMDESC     /* treend */
  1131.    {
  1132.       HBITMAP       hbmExpanded;
  1133.       HBITMAP       hbmCollapsed;
  1134.       HPOINTER      hptrExpanded;
  1135.       HPOINTER      hptrCollapsed;
  1136.    } TREEITEMDESC;
  1137.    typedef TREEITEMDESC *PTREEITEMDESC;
  1138.    
  1139.    /**********************************************************************/
  1140.    /* Field Info data structure, attribute and data types, CV_DETAIL     */
  1141.    /**********************************************************************/
  1142.    typedef struct _FIELDINFO      /* fldinfo */
  1143.    {
  1144.       ULONG      cb;                  /* size of FIELDINFO struct       */
  1145.       ULONG      flData;              /* attributes of field's data     */
  1146.       ULONG      flTitle;             /* attributes of field's title    */
  1147.       PVOID      pTitleData;          /* title data (default is string) */
  1148.       /*                                 If CFT_BITMAP, must be HBITMAP */
  1149.       ULONG      offStruct;           /* offset from RECORDCORE to data */
  1150.       PVOID      pUserData;           /* pointer to user data           */
  1151.       struct _FIELDINFO *pNextFieldInfo; /* pointer to next linked  */
  1152.       /*                                          FIELDINFO structure   */
  1153.       ULONG      cxWidth;             /* width of field in pels         */
  1154.    } FIELDINFO;
  1155.    typedef FIELDINFO *PFIELDINFO;
  1156.    
  1157.    /**********************************************************************/
  1158.    /* RECORDCORE data structure , attribute values                       */
  1159.    /**********************************************************************/
  1160.    typedef struct _RECORDCORE     /* recc */
  1161.    {
  1162.       ULONG       cb;
  1163.       ULONG       flRecordAttr;        /* record attributes             */
  1164.       POINTL      ptlIcon;             /* Position of CV_ICON item      */
  1165.       struct _RECORDCORE *preccNextRecord;   /* ptr to next record  */
  1166.       PSZ         pszIcon;             /* Text for CV_ICON view         */
  1167.       HPOINTER    hptrIcon;            /* Icon to display for ~CV_MINI  */
  1168.       HPOINTER    hptrMiniIcon;        /* Icon to display for CV_MINI   */
  1169.       HBITMAP     hbmBitmap;           /* Bitmap to display for ~CV_MINI*/
  1170.       HBITMAP     hbmMiniBitmap;       /* Bitmap to display for CV_MINI */
  1171.       PTREEITEMDESC pTreeItemDesc;     /* Icons for the tree view       */
  1172.       PSZ         pszText;             /* Text for CV_TEXT view         */
  1173.       PSZ         pszName;             /* Text for CV_NAME view         */
  1174.       PSZ         pszTree;             /* Text for CV_TREE view         */
  1175.    } RECORDCORE;
  1176.    typedef RECORDCORE *PRECORDCORE;
  1177.    
  1178.    /**********************************************************************/
  1179.    /* MINIRECORDCORE data structure, attribute values                    */
  1180.    /**********************************************************************/
  1181.    typedef struct _MINIRECORDCORE     /* minirec */
  1182.    {
  1183.       ULONG       cb;
  1184.       ULONG       flRecordAttr;        /* record attributes             */
  1185.       POINTL      ptlIcon;             /* Position of CV_ICON item      */
  1186.       struct _MINIRECORDCORE *preccNextRecord; /*ptr to next record */
  1187.       PSZ         pszIcon;             /* Text for CV_ICON view         */
  1188.       HPOINTER    hptrIcon;            /* Icon to display for ~CV_MINI  */
  1189.    } MINIRECORDCORE;
  1190.    typedef MINIRECORDCORE *PMINIRECORDCORE;
  1191.    
  1192.    /**********************************************************************/
  1193.    /* Data structure for moving nodes in the tree to a new parent.       */
  1194.    /**********************************************************************/
  1195.    typedef struct _TREEMOVE          /* treemv */
  1196.    {
  1197.       PRECORDCORE preccMove;         /* Record to be moved.        */
  1198.       PRECORDCORE preccNewParent;    /* New parent for preccMove.  */
  1199.       PRECORDCORE pRecordOrder;      /* Record order for siblings. */
  1200.       BOOL        flMoveSiblings;    /* TRUE: Siblings after preccMove */
  1201.       /* move to new parent as well.    */
  1202.    } TREEMOVE;
  1203.    typedef TREEMOVE *PTREEMOVE;
  1204.    
  1205.    /**********************************************************************/
  1206.    /* CNRINFO data structure, describes the container control.           */
  1207.    /**********************************************************************/
  1208.    typedef struct _CNRINFO     /* ccinfo */
  1209.    {
  1210.       ULONG       cb;                  /* size of CNRINFO struct        */
  1211.       PVOID       pSortRecord;         /* ptr to sort function,         */
  1212.       /*                                    RECORDCORE                  */
  1213.       PFIELDINFO  pFieldInfoLast;      /* pointer to last column in     */
  1214.       /*                                    left pane of a split window.*/
  1215.       PFIELDINFO  pFieldInfoObject;    /* Pointer to a column to        */
  1216.       /*                                  represent an object.  This is */
  1217.       /*                                  the column which will receive */
  1218.       /*                                  IN-USE emphasis.              */
  1219.       PSZ         pszCnrTitle;         /* text for container title. One */
  1220.       /*                                    string separated by line    */
  1221.       /*                                    separators for multi-lines  */
  1222.       ULONG       flWindowAttr;        /* container attrs - CV_*, CA_*  */
  1223.       POINTL      ptlOrigin;           /* lower-left origin in virtual  */
  1224.       /*                                    coordinates. CV_ICON view   */
  1225.       ULONG       cDelta;              /* Application defined threshold */
  1226.       /*                                    or number of records from   */
  1227.       /*                                    either end of the list.     */
  1228.       ULONG       cRecords;            /* number of records in container*/
  1229.       SIZEL       slBitmapOrIcon;      /* size of bitmap in pels        */
  1230.       SIZEL       slTreeBitmapOrIcon;  /* size of tree bitmaps in pels  */
  1231.       HBITMAP     hbmExpanded;         /* bitmap  for tree node         */
  1232.       HBITMAP     hbmCollapsed;        /* bitmap  for tree node         */
  1233.       HPOINTER    hptrExpanded;        /* icon    for tree node         */
  1234.       HPOINTER    hptrCollapsed;       /* icon    for tree node         */
  1235.       LONG        cyLineSpacing;       /* space between two rows        */
  1236.       LONG        cxTreeIndent;        /* indent for children           */
  1237.       LONG        cxTreeLine;          /* thickness of the Tree Line    */
  1238.       ULONG       cFields;             /* number of fields  in container*/
  1239.       LONG        xVertSplitbar;       /* position relative to the      */
  1240.       /*                                    container (CV_DETAIL); if   */
  1241.       /*                                    0xFFFF then unsplit         */
  1242.    } CNRINFO;
  1243.    typedef CNRINFO *PCNRINFO;
  1244.    
  1245.    typedef struct _GRIDSQUARE       /* gridsquare */
  1246.    {
  1247.       ULONG ulNumber;                /* Number of this grid square.   */
  1248.       ULONG ulState;                 /* State: CMA_AVAIL, CMA_UNAVAIL */
  1249.       RECTL rctlSquare;              /* Rectangle of grid square.     */
  1250.    } GRIDSQUARE;
  1251.    typedef GRIDSQUARE *PGRIDSQUARE;
  1252.    
  1253.    typedef struct _GRIDINFO         /* gridinfo */
  1254.    {
  1255.       ULONG cb;                      /* sizeof gridinfo                     */
  1256.       SHORT cxGrid;                  /* width of grid squares.              */
  1257.       SHORT cyGrid;                  /* height of grid squares.             */
  1258.       SHORT sGridRows;               /* total rows in the grid.             */
  1259.       SHORT sGridCols;               /* total cols in the grid.             */
  1260.       LONG  cGridSquares;            /* total grid squares (rows*cols).     */
  1261.       PGRIDSQUARE pGrid;             /* pointer to array of grid squares.   */
  1262.    } GRIDINFO;
  1263.    typedef GRIDINFO *PGRIDINFO;
  1264.    
  1265.    typedef struct _CDATE     /* cdate */
  1266.    {
  1267.       UCHAR   day;                         /* current day               */
  1268.       UCHAR   month;                       /* current month             */
  1269.       USHORT  year;                        /* current year              */
  1270.    } CDATE;
  1271.    typedef CDATE *PCDATE;
  1272.    
  1273.    typedef struct _CTIME     /* ctime */
  1274.    {
  1275.       UCHAR   hours;                       /* current hour              */
  1276.       UCHAR   minutes;                     /* current minute            */
  1277.       UCHAR   seconds;                     /* current second            */
  1278.       UCHAR   ucReserved;                  /* reserved                  */
  1279.    } CTIME;
  1280.    typedef CTIME *PCTIME;
  1281.    
  1282.    /**********************************************************************/
  1283.    /* attribute and type values for flData and flTitle members of        */
  1284.    /* FIELDINFO, CFA_ (attributes), CFT_ (types)                         */
  1285.    /**********************************************************************/
  1286.    #define CFA_LEFT            0x00000001L /* left align text            */
  1287.    #define CFA_RIGHT           0x00000002L /* right align text           */
  1288.    #define CFA_CENTER          0x00000004L /* center text                */
  1289.    #define CFA_TOP             0x00000008L /* top-align text             */
  1290.    #define CFA_VCENTER         0x00000010L /* vertically center text     */
  1291.    #define CFA_BOTTOM          0x00000020L /* bottom-align text          */
  1292.    #define CFA_INVISIBLE       0x00000040L /* Specify invisible column.  */
  1293.    #define CFA_BITMAPORICON    0x00000100L /* field title is bitmap      */
  1294.    #define CFA_SEPARATOR       0x00000200L /* vert sep, right of fld     */
  1295.    #define CFA_HORZSEPARATOR   0x00000400L /* horz sep, bottom of fld    */
  1296.    
  1297.    #define CFA_STRING          0x00000800L /* string of characters       */
  1298.    #define CFA_OWNER           0x00001000L /* ownerdraw field            */
  1299.    #define CFA_DATE            0x00002000L /* date structure             */
  1300.    #define CFA_TIME            0x00004000L /* time structure             */
  1301.    #define CFA_FIREADONLY      0x00008000L /* Column is read-only.       */
  1302.    #define CFA_FITITLEREADONLY 0x00010000L /* Column Title is read-only  */
  1303.    #define CFA_ULONG           0x00020000L /* Column is number format    */
  1304.    
  1305.    #define CFA_RANGE           0x00040000L
  1306.    #define CFA_NEWCOMP         0x00080000L
  1307.    #define CFA_OBJECT          0x00100000L
  1308.    #define CFA_LIST            0x00200000L
  1309.    #define CFA_CLASS           0x00400000L
  1310.    
  1311.    #define CFA_IGNORE          0x80000000L  /* flData bit for FieldInfo */
  1312.    
  1313.    /**********************************************************************/
  1314.    /* attribute values for flRecordAttr member of RECORDCORE             */
  1315.    /**********************************************************************/
  1316.    #define CRA_SELECTED        0x00000001L /* record is selected         */
  1317.    #define CRA_TARGET          0x00000002L /* record has target emphasis */
  1318.    #define CRA_CURSORED        0x00000004L /* cursor is on the record    */
  1319.    #define CRA_INUSE           0x00000008L /* record has in-use emphasis */
  1320.    #define CRA_FILTERED        0x00000010L /* record has been filtered   */
  1321.    #define CRA_DROPONABLE      0x00000020L /* record can be dropped on   */
  1322.    #define CRA_RECORDREADONLY  0x00000040L /* record is read-only        */
  1323.    #define CRA_EXPANDED        0x00000080L /* record is expanded         */
  1324.    #define CRA_COLLAPSED       0x00000100L /* record is collapsed        */
  1325.    #define CRA_PICKED          0x00000200L /* record picked (Lazy Drag). */
  1326.    #define CRA_LOCKED          0x00000400L /* record is locked.          */
  1327.    #define CRA_DISABLED        0x00001000L /* record is disabled.        */
  1328.    #define CRA_SOURCE          0x00004000L /* record has source emph.    */
  1329.    #define CRA_IGNORE          0x00008000L /* record is to be ignored    */
  1330.    #define CRA_OWNERFREE       0x00010000L /* owner must free record.    */
  1331.    #define CRA_OWNERDRAW       0x00020000L /* owner must draw record.    */
  1332.    
  1333.    /**********************************************************************/
  1334.    /* Container messages                                                 */
  1335.    /**********************************************************************/
  1336.    #define CM_ALLOCDETAILFIELDINFO       0x0330
  1337.    #define CM_ALLOCRECORD                0x0331
  1338.    #define CM_ARRANGE                    0x0332
  1339.    #define CM_ERASERECORD                0x0333
  1340.    #define CM_FILTER                     0x0334
  1341.    #define CM_FREEDETAILFIELDINFO        0x0335
  1342.    #define CM_FREERECORD                 0x0336
  1343.    #define CM_HORZSCROLLSPLITWINDOW      0x0337
  1344.    #define CM_INSERTDETAILFIELDINFO      0x0338
  1345.    #define CM_INSERTRECORD               0x0339
  1346.    #define CM_INVALIDATEDETAILFIELDINFO  0x033a
  1347.    #define CM_INVALIDATERECORD           0x033b
  1348.    #define CM_PAINTBACKGROUND            0x033c
  1349.    #define CM_QUERYCNRINFO               0x033d
  1350.    #define CM_QUERYDETAILFIELDINFO       0x033e
  1351.    #define CM_QUERYDRAGIMAGE             0x033f
  1352.    #define CM_QUERYRECORD                0x0340
  1353.    #define CM_QUERYRECORDEMPHASIS        0x0341
  1354.    #define CM_QUERYRECORDFROMRECT        0x0342
  1355.    #define CM_QUERYRECORDRECT            0x0343
  1356.    #define CM_QUERYVIEWPORTRECT          0x0344
  1357.    #define CM_REMOVEDETAILFIELDINFO      0x0345
  1358.    #define CM_REMOVERECORD               0x0346
  1359.    #define CM_SCROLLWINDOW               0x0347
  1360.    #define CM_SEARCHSTRING               0x0348
  1361.    #define CM_SETCNRINFO                 0x0349
  1362.    #define CM_SETRECORDEMPHASIS          0x034a
  1363.    #define CM_SORTRECORD                 0x034b
  1364.    #define CM_OPENEDIT                   0x034c
  1365.    #define CM_CLOSEEDIT                  0x034d
  1366.    #define CM_COLLAPSETREE               0x034e
  1367.    #define CM_EXPANDTREE                 0x034f
  1368.    #define CM_QUERYRECORDINFO            0x0350
  1369.    #define CM_INSERTRECORDARRAY          0x0351
  1370.    #define CM_MOVETREE                   0x0352
  1371.    #define CM_SETTEXTVISIBILITY          0x0353
  1372.    #define CM_SETGRIDINFO                0x0354
  1373.    #define CM_QUERYGRIDINFO              0x0355
  1374.    #define CM_SNAPTOGRID                 0x0356
  1375.    
  1376.    /**********************************************************************/
  1377.    /* Container notifications                                            */
  1378.    /**********************************************************************/
  1379.    #define CN_DRAGAFTER                  101
  1380.    #define CN_DRAGLEAVE                  102
  1381.    #define CN_DRAGOVER                   103
  1382.    #define CN_DROP                          104
  1383.    #define CN_DROPHELP                   105
  1384.    #define CN_ENTER                         106
  1385.    #define CN_INITDRAG                   107
  1386.    #define CN_EMPHASIS                   108
  1387.    #define CN_KILLFOCUS                  109
  1388.    #define CN_SCROLL                        110
  1389.    #define CN_QUERYDELTA                 111
  1390.    #define CN_SETFOCUS                   112
  1391.    #define CN_REALLOCPSZ                 113
  1392.    #define CN_BEGINEDIT                  114
  1393.    #define CN_ENDEDIT                    115
  1394.    #define CN_COLLAPSETREE               116
  1395.    #define CN_EXPANDTREE                 117
  1396.    #define CN_HELP                       118
  1397.    #define CN_CONTEXTMENU                119
  1398.    #define CN_VERIFYEDIT                 134
  1399.    #define CN_PICKUP                     135
  1400.    #define CN_DROPNOTIFY                 136
  1401.    #define CN_GRIDRESIZED                137
  1402.    
  1403.    /**********************************************************************/
  1404.    /*   Data Structures for Message Parameters                           */
  1405.    /**********************************************************************/
  1406.    
  1407.    /**********************************************************************/
  1408.    /* Container Direct Manipulation structures                           */
  1409.    /**********************************************************************/
  1410.    typedef struct _CNRDRAGINIT     /* cdrginit */
  1411.    {
  1412.       HWND        hwndCnr;                 /* Container window handle   */
  1413.       PRECORDCORE pRecord;                 /* record under mouse ptr    */
  1414.       LONG        x;                       /* x coordinate of mouse ptr */
  1415.       LONG        y;                       /* y coordinate of mouse ptr */
  1416.       LONG        cx;                      /* x offset from record      */
  1417.       LONG        cy;                      /* y offset from record      */
  1418.    } CNRDRAGINIT;
  1419.    typedef CNRDRAGINIT *PCNRDRAGINIT;
  1420.    
  1421.    /**********************************************************************/
  1422.    /* Data structure for CM_INSERTDETAILFIELDINFO                        */
  1423.    /* This structure is used by the application to specify the position  */
  1424.    /* of the FieldInfo structures they are inserting.                    */
  1425.    /**********************************************************************/
  1426.    typedef struct _FIELDINFOINSERT     /* fiins */
  1427.    {
  1428.       ULONG       cb;                  /* Size of structure.             */
  1429.       PFIELDINFO  pFieldInfoOrder;     /* Specifies the order of the     */
  1430.       /*                                  FieldInfo structures.          */
  1431.       ULONG       fInvalidateFieldInfo;/* Invalidate on Insert.          */
  1432.       ULONG       cFieldInfoInsert;    /* The number of FieldInfo        */
  1433.       /*                                  structures to insert.          */
  1434.    } FIELDINFOINSERT;
  1435.    typedef FIELDINFOINSERT *PFIELDINFOINSERT;
  1436.    
  1437.    /**********************************************************************/
  1438.    /* Data structure for CM_INSERTRECORD                                 */
  1439.    /**********************************************************************/
  1440.    typedef struct _RECORDINSERT     /* recins */
  1441.    {
  1442.       ULONG       cb;
  1443.       PRECORDCORE pRecordOrder;
  1444.       PRECORDCORE pRecordParent;
  1445.       ULONG       fInvalidateRecord;
  1446.       ULONG       zOrder;
  1447.       ULONG       cRecordsInsert;
  1448.    } RECORDINSERT;
  1449.    typedef RECORDINSERT *PRECORDINSERT;
  1450.    
  1451.    /**********************************************************************/
  1452.    /* Data structure for CM_QUERYRECORDFROMRECT                          */
  1453.    /**********************************************************************/
  1454.    typedef struct _QUERYRECFROMRECT     /* qrecfrct */
  1455.    {
  1456.       ULONG   cb;
  1457.       RECTL   rect;
  1458.       ULONG   fsSearch;
  1459.    } QUERYRECFROMRECT;
  1460.    typedef QUERYRECFROMRECT *PQUERYRECFROMRECT;
  1461.    
  1462.    /**********************************************************************/
  1463.    /* Data structure for CM_QUERYRECORDRECT                              */
  1464.    /**********************************************************************/
  1465.    typedef struct _QUERYRECORDRECT     /* qrecrct */
  1466.    {
  1467.       ULONG        cb;
  1468.       PRECORDCORE  pRecord;
  1469.       ULONG        fRightSplitWindow;
  1470.       ULONG        fsExtent;
  1471.    } QUERYRECORDRECT;
  1472.    typedef QUERYRECORDRECT *PQUERYRECORDRECT;
  1473.    
  1474.    /**********************************************************************/
  1475.    /* Data structure for CM_SEARCHSTRING                                 */
  1476.    /**********************************************************************/
  1477.    typedef struct _SEARCHSTRING     /* srchstr */
  1478.    {
  1479.       ULONG  cb;
  1480.       PSZ    pszSearch;
  1481.       ULONG  fsPrefix;
  1482.       ULONG  fsCaseSensitive;
  1483.       ULONG  usView;
  1484.    } SEARCHSTRING;
  1485.    typedef SEARCHSTRING *PSEARCHSTRING;
  1486.    
  1487.    #ifdef INCL_WINSTDDRAG
  1488.       /*******************************************************************/
  1489.       /* Data Structure for CN_DRAGLEAVE,CN_DRAGOVER,CN_DROP,CN_DROPHELP */
  1490.       /*******************************************************************/
  1491.       typedef struct _CNRDRAGINFO     /* cdrginfo */
  1492.       {
  1493.          PDRAGINFO   pDragInfo;
  1494.          PRECORDCORE pRecord;
  1495.       } CNRDRAGINFO;
  1496.       typedef CNRDRAGINFO *PCNRDRAGINFO;
  1497.       
  1498.       /*******************************************************************/
  1499.       /* Data Structure for CN_DROPNOTIFY                                */
  1500.       /*******************************************************************/
  1501.       typedef struct _CNRLAZYDRAGINFO     /* clzdrginfo */
  1502.       {
  1503.          PDRAGINFO pDragInfo;
  1504.          PRECORDCORE pRecord;
  1505.          HWND hwndTarget;
  1506.       } CNRLAZYDRAGINFO;
  1507.       typedef CNRLAZYDRAGINFO *PCNRLAZYDRAGINFO;
  1508.       
  1509.    #endif
  1510.    
  1511.    /**********************************************************************/
  1512.    /* Data structure for CN_EMPHASIS                                     */
  1513.    /**********************************************************************/
  1514.    typedef struct _NOTIFYRECORDEMPHASIS     /* nrecemph */
  1515.    {
  1516.       HWND        hwndCnr;
  1517.       PRECORDCORE pRecord;
  1518.       ULONG       fEmphasisMask;
  1519.    } NOTIFYRECORDEMPHASIS;
  1520.    typedef NOTIFYRECORDEMPHASIS *PNOTIFYRECORDEMPHASIS;
  1521.    
  1522.    /**********************************************************************/
  1523.    /* Data structure for CN_ENTER                                        */
  1524.    /**********************************************************************/
  1525.    typedef struct _NOTIFYRECORDENTER     /* notrecen */
  1526.    {
  1527.       HWND        hwndCnr;
  1528.       ULONG       fKey;
  1529.       PRECORDCORE pRecord;
  1530.    } NOTIFYRECORDENTER;
  1531.    typedef NOTIFYRECORDENTER *PNOTIFYRECORDENTER;
  1532.    
  1533.    /**********************************************************************/
  1534.    /* Data structure for CN_QUERYDELTA                                   */
  1535.    /**********************************************************************/
  1536.    typedef struct _NOTIFYDELTA     /* notdlt */
  1537.    {
  1538.       HWND        hwndCnr;
  1539.       ULONG       fDelta;
  1540.    } NOTIFYDELTA;
  1541.    typedef NOTIFYDELTA *PNOTIFYDELTA;
  1542.    
  1543.    /**********************************************************************/
  1544.    /* Data structure for CN_SCROLL                                       */
  1545.    /**********************************************************************/
  1546.    typedef struct _NOTIFYSCROLL     /* notscr */
  1547.    {
  1548.       HWND        hwndCnr;
  1549.       LONG        lScrollInc;
  1550.       ULONG       fScroll;
  1551.    } NOTIFYSCROLL;
  1552.    typedef NOTIFYSCROLL *PNOTIFYSCROLL;
  1553.    
  1554.    /**********************************************************************/
  1555.    /* Data structure for CN_REALLOCPSZ                                   */
  1556.    /**********************************************************************/
  1557.    typedef struct _CNREDITDATA     /* cnredat */
  1558.    {
  1559.       ULONG        cb;
  1560.       HWND         hwndCnr;
  1561.       PRECORDCORE  pRecord;
  1562.       PFIELDINFO   pFieldInfo;
  1563.       PSZ *ppszText;                   /* address of PSZ        */
  1564.       ULONG        cbText;                     /* size of the new text  */
  1565.       ULONG        id;
  1566.    } CNREDITDATA;
  1567.    typedef CNREDITDATA *PCNREDITDATA;
  1568.    
  1569.    /**********************************************************************/
  1570.    /* Data structure for CM_PAINTBACKGROUND                              */
  1571.    /**********************************************************************/
  1572.    typedef struct _OWNERBACKGROUND     /* ownbckg */
  1573.    {
  1574.       HWND    hwnd;
  1575.       HPS     hps;
  1576.       RECTL   rclBackground;
  1577.       LONG    idWindow;
  1578.    } OWNERBACKGROUND;
  1579.    typedef OWNERBACKGROUND *POWNERBACKGROUND;
  1580.    
  1581.    /**********************************************************************/
  1582.    /* Data structure used as part of WM_DRAWITEM                         */
  1583.    /**********************************************************************/
  1584.    typedef struct _CNRDRAWITEMINFO     /* cnrdrwii */
  1585.    {
  1586.       PRECORDCORE  pRecord;
  1587.       PFIELDINFO   pFieldInfo;
  1588.    } CNRDRAWITEMINFO;
  1589.    typedef CNRDRAWITEMINFO *PCNRDRAWITEMINFO;
  1590.    
  1591.    /**********************************************************************/
  1592.    /* Message parameter flags                                            */
  1593.    /**********************************************************************/
  1594.    #define CMA_TOP              0x0001       /* Place at top of zorder   */
  1595.    #define CMA_BOTTOM           0x0002       /* Place at bottom of zorder*/
  1596.    #define CMA_LEFT             0x0004
  1597.    #define CMA_RIGHT            0x0008
  1598.    #define CMA_PERIMETER        0x0010       /* additional arrange flags. */
  1599.    #define CMA_USER             0x0020
  1600.    
  1601.    #define CMA_FIRST            0x0010       /* Add record as first      */
  1602.    #define CMA_LAST             0x0020
  1603.    #define CMA_END              0x0040       /* Add record to end of list*/
  1604.    #define CMA_PREV             0x0080
  1605.    #define CMA_NEXT             0x0100
  1606.    
  1607.    #define CMA_HORIZONTAL       0x0200
  1608.    #define CMA_VERTICAL         0x0400
  1609.    #define CMA_ICON             0x0800
  1610.    #define CMA_TEXT             0x1000
  1611.    #define CMA_PARTIAL          0x2000
  1612.    #define CMA_COMPLETE         0x4000
  1613.    
  1614.    #define CMA_PARENT           0x0001
  1615.    #define CMA_FIRSTCHILD       0x0002
  1616.    #define CMA_LASTCHILD        0x0004
  1617.    
  1618.    #define CMA_CNRTITLE         0x0001       /* Container title          */
  1619.    #define CMA_DELTA            0x0002       /* Application defined      */
  1620.    #define CMA_FLWINDOWATTR     0x0004       /* Container attributes     */
  1621.    #define CMA_LINESPACING      0x0008
  1622.    #define CMA_PFIELDINFOLAST   0x0010       /* Ptr to last column in    */
  1623.    
  1624.    #define CMA_PSORTRECORD      0x0020       /* Pointer to sort function */
  1625.    #define CMA_PTLORIGIN        0x0040       /* Lower left origin        */
  1626.    #define CMA_SLBITMAPORICON   0x0080       /* Size  of bitmap          */
  1627.    #define CMA_XVERTSPLITBAR    0x0100       /* Splitbar position        */
  1628.    #define CMA_PFIELDINFOOBJECT 0x0200       /* Pointer to IN-USE        */
  1629.    /*                                             emphasis column.       */
  1630.    
  1631.    #define CMA_TREEICON           0x0400     /* Icon for tree node      */
  1632.    #define CMA_TREEBITMAP         0x0800     /* bitmap for tree node    */
  1633.    #define CMA_CXTREEINDENT       0x1000     /* indent for children     */
  1634.    #define CMA_CXTREELINE         0x2000     /* thickness of tree line  */
  1635.    #define CMA_SLTREEBITMAPORICON 0x4000     /* size of icon of tree node */
  1636.    
  1637.    #define CMA_ITEMORDER        0x0001       /* QueryRecord search flags */
  1638.    #define CMA_WINDOW           0x0002
  1639.    #define CMA_WORKSPACE        0x0004
  1640.    #define CMA_ZORDER           0x0008
  1641.    
  1642.    #define CMA_DELTATOP         0x0001       /* Industrial - top delta   */
  1643.    #define CMA_DELTABOT         0x0002       /* Industrial - bottom delta*/
  1644.    #define CMA_DELTAHOME        0x0004       /* Industrial - top of list */
  1645.    #define CMA_DELTAEND         0x0008       /* Industrial - end of list */
  1646.    
  1647.    #define CMA_NOREPOSITION     0x0001    /* InvalidateRecord flags      */
  1648.    #define CMA_REPOSITION       0x0002
  1649.    #define CMA_TEXTCHANGED      0x0004
  1650.    #define CMA_ERASE            0x0008
  1651.    #define CMA_NOTEXTCHANGED    0x0010
  1652.    #define CMA_FILTER           0x1000    /* Filtering through invalidation  */
  1653.    
  1654.    #define CMA_FREE             0x0001
  1655.    #define CMA_INVALIDATE       0x0002
  1656.    
  1657.    #define CMA_ARRANGESTANDARD  0x0000
  1658.    #define CMA_ARRANGEGRID      0x0001
  1659.    #define CMA_ARRANGESELECTED  0x0002
  1660.    
  1661.    #define CMA_AVAIL            0x0001  /* Grid square is available.   */
  1662.    #define CMA_UNAVAIL          0x0002  /* Grid square is unavailable. */
  1663.    
  1664. #endif /* !INCL_WINSTDCNR_INCLUDED && INCL_WINSTDCNR */
  1665.  
  1666.  
  1667. #if !(defined (INCL_WINSTDSLIDER_INCLUDED) || !defined (INCL_WINSTDSLIDER))
  1668.    #define INCL_WINSTDSLIDER_INCLUDED
  1669.    /**********************************************************************/
  1670.    /*                                                                    */
  1671.    /*                            S L I D E R                             */
  1672.    /*                                                                    */
  1673.    /**********************************************************************/
  1674.    
  1675.    /**********************************************************************/
  1676.    /* Define messages for the slider control                             */
  1677.    /**********************************************************************/
  1678.    #define SLM_ADDDETENT          0x0369    /* Add detent niche          */
  1679.    #define SLM_QUERYDETENTPOS     0x036a    /* Query position of detent  */
  1680.    #define SLM_QUERYSCALETEXT     0x036b    /* Query text at tick number */
  1681.    #define SLM_QUERYSLIDERINFO    0x036c    /* Query slider information  */
  1682.    #define SLM_QUERYTICKPOS       0x036d    /* Query position of tick    */
  1683.    #define SLM_QUERYTICKSIZE      0x036e    /* Query size of tick        */
  1684.    #define SLM_REMOVEDETENT       0x036f    /* Remove detent niche       */
  1685.    #define SLM_SETSCALETEXT       0x0370    /* Set text above tick       */
  1686.    #define SLM_SETSLIDERINFO      0x0371    /* Set slider parameters     */
  1687.    #define SLM_SETTICKSIZE        0x0372    /* Set size of tick          */
  1688.    #define SLN_CHANGE             1         /* Slider position changed   */
  1689.    #define SLN_SLIDERTRACK        2         /* Slider dragged by user    */
  1690.    #define SLN_SETFOCUS           3         /* Slider gaining focus      */
  1691.    #define SLN_KILLFOCUS          4         /* Slider losing focus       */
  1692.    
  1693.    /**********************************************************************/
  1694.    /* Slider control data structure                                      */
  1695.    /**********************************************************************/
  1696.    typedef struct _SLDCDATA     /* sldcd */
  1697.    {
  1698.       ULONG   cbSize;                /* Size of control block             */
  1699.       USHORT  usScale1Increments;    /* # of divisions on scale           */
  1700.       USHORT  usScale1Spacing;       /* Space in pels between increments  */
  1701.       USHORT  usScale2Increments;    /* # of divisions on scale           */
  1702.       USHORT  usScale2Spacing;       /* Space in pels between increments  */
  1703.    } SLDCDATA;
  1704.    typedef SLDCDATA *PSLDCDATA;
  1705.    
  1706.    /**********************************************************************/
  1707.    /* Slider control style flag definition                               */
  1708.    /**********************************************************************/
  1709.    #define SLS_HORIZONTAL       0x00000000L /* Orient slider horizontally*/
  1710.    #define SLS_VERTICAL         0x00000001L /* Orient slider vertically  */
  1711.    #define SLS_CENTER           0x00000000L /* Center shaft in window    */
  1712.    #define SLS_BOTTOM           0x00000002L /* Offset shaft to bottom (H)*/
  1713.    #define SLS_TOP              0x00000004L /* Offset shaft to top (H)   */
  1714.    #define SLS_LEFT             0x00000002L /* Offset shaft to left (V)  */
  1715.    #define SLS_RIGHT            0x00000004L /* Offset shaft to right (V) */
  1716.    #define SLS_SNAPTOINCREMENT  0x00000008L /* Snap to nearest increment */
  1717.    #define SLS_BUTTONSBOTTOM    0x00000010L /* Add buttons at shaft bot. */
  1718.    #define SLS_BUTTONSTOP       0x00000020L /* Add buttons at shaft top  */
  1719.    #define SLS_BUTTONSLEFT      0x00000010L /* Add buttons left of shaft */
  1720.    #define SLS_BUTTONSRIGHT     0x00000020L /* Add buttons right of shaft*/
  1721.    #define SLS_OWNERDRAW        0x00000040L /* Owner draw some fields    */
  1722.    #define SLS_READONLY         0x00000080L /* Provide a read only slider*/
  1723.    #define SLS_RIBBONSTRIP      0x00000100L /* Provide a ribbon strip    */
  1724.    #define SLS_HOMEBOTTOM       0x00000000L /* Set home position at bot. */
  1725.    #define SLS_HOMETOP          0x00000200L /* Set home position at top  */
  1726.    #define SLS_HOMELEFT         0x00000000L /* Set home position at left */
  1727.    #define SLS_HOMERIGHT        0x00000200L /* Set home position at right*/
  1728.    #define SLS_PRIMARYSCALE1    0x00000000L /* Scale 1 is primary scale  */
  1729.    #define SLS_PRIMARYSCALE2    0x00000400L /* Scale 2 is primary scale  */
  1730.    
  1731.    /**********************************************************************/
  1732.    /* Message attributes for setting and querying slider components      */
  1733.    /**********************************************************************/
  1734.    #define SMA_SCALE1               0x0001
  1735.    #define SMA_SCALE2               0x0002
  1736.    #define SMA_SHAFTDIMENSIONS      0x0000
  1737.    #define SMA_SHAFTPOSITION        0x0001
  1738.    #define SMA_SLIDERARMDIMENSIONS  0x0002
  1739.    #define SMA_SLIDERARMPOSITION    0x0003
  1740.    #define SMA_RANGEVALUE           0x0000
  1741.    #define SMA_INCREMENTVALUE       0x0001
  1742.    #define SMA_SETALLTICKS          0xFFFF
  1743.    
  1744.    /**********************************************************************/
  1745.    /* Ownerdraw flag definitions                                         */
  1746.    /**********************************************************************/
  1747.    #define SDA_RIBBONSTRIP          0x0001
  1748.    #define SDA_SLIDERSHAFT          0x0002
  1749.    #define SDA_BACKGROUND           0x0003
  1750.    #define SDA_SLIDERARM            0x0004
  1751.    
  1752.    /**********************************************************************/
  1753.    /* Error return codes                                                 */
  1754.    /**********************************************************************/
  1755.    #define PMERR_UPDATE_IN_PROGRESS        0x1f06
  1756.    #define SLDERR_INVALID_PARAMETERS     -1
  1757.    
  1758. #endif /* !INCL_WINSTDSLIDER_INCLUDED && INCL_WINSTDSLIDER */
  1759.  
  1760. #if (defined (INCL_CIRCULARSLIDER))
  1761.    #define INCL_WINCIRCULARSLIDER
  1762. #endif
  1763.  
  1764. #if !(defined (INCL_WINCIRCULARSLIDER_INCLUDED) || !defined (INCL_WINCIRCULARSLIDER))
  1765.    #define INCL_WINCIRCULARSLIDER_INCLUDED
  1766.    /**********************************************************************/
  1767.    /*                                                                    */
  1768.    /*           C I R C U L A R   S L I D E R                            */
  1769.    /*                                                                    */
  1770.    /**********************************************************************/
  1771.    
  1772.    /**********************************************************************/
  1773.    /* Define messages for the circular slider control                    */
  1774.    /**********************************************************************/
  1775.    #define CSM_QUERYRANGE      0x053D      /* Query value range of control  */
  1776.    #define CSM_SETRANGE        0x053E      /* Set the range of values       */
  1777.    #define CSM_QUERYVALUE      0x053F      /* Query the current value       */
  1778.    #define CSM_SETVALUE        0x0540      /* Set the value for the control */
  1779.    #define CSM_QUERYRADIUS     0x0541      /* Query the current radious     */
  1780.    #define CSM_SETINCREMENT    0x0542      /* Set scroll/tick mark increment*/
  1781.    #define CSM_QUERYINCREMENT  0x0543      /* Query scroll/tick mark incr   */
  1782.    #define CSM_SETBITMAPDATA   0x0544      /* Change bitmap for +/-         */
  1783.    #define CSN_SETFOCUS        0x0548      /* Notify owner: gaining/losing  */
  1784.    #define CSN_CHANGED         0x0549      /* Notify owner: value changed   */
  1785.    #define CSN_TRACKING        0x054A      /* Notify owner: mouse tracking  */
  1786.    #define CSN_QUERYBACKGROUNDCOLOR 0x054B /* Notify owner: sets bckgrnd clr*/
  1787.    
  1788.    
  1789.    /****************************************************************************/
  1790.    /* Circular slider structure. Replaceable bit maps plus/minus buttons       */
  1791.    /****************************************************************************/
  1792.    typedef struct _CSBITMAPDATA   /* csbitmap */
  1793.    {
  1794.       HBITMAP hbmLeftUp;
  1795.       HBITMAP hbmLeftDown;
  1796.       HBITMAP hbmRightUp;
  1797.       HBITMAP hbmRightDown;
  1798.    } CSBITMAPDATA;
  1799.    typedef CSBITMAPDATA *PCSBITMAPDATA;
  1800.    
  1801.    /**********************************************************************/
  1802.    /* Circular Slider control style flag definition                      */
  1803.    /**********************************************************************/
  1804.    #define CSS_NOBUTTON             0x0001
  1805.    #define CSS_NOTEXT               0x0002
  1806.    #define CSS_NONUMBER             0x0004
  1807.    #define CSS_POINTSELECT          0x0008
  1808.    #define CSS_360                  0x0010
  1809.    #define CSS_MIDPOINT             0x0020
  1810.    #define CSS_PROPORTIONALTICKS    0x0040
  1811.    #define CSS_NOTICKS              0x0080
  1812.    #define CSS_CIRCULARVALUE        0x0100
  1813.    
  1814. #endif /* !INCL_WINCIRCULARSLIDER_INCLUDED && INCL_WINCIRCULARSLIDER */
  1815.  
  1816. #if !(defined (INCL_WINSTDVALSET_INCLUDED) || !defined (INCL_WINSTDVALSET))
  1817.    #define INCL_WINSTDVALSET_INCLUDED
  1818.    /**********************************************************************/
  1819.    /*                                                                    */
  1820.    /*                         V A L U E   S E T                          */
  1821.    /*                                                                    */
  1822.    /**********************************************************************/
  1823.    
  1824.    /**********************************************************************/
  1825.    /* Define messages for the value set control                          */
  1826.    /**********************************************************************/
  1827.    #define VM_QUERYITEM           0x0375    /* Query item at location    */
  1828.    #define VM_QUERYITEMATTR       0x0376    /* Query item attributes     */
  1829.    #define VM_QUERYMETRICS        0x0377    /* Query metrics of control  */
  1830.    #define VM_QUERYSELECTEDITEM   0x0378    /* Query selected item       */
  1831.    #define VM_SELECTITEM          0x0379    /* Set selected item         */
  1832.    #define VM_SETITEM             0x037a    /* Set item at location      */
  1833.    #define VM_SETITEMATTR         0x037b    /* Set item attributes       */
  1834.    #define VM_SETMETRICS          0x037c    /* Set metrics of control    */
  1835.    
  1836.    #define VN_SELECT              120       /* Item selected by user     */
  1837.    #define VN_ENTER               121       /* Item entered by user      */
  1838.    #define VN_DRAGLEAVE           122       /* Drag left control         */
  1839.    #define VN_DRAGOVER            123       /* Drag is over item         */
  1840.    #define VN_DROP                124       /* Drop occurred on item     */
  1841.    #define VN_DROPHELP            125       /* Request help for drop     */
  1842.    #define VN_INITDRAG            126       /* Drag initiated on item    */
  1843.    #define VN_SETFOCUS            127       /* Value set gaining focus   */
  1844.    #define VN_KILLFOCUS           128       /* Value set losing focus    */
  1845.    #define VN_HELP                129       /* Help requested by user    */
  1846.    
  1847.    /**********************************************************************/
  1848.    /* Value set control data structure                                   */
  1849.    /**********************************************************************/
  1850.    typedef struct _VSCDATA     /* vscd */
  1851.    {
  1852.       ULONG   cbSize;                /* Size of control block             */
  1853.       USHORT  usRowCount;            /* Number of rows in value set       */
  1854.       USHORT  usColumnCount;         /* Number of columns in value set    */
  1855.    } VSCDATA;
  1856.    typedef VSCDATA *PVSCDATA;
  1857.    
  1858.    /**********************************************************************/
  1859.    /* Value set drag initialization structure                            */
  1860.    /**********************************************************************/
  1861.    typedef struct _VSDRAGINIT     /* vsdinit */
  1862.    {
  1863.       HWND    hwnd;                  /* Window handle of value set control*/
  1864.       LONG    x;                     /* X coordinate of pointer on desktop*/
  1865.       LONG    y;                     /* Y coordinate of pointer on desktop*/
  1866.       LONG    cx;                    /* X offset from pointer hot spot    */
  1867.       LONG    cy;                    /* Y offset from pointer hot spot    */
  1868.       USHORT  usRow;                 /* Number of rows in value set       */
  1869.       USHORT  usColumn;              /* Number of columns in value set    */
  1870.    } VSDRAGINIT;
  1871.    typedef VSDRAGINIT *PVSDRAGINIT;
  1872.    
  1873.    #ifdef INCL_WINSTDDRAG
  1874.       /*******************************************************************/
  1875.       /* Value set drag information structure                            */
  1876.       /*******************************************************************/
  1877.       typedef struct _VSDRAGINFO     /* vsdinfo */
  1878.       {
  1879.          PDRAGINFO pDragInfo;         /* Pointer to a drag info structure */
  1880.          USHORT    usRow;             /* Number of rows in value set      */
  1881.          USHORT    usColumn;          /* Number of columns in value set   */
  1882.       } VSDRAGINFO;
  1883.       typedef VSDRAGINFO *PVSDRAGINFO;
  1884.    #endif
  1885.    
  1886.    /**********************************************************************/
  1887.    /* Value set query item text structure                                */
  1888.    /**********************************************************************/
  1889.    typedef struct _VSTEXT     /* vstext */
  1890.    {
  1891.       PSZ       pszItemText;      /* Pointer to string for item text      */
  1892.       ULONG     ulBufLen;         /* Length of buffer to copy string into */
  1893.    } VSTEXT;
  1894.    typedef VSTEXT *PVSTEXT;
  1895.    
  1896.    /**********************************************************************/
  1897.    /* Value set control style flag definition                            */
  1898.    /**********************************************************************/
  1899.    #define VS_BITMAP       0x0001   /* Default all items to bitmaps      */
  1900.    #define VS_ICON         0x0002   /* Default all items to icons        */
  1901.    #define VS_TEXT         0x0004   /* Default all items to text strings */
  1902.    #define VS_RGB          0x0008   /* Default all items to color info   */
  1903.    #define VS_COLORINDEX   0x0010   /* Default all items to color indices*/
  1904.    #define VS_BORDER       0x0020   /* Add a border around the control   */
  1905.    #define VS_ITEMBORDER   0x0040   /* Add a border around each item     */
  1906.    #define VS_SCALEBITMAPS 0x0080   /* Scale bitmaps to cell size        */
  1907.    #define VS_RIGHTTOLEFT  0x0100   /* Support right to left ordering    */
  1908.    #define VS_OWNERDRAW    0x0200   /* Owner draws value set background  */
  1909.    
  1910.    /**********************************************************************/
  1911.    /* Value set item attribute definition                                */
  1912.    /**********************************************************************/
  1913.    #define VIA_BITMAP       0x0001  /* If set, item contains a bitmap    */
  1914.    #define VIA_ICON         0x0002  /* If set, item contains an icon     */
  1915.    #define VIA_TEXT         0x0004  /* If set, item contains text string */
  1916.    #define VIA_RGB          0x0008  /* If set, item contains color value */
  1917.    #define VIA_COLORINDEX   0x0010  /* If set, item contains color index */
  1918.    #define VIA_OWNERDRAW    0x0020  /* If set, item is ownerdraw         */
  1919.    #define VIA_DISABLED     0x0040  /* If set, item is unselectable      */
  1920.    #define VIA_DRAGGABLE    0x0080  /* If set, item can be source of drag*/
  1921.    #define VIA_DROPONABLE   0x0100  /* If set, item can be target of drop*/
  1922.    
  1923.    /**********************************************************************/
  1924.    /* Message parameter attributes for sizing and spacing of items       */
  1925.    /**********************************************************************/
  1926.    #define VMA_ITEMSIZE             0x0001
  1927.    #define VMA_ITEMSPACING          0x0002
  1928.    
  1929.    /**********************************************************************/
  1930.    /* Ownerdraw flag definitions                                         */
  1931.    /**********************************************************************/
  1932.    #define VDA_ITEM                 0x0001
  1933.    #define VDA_ITEMBACKGROUND       0x0002
  1934.    #define VDA_SURROUNDING          0x0003
  1935.    #define VDA_BACKGROUND           0x0004
  1936.    
  1937.    /**********************************************************************/
  1938.    /* Error return codes                                                 */
  1939.    /**********************************************************************/
  1940.    #define VSERR_INVALID_PARAMETERS     -1
  1941.    
  1942. #endif /* !INCL_WINSTDVALSET_INCLUDED && INCL_WINSTDVALSET */
  1943.  
  1944.  
  1945. #if !(defined (INCL_WINSTDBOOK_INCLUDED) || !defined (INCL_WINSTDBOOK))
  1946.    #define INCL_WINSTDBOOK_INCLUDED
  1947.    /**********************************************************************/
  1948.    /*                                                                    */
  1949.    /*                          N O T E B O O K                           */
  1950.    /*                                                                    */
  1951.    /**********************************************************************/
  1952.    
  1953.    /**********************************************************************/
  1954.    /* Message ids                                                        */
  1955.    /**********************************************************************/
  1956.    #define BKM_CALCPAGERECT         0x0353  /* Calc book/page rectangle  */
  1957.    #define BKM_DELETEPAGE           0x0354  /* Delete page(s)            */
  1958.    #define BKM_INSERTPAGE           0x0355  /* Insert page               */
  1959.    #define BKM_INVALIDATETABS       0x0356  /* Invalidate tab area       */
  1960.    #define BKM_TURNTOPAGE           0x0357  /* Turn to page              */
  1961.    #define BKM_QUERYPAGECOUNT       0x0358  /* Query number of pages     */
  1962.    #define BKM_QUERYPAGEID          0x0359  /* Query page identifier     */
  1963.    #define BKM_QUERYPAGEDATA        0x035a  /* Query page user data      */
  1964.    #define BKM_QUERYPAGEWINDOWHWND  0x035b  /* Query page window handle  */
  1965.    #define BKM_QUERYTABBITMAP       0x035c  /* Query tab bitmap handle   */
  1966.    #define BKM_QUERYTABTEXT         0x035d  /* Query tab text pointer    */
  1967.    #define BKM_SETDIMENSIONS        0x035e  /* Set tab/dogear dimensions */
  1968.    #define BKM_SETPAGEDATA          0x035f  /* Set page user data        */
  1969.    #define BKM_SETPAGEWINDOWHWND    0x0360  /* Set page window handle    */
  1970.    #define BKM_SETSTATUSLINETEXT    0x0361  /* Set status line text      */
  1971.    #define BKM_SETTABBITMAP         0x0362  /* Set tab bitmap            */
  1972.    #define BKM_SETTABTEXT           0x0363  /* Set tab text              */
  1973.    #define BKM_SETNOTEBOOKCOLORS    0x0364  /* Set Notebook colors       */
  1974.    #define BKM_QUERYPAGESTYLE       0x0365  /* Query page style          */
  1975.    #define BKM_QUERYSTATUSLINETEXT  0x0366  /* Query status line text    */
  1976.    #define BKM_SETPAGEINFO          0x0367   /* Set page information     */
  1977.    #define BKM_QUERYPAGEINFO        0x0368   /* Query page information   */
  1978.    #define BKM_SETTABCOLOR          0x0374  /* Set book tab color        */
  1979.    #define BKM_SETNOTEBOOKBUTTONS   0x0375  /* Set common pushbuttons    */
  1980.    
  1981.    #define BKN_PAGESELECTED         130     /* New page selected by user */
  1982.    #define BKN_NEWPAGESIZE          131     /* App page size changed     */
  1983.    #define BKN_HELP                 132     /* Help notification         */
  1984.    #define BKN_PAGEDELETED          133     /* Page deleted notification */
  1985.    #define BKN_PAGESELECTEDPENDING  134     /* New page selected by user */
  1986.    
  1987.    /**********************************************************************/
  1988.    /* Page deletion flags (usDeleteFlag)                                 */
  1989.    /**********************************************************************/
  1990.    #define BKA_ALL                  0x0001  /* all pages                 */
  1991.    #define BKA_SINGLE               0x0002  /* single page               */
  1992.    #define BKA_TAB                  0x0004  /* minor/major section       */
  1993.    
  1994.    /**********************************************************************/
  1995.    /* Page insertion/query order (usPageOrder, usQueryOrder)             */
  1996.    /**********************************************************************/
  1997.    #define BKA_LAST                 0x0002  /* Insert/Query last page    */
  1998.    #define BKA_FIRST                0x0004  /* Insert/Query first page   */
  1999.    #define BKA_NEXT                 0x0008  /* Insert/Query after page   */
  2000.    #define BKA_PREV                 0x0010  /* Insert/Query before page  */
  2001.    #define BKA_TOP                  0x0020  /* Query topmost page        */
  2002.    
  2003.    /**********************************************************************/
  2004.    /* Notebook region types (usBookRegion, usType)                       */
  2005.    /**********************************************************************/
  2006.    #define BKA_MAJORTAB             0x0001  /* Major Tab                 */
  2007.    #define BKA_MINORTAB             0x0002  /* Minor Tab                 */
  2008.    #define BKA_PAGEBUTTON           0x0100  /* Page Turning Button       */
  2009.    
  2010.    /**********************************************************************/
  2011.    /* Page insertion/query styles (usPageStyle,usQueryEnd)               */
  2012.    /**********************************************************************/
  2013.    #define BKA_STATUSTEXTON         0x0001  /* status area text          */
  2014.    #define BKA_MAJOR                0x0040  /* Major Tab                 */
  2015.    #define BKA_MINOR                0x0080  /* Minor Tab                 */
  2016.    #define BKA_AUTOPAGESIZE         0x0100  /* Page window position/size */
  2017.    #define BKA_END                  0x0200  /* Query to end of book      */
  2018.    
  2019.    /**********************************************************************/
  2020.    /* Tab window contents (usTabDisplay)                                 */
  2021.    /**********************************************************************/
  2022.    #define BKA_TEXT                 0x0400  /* text data                 */
  2023.    #define BKA_BITMAP               0x0800  /* bitmap                    */
  2024.    
  2025.    /**********************************************************************/
  2026.    /* Tabbed dialog-specific constants                                   */
  2027.    /**********************************************************************/
  2028.    #define BKA_AUTOCOLOR            (-1)    /* Automatically color tabs  */
  2029.    #define BKA_MAXBUTTONID          7999    /* Max id for common buttons */
  2030.    
  2031.    /**********************************************************************/
  2032.    /* Notebook window styles (ulNotebookStyles)                          */
  2033.    /**********************************************************************/
  2034.    
  2035.    /**********************************************************************/
  2036.    /* Backpage Orientation                                               */
  2037.    /**********************************************************************/
  2038.    #define BKS_BACKPAGESBR          0x00000001  /* Bottom right          */
  2039.    #define BKS_BACKPAGESBL          0x00000002  /* Bottom left           */
  2040.    #define BKS_BACKPAGESTR          0x00000004  /* Top right             */
  2041.    #define BKS_BACKPAGESTL          0x00000008  /* Top left              */
  2042.    
  2043.    /**********************************************************************/
  2044.    /* Major Tab Side                                                     */
  2045.    /**********************************************************************/
  2046.    #define BKS_MAJORTABRIGHT        0x00000010  /* Major tabs right      */
  2047.    #define BKS_MAJORTABLEFT         0x00000020  /* Major tabs left       */
  2048.    #define BKS_MAJORTABTOP          0x00000040  /* Major tabs top        */
  2049.    #define BKS_MAJORTABBOTTOM       0x00000080  /* Major tabs bottom     */
  2050.    
  2051.    /**********************************************************************/
  2052.    /* Tab Type                                                           */
  2053.    /**********************************************************************/
  2054.    #define BKS_SQUARETABS           0x00000000  /* Square edged tabs     */
  2055.    #define BKS_ROUNDEDTABS          0x00000100  /* Round edged tabs      */
  2056.    #define BKS_POLYGONTABS          0x00000200  /* Polygon edged tabs    */
  2057.    
  2058.    /**********************************************************************/
  2059.    /* Binding type                                                       */
  2060.    /**********************************************************************/
  2061.    #define BKS_SOLIDBIND            0x00000000  /* Solid binding         */
  2062.    #define BKS_SPIRALBIND           0x00000400  /* Spiral binding        */
  2063.    
  2064.    /**********************************************************************/
  2065.    /* Status line text justification                                     */
  2066.    /**********************************************************************/
  2067.    #define BKS_STATUSTEXTLEFT       0x00000000  /* Left justify text     */
  2068.    #define BKS_STATUSTEXTRIGHT      0x00001000  /* Right justify text    */
  2069.    #define BKS_STATUSTEXTCENTER     0x00002000  /* Center text           */
  2070.    
  2071.    /**********************************************************************/
  2072.    /* Tab text justification                                             */
  2073.    /**********************************************************************/
  2074.    #define BKS_TABTEXTLEFT          0x00000000  /* Left justify tab text */
  2075.    #define BKS_TABTEXTRIGHT         0x00004000  /* Right justify tab text*/
  2076.    #define BKS_TABTEXTCENTER        0x00008000  /* Center tab text       */
  2077.    
  2078.    /**********************************************************************/
  2079.    /* Tabbed dialog styles                                               */
  2080.    /**********************************************************************/
  2081.    #define BKS_TABBEDDIALOG         0x00000800  /* Tabbed dialog         */
  2082.    #define BKS_BUTTONAREA           0x00000200  /* Reserve space for     */
  2083.    
  2084.    /**********************************************************************/
  2085.    /* Notebook color presentation param attributes                       */
  2086.    /**********************************************************************/
  2087.    #define BKA_BACKGROUNDPAGECOLORINDEX  0x0001 /* Page Background       */
  2088.    #define BKA_BACKGROUNDPAGECOLOR       0x0002
  2089.    #define BKA_BACKGROUNDMAJORCOLORINDEX 0x0003 /* Major Tab Background  */
  2090.    #define BKA_BACKGROUNDMAJORCOLOR      0x0004
  2091.    #define BKA_BACKGROUNDMINORCOLORINDEX 0x0005 /* Minor Tab Background  */
  2092.    #define BKA_BACKGROUNDMINORCOLOR      0x0006
  2093.    #define BKA_FOREGROUNDMAJORCOLORINDEX 0x0007 /* Major Tab Text        */
  2094.    #define BKA_FOREGROUNDMAJORCOLOR      0x0008
  2095.    #define BKA_FOREGROUNDMINORCOLORINDEX 0x0009 /* Minor Tab Text        */
  2096.    #define BKA_FOREGROUNDMINORCOLOR      0x000A
  2097.    
  2098.    /**********************************************************************/
  2099.    /* Error message ids                                                  */
  2100.    /**********************************************************************/
  2101.    #define BOOKERR_INVALID_PARAMETERS   -1L /* Invalid parameters        */
  2102.    
  2103.    /**********************************************************************/
  2104.    /* BKM_SETPAGINFO flags for bSetPageInfoFlags.                        */
  2105.    /**********************************************************************/
  2106.    #define BFA_PAGEDATA          0x00000001L /* Set page data            */
  2107.    #define BFA_PAGEFROMHWND      0x00000002L /* Set page window hwnd     */
  2108.    #define BFA_PAGEFROMDLGTEMPLATE 0x00000004L /* Set page window hwnd   */
  2109.    /* from dialog template     */
  2110.    #define BFA_PAGEFROMDLGRES    0x00000008L /* Set page window hwnd     */
  2111.    /* from dialog resource     */
  2112.    #define BFA_STATUSLINE        0x00000010L /* Set status text          */
  2113.    #define BFA_MAJORTABBITMAP    0x00000020L /* Set major tab bitmap     */
  2114.    #define BFA_MINORTABBITMAP    0x00000040L /* Set minor tab bitmap     */
  2115.    #define BFA_MAJORTABTEXT      0x00000080L /* Set major tab text       */
  2116.    #define BFA_MINORTABTEXT      0x00000100L /* Set minor tab text       */
  2117.    #define BFA_BIDIINFO          0x00000200L /* Reserved: bidirectional  */
  2118.    /* languages support.       */
  2119.    /**********************************************************************/
  2120.    /* BKM_SETPAGINFO message structure.                                  */
  2121.    /**********************************************************************/
  2122.    typedef struct _BOOKPAGEINFO     /* bkpginfo */
  2123.    {
  2124.       ULONG     cb;                         /* Page flags - BFA_         */
  2125.       ULONG     fl;                         /* Page flags - BFA_         */
  2126.       BOOL      bLoadDlg;                   /* TRUE: Load dialog now     */
  2127.       /* FALSE: Load dialog on turn*/
  2128.       ULONG     ulPageData;                 /* data to associate w/page  */
  2129.       HWND      hwndPage;                   /* hwnd to associate w/ page */
  2130.       PFN       pfnPageDlgProc;             /* auto load of dialogs for  */
  2131.       ULONG     idPageDlg;                  /* the application.          */
  2132.       HMODULE   hmodPageDlg;                /* Resource info used for    */
  2133.       PVOID     pPageDlgCreateParams;
  2134.       PDLGTEMPLATE pdlgtPage;
  2135.       ULONG     cbStatusLine;               /* Page flags - BFA_         */
  2136.       PSZ       pszStatusLine;              /* Status line text string   */
  2137.       HBITMAP   hbmMajorTab;                /* Major tab bitmap handle   */
  2138.       HBITMAP   hbmMinorTab;                /* Minor tab bitmap handle   */
  2139.       ULONG     cbMajorTab;                 /* Page flags - BFA_         */
  2140.       PSZ       pszMajorTab;                /* Major tab text string     */
  2141.       ULONG     cbMinorTab;                 /* Page flags - BFA_         */
  2142.       PSZ       pszMinorTab;                /* Minor tab text string     */
  2143.       PVOID     pBidiInfo;                  /* Reserved: Bidirectional   */
  2144.       /* language support.         */
  2145.    } BOOKPAGEINFO;
  2146.    typedef BOOKPAGEINFO *PBOOKPAGEINFO;
  2147.    
  2148.    /**********************************************************************/
  2149.    /* BKM_QUERYTABTEXT and BKM_QUERYSTATUSLINETEXT message structure     */
  2150.    /**********************************************************************/
  2151.    typedef struct _BOOKTEXT     /* booktxt */
  2152.    {
  2153.       PSZ    pString;                        /* ptr to string buffer      */
  2154.       ULONG  textLen;                        /* length of string to query */
  2155.    } BOOKTEXT;
  2156.    typedef BOOKTEXT *PBOOKTEXT;
  2157.    
  2158.    /**********************************************************************/
  2159.    /* BKM_SETNOTEBOOKBUTTONS message structure                           */
  2160.    /**********************************************************************/
  2161.    typedef struct _NOTEBOOKBUTTON   /* nbbutton */
  2162.    {
  2163.       PSZ     pszText;                /* Button text                     */
  2164.       ULONG   idButton;               /* Button id ( < BKA_MAXBUTTONID)  */
  2165.       LHANDLE hImage;                 /* Handle for bitmap / icon        */
  2166.       LONG    flStyle;                /* Button style                    */
  2167.    } NOTEBOOKBUTTON;
  2168.    typedef NOTEBOOKBUTTON *PNOTEBOOKBUTTON;
  2169.    
  2170.    /**********************************************************************/
  2171.    /* BKN_PAGEDELETED notify message structure                           */
  2172.    /**********************************************************************/
  2173.    typedef struct _DELETENOTIFY     /* delntfy */
  2174.    {
  2175.       HWND    hwndBook;                      /* Notebook window handle    */
  2176.       HWND    hwndPage;                      /* App. page window handle   */
  2177.       ULONG   ulAppPageData;                 /* App. page data            */
  2178.       HBITMAP hbmTab;                        /* App. tab bitmap handle    */
  2179.    } DELETENOTIFY;
  2180.    typedef DELETENOTIFY *PDELETENOTIFY;
  2181.    
  2182.    /**********************************************************************/
  2183.    /* BKN_PAGESELECTED notify message structure                          */
  2184.    /**********************************************************************/
  2185.    typedef struct _PAGESELECTNOTIFY     /* pgsntfy */
  2186.    {
  2187.       HWND    hwndBook;                      /* Notebook window handle    */
  2188.       ULONG   ulPageIdCur;                   /* Previous top page id      */
  2189.       ULONG   ulPageIdNew;                   /* New top Page id           */
  2190.    } PAGESELECTNOTIFY;
  2191.    typedef PAGESELECTNOTIFY *PPAGESELECTNOTIFY;
  2192.    
  2193. #endif /* !INCL_WINSTDBOOK_INCLUDED && INCL_WINSTDBOOK */
  2194.  
  2195. /**********************************************************************/
  2196. /* The following range of messages is reserved for Bidirectional      */
  2197. /* Languages support:                                                 */
  2198. /**********************************************************************/
  2199. #define  CTLS_WM_BIDI_FIRST   0x390
  2200. #define  CTLS_WM_BIDI_LAST    0x39F
  2201.  
  2202. /* NOINC */
  2203. #ifdef __cplusplus
  2204.         }
  2205. #endif
  2206. #if __IBMC__ || __IBMCPP__
  2207.    #pragma info( none )
  2208.    #ifndef __CHKHDR__
  2209.       #pragma info( restore )
  2210.    #endif
  2211.    #pragma info( restore )
  2212. #endif
  2213. /* INC */
  2214.  
  2215. /**************************** end of file **********************************/
  2216.