home *** CD-ROM | disk | FTP | other *** search
/ The Developer Connection…ice Driver Kit for OS/2 3 / DEV3-D1.ISO / source / wpshidl / idl / wptypes.idl < prev   
Encoding:
Text File  |  1993-11-17  |  19.3 KB  |  576 lines

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