home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wpentk.zip / WBPENTK4.DSK / PENTYPES.IDL < prev   
Text File  |  1994-10-07  |  20KB  |  603 lines

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