home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / tolkit45.zip / os2tk45 / idl / wptypes.idl < prev    next >
Text File  |  1999-03-15  |  24KB  |  666 lines

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