home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mod201j.zip / modula2.exe / os2api / winstdcn.def < prev    next >
Text File  |  1995-02-19  |  37KB  |  698 lines

  1. DEFINITION MODULE WINSTDCNR;
  2.  
  3. (************************************************************************
  4.   OS/2 2.0 interface for Presentation Manager
  5.            CUA container control class.
  6.            19.02.95 16.36 Bugs fixed : CDATE CTIME
  7.  
  8.   Copyright (c) 1992 by Juergen Neuhoff
  9. *************************************************************************)
  10.  
  11. (*$XL+       Modula-2 language extensions: '_' allowed for symbol names *)
  12. (*$CDECL+    C-style procedures                                         *)
  13. (*$A         default alignment for record fields                        *)
  14.  
  15. FROM OS2DEF        IMPORT TYPEPREFIX, HBITMAP, POINTL, PSZ, HWND, RECTL, HPS;
  16. FROM WINDEF        IMPORT PVOID;
  17. FROM GPIDEF        IMPORT SIZEL;
  18. FROM WINPOINTERS   IMPORT HPOINTER;
  19. FROM WINSTDDRAG    IMPORT PDRAGINFO;
  20.  
  21. (*************************************************************************)
  22. (*    Error constants                                                    *)
  23. (*************************************************************************)
  24. CONST
  25.   PMERR_NOFILTERED_ITEMS            = 1F02H;
  26.   PMERR_COMPARISON_FAILED           = 1F03H;
  27.   PMERR_RECORD_CURRENTLY_INSERTED   = 1F04H;
  28.   PMERR_FI_CURRENTLY_INSERTED       = 1F05H;
  29.  
  30. (*************************************************************************)
  31. (*    Container control styles.                                          *)
  32. (*************************************************************************)
  33. CONST
  34.   CCS_EXTENDSEL                     = 00000001H;
  35.   CCS_MULTIPLESEL                   = 00000002H;
  36.   CCS_SINGLESEL                     = 00000004H;
  37.   CCS_AUTOPOSITION                  = 00000008H;
  38.   CCS_VERIFYPOINTERS                = 00000010H;
  39.   CCS_READONLY                      = 00000020H;
  40.   CCS_MINIRECORDCORE                = 00000040H;
  41.  
  42. (*************************************************************************)
  43. (*    view identifiers           (flWindowAttr)                          *)
  44. (*************************************************************************)
  45. CONST
  46.   CV_TEXT                           = 00000001H; (* text view            *)
  47.   CV_NAME                           = 00000002H; (* name view            *)
  48.   CV_ICON                           = 00000004H; (* icon view            *)
  49.   CV_DETAIL                         = 00000008H; (* detail view          *)
  50.   CV_FLOW                           = 00000010H; (* flow items           *)
  51.   CV_MINI                           = 00000020H; (* use mini icon        *)
  52.   CV_TREE                           = 00000040H; (* tree view            *)
  53.  
  54. (*************************************************************************)
  55. (*    Container Attributes        (flWindowAttr)                         *)
  56. (*************************************************************************)
  57. CONST
  58.   CA_CONTAINERTITLE                 = 00000200H;
  59.   CA_TITLESEPARATOR                 = 00000400H;
  60.   CA_TITLELEFT                      = 00000800H;
  61.   CA_TITLERIGHT                     = 00001000H;
  62.   CA_TITLECENTER                    = 00002000H;
  63.   CA_OWNERDRAW                      = 00004000H;
  64.   CA_DETAILSVIEWTITLES              = 00008000H;
  65.   CA_ORDEREDTARGETEMPH              = 00010000H;
  66.   CA_DRAWBITMAP                     = 00020000H;
  67.   CA_DRAWICON                       = 00040000H;
  68.   CA_TITLEREADONLY                  = 00080000H;
  69.   CA_OWNERPAINTBACKGROUND           = 00100000H;
  70.   CA_MIXEDTARGETEMPH                = 00200000H;
  71.   CA_TREELINE                       = 00400000H;
  72.  
  73. (*************************************************************************)
  74. (*    child window IDs                                                   *)
  75. (*************************************************************************)
  76. CONST
  77.   CID_LEFTCOLTITLEWND               = 7FF0H; (* column title (left)       *)
  78.   CID_RIGHTCOLTITLEWND              = 7FF1H; (* right column title        *)
  79.   CID_BLANKBOX                      = 7FF2H; (* blank box at bottom right *)
  80.   CID_HSCROLL                       = 7FF3H; (* horizontal scroll bar     *)
  81.   CID_RIGHTHSCROLL                  = 7FF4H; (* right horz scroll bar     *)
  82.   CID_CNRTITLEWND                   = 7FF5H; (* Container title window    *)
  83.   CID_LEFTDVWND                     = 7FF7H; (* Left Details View window  *)
  84.   CID_RIGHTDVWND                    = 7FF8H; (* Right Details View window *)
  85.   CID_VSCROLL                       = 7FF9H; (* vertical scroll bar       *)
  86.   CID_MLE                           = 7FFAH; (* MLE window for direct edit*)
  87.  
  88. (*************************************************************************)
  89. (*    Bitmap descriptor array element.                                   *)
  90. (*************************************************************************)
  91. TYPE
  92.   TREEITEMDESC                      = RECORD  (* treend *)
  93.     CASE                              : TYPEPREFIX OF
  94.     | TRUE                            :
  95.       hbmExpanded                     : HBITMAP;
  96.       hbmCollapsed                    : HBITMAP;
  97.       hptrExpanded                    : HPOINTER;
  98.       hptrCollapsed                   : HPOINTER;
  99.     | FALSE                           :
  100.       ExpandedBitMapHandle            : HBITMAP;
  101.       CollapsedBitMapHandle           : HBITMAP;
  102.       ExpandedPointerHandle           : HPOINTER;
  103.       CollapsedPointerHandle          : HPOINTER;
  104.     END;                              END;
  105.   PTREEITEMDESC                     = POINTER TO TREEITEMDESC;
  106.  
  107. (*************************************************************************)
  108. (*    Field Info data structure, attribute and data types, CV_DETAIL     *)
  109. (*************************************************************************)
  110. TYPE
  111.   PFIELDINFO            = POINTER TO FIELDINFO;
  112.   FIELDINFO             = RECORD       (* fldinfo *)
  113.     CASE                  : TYPEPREFIX OF
  114.     | TRUE                :
  115.       cb                  : LONGCARD;  (* size of FIELDINFO struct       *)
  116.       flData              : LONGCARD;  (* attributes of field's data     *)
  117.       flTitle             : LONGCARD;  (* attributes of field's title    *)
  118.       pTitleData          : PVOID;     (* title data (default is string) *)
  119.                                        (* If CFT_BITMAP, must be HBITMAP *)
  120.       offStruct           : LONGCARD;  (* offset from RECORDCORE to data *)
  121.       pUserData           : PVOID;     (* pointer to user data           *)
  122.       pNextFieldInfo      : PFIELDINFO;(* pointer to next linked  *)
  123.                                        (*          FIELDINFO structure   *)
  124.       cxWidth             : LONGCARD;  (* width of field in pels         *)
  125.     | FALSE               :
  126.       Size                : LONGCARD;  (* size of FIELDINFO struct       *)
  127.       DataFlags           : LONGCARD;  (* attributes of field's data     *)
  128.       TitleFlags          : LONGCARD;  (* attributes of field's title    *)
  129.       TitleData           : PVOID;     (* title data (default is string) *)
  130.                                        (* If CFT_BITMAP, must be HBITMAP *)
  131.       StructOffset        : LONGCARD;  (* offset from RECORDCORE to data *)
  132.       UserData            : PVOID;     (* pointer to user data           *)
  133.       NextFieldInfo       : PFIELDINFO;(* pointer to next linked  *)
  134.                                        (*          FIELDINFO structure   *)
  135.       Width               : LONGCARD;  (* width of field in pels         *)
  136.     END;                  END;
  137.  
  138. (*************************************************************************)
  139. (*    RECORDCORE data structure , attribute values                       *)
  140. (*************************************************************************)
  141. TYPE
  142.   PRECORDCORE           = POINTER TO RECORDCORE;
  143.   RECORDCORE            = RECORD          (* recc *)
  144.     CASE                  : TYPEPREFIX OF
  145.     | TRUE                :
  146.       cb                  : LONGCARD;
  147.       flRecordAttr        : LONGCARD;     (* record attributes             *)
  148.       ptlIcon             : POINTL;       (* Position of CV_ICON item      *)
  149.       preccNextRecord     : PRECORDCORE;  (* ptr to next record            *)
  150.       pszIcon             : PSZ;          (* Text for CV_ICON view         *)
  151.       hptrIcon            : HPOINTER;     (* Icon to display for ~CV_MINI  *)
  152.       hptrMiniIcon        : HPOINTER;     (* Icon to display for CV_MINI   *)
  153.       hbmBitmap           : HBITMAP;      (* Bitmap to display for ~CV_MINI*)
  154.       hbmMiniBitmap       : HBITMAP;      (* Bitmap to display for CV_MINI *)
  155.       pTreeItemDesc       : PTREEITEMDESC;(* Icons for the tree view       *)
  156.       pszText             : PSZ;          (* Text for CV_TEXT view         *)
  157.       pszName             : PSZ;          (* Text for CV_NAME view         *)
  158.       pszTree             : PSZ;          (* Text for CV_TREE view         *)
  159.     | FALSE               :
  160.       Size                : LONGCARD;
  161.       RecordAttr          : LONGCARD;     (* record attributes             *)
  162.       IconPos             : POINTL;       (* Position of CV_ICON item      *)
  163.       NextRecord          : PRECORDCORE;  (* ptr to next record            *)
  164.       IconText            : PSZ;          (* Text for CV_ICON view         *)
  165.       IconPointerHandle   : HPOINTER;     (* Icon to display for ~CV_MINI  *)
  166.       MiniIconPointerHandle : HPOINTER;   (* Icon to display for CV_MINI   *)
  167.       BitMapHandle        : HBITMAP;      (* Bitmap to display for ~CV_MINI*)
  168.       MiniBitmapHandle    : HBITMAP;      (* Bitmap to display for CV_MINI *)
  169.       TreeItemDesc        : PTREEITEMDESC;(* Icons for the tree view       *)
  170.       Text                : PSZ;          (* Text for CV_TEXT view         *)
  171.       Name                : PSZ;          (* Text for CV_NAME view         *)
  172.       Tree                : PSZ;          (* Text for CV_TREE view         *)
  173.     END;                  END;
  174.  
  175. (*************************************************************************)
  176. (*    MINIRECORDCORE data structure, attribute values                    *)
  177. (*************************************************************************)
  178. TYPE
  179.   PMINIRECORDCORE       = POINTER TO MINIRECORDCORE;
  180.   MINIRECORDCORE        = RECORD          (* minirec *)
  181.     CASE                  : TYPEPREFIX OF
  182.     | TRUE                :
  183.       cb                  : LONGCARD;
  184.       flRecordAttr        : LONGCARD;     (* record attributes           *)
  185.       ptlIcon             : POINTL;       (* Position of CV_ICON item    *)
  186.       preccNextRecord     : PMINIRECORDCORE; (*ptr to next record        *)
  187.       pszIcon             : PSZ;          (* Text for CV_ICON view       *)
  188.       hptrIcon            : HPOINTER;     (* Icon to display for ~CV_MINI*)
  189.     | FALSE               :
  190.       Size                : LONGCARD;
  191.       RecordAttr          : LONGCARD;     (* record attributes           *)
  192.       IconPos             : POINTL;       (* Position of CV_ICON item    *)
  193.       NextRecord          : PMINIRECORDCORE; (*ptr to next record        *)
  194.       IconText            : PSZ;          (* Text for CV_ICON view       *)
  195.       IconPointerHandle   : HPOINTER;     (* Icon to display for ~CV_MINI*)
  196.     END;                  END;
  197.  
  198. (*************************************************************************)
  199. (*    CNRINFO data structure, describes the container control.           *)
  200. (*************************************************************************)
  201. TYPE
  202.   PCNRINFO                 = POINTER TO CNRINFO;
  203.   CNRINFO                  = RECORD       (* ccinfo *)
  204.     CASE                     : TYPEPREFIX OF
  205.     | TRUE                   :
  206.       cb                     : LONGCARD;  (* size of CNRINFO struct        *)
  207.       pSortRecord            : PVOID;     (* ptr to sort function,         *)
  208.                                           (*   RECORDCORE                  *)
  209.       pFieldInfoLast         : PFIELDINFO;(* pointer to last column in     *)
  210.                                           (*   left pane of a split window.*)
  211.       pFieldInfoObject       : PFIELDINFO;(* Pointer to a column to        *)
  212.                                           (* represent an object.  This is *)
  213.                                           (* the column which will receive *)
  214.                                           (* IN-USE emphasis.              *)
  215.       pszCnrTitle            : PSZ;       (* text for container title. One *)
  216.                                           (*   string separated by line    *)
  217.                                           (*   separators for multi-lines  *)
  218.       flWindowAttr           : LONGCARD;  (* container attrs - CV_*, CA_*  *)
  219.       ptlOrigin              : POINTL;    (* lower-left origin in virtual  *)
  220.                                           (*   coordinates. CV_ICON view   *)
  221.       cDelta                 : LONGCARD;  (* Application defined threshold *)
  222.                                           (*   or number of records from   *)
  223.                                           (*   either end of the list.     *)
  224.       cRecords               : LONGCARD;  (* number of records in container*)
  225.       slBitmapOrIcon         : SIZEL;     (* size of bitmap in pels        *)
  226.       slTreeBitmapOrIcon     : SIZEL;     (* size of tree bitmaps in pels  *)
  227.       hbmExpanded            : HBITMAP;   (* bitmap  for tree node         *)
  228.       hbmCollapsed           : HBITMAP;   (* bitmap  for tree node         *)
  229.       hptrExpanded           : HPOINTER;  (* icon    for tree node         *)
  230.       hptrCollapsed          : HPOINTER;  (* icon    for tree node         *)
  231.       cyLineSpacing          : LONGINT;   (* space between two rows        *)
  232.       cxTreeIndent           : LONGINT;   (* indent for children           *)
  233.       cxTreeLine             : LONGINT;   (* thickness of the Tree Line    *)
  234.       cFields                : LONGCARD;  (* number of fields  in container*)
  235.     END;
  236.     xVertSplitbar            : LONGINT;   (* position relative to the      *)
  237.                                           (*   container (CV_DETAIL); if   *)
  238.                                           (*   0xFFFF then unsplit         *)
  239.                              END;
  240.  
  241. TYPE
  242.   CDATE                    = RECORD        (* cdate *)
  243.     CASE                     : TYPEPREFIX OF
  244.     | TRUE                   :
  245.       day                    : SHORTCARD;  (* current day               *)
  246.       month                  : SHORTCARD;  (* current month             *)
  247.       year                   : CARDINAL;   (* current year              *)
  248.     | FALSE                  :
  249.       Day                    : SHORTCARD;  (* current day               *)
  250.       Month                  : SHORTCARD;  (* current month             *)
  251.       Year                   : CARDINAL;   (* current year              *)
  252.     END;                     END;
  253.   PCDATE                   = POINTER TO CDATE;
  254.  
  255. TYPE
  256.   CTIME                    = RECORD        (* ctime *)
  257.     CASE                     : TYPEPREFIX OF
  258.     | TRUE                   :
  259.       hours                  : SHORTCARD;  (* current hour              *)
  260.       minutes                : SHORTCARD;  (* current minute            *)
  261.       seconds                : SHORTCARD;  (* current second            *)
  262.       ucReserved             : SHORTCARD;  (* reserved                  *)
  263.     | FALSE                  :
  264.       Hours                  : SHORTCARD;  (* current hour              *)
  265.       Minutes                : SHORTCARD;  (* current minute            *)
  266.       Seconds                : SHORTCARD;  (* current second            *)
  267.       Reserved               : SHORTCARD;  (* reserved                  *)
  268.     END;                     END;
  269.   PCTIME                   = POINTER TO CTIME;
  270.  
  271. (*************************************************************************)
  272. (*    attribute and type values for flData and flTitle members of        *)
  273. (*    FIELDINFO, CFA_ (attributes), CFT_ (types)                         *)
  274. (*************************************************************************)
  275. CONST
  276.   CFA_LEFT                 = 00000001H; (* left align text            *)
  277.   CFA_RIGHT                = 00000002H; (* right align text           *)
  278.   CFA_CENTER               = 00000004H; (* center text                *)
  279.   CFA_TOP                  = 00000008H; (* top-align text             *)
  280.   CFA_VCENTER              = 00000010H; (* vertically center text     *)
  281.   CFA_BOTTOM               = 00000020H; (* bottom-align text          *)
  282.   CFA_INVISIBLE            = 00000040H; (* Specify invisible column.  *)
  283.   CFA_BITMAPORICON         = 00000100H; (* field title is bitmap      *)
  284.   CFA_SEPARATOR            = 00000200H; (* vert sep, right of fld     *)
  285.   CFA_HORZSEPARATOR        = 00000400H; (* horz sep, bottom of fld    *)
  286.   CFA_STRING               = 00000800H; (* string of characters       *)
  287.   CFA_OWNER                = 00001000H; (* ownerdraw field            *)
  288.   CFA_DATE                 = 00002000H; (* date structure             *)
  289.   CFA_TIME                 = 00004000H; (* time structure             *)
  290.   CFA_FIREADONLY           = 00008000H; (* Column is read-only.       *)
  291.   CFA_FITITLEREADONLY      = 00010000H; (* Column Title is read-only  *)
  292.   CFA_ULONG                = 00020000H; (* Column is number format    *)
  293.  
  294. (*************************************************************************)
  295. (*    attribute values for flRecordAttr member of RECORDCORE             *)
  296. (*************************************************************************)
  297. CONST
  298.   CRA_SELECTED             = 00000001H; (* record is selected         *)
  299.   CRA_TARGET               = 00000002H; (* record has target emphasis *)
  300.   CRA_CURSORED             = 00000004H; (* cursor is on the record    *)
  301.   CRA_INUSE                = 00000008H; (* record has in-use emphasis *)
  302.   CRA_FILTERED             = 00000010H; (* record has been filtered   *)
  303.   CRA_DROPONABLE           = 00000020H; (* record can be dropped on   *)
  304.   CRA_RECORDREADONLY       = 00000040H; (* record is read-only        *)
  305.   CRA_EXPANDED             = 00000080H; (* record is expanded         *)
  306.   CRA_COLLAPSED            = 00000100H; (* record is collapsed        *)
  307.  
  308. (*************************************************************************)
  309. (*    Container messages                                                 *)
  310. (*************************************************************************)
  311. CONST
  312.   CM_ALLOCDETAILFIELDINFO        = 0330H;
  313.   CM_ALLOCRECORD                 = 0331H;
  314.   CM_ARRANGE                     = 0332H;
  315.   CM_ERASERECORD                 = 0333H;
  316.   CM_FILTER                      = 0334H;
  317.   CM_FREEDETAILFIELDINFO         = 0335H;
  318.   CM_FREERECORD                  = 0336H;
  319.   CM_HORZSCROLLSPLITWINDOW       = 0337H;
  320.   CM_INSERTDETAILFIELDINFO       = 0338H;
  321.   CM_INSERTRECORD                = 0339H;
  322.   CM_INVALIDATEDETAILFIELDINFO   = 033AH;
  323.   CM_INVALIDATERECORD            = 033BH;
  324.   CM_PAINTBACKGROUND             = 033CH;
  325.   CM_QUERYCNRINFO                = 033DH;
  326.   CM_QUERYDETAILFIELDINFO        = 033EH;
  327.   CM_QUERYDRAGIMAGE              = 033FH;
  328.   CM_QUERYRECORD                 = 0340H;
  329.   CM_QUERYRECORDEMPHASIS         = 0341H;
  330.   CM_QUERYRECORDFROMRECT         = 0342H;
  331.   CM_QUERYRECORDRECT             = 0343H;
  332.   CM_QUERYVIEWPORTRECT           = 0344H;
  333.   CM_REMOVEDETAILFIELDINFO       = 0345H;
  334.   CM_REMOVERECORD                = 0346H;
  335.   CM_SCROLLWINDOW                = 0347H;
  336.   CM_SEARCHSTRING                = 0348H;
  337.   CM_SETCNRINFO                  = 0349H;
  338.   CM_SETRECORDEMPHASIS           = 034AH;
  339.   CM_SORTRECORD                  = 034BH;
  340.   CM_OPENEDIT                    = 034CH;
  341.   CM_CLOSEEDIT                   = 034DH;
  342.   CM_COLLAPSETREE                = 034EH;
  343.   CM_EXPANDTREE                  = 034FH;
  344.   CM_QUERYRECORDINFO             = 0350H;
  345.  
  346. (*************************************************************************)
  347. (*    Container notifications                                            *)
  348. (*************************************************************************)
  349. CONST
  350.   CN_DRAGAFTER                = 101;
  351.   CN_DRAGLEAVE                = 102;
  352.   CN_DRAGOVER                 = 103;
  353.   CN_DROP                     = 104;
  354.   CN_DROPHELP                 = 105;
  355.   CN_ENTER                    = 106;
  356.   CN_INITDRAG                 = 107;
  357.   CN_EMPHASIS                 = 108;
  358.   CN_KILLFOCUS                = 109;
  359.   CN_SCROLL                   = 110;
  360.   CN_QUERYDELTA               = 111;
  361.   CN_SETFOCUS                 = 112;
  362.   CN_REALLOCPSZ               = 113;
  363.   CN_BEGINEDIT                = 114;
  364.   CN_ENDEDIT                  = 115;
  365.   CN_COLLAPSETREE             = 116;
  366.   CN_EXPANDTREE               = 117;
  367.   CN_HELP                     = 118;
  368.   CN_CONTEXTMENU              = 119;
  369.  
  370. (*************************************************************************)
  371. (*      Data Structures for Message Parameters                           *)
  372. (*************************************************************************)
  373.  
  374. (*************************************************************************)
  375. (*    Container Direct Manipulation structures                           *)
  376. (*************************************************************************)
  377. TYPE
  378.   CNRDRAGINIT              = RECORD  (* cdrginit *)
  379.     CASE                     : TYPEPREFIX OF
  380.     | TRUE                   :
  381.       hwndCnr                : HWND;       (* Container window handle   *)
  382.       pRecord                : PRECORDCORE;(* record under mouse ptr    *)
  383.     | FALSE                  :
  384.       CnrWinHandle           : HWND;       (* Container window handle   *)
  385.       Record                 : PRECORDCORE;(* record under mouse ptr    *)
  386.     END;
  387.     x                        : LONGINT;    (* x coordinate of mouse ptr *)
  388.     y                        : LONGINT;    (* y coordinate of mouse ptr *)
  389.     CASE                     : TYPEPREFIX OF
  390.     | TRUE                   :
  391.       cx                     : LONGINT;    (* x offset from record      *)
  392.       cy                     : LONGINT;    (* y offset from record      *)
  393.     | FALSE                  :
  394.       xSize                  : LONGINT;    (* x offset from record      *)
  395.       ySize                  : LONGINT;    (* y offset from record      *)
  396.     END;                     END;
  397.   PCNRDRAGINIT             = POINTER TO CNRDRAGINIT;
  398.  
  399. (*************************************************************************)
  400. (*    Data structure for CM_INSERTDETAILFIELDINFO                        *)
  401. (*    This structure is used by the application to specify the position  *)
  402. (*    of the FieldInfo structures they are inserting.                    *)
  403. (*************************************************************************)
  404. TYPE
  405.   FIELDINFOINSERT        = RECORD        (* fiins *)
  406.     CASE                   : TYPEPREFIX OF
  407.     | TRUE                 :
  408.       cb                   : LONGCARD;   (* Size of structure.             *)
  409.       pFieldInfoOrder      : PFIELDINFO; (* Specifies the order of the     *)
  410.                                          (* FieldInfo structures.          *)
  411.       fInvalidateFieldInf  : LONGCARD;   (* Invalidate on Insert.          *)
  412.       cFieldInfoInsert     : LONGCARD;   (* The number of FieldInfo        *)
  413.                                          (* structures to insert.          *)
  414.     | FALSE                :
  415.       Size                 : LONGCARD;   (* Size of structure.             *)
  416.       FieldInfoOrder       : PFIELDINFO; (* Specifies the order of the     *)
  417.                                          (* FieldInfo structures.          *)
  418.       InvalidateFieldInf   : LONGCARD;   (* Invalidate on Insert.          *)
  419.       FieldInfoInsertCount : LONGCARD;   (* The number of FieldInfo        *)
  420.                                          (* structures to insert.          *)
  421.     END;                   END;
  422.   PFIELDINFOINSERT       = POINTER TO FIELDINFOINSERT;
  423.  
  424. (*************************************************************************)
  425. (*    Data structure for CM_INSERTRECORD                                 *)
  426. (*************************************************************************)
  427. TYPE
  428.   RECORDINSERT           = RECORD   (* recins *)
  429.     CASE                   : TYPEPREFIX OF
  430.     | TRUE                 :
  431.       cb                   : LONGCARD;
  432.       pRecordOrder         : PRECORDCORE;
  433.       pRecordParent        : PRECORDCORE;
  434.       fInvalidateRecord    : LONGCARD;
  435.       zOrder               : LONGCARD;
  436.       cRecordsInsert       : LONGCARD;
  437.     | FALSE                :
  438.       Size                 : LONGCARD;
  439.       RecordOrder          : PRECORDCORE;
  440.       RecordParent         : PRECORDCORE;
  441.       InvalidateRecordFlag : LONGCARD;
  442.       Order                : LONGCARD;
  443.       RecordsInsertCount   : LONGCARD;
  444.     END;                   END;
  445.   PRECORDINSERT          = POINTER TO RECORDINSERT;
  446.  
  447. (*************************************************************************)
  448. (*    Data structure for CM_QUERYRECORDFROMRECT                          *)
  449. (*************************************************************************)
  450. TYPE
  451.   QUERYRECFROMRECT       = RECORD  (* qrecfrct *)
  452.     CASE                   : TYPEPREFIX OF
  453.     | TRUE                 :
  454.       cb                   : LONGCARD;
  455.       rect                 : RECTL;
  456.       fsSearch             : LONGCARD;
  457.     | FALSE                :
  458.       Size                 : LONGCARD;
  459.       Rect                 : RECTL;
  460.       SearchFlags          : LONGCARD;
  461.     END;                   END;
  462.   PQUERYRECFROMRECT      = POINTER TO QUERYRECFROMRECT;
  463.  
  464. (*************************************************************************)
  465. (*    Data structure for CM_QUERYRECORDRECT                              *)
  466. (*************************************************************************)
  467. TYPE
  468.   QUERYRECORDRECT         = RECORD   (* qrecrct *)
  469.     CASE                    : TYPEPREFIX OF
  470.     | TRUE                  :
  471.       cb                    : LONGCARD;
  472.       pRecord               : PRECORDCORE;
  473.       fRightSplitWindow     : LONGCARD;
  474.       fsExtent              : LONGCARD;
  475.     | FALSE                 :
  476.       Size                  : LONGCARD;
  477.       Record                : PRECORDCORE;
  478.       RightSplitWindowFlags : LONGCARD;
  479.       ExtentFlags           : LONGCARD;
  480.     END;                    END;
  481.   PQUERYRECORDRECT        = POINTER TO QUERYRECORDRECT;
  482.  
  483. (*************************************************************************)
  484. (*    Data structure for CM_SEARCHSTRING                                 *)
  485. (*************************************************************************)
  486. TYPE
  487.   SEARCHSTRING            = RECORD   (* srchstr *)
  488.     CASE                    : TYPEPREFIX OF
  489.     | TRUE                  :
  490.       cb                    : LONGCARD;
  491.       pszSearch             : PSZ;
  492.       fsPrefix              : LONGCARD;
  493.       fsCaseSensitive       : LONGCARD;
  494.       usView                : LONGCARD;
  495.     | FALSE                 :
  496.       Size                  : LONGCARD;
  497.       Search                : PSZ;
  498.       PrefixFlags           : LONGCARD;
  499.       CaseSensitiveFlags    : LONGCARD;
  500.       View                  : LONGCARD;
  501.     END;                    END;
  502.   PSEARCHSTRING           = POINTER TO SEARCHSTRING;
  503.  
  504. (*************************************************************************)
  505. (*   Data Structure for CN_DRAGLEAVE,CN_DRAGOVER,CN_DROP,CN_DROPHELP     *)
  506. (*************************************************************************)
  507. TYPE
  508.   CNRDRAGINFO             = RECORD  (* cdrginfo *)
  509.     CASE                    : TYPEPREFIX OF
  510.     | TRUE                  :
  511.       pDragInfo             : PDRAGINFO;
  512.       pRecord               : PRECORDCORE;
  513.     | FALSE                 :
  514.       DragInfo              : PDRAGINFO;
  515.       Record                : PRECORDCORE;
  516.     END;                    END;
  517.   PCNRDRAGINFO            = POINTER TO CNRDRAGINFO;
  518.  
  519. (*************************************************************************)
  520. (*    Data structure for CN_EMPHASIS                                     *)
  521. (*************************************************************************)
  522. TYPE
  523.   NOTIFYRECORDEMPHASIS    = RECORD  (* nrecemph *)
  524.     CASE                    : TYPEPREFIX OF
  525.     | TRUE                  :
  526.       hwndCnr               : HWND;
  527.       pRecord               : PRECORDCORE;
  528.       fEmphasisMask         : LONGCARD;
  529.     | FALSE                 :
  530.       CnrWinHandle          : HWND;
  531.       Record                : PRECORDCORE;
  532.       EmphasisMaskFlags     : LONGCARD;
  533.     END;                    END;
  534.   PNOTIFYRECORDEMPHASIS   = POINTER TO NOTIFYRECORDEMPHASIS;
  535.  
  536. (*************************************************************************)
  537. (*    Data structure for CN_ENTER                                        *)
  538. (*************************************************************************)
  539. TYPE
  540.   NOTIFYRECORDENTER       = RECORD  (* notrecen *)
  541.     CASE                    : TYPEPREFIX OF
  542.     | TRUE                  :
  543.       hwndCnr               : HWND;
  544.       fKey                  : LONGCARD;
  545.       pRecord               : PRECORDCORE;
  546.     | FALSE                 :
  547.       CnrWinHandle          : HWND;
  548.       KeyFlags              : LONGCARD;
  549.       Record                : PRECORDCORE;
  550.     END;                    END;
  551.   PNOTIFYRECORDENTER      = POINTER TO NOTIFYRECORDENTER;
  552.  
  553. (*************************************************************************)
  554. (*    Data structure for CN_QUERYDELTA                                   *)
  555. (*************************************************************************)
  556. TYPE
  557.   NOTIFYDELTA             = RECORD   (* notdlt *)
  558.     CASE                    : TYPEPREFIX OF
  559.     | TRUE                  :
  560.       hwndCnr               : HWND;
  561.       fDelta                : LONGCARD;
  562.     | FALSE                 :
  563.       CnrWinHandle          : HWND;
  564.       DeltaFlags            : LONGCARD;
  565.     END;                    END;
  566.   PNOTIFYDELTA            = POINTER TO NOTIFYDELTA;
  567.  
  568. (*************************************************************************)
  569. (*    Data structure for CN_SCROLL                                       *)
  570. (*************************************************************************)
  571. TYPE
  572.   NOTIFYSCROLL            = RECORD  (* notscr *)
  573.     CASE                    : TYPEPREFIX OF
  574.     | TRUE                  :
  575.       hwndCnr               : HWND;
  576.       lScrollInc            : LONGINT;
  577.       fScroll               : LONGCARD;
  578.     | FALSE                 :
  579.       CurWinHandle          : HWND;
  580.       ScrollInc             : LONGINT;
  581.       ScrollFlags           : LONGCARD;
  582.     END;                    END;
  583.   PNOTIFYSCROLL           = POINTER TO NOTIFYSCROLL;
  584.  
  585. (*************************************************************************)
  586. (*    Data structure for CN_REALLOCPSZ                                   *)
  587. (*************************************************************************)
  588. TYPE
  589.   CNREDITDATA             = RECORD              (* cnredat *)
  590.     CASE                    : TYPEPREFIX OF
  591.     | TRUE                  :
  592.       cb                    : LONGCARD;
  593.       hwndCnr               : HWND;
  594.       pRecord               : PRECORDCORE;
  595.       pFieldInfo            : PFIELDINFO;
  596.       ppszText              : POINTER TO PSZ;   (* address of PSZ        *)
  597.       cbText                : LONGCARD;         (* size of the new text  *)
  598.       id                    : LONGCARD;
  599.     | FALSE                 :
  600.       Size                  : LONGCARD;
  601.       CnrWinHandle          : HWND;
  602.       Record                : PRECORDCORE;
  603.       FieldInfo             : PFIELDINFO;
  604.       Text                  : POINTER TO PSZ;   (* address of PSZ        *)
  605.       TextSize              : LONGCARD;         (* size of the new text  *)
  606.       Id                    : LONGCARD;
  607.     END;                    END;
  608.   PCNREDITDATA            = POINTER TO CNREDITDATA;
  609.  
  610. (*************************************************************************)
  611. (*    Data structure for CM_PAINTBACKGROUND                              *)
  612. (*************************************************************************)
  613. TYPE
  614.   OWNERBACKGROUND         = RECORD     (* ownbckg *)
  615.     CASE                    : TYPEPREFIX OF
  616.     | TRUE                  :
  617.       hwnd                  : HWND;
  618.       hps                   : HPS;
  619.       rclBackground         : RECTL;
  620.       idWindow              : LONGINT;
  621.     | FALSE                 :
  622.       WinHandle             : HWND;
  623.       PresSpaceHandle       : HPS;
  624.       BackgroundRect        : RECTL;
  625.       WindowId              : LONGINT;
  626.     END;                    END;
  627.   POWNERBACKGROUND        = POINTER TO OWNERBACKGROUND;
  628.  
  629. (*************************************************************************)
  630. (*    Data structure used as part of WM_DRAWITEM                         *)
  631. (*************************************************************************)
  632. TYPE
  633.   CNRDRAWITEMINFO         = RECORD  (* cnrdrwii *)
  634.     CASE                    : TYPEPREFIX OF
  635.     | TRUE                  :
  636.       pRecord               : PRECORDCORE;
  637.       pFieldInfo            : PFIELDINFO;
  638.     | FALSE                 :
  639.       Record                : PRECORDCORE;
  640.       FieldInfo             : PFIELDINFO;
  641.     END;                    END;
  642.   PCNRDRAWITEMINFO        = POINTER TO CNRDRAWITEMINFO;
  643.  
  644. (*************************************************************************)
  645. (*    Message parameter flags                                            *)
  646. (*************************************************************************)
  647. CONST
  648.   CMA_TOP                 = 0001H;     (* Place at top of zorder   *)
  649.   CMA_BOTTOM              = 0002H;     (* Place at bottom of zorder*)
  650.   CMA_LEFT                = 0004H;
  651.   CMA_RIGHT               = 0008H;
  652.   CMA_FIRST               = 0010H;     (* Add record as first      *)
  653.   CMA_LAST                = 0020H;
  654.   CMA_END                 = 0040H;     (* Add record to end of list*)
  655.   CMA_PREV                = 0080H;
  656.   CMA_NEXT                = 0100H;
  657.   CMA_HORIZONTAL          = 0200H;
  658.   CMA_VERTICAL            = 0400H;
  659.   CMA_ICON                = 0800H;
  660.   CMA_TEXT                = 1000H;
  661.   CMA_PARTIAL             = 2000H;
  662.   CMA_COMPLETE            = 4000H;
  663.   CMA_PARENT              = 0001H;
  664.   CMA_FIRSTCHILD          = 0002H;
  665.   CMA_LASTCHILD           = 0004H;
  666.   CMA_CNRTITLE            = 0001H;   (* Container title          *)
  667.   CMA_DELTA               = 0002H;   (* Application defined      *)
  668.   CMA_FLWINDOWATTR        = 0004H;   (* Container attributes     *)
  669.   CMA_LINESPACING         = 0008H;
  670.   CMA_PFIELDINFOLAST      = 0010H;   (* Ptr to last column in    *)
  671.   CMA_PSORTRECORD         = 0020H;   (* Pointer to sort function *)
  672.   CMA_PTLORIGIN           = 0040H;   (* Lower left origin        *)
  673.   CMA_SLBITMAPORICON      = 0080H;   (* Size  of bitmap          *)
  674.   CMA_XVERTSPLITBAR       = 0100H;   (* Splitbar position        *)
  675.   CMA_PFIELDINFOOBJECT    = 0200H;   (* Pointer to IN-USE        *)
  676.                                      (*   emphasis column.       *)
  677.   CMA_TREEICON            = 0400H;   (* Icon for tree node       *)
  678.   CMA_TREEBITMAP          = 0800H;   (* bitmap for tree node     *)
  679.   CMA_CXTREEINDENT        = 1000H;   (* indent for children      *)
  680.   CMA_CXTREELINE          = 2000H;   (* thickness of tree line   *)
  681.   CMA_SLTREEBITMAPORICON  = 4000H;   (* size of icon of tree node *)
  682.   CMA_ITEMORDER           = 0001H;   (* QueryRecord search flags *)
  683.   CMA_WINDOW              = 0002H;
  684.   CMA_WORKSPACE           = 0004H;
  685.   CMA_ZORDER              = 0008H;
  686.   CMA_DELTATOP            = 0001H;   (* Industrial - top delta   *)
  687.   CMA_DELTABOT            = 0002H;   (* Industrial - bottom delta*)
  688.   CMA_DELTAHOME           = 0004H;   (* Industrial - top of list *)
  689.   CMA_DELTAEND            = 0008H;   (* Industrial - end of list *)
  690.   CMA_NOREPOSITION        = 0001H;   (* InvalidateRecord flags   *)
  691.   CMA_REPOSITION          = 0002H;
  692.   CMA_TEXTCHANGED         = 0004H;
  693.   CMA_ERASE               = 0008H;
  694.   CMA_FREE                = 0001H;
  695.   CMA_INVALIDATE          = 0002H;
  696.  
  697. END WINSTDCNR.
  698.