fpc/rtl/os2/os2def.pas
1998-04-09 08:24:11 +00:00

355 lines
8.3 KiB
ObjectPascal

{****************************************************************************
Copyright (c) 1993,94 by Florian Kl„mpfl
****************************************************************************}
unit os2def;
interface
type
APIRET = longint;
APIRET16 = word;
APIRET32 = longint;
SHANDLE = word;
LHANDLE = longint;
CHAR = char;
SHORT = integer;
LONG = longint;
INT = longint;
UCHAR = char;
USHORT = word;
ULONG = longint;
UINT = longint;
{!!!!!!! typedef UCHAR * _Seg16 PUCHAR16;
typedef CHAR * _Seg16 PCHAR16; }
BYTE = byte;
PSZ = ^char;
NPSZ = ^char;
PCH = ^char;
NPCH = ^char;
{ typedef int ( APIENTRY _PFN) ();
typedef _PFN *PFN;
typedef int ( APIENTRY _NPFN) ();
typedef _NPFN *NPFN; }
PBYTE = ^BYTE;
NPBYTE = ^BYTE;
PCHAR = ^CHAR;
PSHORT = ^SHORT;
PLONG = ^LONG;
PINT = ^INT;
PUCHAR = ^UCHAR;
PUSHORT = ^USHORT;
PULONG = ^ULONG;
PUINT = ^UINT;
PVOID = pointer;
PPVOID = ^PVOID;
{ typedef VOID * _Seg16 PVOID16; }
BOOL = longint;
PBOOL = ^BOOL;
BOOL16 = word;
{ typedef BOOL16 * _Seg16 PBOOL16; }
BOOL32 = BOOL;
PBOOL32 = PBOOL;
QWORD = record
ulLo : ULONG;
ulHi : ULONG;
end;
PQWORD = ^QWORD;
SEL = WORD;
PSEL = ^SEL;
ERRORID = ULONG;
PERRORID = ^ERRORID;
const
SEVERITY_NOERROR = $0;
SEVERITY_WARNING = $4;
SEVERITY_ERROR = $8;
SEVERITY_SEVERE = $c;
SEVERITY_UNRECOVERABLE = $10;
WINERR_BASE = $1000;
GPIERR_BASE = $2000;
DEVERR_BASE = $3000;
SPLERR_BASE = $4000;
type
HMODULE = LHANDLE;
PID = LHANDLE;
TID = LHANDLE;
SGID = USHORT;
PHMODULE = ^HMODULE;
PPID = ^PID;
PTID = ^TID;
HSEM = pointer;
PHSEM = ^HSEM;
HAB = LHANDLE;
PHAB = ^HAB;
HPS = LHANDLE;
PHPS = ^HPS;
HDC = LHANDLE;
PHDC = ^HDC;
HRGN = LHANDLE;
PHRGN = ^HRGN;
HBITMAP = LHANDLE;
PHBITMAP = ^HBITMAP;
HMF = LHANDLE;
PHMF = ^HMF;
HPAL = LHANDLE;
PHPAL = HPAL;
COLOR = LONG;
PCOLOR = ^COLOR;
POINTL = record
x : LONG;
y : LONG;
end;
PPOINTL = ^POINTL;
NPPOINTL = ^POINTL;
POINTS = record
x : SHORT;
y : SHORT;
end;
PPOINTS = ^POINTS;
RECTL = record
xLeft : LONG;
yBottom : LONG;
xRight : LONG;
yTop : LONG;
end;
PRECTL = ^RECTL;
NPRECTL = ^RECTL;
STR8 = array[0..7] of CHAR;
PSTR8 = ^STR8;
DRIVDATA = record
cb : LONG;
lVersion : LONG;
szDeviceName : array[0..32-1] of CHAR;
abGeneralData : array[0..1-1] of CHAR;
end;
PDRIVDATA = ^DRIVDATA;
PDEVOPENDATA = ^PSZ;
const
ADDRESS = 0;
DRIVER_NAME = 1;
DRIVER_DATA = 2;
DATA_TYPE = 3;
COMMENT = 4;
PROC_NAME = 5;
PROC_PARAMS = 6;
SPL_PARAMS = 7;
NETWORK_PARAMS = 8;
type
DEVOPENSTRUC = record
pszLogAddress : PSZ;
pszDriverName : PSZ;
pdriv : PDRIVDATA;
pszDataType : PSZ;
pszComment : PSZ;
pszQueueProcName : PSZ;
pszQueueProcParams : PSZ;
pszSpoolerParams : PSZ;
pszNetworkParams : PSZ;
end;
PDEVOPENSTRUC = ^DEVOPENSTRUC;
PRINTDEST = record
cb : ULONG;
lType : LONG;
pszToken : PSZ;
lCount : LONG;
pdopData : PDEVOPENDATA;
fl : ULONG;
pszPrinter : PSZ;
end;
PPRINTDEST = ^PRINTDEST;
const
PD_JOB_PROPERTY = $0001;
FATTR_SEL_ITALIC = $0001;
FATTR_SEL_UNDERSCORE = $0002;
FATTR_SEL_OUTLINE = $0008;
FATTR_SEL_STRIKEOUT = $0010;
FATTR_SEL_BOLD = $0020;
FATTR_TYPE_KERNING = $0004;
FATTR_TYPE_MBCS = $0008;
FATTR_TYPE_DBCS = $0010;
FATTR_TYPE_ANTIALIASED = $0020;
FATTR_FONTUSE_NOMIX = $0002;
FATTR_FONTUSE_OUTLINE = $0004;
FATTR_FONTUSE_TRANSFORMABLE = $0008;
FACESIZE = 32;
type
FATTRS = record
usRecordLength : USHORT;
fsSelection : USHORT;
lMatch : LONG;
szFacename : array[0..FACESIZE-1] of CHAR;
idRegistry : USHORT;
usCodePage : USHORT;
lMaxBaselineExt : LONG;
lAveCharWidth : LONG;
fsType : USHORT;
fsFontUse : USHORT;
end;
PFATTRS = ^FATTRS;
const
FM_TYPE_FIXED = $0001;
FM_TYPE_LICENSED = $0002;
FM_TYPE_KERNING = $0004;
FM_TYPE_DBCS = $0010;
FM_TYPE_MBCS = $0018;
FM_TYPE_64K = $8000;
FM_TYPE_ATOMS = $4000;
FM_TYPE_FAMTRUNC = $2000;
FM_TYPE_FACETRUNC = $1000;
FM_DEFN_OUTLINE = $0001;
FM_DEFN_IFI = $0002;
FM_DEFN_WIN = $0004;
FM_DEFN_GENERIC = $8000;
FM_SEL_ITALIC = $0001;
FM_SEL_UNDERSCORE = $0002;
FM_SEL_NEGATIVE = $0004;
FM_SEL_OUTLINE = $0008;
FM_SEL_STRIKEOUT = $0010;
FM_SEL_BOLD = $0020;
FM_CAP_NOMIX = $0001;
type
PANOSE = record
bFamilyType : BYTE;
bSerifStyle : BYTE;
bWeight : BYTE;
bProportion : BYTE;
bContrast : BYTE;
bStrokeVariation : BYTE;
bArmStyle : BYTE;
bLetterform : BYTE;
bMidline : BYTE;
bXHeight : BYTE;
abReserved : array[0..2-1] of BYTE;
end;
FONTMETRICS = record
szFamilyname : array[0..FACESIZE-1] of CHAR;
szFacename : array[0..FACESIZE-1] of CHAR;
idRegistry : USHORT;
usCodePage : USHORT;
lEmHeight : LONG;
lXHeight : LONG;
lMaxAscender : LONG;
lMaxDescender : LONG;
lLowerCaseAscent : LONG;
lLowerCaseDescent : LONG;
lInternalLeading : LONG;
lExternalLeading : LONG;
lAveCharWidth : LONG;
lMaxCharInc : LONG;
lEmInc : LONG;
lMaxBaselineExt : LONG;
sCharSlope : SHORT;
sInlineDir : SHORT;
sCharRot : SHORT;
usWeightClass : USHORT;
usWidthClass : USHORT;
sXDeviceRes : SHORT;
sYDeviceRes : SHORT;
sFirstChar : SHORT;
sLastChar : SHORT;
sDefaultChar : SHORT;
sBreakChar : SHORT;
sNominalPointSize : SHORT;
sMinimumPointSize : SHORT;
sMaximumPointSize : SHORT;
fsType : USHORT;
fsDefn : USHORT;
fsSelection : USHORT;
fsCapabilities : USHORT;
lSubscriptXSize : LONG;
lSubscriptYSize : LONG;
lSubscriptXOffset : LONG;
lSubscriptYOffset : LONG;
lSuperscriptXSize : LONG;
lSuperscriptYSize : LONG;
lSuperscriptXOffset : LONG;
lSuperscriptYOffset : LONG;
lUnderscoreSize : LONG;
lUnderscorePosition : LONG;
lStrikeoutSize : LONG;
lStrikeoutPosition : LONG;
sKerningPairs : SHORT;
sFamilyClass : SHORT;
lMatch : LONG;
FamilyNameAtom : LONG;
FaceNameAtom : LONG;
panose : PANOSE;
end;
PFONTMETRICS = ^FONTMETRICS;
HWND = LHANDLE;
HMQ = LHANDLE;
PHWND = ^HWND;
PHMQ = ^LHANDLE;
WRECTL = RECTL;
PWRECT = PRECTL;
NPWRECT = NPRECTL;
WPOINT = POINTL;
PWPOINT = PPOINTL;
NPWPOINT = NPPOINTL;
{ Nun folgen einige FPKPascal-spezifische Typen: }
{ null. term. Strings sind in den Header Dateien oft als }
{ array[0..0] of byte deklariert, der folgende Typ er- }
{ m”glich eine Typkonvertierung }
CHARARRAY = array[0..0] of char;
implementation
end.