home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mod201j.zip / modula2.exe / os2api / os2def.def < prev    next >
Text File  |  1995-02-18  |  17KB  |  509 lines

  1. DEFINITION MODULE OS2DEF;
  2.  
  3. (***************************************************************************
  4.   OS/2 2.1/3.0 Common Definitions file
  5.  
  6.   Copyright (c) 1992-1995 by Juergen Neuhoff
  7. ****************************************************************************)
  8.  
  9. (*$XL+       Modula-2 language extensions: '_' allowed for symbol names *)
  10. (*$CDECL+    C-style procedures                                         *)
  11. (*$A         default alignment for record fields                        *)
  12.  
  13. IMPORT SYSTEM;
  14.  
  15. TYPE
  16.   PVOID        = SYSTEM.ADDRESS;
  17.   PPVOID       = POINTER TO PVOID;
  18.  
  19. TYPE
  20.   TYPEPREFIX   = BOOLEAN;
  21.   APIRET       = LONGCARD;
  22.   APIRET16     = CARDINAL;
  23.   APIRET32     = LONGCARD;
  24.   SHANDLE      = CARDINAL;
  25.   LHANDLE      = LONGCARD;
  26.   USHORT       = CARDINAL;        (* us  *)
  27.   ULONG        = LONGCARD;        (* ul  *)
  28.  
  29.  
  30. CONST
  31.   NULLHANDLE   = LHANDLE(0);
  32.   NULLSHANDLE  = SHANDLE(0);
  33.  
  34. TYPE
  35.   BOOL16       = CARDINAL;
  36.   BOOL32       = LONGCARD;
  37.   QWORDType    = RECORD
  38.     Lo           : LONGCARD;
  39.     Hi           : LONGCARD;
  40.                  END;
  41.   PQWORD       = POINTER TO QWORDType;
  42.   SEL          = CARDINAL;
  43.   PSEL         = POINTER TO SEL;
  44.   ERRORID      = LONGCARD;              (* error ID *)
  45.   PERRORID     = POINTER TO LONGCARD;
  46.   PSZ          = POINTER TO ARRAY [0..MAX(LONGCARD)-1] OF CHAR;
  47.   PCHAR        = POINTER TO CHAR;
  48.   PBYTE        = POINTER TO SYSTEM.BYTE;
  49.   PFN          = SYSTEM.LONGWORD;       (* pointer to any procedure *)
  50.   PCH          = PCHAR;
  51.  
  52. CONST (* Severity codes *)
  53.   SEVERITY_NOERROR        = 0000H;
  54.   SEVERITY_WARNING        = 0004H;
  55.   SEVERITY_ERROR          = 0008H;
  56.   SEVERITY_SEVERE         = 000CH;
  57.   SEVERITY_UNRECOVERABLE  = 0010H;
  58.  
  59. CONST (* Base component error values *)
  60.   WINERR_BASE     = 1000H; (* Window Manager                  *)
  61.   GPIERR_BASE     = 2000H; (* Graphics Presentation Interface *)
  62.   DEVERR_BASE     = 3000H; (* Device Manager                  *)
  63.   SPLERR_BASE     = 4000H; (* Spooler                         *)
  64.  
  65.  
  66. (*** Common types used across components *)
  67.  
  68. TYPE (*** Common DOS types *)
  69.   HMODULE  = LHANDLE;              (* module handle *)
  70.   PID      = LHANDLE;              (* process ID *)
  71.   TID      = LHANDLE;              (* thread ID *)
  72.   SGID     = CARDINAL;             (* sg ID *)
  73.   PHMODULE = POINTER TO HMODULE;
  74.   PPID     = POINTER TO PID;
  75.   PTID     = POINTER TO TID;
  76.  
  77.  
  78. (*** SAA types *)
  79.  
  80. TYPE
  81.   HSEM     = SYSTEM.ADDRESS;       (* semaphor handle *)
  82.   PHSEM    = POINTER TO HSEM;
  83.  
  84.  
  85. (*** Common SUP types *)
  86.  
  87. TYPE
  88.   HAB      = LHANDLE;              (* anchor block handle *)
  89.   PHAB     = POINTER TO HAB;
  90.  
  91.  
  92. (*** Common GPI/DEV types *)
  93.  
  94. TYPE
  95.   HPS      = LHANDLE;              (* presentation space handle *)
  96.   PHPS     = POINTER TO HPS;
  97.   HDC      = LHANDLE;              (* device context handle *)
  98.   PHDC     = POINTER TO HDC;
  99.   HRGN     = LHANDLE;              (* update region handle *)
  100.   PHRGN    = POINTER TO HRGN;
  101.   HBITMAP  = LHANDLE;              (* bit-map handle *)
  102.   PHBITMAP = POINTER TO HBITMAP;
  103.   HMF      = LHANDLE;              (* Meta file handle *)
  104.   PHMF     = POINTER TO HMF;
  105.   HPAL     = LHANDLE;
  106.   PHPAL    = POINTER TO HPAL;
  107.   COLOR    = LONGINT;
  108.   PCOLOR   = POINTER TO COLOR;
  109.  
  110.   POINTL   = RECORD
  111.     x        : LONGINT;
  112.     y        : LONGINT;
  113.              END;
  114.   PPOINTL  = POINTER TO POINTL;
  115.   NPPOINTL = POINTER TO POINTL;
  116.  
  117.   POINTS   = RECORD
  118.     x        : INTEGER;
  119.     y        : INTEGER;
  120.              END;
  121.   PPOINTS  = POINTER TO POINTS;
  122.  
  123.   RECTL    = RECORD
  124.     xLeft    : LONGINT;
  125.     yBottom  : LONGINT;
  126.     xRight   : LONGINT;
  127.     yTop     : LONGINT;
  128.              END;
  129.   PRECTL   = POINTER TO RECTL;
  130.   NPRECTL  = POINTER TO RECTL;
  131.  
  132.   STR8     = ARRAY [0..7] OF CHAR;
  133.   PSTR8    = POINTER TO STR8;
  134.  
  135.  
  136. (*** common DEV/SPL types *)
  137.  
  138. TYPE (* structure for Device Driver data *)
  139.   DRIVDATA        = RECORD
  140.     CASE            : TYPEPREFIX OF
  141.     | FALSE         :
  142.       Count         : LONGINT;
  143.       Version       : LONGINT;
  144.       DeviceName    : ARRAY [0..31] OF CHAR;
  145.       GeneralData   : ARRAY [0..0]  OF CHAR;
  146.       Filler        : ARRAY [0..2] OF SYSTEM.BYTE;
  147.     | TRUE          :
  148.       cb            : LONGINT;
  149.       lVersion      : LONGINT;
  150.       szDeviceName  : ARRAY [0..31] OF CHAR;
  151.       abGeneralData : ARRAY [0..0]  OF CHAR;
  152.       filler        : ARRAY [0..2] OF SYSTEM.BYTE;
  153.     END;            END;
  154.   PDRIVDATA       = POINTER TO DRIVDATA;
  155.  
  156.  
  157. CONST (* array parameter array indices for DevOpenDC, SplQmOpen, SplQpOpen *)
  158.   DRIVER_NAME    = 1;
  159.   DRIVER_DATA    = 2;
  160.   DATA_TYPE      = 3;
  161.   COMMENT        = 4;
  162.   PROC_NAME      = 5;
  163.   PROC_PARAMS    = 6;
  164.   SPL_PARAMS     = 7;
  165.   NETWORK_PARAMS = 8;
  166.  
  167. TYPE (* structure definition as an alternative of the array parameter *)
  168.   DEVOPENSTRUC        = RECORD
  169.     CASE                : TYPEPREFIX OF
  170.     | FALSE             :
  171.       LogAddress        : PSZ;
  172.       DriverName        : PSZ;
  173.       Driv              : PDRIVDATA;
  174.       DataType          : PSZ;
  175.       Comment           : PSZ;
  176.       QueueProcName     : PSZ;
  177.       QueueProcParams   : PSZ;
  178.       SpoolerParams     : PSZ;
  179.       NetworkParams     : PSZ;
  180.     | TRUE              :
  181.       pszLogAddress     : PSZ;
  182.       pszDriverName     : PSZ;
  183.       pdriv             : PDRIVDATA;
  184.       pszDataType       : PSZ;
  185.       pszComment        : PSZ;
  186.       pszQueueProcName  : PSZ;
  187.       pszQueueProcParams: PSZ;
  188.       pszSpoolerParams  : PSZ;
  189.       pszNetworkParams  : PSZ;
  190.     END;                END;
  191.   PDEVOPENSTRUC       = POINTER TO DEVOPENSTRUC;
  192.  
  193.  
  194. TYPE (* common WINWORKPLACE object and PMSTDDLG drag data *)
  195.   PDEVOPENDATA  = PSZ;
  196.   PRINTDEST     = RECORD
  197.     CASE          : TYPEPREFIX OF
  198.     | FALSE       :
  199.       Size        : LONGCARD;
  200.       Type        : LONGINT;
  201.       Token       : PSZ;
  202.       Count       : LONGINT;
  203.       Data        : PDEVOPENDATA;
  204.       Flags       : LONGCARD;
  205.       Printer     : PSZ;
  206.     | TRUE        :
  207.       cb          : LONGCARD;
  208.       lType       : LONGINT;
  209.       pszToken    : PSZ;
  210.       lCount      : LONGINT;
  211.       pdopData    : PDEVOPENDATA;
  212.       fl          : LONGCARD;
  213.       pszPrinter  : PSZ;
  214.     END;          END;
  215.   PPRINTDEST    = POINTER TO PRINTDEST;
  216.  
  217. CONST
  218.   PD_JOB_PROPERTY = 0001H;    (* Flags for .fl field           *)
  219.  
  220.  
  221. (*** common AVIO/GPI types *)
  222.  
  223. CONST (* values of fsSelection field of FATTRS structure *)
  224.   FATTR_SEL_ITALIC     =  0001H;
  225.   FATTR_SEL_UNDERSCORE =  0002H;
  226.   FATTR_SEL_OUTLINE    =  0008H;
  227.   FATTR_SEL_STRIKEOUT  =  0010H;
  228.   FATTR_SEL_BOLD       =  0020H;
  229.  
  230. CONST (* values of fsType field of FATTRS structure *)
  231.   FATTR_TYPE_KERNING     = 0004H;
  232.   FATTR_TYPE_MBCS        = 0008H;
  233.   FATTR_TYPE_DBCS        = 0010H;
  234.   FATTR_TYPE_ANTIALIASED = 0020H;
  235.  
  236. CONST (* values of fsFontUse field of FATTRS structure *)
  237.   FATTR_FONTUSE_NOMIX         = 0002H;
  238.   FATTR_FONTUSE_OUTLINE       = 0004H;
  239.   FATTR_FONTUSE_TRANSFORMABLE = 0008H;
  240.  
  241. CONST (* size for fields in the font structures *)
  242.   FACESIZE = 32;
  243.  
  244. TYPE (* font struct for Vio/GpiCreateLogFont *)
  245.   FATTRS            = RECORD
  246.     CASE              : TYPEPREFIX OF
  247.     | FALSE           :
  248.       RecordLength    : CARDINAL;
  249.       Selection       : CARDINAL;
  250.       Match           : LONGINT;
  251.       Facename        : ARRAY [0..FACESIZE-1] OF CHAR;
  252.       Registry        : CARDINAL;
  253.       CodePage        : CARDINAL;
  254.       MaxBaselineExt  : LONGINT;
  255.       AveCharWidth    : LONGINT;
  256.       Type            : CARDINAL;
  257.       FontUse         : CARDINAL;
  258.     | TRUE            :
  259.       usRecordLength  : CARDINAL;
  260.       fsSelection     : CARDINAL;
  261.       lMatch          : LONGINT;
  262.       szFacename      : ARRAY [0..FACESIZE-1] OF CHAR;
  263.       idRegistry      : CARDINAL;
  264.       usCodePage      : CARDINAL;
  265.       lMaxBaselineExt : LONGINT;
  266.       lAveCharWidth   : LONGINT;
  267.       fsType          : CARDINAL;
  268.       fsFontUse       : CARDINAL;
  269.     END;              END;
  270.   PFATTRS           = POINTER TO FATTRS;
  271.  
  272. CONST (* values of Type field of FONTMETRICS structure *)
  273.   FM_TYPE_FIXED      = 0001H;
  274.   FM_TYPE_LICENSED   = 0002H;
  275.   FM_TYPE_KERNING    = 0004H;
  276.   FM_TYPE_DBCS       = 0010H;
  277.   FM_TYPE_MBCS       = 0018H;
  278.   FM_TYPE_64K        = 8000H;
  279.   FM_TYPE_ATOMS      = 4000H;
  280.   FM_TYPE_FAMTRUNC   = 2000H;
  281.   FM_TYPE_FACETRUNC  = 1000H;
  282.  
  283. CONST (* values of Defn field of FONTMETRICS structure *)
  284.   FM_DEFN_OUTLINE    = 0001H;
  285.   FM_DEFN_IFI        = 0002H;
  286.   FM_DEFN_WIN        = 0004H;
  287.   FM_DEFN_GENERIC    = 8000H;
  288.  
  289. CONST (* values of Selection field of FONTMETRICS structure *)
  290.   FM_SEL_ITALIC      = 0001H;
  291.   FM_SEL_UNDERSCORE  = 0002H;
  292.   FM_SEL_NEGATIVE    = 0004H;
  293.   FM_SEL_OUTLINE     = 0008H;        (* Hollow Outline Font *)
  294.   FM_SEL_STRIKEOUT   = 0010H;
  295.   FM_SEL_BOLD        = 0020H;
  296.  
  297. CONST (* values of Capabilities field of FONTMETRICS structure *)
  298.   FM_CAP_NOMIX       = 0001H;
  299.  
  300. TYPE (* font metrics returned by GpiQueryFonts and others *)
  301.   PANOSE                 = RECORD
  302.     CASE                   : TYPEPREFIX OF
  303.     | FALSE                :
  304.       FamilyType           : SHORTCARD;
  305.       SerifStyle           : SHORTCARD;
  306.       Weight               : SHORTCARD;
  307.       Proportion           : SHORTCARD;
  308.       Contrast             : SHORTCARD;
  309.       StrokeVariation      : SHORTCARD;
  310.       ArmStyle             : SHORTCARD;
  311.       Letterform           : SHORTCARD;
  312.       Midline              : SHORTCARD;
  313.       XHeight              : SHORTCARD;
  314.       Reserved             : ARRAY [0..1] OF SHORTCARD;
  315.     | TRUE                 :
  316.       bFamilyType          : SHORTCARD;
  317.       bSerifStyle          : SHORTCARD;
  318.       bWeight              : SHORTCARD;
  319.       bProportion          : SHORTCARD;
  320.       bContrast            : SHORTCARD;
  321.       bStrokeVariation     : SHORTCARD;
  322.       bArmStyle            : SHORTCARD;
  323.       bLetterform          : SHORTCARD;
  324.       bMidline             : SHORTCARD;
  325.       bXHeight             : SHORTCARD;
  326.       abReserved           : ARRAY [0..1] OF SHORTCARD;
  327.     END;                   END;
  328.   FONTMETRICS            = RECORD
  329.     CASE                   : TYPEPREFIX OF
  330.     | FALSE                :
  331.       Familyname           : ARRAY [0..FACESIZE-1] OF CHAR;
  332.       Facename             : ARRAY [0..FACESIZE-1] OF CHAR;
  333.       Registry             : CARDINAL;
  334.       CodePage             : CARDINAL;
  335.       EmHeight             : LONGINT;
  336.       XHeight              : LONGINT;
  337.       MaxAscender          : LONGINT;
  338.       MaxDescender         : LONGINT;
  339.       LowerCaseAscent      : LONGINT;
  340.       LowerCaseDescent     : LONGINT;
  341.       InternalLeading      : LONGINT;
  342.       ExternalLeading      : LONGINT;
  343.       AveCharWidth         : LONGINT;
  344.       MaxCharInc           : LONGINT;
  345.       EmInc                : LONGINT;
  346.       MaxBaselineExt       : LONGINT;
  347.       CharSlope            : INTEGER;
  348.       InlineDir            : INTEGER;
  349.       CharRot              : INTEGER;
  350.       WeightClass          : CARDINAL;
  351.       WidthClass           : CARDINAL;
  352.       XDeviceRes           : INTEGER;
  353.       YDeviceRes           : INTEGER;
  354.       FirstChar            : INTEGER;
  355.       LastChar             : INTEGER;
  356.       DefaultChar          : INTEGER;
  357.       BreakChar            : INTEGER;
  358.       NominalPointSize     : INTEGER;
  359.       MinimumPointSize     : INTEGER;
  360.       MaximumPointSize     : INTEGER;
  361.       Type                 : CARDINAL;
  362.       Defn                 : CARDINAL;
  363.       Selection            : CARDINAL;
  364.       Capabilities         : CARDINAL;
  365.       SubscriptXSize       : LONGINT;
  366.       SubscriptYSize       : LONGINT;
  367.       SubscriptXOffset     : LONGINT;
  368.       SubscriptYOffset     : LONGINT;
  369.       SuperscriptXSize     : LONGINT;
  370.       SuperscriptYSize     : LONGINT;
  371.       SuperscriptXOffset   : LONGINT;
  372.       SuperscriptYOffset   : LONGINT;
  373.       UnderscoreSize       : LONGINT;
  374.       UnderscorePosition   : LONGINT;
  375.       StrikeoutSize        : LONGINT;
  376.       StrikeoutPosition    : LONGINT;
  377.       KerningPairs         : INTEGER;
  378.       FamilyClass          : INTEGER;
  379.       Match                : LONGINT;
  380.     | TRUE                 :
  381.       szFamilyname         : ARRAY [0..FACESIZE-1] OF CHAR;
  382.       szFacename           : ARRAY [0..FACESIZE-1] OF CHAR;
  383.       idRegistry           : CARDINAL;
  384.       usCodePage           : CARDINAL;
  385.       lEmHeight            : LONGINT;
  386.       lXHeight             : LONGINT;
  387.       lMaxAscender         : LONGINT;
  388.       lMaxDescender        : LONGINT;
  389.       lLowerCaseAscent     : LONGINT;
  390.       lLowerCaseDescent    : LONGINT;
  391.       lInternalLeading     : LONGINT;
  392.       lExternalLeading     : LONGINT;
  393.       lAveCharWidth        : LONGINT;
  394.       lMaxCharInc          : LONGINT;
  395.       lEmInc               : LONGINT;
  396.       lMaxBaselineExt      : LONGINT;
  397.       sCharSlope           : INTEGER;
  398.       sInlineDir           : INTEGER;
  399.       sCharRot             : INTEGER;
  400.       usWeightClass        : CARDINAL;
  401.       usWidthClass         : CARDINAL;
  402.       sXDeviceRes          : INTEGER;
  403.       sYDeviceRes          : INTEGER;
  404.       sFirstChar           : INTEGER;
  405.       sLastChar            : INTEGER;
  406.       sDefaultChar         : INTEGER;
  407.       sBreakChar           : INTEGER;
  408.       sNominalPointSize    : INTEGER;
  409.       sMinimumPointSize    : INTEGER;
  410.       sMaximumPointSize    : INTEGER;
  411.       fsType               : CARDINAL;
  412.       fsDefn               : CARDINAL;
  413.       fsSelection          : CARDINAL;
  414.       fsCapabilities       : CARDINAL;
  415.       lSubscriptXSize      : LONGINT;
  416.       lSubscriptYSize      : LONGINT;
  417.       lSubscriptXOffset    : LONGINT;
  418.       lSubscriptYOffset    : LONGINT;
  419.       lSuperscriptXSize    : LONGINT;
  420.       lSuperscriptYSize    : LONGINT;
  421.       lSuperscriptXOffset  : LONGINT;
  422.       lSuperscriptYOffset  : LONGINT;
  423.       lUnderscoreSize      : LONGINT;
  424.       lUnderscorePosition  : LONGINT;
  425.       lStrikeoutSize       : LONGINT;
  426.       lStrikeoutPosition   : LONGINT;
  427.       sKerningPairs        : INTEGER;
  428.       sFamilyClass         : INTEGER;
  429.       lMatch               : LONGINT;
  430.     END;
  431.     FamilyNameAtom         : LONGINT;
  432.     FaceNameAtom           : LONGINT;
  433.     panose                 : PANOSE;
  434.                            END;
  435.   PFONTMETRICS          = POINTER TO FONTMETRICS;
  436.  
  437.  
  438.  
  439. (*** Common WIN types *)
  440.  
  441. TYPE
  442.   HWND     = LHANDLE;                (* window handle *)
  443.   PHWND    = POINTER TO HWND;
  444.   HMQ      = LHANDLE;                (* message queue handle *)
  445.   PHMQ     = POINTER TO LHANDLE;
  446.   WRECT    = RECTL;
  447.   PWRECT   = PRECTL;
  448.   NPWRECT  = NPRECTL;
  449.   WPOINT   = POINTL;
  450.   PWPOINT  = PPOINTL;
  451.   NPWPOINT = NPPOINTL;
  452.  
  453. TYPE
  454.   ICONINFO               = RECORD      (* icinf *)
  455.     CASE                   : TYPEPREFIX OF
  456.     | TRUE                 :
  457.       cb                   : LONGCARD; (* size of ICONINFO structure       *)
  458.       fFormat              : LONGCARD;
  459.       pszFileName          : PSZ;      (* use when fFormat = ICON_FILE     *)
  460.       hmod                 : HMODULE;  (* use when fFormat = ICON_RESOURCE *)
  461.       resid                : LONGCARD; (* use when fFormat = ICON_RESOURCE *)
  462.       cbIconData           : LONGCARD; (* use when fFormat = ICON_DATA     *)
  463.       pIconData            : SYSTEM.ADDRESS; (* when fFormat = ICON_DATA   *)
  464.     | FALSE                :
  465.       Count                : LONGCARD; (* size of ICONINFO structure       *)
  466.       Format               : LONGCARD;
  467.       FileName             : PSZ;      (* use when fFormat = ICON_FILE     *)
  468.       Modhandle            : HMODULE;  (* use when fFormat = ICON_RESOURCE *)
  469.       ResourceId           : LONGCARD; (* use when fFormat = ICON_RESOURCE *)
  470.       IconDataSize         : LONGCARD; (* use when fFormat = ICON_DATA     *)
  471.       IconData             : SYSTEM.ADDRESS; (* when fFormat = ICON_DATA   *)
  472.     END;                   END;
  473.   PICONINFO              = POINTER TO ICONINFO;
  474.  
  475. CONST
  476.   ICON_FILE              = 1;          (* flags for fFormat *)
  477.   ICON_RESOURCE          = 2;
  478.   ICON_DATA              = 3;
  479.   ICON_CLEAR             = 4;
  480.  
  481.  
  482. (*** Path name string delimiters ***)
  483.  
  484. CONST
  485.  
  486.   (*************************************************************************
  487.    * CCHMAXPATH is the maximum fully qualified path name length including  *
  488.    * the drive letter, colon, backslashes and terminating NULL.            *
  489.    *************************************************************************)
  490.    CCHMAXPATH       = 260;
  491.  
  492.   (*************************************************************************
  493.    * CCHMAXPATHCOMP is the maximum individual path component name length   *
  494.    * including a terminating NULL.                                         *
  495.    *************************************************************************)
  496.   CCHMAXPATHCOMP    = 256;
  497.  
  498.  
  499. TYPE (* common types for file system *)
  500.   HFILE    = LHANDLE;                 (* File handle *)
  501.   PHFILE   = POINTER TO HFILE;
  502.   HEV      = LONGCARD;                (* Event handle *)
  503.   PHEV     = POINTER TO HEV;
  504.   FHLOCK   = LONGCARD;
  505.   PFHLOCK  = POINTER TO FHLOCK;
  506.  
  507.  
  508. END OS2DEF.
  509.