os2def.pas 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354
  1. {****************************************************************************
  2. Copyright (c) 1993,94 by Florian Kl„mpfl
  3. ****************************************************************************}
  4. unit os2def;
  5. interface
  6. type
  7. APIRET = longint;
  8. APIRET16 = word;
  9. APIRET32 = longint;
  10. SHANDLE = word;
  11. LHANDLE = longint;
  12. CHAR = char;
  13. SHORT = integer;
  14. LONG = longint;
  15. INT = longint;
  16. UCHAR = char;
  17. USHORT = word;
  18. ULONG = longint;
  19. UINT = longint;
  20. {!!!!!!! typedef UCHAR * _Seg16 PUCHAR16;
  21. typedef CHAR * _Seg16 PCHAR16; }
  22. BYTE = byte;
  23. PSZ = ^char;
  24. NPSZ = ^char;
  25. PCH = ^char;
  26. NPCH = ^char;
  27. { typedef int ( APIENTRY _PFN) ();
  28. typedef _PFN *PFN;
  29. typedef int ( APIENTRY _NPFN) ();
  30. typedef _NPFN *NPFN; }
  31. PBYTE = ^BYTE;
  32. NPBYTE = ^BYTE;
  33. PCHAR = ^CHAR;
  34. PSHORT = ^SHORT;
  35. PLONG = ^LONG;
  36. PINT = ^INT;
  37. PUCHAR = ^UCHAR;
  38. PUSHORT = ^USHORT;
  39. PULONG = ^ULONG;
  40. PUINT = ^UINT;
  41. PVOID = pointer;
  42. PPVOID = ^PVOID;
  43. { typedef VOID * _Seg16 PVOID16; }
  44. BOOL = longint;
  45. PBOOL = ^BOOL;
  46. BOOL16 = word;
  47. { typedef BOOL16 * _Seg16 PBOOL16; }
  48. BOOL32 = BOOL;
  49. PBOOL32 = PBOOL;
  50. QWORD = record
  51. ulLo : ULONG;
  52. ulHi : ULONG;
  53. end;
  54. PQWORD = ^QWORD;
  55. SEL = WORD;
  56. PSEL = ^SEL;
  57. ERRORID = ULONG;
  58. PERRORID = ^ERRORID;
  59. const
  60. SEVERITY_NOERROR = $0;
  61. SEVERITY_WARNING = $4;
  62. SEVERITY_ERROR = $8;
  63. SEVERITY_SEVERE = $c;
  64. SEVERITY_UNRECOVERABLE = $10;
  65. WINERR_BASE = $1000;
  66. GPIERR_BASE = $2000;
  67. DEVERR_BASE = $3000;
  68. SPLERR_BASE = $4000;
  69. type
  70. HMODULE = LHANDLE;
  71. PID = LHANDLE;
  72. TID = LHANDLE;
  73. SGID = USHORT;
  74. PHMODULE = ^HMODULE;
  75. PPID = ^PID;
  76. PTID = ^TID;
  77. HSEM = pointer;
  78. PHSEM = ^HSEM;
  79. HAB = LHANDLE;
  80. PHAB = ^HAB;
  81. HPS = LHANDLE;
  82. PHPS = ^HPS;
  83. HDC = LHANDLE;
  84. PHDC = ^HDC;
  85. HRGN = LHANDLE;
  86. PHRGN = ^HRGN;
  87. HBITMAP = LHANDLE;
  88. PHBITMAP = ^HBITMAP;
  89. HMF = LHANDLE;
  90. PHMF = ^HMF;
  91. HPAL = LHANDLE;
  92. PHPAL = HPAL;
  93. COLOR = LONG;
  94. PCOLOR = ^COLOR;
  95. POINTL = record
  96. x : LONG;
  97. y : LONG;
  98. end;
  99. PPOINTL = ^POINTL;
  100. NPPOINTL = ^POINTL;
  101. POINTS = record
  102. x : SHORT;
  103. y : SHORT;
  104. end;
  105. PPOINTS = ^POINTS;
  106. RECTL = record
  107. xLeft : LONG;
  108. yBottom : LONG;
  109. xRight : LONG;
  110. yTop : LONG;
  111. end;
  112. PRECTL = ^RECTL;
  113. NPRECTL = ^RECTL;
  114. STR8 = array[0..7] of CHAR;
  115. PSTR8 = ^STR8;
  116. DRIVDATA = record
  117. cb : LONG;
  118. lVersion : LONG;
  119. szDeviceName : array[0..32-1] of CHAR;
  120. abGeneralData : array[0..1-1] of CHAR;
  121. end;
  122. PDRIVDATA = ^DRIVDATA;
  123. PDEVOPENDATA = ^PSZ;
  124. const
  125. ADDRESS = 0;
  126. DRIVER_NAME = 1;
  127. DRIVER_DATA = 2;
  128. DATA_TYPE = 3;
  129. COMMENT = 4;
  130. PROC_NAME = 5;
  131. PROC_PARAMS = 6;
  132. SPL_PARAMS = 7;
  133. NETWORK_PARAMS = 8;
  134. type
  135. DEVOPENSTRUC = record
  136. pszLogAddress : PSZ;
  137. pszDriverName : PSZ;
  138. pdriv : PDRIVDATA;
  139. pszDataType : PSZ;
  140. pszComment : PSZ;
  141. pszQueueProcName : PSZ;
  142. pszQueueProcParams : PSZ;
  143. pszSpoolerParams : PSZ;
  144. pszNetworkParams : PSZ;
  145. end;
  146. PDEVOPENSTRUC = ^DEVOPENSTRUC;
  147. PRINTDEST = record
  148. cb : ULONG;
  149. lType : LONG;
  150. pszToken : PSZ;
  151. lCount : LONG;
  152. pdopData : PDEVOPENDATA;
  153. fl : ULONG;
  154. pszPrinter : PSZ;
  155. end;
  156. PPRINTDEST = ^PRINTDEST;
  157. const
  158. PD_JOB_PROPERTY = $0001;
  159. FATTR_SEL_ITALIC = $0001;
  160. FATTR_SEL_UNDERSCORE = $0002;
  161. FATTR_SEL_OUTLINE = $0008;
  162. FATTR_SEL_STRIKEOUT = $0010;
  163. FATTR_SEL_BOLD = $0020;
  164. FATTR_TYPE_KERNING = $0004;
  165. FATTR_TYPE_MBCS = $0008;
  166. FATTR_TYPE_DBCS = $0010;
  167. FATTR_TYPE_ANTIALIASED = $0020;
  168. FATTR_FONTUSE_NOMIX = $0002;
  169. FATTR_FONTUSE_OUTLINE = $0004;
  170. FATTR_FONTUSE_TRANSFORMABLE = $0008;
  171. FACESIZE = 32;
  172. type
  173. FATTRS = record
  174. usRecordLength : USHORT;
  175. fsSelection : USHORT;
  176. lMatch : LONG;
  177. szFacename : array[0..FACESIZE-1] of CHAR;
  178. idRegistry : USHORT;
  179. usCodePage : USHORT;
  180. lMaxBaselineExt : LONG;
  181. lAveCharWidth : LONG;
  182. fsType : USHORT;
  183. fsFontUse : USHORT;
  184. end;
  185. PFATTRS = ^FATTRS;
  186. const
  187. FM_TYPE_FIXED = $0001;
  188. FM_TYPE_LICENSED = $0002;
  189. FM_TYPE_KERNING = $0004;
  190. FM_TYPE_DBCS = $0010;
  191. FM_TYPE_MBCS = $0018;
  192. FM_TYPE_64K = $8000;
  193. FM_TYPE_ATOMS = $4000;
  194. FM_TYPE_FAMTRUNC = $2000;
  195. FM_TYPE_FACETRUNC = $1000;
  196. FM_DEFN_OUTLINE = $0001;
  197. FM_DEFN_IFI = $0002;
  198. FM_DEFN_WIN = $0004;
  199. FM_DEFN_GENERIC = $8000;
  200. FM_SEL_ITALIC = $0001;
  201. FM_SEL_UNDERSCORE = $0002;
  202. FM_SEL_NEGATIVE = $0004;
  203. FM_SEL_OUTLINE = $0008;
  204. FM_SEL_STRIKEOUT = $0010;
  205. FM_SEL_BOLD = $0020;
  206. FM_CAP_NOMIX = $0001;
  207. type
  208. PANOSE = record
  209. bFamilyType : BYTE;
  210. bSerifStyle : BYTE;
  211. bWeight : BYTE;
  212. bProportion : BYTE;
  213. bContrast : BYTE;
  214. bStrokeVariation : BYTE;
  215. bArmStyle : BYTE;
  216. bLetterform : BYTE;
  217. bMidline : BYTE;
  218. bXHeight : BYTE;
  219. abReserved : array[0..2-1] of BYTE;
  220. end;
  221. FONTMETRICS = record
  222. szFamilyname : array[0..FACESIZE-1] of CHAR;
  223. szFacename : array[0..FACESIZE-1] of CHAR;
  224. idRegistry : USHORT;
  225. usCodePage : USHORT;
  226. lEmHeight : LONG;
  227. lXHeight : LONG;
  228. lMaxAscender : LONG;
  229. lMaxDescender : LONG;
  230. lLowerCaseAscent : LONG;
  231. lLowerCaseDescent : LONG;
  232. lInternalLeading : LONG;
  233. lExternalLeading : LONG;
  234. lAveCharWidth : LONG;
  235. lMaxCharInc : LONG;
  236. lEmInc : LONG;
  237. lMaxBaselineExt : LONG;
  238. sCharSlope : SHORT;
  239. sInlineDir : SHORT;
  240. sCharRot : SHORT;
  241. usWeightClass : USHORT;
  242. usWidthClass : USHORT;
  243. sXDeviceRes : SHORT;
  244. sYDeviceRes : SHORT;
  245. sFirstChar : SHORT;
  246. sLastChar : SHORT;
  247. sDefaultChar : SHORT;
  248. sBreakChar : SHORT;
  249. sNominalPointSize : SHORT;
  250. sMinimumPointSize : SHORT;
  251. sMaximumPointSize : SHORT;
  252. fsType : USHORT;
  253. fsDefn : USHORT;
  254. fsSelection : USHORT;
  255. fsCapabilities : USHORT;
  256. lSubscriptXSize : LONG;
  257. lSubscriptYSize : LONG;
  258. lSubscriptXOffset : LONG;
  259. lSubscriptYOffset : LONG;
  260. lSuperscriptXSize : LONG;
  261. lSuperscriptYSize : LONG;
  262. lSuperscriptXOffset : LONG;
  263. lSuperscriptYOffset : LONG;
  264. lUnderscoreSize : LONG;
  265. lUnderscorePosition : LONG;
  266. lStrikeoutSize : LONG;
  267. lStrikeoutPosition : LONG;
  268. sKerningPairs : SHORT;
  269. sFamilyClass : SHORT;
  270. lMatch : LONG;
  271. FamilyNameAtom : LONG;
  272. FaceNameAtom : LONG;
  273. panose : PANOSE;
  274. end;
  275. PFONTMETRICS = ^FONTMETRICS;
  276. HWND = LHANDLE;
  277. HMQ = LHANDLE;
  278. PHWND = ^HWND;
  279. PHMQ = ^LHANDLE;
  280. WRECTL = RECTL;
  281. PWRECT = PRECTL;
  282. NPWRECT = NPRECTL;
  283. WPOINT = POINTL;
  284. PWPOINT = PPOINTL;
  285. NPWPOINT = NPPOINTL;
  286. { Nun folgen einige FPKPascal-spezifische Typen: }
  287. { null. term. Strings sind in den Header Dateien oft als }
  288. { array[0..0] of byte deklariert, der folgende Typ er- }
  289. { m”glich eine Typkonvertierung }
  290. CHARARRAY = array[0..0] of char;
  291. implementation
  292. end.