home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / sibdemo3.zip / SOURCE.DAT / SOURCE / RTL / OS2DEF.PAS < prev    next >
Pascal/Delphi Source File  |  1996-02-21  |  11KB  |  402 lines

  1. UNIT Os2Def;
  2.  
  3. {****************************** Module Header ******************************
  4.  *                                                                         *
  5.  * Module Name: OS2DEF.PAS                                                 *
  6.  *                                                                         *
  7.  * OS/2 Common Definitions file                                            *
  8.  *                                                                         *
  9.  *                                                                         *
  10.  ***************************************************************************}
  11.  
  12.  
  13. INTERFACE
  14.  
  15. {Note: An ARRAY [0..x] OF CHAR is equal to a CSTRING[x] !
  16.        CString and PSZ are null terminated strings
  17.        PSZ is changed to PChar (^CString) in records}
  18.  
  19.  
  20. TYPE
  21.      ULONG    =LONGWORD;
  22.      LONG     =LONGINT;
  23.      USHORT   =WORD;
  24.      SHORT    =INTEGER;
  25.      UINT     =LONGWORD;
  26.      PUCHAR   =^UCHAR;
  27.      UCHAR    =BYTE;
  28.      SEL      =WORD;
  29.  
  30.      PSZ      =CSTRING;
  31.  
  32.      LHANDLE  =LONGWORD;
  33.      HMODULE  =LONGWORD;
  34.      PID      =LONGWORD;
  35.      TID      =LONGWORD;
  36.      SGID     =USHORT;
  37.      PVOID    =POINTER;
  38.      PBYTE    =^BYTE;
  39.      PUSHORT  =^USHORT;
  40.      PSHORT   =^SHORT;
  41.      PULONG   =^ULONG;
  42.      PLONG    =^LONG;
  43.      ERRORID  =ULONG;
  44.  
  45. TYPE
  46.      MPARAM   =ULONG;
  47.      MRESULT  =ULONG;
  48.  
  49.      HPS      =LHANDLE;
  50.      HPAL     =LHANDLE;
  51.      HMF      =LHANDLE;
  52.      COLOR    =LONGINT;
  53.  
  54.      PPOINTL=^POINTL;
  55.      POINTL=RECORD
  56.                   x:LONGINT;
  57.                   y:LONGINT;
  58.             END;
  59.  
  60.      PPOINTS=^POINTS;
  61.      POINTS=RECORD
  62.                   x:INTEGER;
  63.                   y:INTEGER;
  64.             END;
  65.  
  66.      PRECTL=^RECTL;
  67.      RECTL=RECORD
  68.                xLeft:LONGINT;
  69.                yBottom:LONGINT;
  70.                xRight:LONGINT;
  71.                yTop:LONGINT;
  72.            END;
  73.  
  74.      www=Pchar;
  75.  
  76.      HWND=LHANDLE;
  77.      HMQ=LHANDLE;
  78.      HBITMAP=LHANDLE;
  79.      HAB=LHANDLE;
  80.      WRECT=RECTL;
  81.      WPOINT=POINTL;
  82.      BOOL=LONGBOOL;
  83.      HDC=LHANDLE;
  84.      HRGN=LHANDLE;
  85.      APIRET=LONGWORD;
  86.      HPOINTER=LHANDLE;
  87.  
  88.      PSWP=^SWP;
  89.      SWP=RECORD
  90.                fl:ULONG;
  91.                cy:LONG;
  92.                cx:LONG;
  93.                y:LONG;
  94.                x:LONG;
  95.                hwndInsertBehind:HWND;
  96.                hwnd:HWND;
  97.                ulReserved1:ULONG;
  98.                ulReserved2:ULONG;
  99.          END;
  100.  
  101.      PSWPBUF=^TSWPBUF;
  102.      TSWPBUF=ARRAY[0..20] OF SWP;
  103.  
  104.  
  105.      PLONGBUF=^TLONGBUF;
  106.      TLONGBUF=ARRAY[0..65530] OF LONGWORD;
  107.  
  108.      PQMSG=^QMSG;
  109.      QMSG=RECORD
  110.               hwnd:HWND;
  111.               msg:LONGWORD;
  112.               mp1:ULONG;
  113.               mp2:ULONG;
  114.               time:LONGWORD;
  115.               ptl:POINTL;
  116.               reserved:LONGWORD;
  117.           END;
  118.  
  119.      MOUSEMSG=^TMOUSEMSG;
  120.      TMOUSEMSG=RECORD
  121.                      msg:ULONG;
  122.                      x,y:INTEGER;
  123.                      codeHitTest:WORD;
  124.                      fsInp:WORD;
  125.                END;
  126.  
  127.      CHARMSG=^TCHARMSG;
  128.      TCHARMSG=RECORD
  129.                     msg:ULONG;
  130.                     fs:WORD;
  131.                     cRepeat:BYTE;
  132.                     ScanCode:BYTE;
  133.                     chr:WORD;
  134.                     vkey:WORD;
  135.               END;
  136.  
  137.      COMMANDMSG=^TCOMMANDMSG;
  138.      TCOMMANDMSG=RECORD
  139.                        msg:ULONG;
  140.                        cmd:WORD;              /* mp1 */
  141.                        unused:WORD;
  142.                        source:WORD;           /* mp2 */
  143.                        fMouse:WORD;
  144.                  END;
  145.  
  146.  
  147.      PFNWP = FUNCTION(ahwnd:HWND;msg:ULONG;mp1,mp2:MPARAM):MRESULT;CDECL;
  148.  
  149.  
  150.  
  151. CONST
  152.      NULLSHANDLE     =0;
  153.  
  154.      { Severity codes }
  155. CONST
  156.      SEVERITY_NOERROR         =$0000;
  157.      SEVERITY_WARNING         =$0004;
  158.      SEVERITY_ERROR           =$0008;
  159.      SEVERITY_SEVERE          =$000C;
  160.      SEVERITY_UNRECOVERABLE   =$0010;
  161.  
  162.      { Base component error values }
  163.  
  164.      WINERR_BASE             =$1000;  { Window Manager                  }
  165.      GPIERR_BASE             =$2000;  { Graphics Presentation Interface }
  166.      DEVERR_BASE             =$3000;  { Device Manager                  }
  167.      SPLERR_BASE             =$4000;  { Spooler                         }
  168.  
  169.  
  170. TYPE
  171.      PCH=POINTER;
  172.  
  173.      { structure for Device Driver data }
  174.  
  175. TYPE
  176.      PDRIVDATA=^DRIVDATA;
  177.      DRIVDATA=RECORD
  178.                    cb:LONGINT;
  179.                    lVersion:LONGINT;
  180.                    szDeviceName:CSTRING[31];
  181.                    abGeneralData:CHAR;
  182.               END;
  183.  
  184.      {array indices for array parameter for DevOpenDC,SplQmOpen or SplQpOpen}
  185.  
  186. CONST
  187.      ADDRESS         =0;
  188.      DRIVER_NAME     =1;
  189.      DRIVER_DATA     =2;
  190.      DATA_TYPE       =3;
  191.      COMMENT         =4;
  192.      PROC_NAME       =5;
  193.      PROC_PARAMS     =6;
  194.      SPL_PARAMS      =7;
  195.      NETWORK_PARAMS  =8;
  196.  
  197.      { structure definition as an alternative of the array parameter }
  198.  
  199. TYPE
  200.      DEVOPENSTRUC=RECORD
  201.                        pszLogAddress:PChar;
  202.                        pszDriverName:PChar;
  203.                        pdriv:PDRIVDATA;
  204.                        pszDataType:PChar;
  205.                        pszComment:PChar;
  206.                        pszQueueProcName:PChar;
  207.                        pszQueueProcParams:PChar;
  208.                        pszSpoolerParams:PChar;
  209.                        pszNetworkParams:PChar;
  210.                   END;
  211.  
  212.      { common PMWP object and PMSTDDLG drag data }
  213.  
  214. TYPE
  215.      PDEVOPENDATA=^PChar;
  216.  
  217.      PRINTDEST=RECORD
  218.                      cb:ULONG;
  219.                      lType:LONG;
  220.                      pszToken:PChar;
  221.                      lCount:LONG;
  222.                      pdopData:PDEVOPENDATA;
  223.                      fl:ULONG;
  224.                      pszPrinter:PChar;
  225.                END;
  226.  
  227. CONST
  228.      PD_JOB_PROPERTY            =$0001; { Flags for .fl field           }
  229.  
  230.      { common AVIO/GPI types }
  231.  
  232. CONST
  233.      { values of fsSelection field of FATTRS structure }
  234.      FATTR_SEL_ITALIC            =$0001;
  235.      FATTR_SEL_UNDERSCORE        =$0002;
  236.      FATTR_SEL_OUTLINE           =$0008;
  237.      FATTR_SEL_STRIKEOUT         =$0010;
  238.      FATTR_SEL_BOLD              =$0020;
  239.  
  240.      { values of fsType field of FATTRS structure }
  241.      FATTR_TYPE_KERNING          =$0004;
  242.      FATTR_TYPE_MBCS             =$0008;
  243.      FATTR_TYPE_DBCS             =$0010;
  244.      FATTR_TYPE_ANTIALIASED      =$0020;
  245.  
  246.      { values of fsFontUse field of FATTRS structure }
  247.      FATTR_FONTUSE_NOMIX         =$0002;
  248.      FATTR_FONTUSE_OUTLINE       =$0004;
  249.      FATTR_FONTUSE_TRANSFORMABLE =$0008;
  250.  
  251.      { values of fsType field of FONTMETRICS structure }
  252. CONST
  253.      FM_TYPE_FIXED           =$0001;
  254.      FM_TYPE_LICENSED        =$0002;
  255.      FM_TYPE_KERNING         =$0004;
  256.      FM_TYPE_DBCS            =$0010;
  257.      FM_TYPE_MBCS            =$0018;
  258.      FM_TYPE_64K             =$8000;
  259.      FM_TYPE_ATOMS           =$4000;
  260.      FM_TYPE_FAMTRUNC        =$2000;
  261.      FM_TYPE_FACETRUNC       =$1000;
  262.  
  263.      { values of fsDefn field of FONTMETRICS structure }
  264.      FM_DEFN_OUTLINE         =$0001;
  265.      FM_DEFN_IFI             =$0002;
  266.      FM_DEFN_WIN             =$0004;
  267.      FM_DEFN_GENERIC         =$8000;
  268.  
  269.      { values of fsSelection field of FONTMETRICS structure }
  270.      FM_SEL_ITALIC           =$0001;
  271.      FM_SEL_UNDERSCORE       =$0002;
  272.      FM_SEL_NEGATIVE         =$0004;
  273.      FM_SEL_OUTLINE          =$0008;          /* Hollow Outline Font */
  274.      FM_SEL_STRIKEOUT        =$0010;
  275.      FM_SEL_BOLD             =$0020;
  276.      FM_SEL_ISO9241_TESTED   =$0040;
  277.  
  278.      { values of fbPassed/FailedISO field in the PANOSE structure }
  279.      FM_ISO_9518_640         =$01;
  280.      FM_ISO_9515_640         =$02;
  281.      FM_ISO_9515_1024        =$04;
  282.      FM_ISO_9517_640         =$08;
  283.      FM_ISO_9517_1024        =$10;
  284.  
  285.      { values of fsCapabilities field of FONTMETRICS structure }
  286.      FM_CAP_NOMIX            =$0001;
  287.  
  288.  
  289. TYPE
  290.     ICONINFO=RECORD
  291.                    cb:ULONG;         { size of ICONINFO structure       }
  292.                    fFormat:ULONG;
  293.                    pszFileName:PChar;{ use when fFormat = ICON_FILE     }
  294.                    hmod:HMODULE;     { use when fFormat = ICON_RESOURCE }
  295.                    resid:ULONG;      { use when fFormat = ICON_RESOURCE }
  296.                    cbIconData:ULONG; { use when fFormat = ICON_DATA     }
  297.                    pIconData:PVOID;  { use when fFormat = ICON_DATA     }
  298.              END;
  299.  
  300. CONST
  301.      ICON_FILE     =1;         /* flags for fFormat */
  302.      ICON_RESOURCE =2;
  303.      ICON_DATA     =3;
  304.      ICON_CLEAR    =4;
  305.  
  306.  
  307. FUNCTION MAKEP(sel,off:LONGWORD):POINTER;
  308. FUNCTION MAKEULONG(l,h:WORD):ULONG;
  309. FUNCTION MAKELONG(l,h:WORD):LONG;
  310. FUNCTION MAKEUSHORT(l,h:BYTE):WORD;
  311. FUNCTION MAKESHORT(l,h:BYTE):INTEGER;
  312. FUNCTION LOBYTE(w:WORD):BYTE;
  313. FUNCTION HIBYTE(w:WORD):BYTE;
  314. FUNCTION LOUCHAR(w:WORD):BYTE;
  315. FUNCTION HIUCHAR(w:WORD):BYTE;
  316. FUNCTION LOUSHORT(w:LONGWORD):WORD;
  317. FUNCTION HIUSHORT(w:LONGWORD):WORD;
  318. FUNCTION MAKEERRORID(sev,error:WORD):ERRORID;
  319. FUNCTION ERRORIDERROR(errid:ERRORID):WORD;
  320. FUNCTION ERRORIDSEV(errid:ERRORID):WORD;
  321.  
  322.  
  323. IMPLEMENTATION
  324.  
  325. FUNCTION MAKEP(sel,off:LONGWORD):POINTER;
  326. BEGIN
  327.      MAKEP:=POINTER((sel SHR 16) OR off);
  328. END;
  329.  
  330. FUNCTION MAKEULONG(l,h:WORD):ULONG;
  331. BEGIN
  332.      MAKEULONG:=l OR (LONGWORD(h) SHL 16);
  333. END;
  334.  
  335. FUNCTION MAKELONG(l,h:WORD):LONG;
  336. BEGIN
  337.      MAKELONG:=l OR (LONGWORD(h) SHL 16);
  338. END;
  339.  
  340.  
  341. FUNCTION MAKEUSHORT(l,h:BYTE):WORD;
  342. BEGIN
  343.      MAKEUSHORT:=l OR (WORD(h) SHL 8);
  344. END;
  345.  
  346. FUNCTION MAKESHORT(l,h:BYTE):INTEGER;
  347. BEGIN
  348.      MAKESHORT:=l OR (WORD(h) SHL 8);
  349. END;
  350.  
  351. FUNCTION LOBYTE(w:WORD):BYTE;
  352. BEGIN
  353.      LOBYTE:=Lo(w);
  354. END;
  355.  
  356. FUNCTION HIBYTE(w:WORD):BYTE;
  357. BEGIN
  358.      HIBYTE:=Hi(w);
  359. END;
  360.  
  361.  
  362. FUNCTION LOUCHAR(w:WORD):BYTE;
  363. BEGIN
  364.      LOUCHAR:=Lo(w);
  365. END;
  366.  
  367. FUNCTION HIUCHAR(w:WORD):BYTE;
  368. BEGIN
  369.      HIUCHAR:=Hi(w);
  370. END;
  371.  
  372. FUNCTION LOUSHORT(w:LONGWORD):WORD;
  373. BEGIN
  374.      LOUSHORT:=Lo(w);
  375. END;
  376.  
  377. FUNCTION HIUSHORT(w:LONGWORD):WORD;
  378. BEGIN
  379.      HIUSHORT:=Hi(w);
  380. END;
  381.  
  382.  
  383. FUNCTION MAKEERRORID(sev,error:WORD):ERRORID;
  384. BEGIN
  385.      MAKEERRORID:=MAKEULONG(Error,Sev);
  386. END;
  387.  
  388.  
  389. FUNCTION ERRORIDERROR(errid:ERRORID):WORD;
  390. BEGIN
  391.      ERRORIDERROR:=LOUSHORT(errid);
  392. END;
  393.  
  394. FUNCTION ERRORIDSEV(errid:ERRORID):WORD;
  395. BEGIN
  396.      ERRORIDSEV:=HIUSHORT(errid);
  397. END;
  398.  
  399.  
  400. BEGIN
  401. END.
  402.