home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / odtlktv4.zip / ODTLKT / TOOLKIT / IDL / WPTYPES.IDL < prev   
Text File  |  1995-12-04  |  22KB  |  636 lines

  1. // ------------------------------------------------------------------
  2. // File:  wptypes.idl
  3. //
  4. // This file contains the IDL type definitions for the foreign types
  5. // defined in the WPSH IDL files.
  6.  
  7. //
  8. // ------------------------------------------------------------------
  9.  
  10. #ifndef WPTYPES_IDL                                                            // EEO:
  11. #define WPTYPES_IDL                                                            // EEO:
  12.  
  13. interface WPObject;
  14. interface WPFolder;
  15. interface M_WPObject;
  16.  
  17. #define VOID           void
  18. #define LONG           long
  19. #define CHAR           char
  20.  
  21. typedef unsigned long  ULONG;
  22. typedef ULONG         *PULONG;
  23. typedef ULONG          HWND;
  24. typedef octet          BYTE;
  25. typedef octet         *PBYTE;
  26. typedef string         PSZ;
  27. typedef long           BOOL32;
  28. typedef int            BOOL;
  29. typedef unsigned short USHORT;
  30. typedef USHORT        *PUSHORT;
  31. typedef octet          UCHAR;
  32. typedef octet         *PUCHAR;
  33. typedef PSZ           *PDEVOPENDATA;
  34. typedef ULONG          LHANDLE;
  35. typedef ULONG          HPOINTER;
  36. typedef ULONG          HBITMAP;
  37. typedef LHANDLE        HSTR;
  38. typedef LHANDLE        HMODULE;
  39. typedef LHANDLE        HFS;
  40. typedef LHANDLE        HDC;
  41. typedef LHANDLE        HAPP;
  42. typedef LHANDLE        HPS;
  43. typedef LHANDLE        HOBJECT;
  44. typedef void          *PVOID;
  45. typedef void          *MRESULT;
  46.  
  47. const long CCHMAXPATH       = 260;
  48. const long CCHMAXPATHCOMP   = 256;
  49. const long MAX_ASSOC_ITEMS  = 12;
  50. const long FACESIZE         = 32;
  51.  
  52. typedef MRESULT *FNWP;
  53. typedef FNWP *PFNWP;
  54. typedef BOOL *FNOWNDRW;
  55. typedef FNOWNDRW *PFNOWNDRW;
  56. typedef long *FNCOMPARE;
  57. typedef FNCOMPARE *PFNCOMPARE;
  58.  
  59. struct USEITEM
  60. {
  61.     ULONG  type;                     /* Type of this Item */
  62.     USEITEM *pNext;                  /* Next item in use list */
  63. };
  64. typedef USEITEM *PUSEITEM;
  65.  
  66. struct POINTL
  67. {
  68.     long  x;
  69.     long  y;
  70. } ;
  71. typedef POINTL *PPOINTL;
  72.  
  73. struct MINIRECORDCORE                /* minirec */
  74. {
  75.    ULONG       cb;
  76.    ULONG       flRecordAttr;         /* record attributes             */
  77.    POINTL      ptlIcon;              /* Position of CV_ICON item      */
  78.    MINIRECORDCORE *preccNextRecord;  /*ptr to next record */
  79.    PSZ         pszIcon;              /* Text for CV_ICON view         */
  80.    HPOINTER    hptrIcon;             /* Icon to display for ~CV_MINI  */
  81. } ;
  82. typedef MINIRECORDCORE *PMINIRECORDCORE;
  83.  
  84. struct TREEITEMDESC                  /* treend */
  85. {
  86.    HBITMAP       hbmExpanded;
  87.    HBITMAP       hbmCollapsed;
  88.    HPOINTER      hptrExpanded;
  89.    HPOINTER      hptrCollapsed;
  90. } ;
  91. typedef TREEITEMDESC *PTREEITEMDESC;
  92.  
  93. struct RECORDCORE                    /* recc */
  94. {
  95.    ULONG       cb;
  96.    ULONG       flRecordAttr;         /* record attributes             */
  97.    POINTL      ptlIcon;              /* Position of CV_ICON item      */
  98.    RECORDCORE *preccNextRecord;      /* ptr to next record  */
  99.    PSZ         pszIcon;              /* Text for CV_ICON view         */
  100.    HPOINTER    hptrIcon;             /* Icon to display for ~CV_MINI  */
  101.    HPOINTER    hptrMiniIcon;         /* Icon to display for CV_MINI   */
  102.    HBITMAP     hbmBitmap;            /* Bitmap to display for ~CV_MINI*/
  103.    HBITMAP     hbmMiniBitmap;        /* Bitmap to display for CV_MINI */
  104.    PTREEITEMDESC pTreeItemDesc;      /* Icons for the tree view       */
  105.    PSZ         pszText;              /* Text for CV_TEXT view         */
  106.    PSZ         pszName;              /* Text for CV_NAME view         */
  107.    PSZ         pszTree;              /* Text for CV_TREE view         */
  108. };
  109. typedef RECORDCORE  *PRECORDCORE;
  110.  
  111. struct RECORDINSERT                  /* recins */
  112. {
  113.    ULONG       cb;
  114.    PRECORDCORE pRecordOrder;
  115.    PRECORDCORE pRecordParent;
  116.    ULONG       fInvalidateRecord;
  117.    ULONG       zOrder;
  118.    ULONG       cRecordsInsert;
  119. };
  120. typedef RECORDINSERT  *PRECORDINSERT;
  121.  
  122. struct DRAGINFO
  123. {
  124.    ULONG    cbDraginfo;              /* Size of DRAGINFO and DRAGITEMs*/
  125.    USHORT   cbDragitem;              /* size of DRAGITEM              */
  126.    USHORT   usOperation;             /* current drag operation        */
  127.    HWND     hwndSource;              /* window handle of source       */
  128.    short    xDrop;                   /* x coordinate of drop position */
  129.    short    yDrop;                   /* y coordinate of drop position */
  130.    USHORT   cditem;                  /* count of DRAGITEMs            */
  131.    USHORT   usReserved;              /* reserved for future use       */
  132. };
  133. typedef DRAGINFO  *PDRAGINFO;
  134.  
  135. struct DRAGITEM                      /* ditem */
  136. {
  137.    HWND    hwndItem;                 /* conversation partner          */
  138.    ULONG   ulItemID;                 /* identifies item being dragged */
  139.    HSTR    hstrType;                 /* type of item                  */
  140.    HSTR    hstrRMF;                  /* rendering mechanism and format*/
  141.    HSTR    hstrContainerName;        /* name of source container      */
  142.    HSTR    hstrSourceName;           /* name of item at source        */
  143.    HSTR    hstrTargetName;           /* suggested name of item at dest*/
  144.    short   cxOffset;                 /* x offset of the origin of the */
  145.    /*                                     image from the mouse hotspot*/
  146.    short   cyOffset;                 /* y offset of the origin of the */
  147.    /*                                     image from the mouse hotspot*/
  148.    USHORT  fsControl;                /* source item control flags     */
  149.    USHORT  fsSupportedOps;           /* ops supported by source       */
  150. } ;
  151. typedef DRAGITEM  *PDRAGITEM;
  152.  
  153. struct DRAGTRANSFER                  /* dxfer */
  154. {
  155.    ULONG      cb;                    /* size of control block         */
  156.    HWND       hwndClient;            /* handle of target              */
  157.    PDRAGITEM  pditem;                /* DRAGITEM being transferred    */
  158.    HSTR       hstrSelectedRMF;       /* rendering mech & fmt of choice*/
  159.    HSTR       hstrRenderToName;      /* name source will use          */
  160.    ULONG      ulTargetInfo;          /* reserved for target's use     */
  161.    USHORT     usOperation;           /* operation being performed     */
  162.    USHORT     fsReply;               /* reply flags                   */
  163. } ;
  164. typedef DRAGTRANSFER  *PDRAGTRANSFER;
  165.  
  166. struct PAGEINFO
  167. {
  168.    ULONG   cb;
  169.    HWND    hwndPage;
  170.    PFNWP   pfnwp;
  171.    ULONG   resid;
  172.    PVOID   pCreateParams;
  173.    USHORT  dlgid;
  174.    USHORT  usPageStyleFlags;
  175.    USHORT  usPageInsertFlags;
  176.    USHORT  usSettingsFlags;
  177.    PSZ     pszName;
  178.    USHORT  idDefaultHelpPanel;
  179.    USHORT  usReserved2;
  180.    PSZ     pszHelpLibraryName;
  181.    PUSHORT pHelpSubtable;   /* PHELPSUBTABLE when PMHELP.H is included*/
  182.    HMODULE hmodHelpSubtable;
  183.    ULONG   ulPageInsertId;
  184. };
  185. typedef PAGEINFO  *PPAGEINFO;
  186.  
  187. struct PRINTDEST
  188. {
  189.    ULONG        cb;
  190.    long         lType;
  191.    PSZ          pszToken;
  192.    long         lCount;
  193.    PDEVOPENDATA pdopData;
  194.    ULONG        fl;
  195.    PSZ          pszPrinter;
  196. } ;
  197. typedef PRINTDEST  *PPRINTDEST;
  198.  
  199. struct ICONINFO
  200. {
  201.    ULONG   cb;                  /* size of ICONINFO structure */
  202.    ULONG   fFormat;
  203.    PSZ     pszFileName;         /* use when fFormat = ICON_FILE */
  204.    HMODULE hmod;                /* use when fFormat = ICON_RESOURCE */
  205.    ULONG   resid;               /* use when fFormat = ICON_RESOURCE */
  206.    ULONG   cbIconData;          /* use when fFormat = ICON_DATA     */
  207.    PVOID   pIconData;           /* use when fFormat = ICON_DATA     */
  208. } ;
  209. typedef ICONINFO  *PICONINFO;
  210.  
  211. struct TASKREC
  212. {
  213.    TASKREC         *next;     /* next in the list of current tasks   */
  214.    ULONG            useCount; /* can be referenced by multiple object*/
  215.    PVOID            pStdDlg;  /* ptr to standard WP task dialog      */
  216.    WPFolder        *folder;   /* intended folder for the object      */
  217.    long             xOrigin;  /* intended position for the object    */
  218.    long             yOrigin;  /* intended position for the object    */
  219.    PSZ              pszTitle; /* intended name for the object        */
  220.    ULONG            cbTitle;  /* length of the name buffer           */
  221.    PMINIRECORDCORE  positionAfterRecord; /* intended sort position   */
  222.    BOOL             fKeepAssociations;
  223.    PVOID            pReserved;    /* reserved - equal null           */
  224.  
  225. } ;
  226. typedef TASKREC *PTASKREC;
  227.  
  228. struct WPSRCLASSBLOCK
  229. {
  230.   short   ClassNameLength;       /* Length of class name, including the
  231.                                   * .. null terminator. This must be a
  232.                                   * .. SHORT and must be at the beginning
  233.                                   * .. of the structure.
  234.                                   */
  235.   USHORT  IVarLength;            /* Length of instance variable
  236.                                   * .. information, including the two-
  237.                                   * .. byte null terminator
  238.                                   */
  239. };
  240.  
  241. struct OBJDATA
  242. {
  243.    WPSRCLASSBLOCK       *CurrentClass;
  244.    WPSRCLASSBLOCK       *First;
  245.    PUCHAR                NextData;
  246.    USHORT                Length;
  247. };
  248. typedef OBJDATA *POBJDATA;
  249.  
  250. typedef ULONG HMTX;
  251.  
  252. struct VIEWITEM                  /* USAGE_OPENVIEW struct */
  253. {
  254.    ULONG        view;            /* Object view that this represents */
  255.    LHANDLE      handle;          /* Open handle */
  256.    ULONG        ulViewState;     /* View State flags */
  257.    HWND         hwndCnr;         /* System use only (window animation) */
  258.    PMINIRECORDCORE pRecord;      /* System use only (window animation) */
  259. } ;
  260. typedef VIEWITEM *PVIEWITEM;
  261.  
  262. typedef long  *PLONG;
  263.  
  264. struct CLASSDETAILS              /* Class Details struct */
  265. {
  266.    PSZ          pszAttribute;    /* Translatable string for a class attribute*/
  267.    PVOID        pSortRecord;     /* Function pointer for sort function for attribute*/
  268.    CLASSDETAILS *pNext;          /* Next item in class details list */
  269. } ;
  270. typedef CLASSDETAILS *PCLASSDETAILS;
  271.  
  272. struct CLASSFIELDINFO               /*!INC*/
  273. {
  274.    /* Details field attributes
  275.     */
  276.    ULONG      cb;                   /* size of CLASSFIELDINFO struct  */
  277.    ULONG      flData;               /* attributes of field's data     */
  278.    ULONG      flTitle;              /* attributes of field's title    */
  279.    PVOID      pTitleData;           /* title data (default is string) */
  280.                                     /* If CFT_BITMAP, must be HBITMAP */
  281.    ULONG      ulReserved;           /* Reserved                       */
  282.    PVOID      pUserData;            /* pointer to user data           */
  283.    CLASSFIELDINFO  *pNextFieldInfo; /* pointer to next linked         */
  284.                                           /* CLASSFIELDINFO structure */
  285.    ULONG      cxWidth;              /* width of field in pels         */
  286.    ULONG      offFieldData;         /* offset from beginning of       */
  287.                                     /*   this class's data for this   */
  288.                                     /*   field. (first field is 0).   */
  289.    ULONG      ulLenFieldData;       /* width of data in bytes.        */
  290.                                     /*   (4 for a pointer).           */
  291.    PFNOWNDRW  pfnOwnerDraw;         /* Ownerdraw procedure for detail */
  292.                                     /* column. Can be NULL except if  */
  293.                                     /* ownerdraw is being used.       */
  294.    /* Include/Sort parameters
  295.     */
  296.    ULONG      flCompare;            /* Flags: for example, use the    */
  297.                                     /*   COMPARE_SUPPORTED flag if    */
  298.                                     /*   your field can be compared   */
  299.    PFNCOMPARE pfnCompare;           /* Comparison function for this   */
  300.                                     /*   field. Can be NULL unless    */
  301.                                     /*   ownerdraw is used.           */
  302.    ULONG      DefaultComparison;    /* This is the default compare    */
  303.                                     /*   operator in the include      */
  304.                                     /*   page criteria dialog. (eg:   */
  305.                                     /*   CMP_LESS_OR_EQUAL)           */
  306.    ULONG      ulLenCompareValue;    /* Maximum length of the compare  */
  307.                                     /*   data. Can be NULL unless     */
  308.                                     /*   ownerdraw is used.           */
  309.    PVOID      pDefCompareValue;     /* The default value to be used   */
  310.                                     /*   for comparisons. Can be NULL */
  311.                                     /*   unless ownerdraw is used.    */
  312.    PVOID      pMinCompareValue;     /* The default value to be used   */
  313.                                     /*   for comparisons.Can be NULL  */
  314.                                     /*   unless ownerdraw is used.    */
  315.    PVOID      pMaxCompareValue;     /* The default value to be used   */
  316.                                     /*   for comparisons.Can be NULL  */
  317.                                     /*   unless ownerdraw is used.    */
  318.    PSZ        pszEditControlClass;  /* Window class to be used to edit*/
  319.                                     /*   the compare value. Can be    */
  320.                                     /*   NULL unless ownerdraw is used*/
  321.    PFNCOMPARE pfnSort;              /* Sort function for this @SM09511*/
  322.                                     /*   field. Can be NULL unless    */
  323.                                     /*   ownerdraw is used.           */
  324. } ;
  325. typedef CLASSFIELDINFO *PCLASSFIELDINFO;
  326.  
  327. typedef ULONG       HFIND;
  328. typedef HFIND      *PHFIND;
  329. typedef WPObject   *OBJECT;
  330. typedef OBJECT     *POBJECT;
  331. typedef M_WPObject *CLASS;
  332. typedef CLASS      *PCLASS;
  333.  
  334.  
  335. struct SIZEL
  336. {          /* sizl */
  337.    long cx;
  338.    long cy;
  339. } ;
  340. typedef SIZEL  *PSIZEL;
  341.  
  342. struct FEA2
  343. {
  344.     ULONG   oNextEntryOffset;                   /* new field */
  345.     BYTE    fEA;
  346.     BYTE    cbName;
  347.     USHORT  cbValue;
  348.     char    szName[1];                          /* new field */
  349. } ;
  350. typedef FEA2 *PFEA2;
  351.  
  352. struct FEA2LIST
  353. {
  354.     ULONG   cbList;
  355.     FEA2    list[1];
  356. };
  357. typedef FEA2LIST *PFEA2LIST;
  358.  
  359. /* *** NOTE ***
  360.  * The FDATE and FTIME structures are represented as bit fields and only
  361.  * utilize less than 32 bits for the entire structure. Therefore we have
  362.  * replaced the bit field structure definitions with a single unsigned
  363.  * short, which maps to the equivalent in memory.  This should ensure
  364.  * that DSOM passes the right stuff!
  365.  */
  366. struct FDATE
  367. {
  368.    USHORT date;
  369.    /*
  370.     * USHORT day   : 5;
  371.     * USHORT month : 4;
  372.     * USHORT year  : 7;
  373.     */
  374. } ;
  375. typedef FDATE   *PFDATE;
  376.  
  377. struct FTIME
  378. {
  379.    USHORT time;
  380.    /*
  381.     * USHORT twosecs : 5;
  382.     * USHORT minutes : 6;
  383.     * USHORT hours   : 5;
  384.     */
  385. } ;
  386. typedef FTIME   *PFTIME;
  387.  
  388. struct FILEFINDBUF4                            /* findbuf4 */
  389. {
  390.    ULONG   oNextEntryOffset;                   /* new field */
  391.    FDATE   fdateCreation;
  392.    FTIME   ftimeCreation;
  393.    FDATE   fdateLastAccess;
  394.    FTIME   ftimeLastAccess;
  395.    FDATE   fdateLastWrite;
  396.    FTIME   ftimeLastWrite;
  397.    ULONG   cbFile;
  398.    ULONG   cbFileAlloc;
  399.    ULONG   attrFile;                           /* widened field */
  400.    ULONG   cbList;
  401.    UCHAR   cchName;
  402.    char    achName[CCHMAXPATHCOMP];
  403. } ;
  404. typedef FILEFINDBUF4    *PFILEFINDBUF4;
  405.  
  406.  
  407. struct INFOCLASS
  408. {
  409.    ULONG    flags;
  410.    PSZ      pszClass;
  411.    ULONG    cbObjData;
  412.    POBJDATA pObjData;
  413. };
  414. typedef INFOCLASS * PINFOCLASS;
  415.  
  416. struct CDATE                            /* cdate */
  417. {
  418.    UCHAR   day;                         /* current day               */
  419.    UCHAR   month;                       /* current month             */
  420.    USHORT  year;                        /* current year              */
  421. } ;
  422. typedef CDATE *PCDATE;
  423.  
  424. struct CTIME                            /* ctime */
  425. {
  426.    UCHAR   hours;                       /* current hour              */
  427.    UCHAR   minutes;                     /* current minute            */
  428.    UCHAR   seconds;                     /* current second            */
  429.    UCHAR   ucReserved;                  /* reserved                  */
  430. } ;
  431. typedef CTIME *PCTIME;
  432.  
  433. struct FILEDETAILS
  434. {
  435.    PSZ      pszRealName;     /* Real name */
  436.    ULONG    ulSize;          /* Size of the file */
  437.    CDATE    cdateLastMod;    /* Last modification date */
  438.    CTIME    ctimeLastMod;    /* Last modification time */
  439.    CDATE    cdateLastAccess; /* Last access date */
  440.    CTIME    ctimeLastAccess; /* Last access time */
  441.    CDATE    cdateCreation;   /* Date of creation */
  442.    CTIME    ctimeCreation;   /* Time of creation */
  443.    ULONG    ulFlags;         /* File flags */
  444. } ;
  445. typedef FILEDETAILS * PFILEDETAILS;
  446.  
  447. struct FILESYS_SEARCH_INFO
  448. {
  449.   USHORT Exclude;
  450.   USHORT MustHave;
  451.  
  452.   BOOL   fIncludeLMD;
  453.   USHORT LMDyear;
  454.   USHORT LMDmonth;
  455.   USHORT LMDday;
  456.   short  LMDcriteria;
  457.  
  458.   BOOL   fIncludeLMT;
  459.   USHORT LMThours;
  460.   USHORT LMTminutes;
  461.   USHORT LMTseconds;
  462.   short  LMTcriteria;
  463.  
  464.   BOOL   fIncludeFDS;
  465.   ULONG  FDSsize;
  466.   short  FDScriteria;
  467.  
  468.   BOOL   fIncludeFEAS;
  469.   ULONG  FEASsize;
  470.   short  FEAScriteria;
  471.  
  472.   BOOL   fMustHaveNeedEA;
  473.   BOOL   fMustNotHaveNeedEA;
  474. };
  475. typedef FILESYS_SEARCH_INFO *PFILESYS_SEARCH_INFO;
  476.  
  477. struct TRANSINFO
  478. {
  479.    TRANSINFO         *pNext;         /* Next structure */
  480.    WPObject           Object;        /* Object pointer  rcsom2 removed * */
  481.    ULONG              Handle;        /* Object handle (low word only) */
  482. } ;
  483.  
  484. typedef TRANSINFO *PTRANSINFO;
  485.  
  486.  
  487. typedef LHANDLE HPROGRAM;       /* hprog */
  488.  
  489. struct SWP    /* swp */
  490. {
  491.    ULONG   fl;
  492.    long    cy;
  493.    long    cx;
  494.    long    y;
  495.    long    x;
  496.    HWND    hwndInsertBehind;
  497.    HWND    hwnd;
  498.    ULONG   ulReserved1;
  499.    ULONG   ulReserved2;
  500. } ;
  501. typedef SWP *PSWP;
  502.  
  503. typedef ULONG PROGCATEGORY;
  504. typedef PROGCATEGORY *PPROGCATEGORY;
  505. struct PROGTYPE
  506. {
  507.     PROGCATEGORY progc;
  508.     ULONG        fbVisible;
  509. } ;
  510. typedef PROGTYPE *PPROGTYPE;
  511.  
  512. struct PROGDETAILS
  513. {
  514.       ULONG     Length;         /* set this to sizeof(PROGDETAILS)  */
  515.       PROGTYPE  progt;
  516.       PSZ       pszTitle;       /* any  of the pointers can be NULL  */
  517.       PSZ       pszExecutable;
  518.       PSZ       pszParameters;
  519.       PSZ       pszStartupDir;
  520.       PSZ       pszIcon;
  521.       PSZ       pszEnvironment; /* this is terminated by  /0/0      */
  522.       SWP       swpInitial;     /* this replaces XYWINSIZE          */
  523. } ;
  524. typedef  PROGDETAILS *PPROGDETAILS;
  525.  
  526.  
  527.  
  528. struct ICONPOS
  529. {
  530.    POINTL  ptlIcon;                    /* Location */
  531.    char    szIdentity[1];              /* Object identity string */
  532. } ;
  533. typedef ICONPOS *PICONPOS;
  534.  
  535. struct SEARCH_INFO {
  536.    M_WPObject *ClassToBeFound;
  537.    BOOL       fSkipExtendedSearchCriteria;
  538.    PVOID      pvoidExtendedCriteria;
  539. } ;
  540. typedef SEARCH_INFO *PSEARCH_INFO;
  541.  
  542.  
  543. typedef  ULONG    HEV;
  544.  
  545. struct LINKITEM                  /* USAGE_LINK struct */
  546. {
  547.    WPObject    *LinkObj;         /* The link object */
  548. } ;
  549. typedef LINKITEM *PLINKITEM;
  550.  
  551. struct CRITERIA
  552. {
  553.    PVOID            pReserved;           /* Reserved - MUST be null!!!! */
  554.    CRITERIA        *pNext;
  555.    CRITERIA        *pPrev;
  556.    ULONG            ClassFieldInfoIndex; /* Index of the details field  */
  557.    ULONG            LogicalOperator;     /* CRITERIA_AND or CRITERIA_OR */
  558.    ULONG            ComparisonType;      /* CMP_LESS_OR_EQUAL etc...    */
  559.    ULONG            ulLenCompareValue;   /* sizeof(ComparisonData)      */
  560.    char             CompareValue[1];     /* Value to be compared with   */
  561. };
  562. typedef CRITERIA *PCRITERIA;
  563.  
  564. typedef LHANDLE HFOBJ;
  565.  
  566.  
  567. struct CELL
  568. {
  569.    ULONG       cbData;           /* Size of the data that follows */
  570.  
  571.    /* Class specific cell data follows immediately afterwards -
  572.     * for example the font palette would store the ASCII name of
  573.     * the font, and the color palette would store the RGB color
  574.     * of the cell.
  575.     */
  576. };
  577. typedef CELL *PCELL;
  578.  
  579. struct RECTL                     /* rcl */
  580. {
  581.     long  xLeft;
  582.     long  yBottom;
  583.     long  xRight;
  584.     long  yTop;
  585. } ;
  586. typedef RECTL *PRECTL;
  587.  
  588. struct PALINFO
  589. {
  590.    ULONG       xCellCount;       /* Number of columns of cells */
  591.    ULONG       yCellCount;       /* Number of rows of cells */
  592.    ULONG       xCursor;          /* Cursor location (readonly) */
  593.    ULONG       yCursor;          /* Cursor location (readonly) */
  594.    ULONG       xCellWidth;       /* Width of each cell */
  595.    ULONG       yCellHeight;      /* Height of each cell */
  596.    ULONG       xGap;             /* X separation of cells */
  597.    ULONG       yGap;             /* Y separation of cells */
  598. };
  599. typedef PALINFO *PPALINFO;
  600.  
  601. struct CELLSTRUCT
  602. {
  603.    RECTL       rclCell;          /* Cell coordinates */
  604.    PCELL       pCell;            /* Cell data pointer */
  605. } ;
  606. typedef CELLSTRUCT *PCELLSTRUCT;
  607.  
  608. struct CLASSCRITERIA                                     /*!INC*/
  609. {
  610.    CLASSCRITERIA         *pNext;
  611.    CLASSCRITERIA         *pPrev;
  612.    M_WPObject            *Class;          /* Class object */
  613.    PCRITERIA              pCriteria;      /* Linked list of criteria */
  614.    WPObject              NotifyObject;   /* Owner of the criteria list rcsom2 removed * */
  615. } ;
  616. typedef CLASSCRITERIA *PCLASSCRITERIA;
  617.  
  618. struct FATTRS                           /* fat */
  619. {
  620.    USHORT  usRecordLength;
  621.    USHORT  fsSelection;
  622.    long    lMatch;
  623.    char    szFacename[FACESIZE];
  624.    USHORT  idRegistry;
  625.    USHORT  usCodePage;
  626.    long    lMaxBaselineExt;
  627.    long    lAveCharWidth;
  628.    USHORT  fsType;
  629.    USHORT  fsFontUse;
  630. } ;
  631. typedef FATTRS *PFATTRS;
  632.  
  633.  
  634. #endif /* WPTYPES_IDL  */                                                      // EEO:
  635.  
  636.