wintypes.inc 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635
  1. type
  2. Bool = WordBool;
  3. UINT = Word;
  4. LONG = LongInt;
  5. WPARAM = UINT;
  6. LPARAM = LONG;
  7. LRESULT = LONG;
  8. { The Win16 C headers define the P-prefixed types - PSTR, etc. as near pointers.
  9. Borland Pascal 7 defines them as far pointers (in other words, the same as the
  10. LP-prefixed type - LPSTR) We define them as the default pointer type for the
  11. current memory model. This means we'll be BP7 compatible in the large memory
  12. model (which is the only memory model supported by BP7).
  13. Also, using memory models other than 'large' under win16 is somewhat nasty and
  14. is better to be avoided. }
  15. PSTR = ^Char;
  16. NPSTR = ^Char; near;
  17. // LPSTR = ^Char; far;
  18. LPCSTR = ^Char; far;
  19. { PBYTE is already defined in system }
  20. LPBYTE = ^Byte; far;
  21. PINT = ^SmallInt;
  22. LPINT = ^SmallInt; far;
  23. { PWORD is already defined in system }
  24. LPWORD = ^Word; far;
  25. PUINT = ^UINT;
  26. LPUINT = ^UINT; far;
  27. PLONG = ^LONG;
  28. LPLONG = ^LONG; far;
  29. { PDWORD is already defined in system }
  30. LPDWORD = ^DWORD; far;
  31. LPVOID = FarPointer;
  32. FARPROC = FarPointer;
  33. TFarProc = FARPROC;
  34. PHANDLE = ^THandle;
  35. SPHANDLE = ^THandle; near;
  36. LPHANDLE = ^THandle; far;
  37. // HGLOBAL = THandle;
  38. HLOCAL = THandle;
  39. TGlobalHandle = THandle;
  40. TLocalHandle = THandle;
  41. ATOM = UINT;
  42. TAtom = ATOM;
  43. HINST = THandle; { instead of HINSTANCE, to avoid conflict with var hInstance }
  44. // HMODULE = HINST;
  45. const
  46. { GetWinFlags result mask values }
  47. WF_PMODE = $0001;
  48. WF_CPU286 = $0002;
  49. WF_CPU386 = $0004;
  50. WF_CPU486 = $0008;
  51. WF_STANDARD = $0010;
  52. WF_WIN286 = $0010;
  53. WF_ENHANCED = $0020;
  54. WF_WIN386 = $0020;
  55. WF_CPU086 = $0040;
  56. WF_CPU186 = $0080;
  57. WF_LARGEFRAME = $0100;
  58. WF_SMALLFRAME = $0200;
  59. WF_80x87 = $0400;
  60. WF_PAGING = $0800;
  61. WF_WLO = $8000;
  62. { ExitWindows values }
  63. EW_RESTARTWINDOWS = $42;
  64. { SetErrorMode() constants }
  65. SEM_FAILCRITICALERRORS = $0001;
  66. SEM_NOGPFAULTERRORBOX = $0002;
  67. SEM_NOOPENFILEERRORBOX = $8000;
  68. type
  69. LPCATCHBUF = ^CATCHBUF; far;
  70. CATCHBUF = array [0..8] of SmallInt;
  71. PCatchBuf = ^TCatchBuf;
  72. TCatchBuf = CATCHBUF;
  73. const
  74. HINSTANCE_ERROR = HINST(32);
  75. { Windows Exit Procedure flag values }
  76. WEP_SYSTEM_EXIT = 1;
  77. WEP_FREE_DLL = 0;
  78. type
  79. LPSEGINFO = ^SEGINFO; far;
  80. SEGINFO = record
  81. offSegment: UINT;
  82. cbSegment: UINT;
  83. flags: UINT;
  84. cbAlloc: UINT;
  85. h: HGLOBAL;
  86. alignShift: UINT;
  87. reserved: array [0..1] of UINT;
  88. end;
  89. PSegInfo = ^TSegInfo;
  90. TSegInfo = SEGINFO;
  91. HTASK = THandle;
  92. const
  93. { Global Memory Flags }
  94. GMEM_FIXED = $0000;
  95. GMEM_MOVEABLE = $0002;
  96. GMEM_NOCOMPACT = $0010;
  97. GMEM_NODISCARD = $0020;
  98. GMEM_ZEROINIT = $0040;
  99. GMEM_MODIFY = $0080;
  100. GMEM_DISCARDABLE = $0100;
  101. GMEM_NOT_BANKED = $1000;
  102. GMEM_SHARE = $2000;
  103. GMEM_DDESHARE = $2000;
  104. GMEM_NOTIFY = $4000;
  105. GMEM_LOWER = GMEM_NOT_BANKED;
  106. GHND = GMEM_MOVEABLE or GMEM_ZEROINIT;
  107. GPTR = GMEM_FIXED or GMEM_ZEROINIT;
  108. { GlobalFlags return flags (in addition to GMEM_DISCARDABLE) }
  109. GMEM_DISCARDED = $4000;
  110. GMEM_LOCKCOUNT = $00FF;
  111. { Low system memory notification message }
  112. WM_COMPACTING = $0041;
  113. type
  114. GNOTIFYPROC = function(hGlbl: HGLOBAL): BOOL; far;
  115. const
  116. { Local Memory Flags }
  117. LMEM_FIXED = $0000;
  118. LMEM_MOVEABLE = $0002;
  119. LMEM_NOCOMPACT = $0010;
  120. LMEM_NODISCARD = $0020;
  121. LMEM_ZEROINIT = $0040;
  122. LMEM_MODIFY = $0080;
  123. LMEM_DISCARDABLE = $0F00;
  124. LHND = LMEM_MOVEABLE or LMEM_ZEROINIT;
  125. LPTR = LMEM_FIXED or LMEM_ZEROINIT;
  126. NONZEROLHND = LMEM_MOVEABLE;
  127. NONZEROLPTR = LMEM_FIXED;
  128. { LocalFlags return flags (in addition to LMEM_DISCARDABLE) }
  129. LMEM_DISCARDED = $4000;
  130. LMEM_LOCKCOUNT = $00FF;
  131. { File I/O }
  132. type
  133. HFILE = SmallInt;
  134. const
  135. HFILE_ERROR = HFILE(-1);
  136. type
  137. { OpenFile() Structure }
  138. POFSTRUCT = ^OFSTRUCT;
  139. NPOFSTRUCT = ^OFSTRUCT; near;
  140. LPOFSTRUCT = ^OFSTRUCT; far;
  141. OFSTRUCT = record
  142. cBytes: BYTE;
  143. fFixedDisk: BYTE;
  144. nErrCode: UINT;
  145. reserved: array [0..3] of BYTE;
  146. szPathName: array [0..127] of char;
  147. end;
  148. TOFStruct = OFSTRUCT;
  149. const
  150. { OpenFile() Flags }
  151. OF_READ = $0000;
  152. OF_WRITE = $0001;
  153. OF_READWRITE = $0002;
  154. OF_SHARE_COMPAT = $0000;
  155. OF_SHARE_EXCLUSIVE = $0010;
  156. OF_SHARE_DENY_WRITE = $0020;
  157. OF_SHARE_DENY_READ = $0030;
  158. OF_SHARE_DENY_NONE = $0040;
  159. OF_PARSE = $0100;
  160. OF_DELETE = $0200;
  161. OF_VERIFY = $0400; { Used with OF_REOPEN }
  162. OF_SEARCH = $0400; { Used without OF_REOPEN }
  163. OF_CANCEL = $0800;
  164. OF_CREATE = $1000;
  165. OF_PROMPT = $2000;
  166. OF_EXIST = $4000;
  167. OF_REOPEN = $8000;
  168. { _lopen() flags }
  169. _READ = 0;
  170. _WRITE = 1;
  171. READ_WRITE = 2;
  172. { _llseek origin values }
  173. SEEK_SET = 0;
  174. SEEK_CUR = 1;
  175. SEEK_END = 2;
  176. { GetTempFileName() Flags }
  177. TF_FORCEDRIVE = BYTE($80);
  178. { GetDriveType return values }
  179. DRIVE_REMOVABLE = 2;
  180. DRIVE_FIXED = 3;
  181. DRIVE_REMOTE = 4;
  182. { Network support }
  183. { Errors }
  184. WN_SUCCESS = $0000;
  185. WN_NOT_SUPPORTED = $0001;
  186. WN_NET_ERROR = $0002;
  187. WN_MORE_DATA = $0003;
  188. WN_BAD_POINTER = $0004;
  189. WN_BAD_VALUE = $0005;
  190. WN_BAD_PASSWORD = $0006;
  191. WN_ACCESS_DENIED = $0007;
  192. WN_FUNCTION_BUSY = $0008;
  193. WN_WINDOWS_ERROR = $0009;
  194. WN_BAD_USER = $000A;
  195. WN_OUT_OF_MEMORY = $000B;
  196. WN_CANCEL = $000C;
  197. WN_CONTINUE = $000D;
  198. { Connection errors }
  199. WN_NOT_CONNECTED = $0030;
  200. WN_OPEN_FILES = $0031;
  201. WN_BAD_NETNAME = $0032;
  202. WN_BAD_LOCALNAME = $0033;
  203. WN_ALREADY_CONNECTED = $0034;
  204. WN_DEVICE_ERROR = $0035;
  205. WN_CONNECTION_CLOSED = $0036;
  206. type
  207. { Resource Management }
  208. HRSRC = THandle;
  209. RSRCHDLRPROC = function(hMem: HGLOBAL; hInstance: HINST; hResInfo: HRSRC): HGLOBAL;far;
  210. MAKEINTRESOURCE = LPCSTR;
  211. const
  212. { Predefined Resource Types }
  213. RT_CURSOR = MAKEINTRESOURCE(1);
  214. RT_BITMAP = MAKEINTRESOURCE(2);
  215. RT_ICON = MAKEINTRESOURCE(3);
  216. RT_MENU = MAKEINTRESOURCE(4);
  217. RT_DIALOG = MAKEINTRESOURCE(5);
  218. RT_STRING = MAKEINTRESOURCE(6);
  219. RT_FONTDIR = MAKEINTRESOURCE(7);
  220. RT_FONT = MAKEINTRESOURCE(8);
  221. RT_ACCELERATOR = MAKEINTRESOURCE(9);
  222. RT_RCDATA = MAKEINTRESOURCE(10);
  223. RT_GROUP_CURSOR = MAKEINTRESOURCE(12);
  224. RT_GROUP_ICON = MAKEINTRESOURCE(14);
  225. { OEM Resource Ordinal Numbers }
  226. OBM_CLOSE = 32754;
  227. OBM_UPARROW = 32753;
  228. OBM_DNARROW = 32752;
  229. OBM_RGARROW = 32751;
  230. OBM_LFARROW = 32750;
  231. OBM_REDUCE = 32749;
  232. OBM_ZOOM = 32748;
  233. OBM_RESTORE = 32747;
  234. OBM_REDUCED = 32746;
  235. OBM_ZOOMD = 32745;
  236. OBM_RESTORED = 32744;
  237. OBM_UPARROWD = 32743;
  238. OBM_DNARROWD = 32742;
  239. OBM_RGARROWD = 32741;
  240. OBM_LFARROWD = 32740;
  241. OBM_MNARROW = 32739;
  242. OBM_COMBO = 32738;
  243. OBM_OLD_CLOSE = 32767;
  244. OBM_SIZE = 32766;
  245. OBM_OLD_UPARROW = 32765;
  246. OBM_OLD_DNARROW = 32764;
  247. OBM_OLD_RGARROW = 32763;
  248. OBM_OLD_LFARROW = 32762;
  249. OBM_BTSIZE = 32761;
  250. OBM_CHECK = 32760;
  251. OBM_CHECKBOXES = 32759;
  252. OBM_BTNCORNERS = 32758;
  253. OBM_OLD_REDUCE = 32757;
  254. OBM_OLD_ZOOM = 32756;
  255. OBM_OLD_RESTORE = 32755;
  256. OCR_NORMAL = 32512;
  257. OCR_IBEAM = 32513;
  258. OCR_WAIT = 32514;
  259. OCR_CROSS = 32515;
  260. OCR_UP = 32516;
  261. OCR_SIZE = 32640;
  262. OCR_ICON = 32641;
  263. OCR_SIZENWSE = 32642;
  264. OCR_SIZENESW = 32643;
  265. OCR_SIZEWE = 32644;
  266. OCR_SIZENS = 32645;
  267. OCR_SIZEALL = 32646;
  268. OCR_ICOCUR = 32647;
  269. OIC_SAMPLE = 32512;
  270. OIC_HAND = 32513;
  271. OIC_QUES = 32514;
  272. OIC_BANG = 32515;
  273. OIC_NOTE = 32516;
  274. type
  275. { Atom Management }
  276. MAKEINTATOM = LPCSTR;
  277. const
  278. { WIN.INI Support }
  279. WM_WININICHANGE = $001A;
  280. type
  281. { GDI typedefs, structures, and functions }
  282. HDC = THandle;
  283. HGDIOBJ = THandle;
  284. HBITMAP = THandle;
  285. HPEN = THandle;
  286. HBRUSH = THandle;
  287. HRGN = THandle;
  288. HPALETTE = THandle;
  289. HFONT = THandle;
  290. PRECT = ^RECT;
  291. NPRECT = ^RECT; near;
  292. LPRECT = ^RECT; far;
  293. RECT = record
  294. left: SmallInt;
  295. top: SmallInt;
  296. right: SmallInt;
  297. bottom: SmallInt;
  298. end;
  299. TRect = RECT;
  300. PPOINT = ^POINT;
  301. NPPOINT = ^POINT; near;
  302. LPPOINT = ^POINT; far;
  303. POINT = record
  304. x: SmallInt;
  305. y: SmallInt;
  306. end;
  307. TPoint = POINT;
  308. MAKEPOINT = POINT;
  309. { Device Capabilities }
  310. const
  311. { Device Parameters for GetDeviceCaps() }
  312. DRIVERVERSION = 0;
  313. TECHNOLOGY = 2;
  314. HORZSIZE = 4;
  315. VERTSIZE = 6;
  316. HORZRES = 8;
  317. VERTRES = 10;
  318. BITSPIXEL = 12;
  319. PLANES = 14;
  320. NUMBRUSHES = 16;
  321. NUMPENS = 18;
  322. NUMMARKERS = 20;
  323. NUMFONTS = 22;
  324. NUMCOLORS = 24;
  325. PDEVICESIZE = 26;
  326. CURVECAPS = 28;
  327. LINECAPS = 30;
  328. POLYGONALCAPS = 32;
  329. TEXTCAPS = 34;
  330. CLIPCAPS = 36;
  331. RASTERCAPS = 38;
  332. ASPECTX = 40;
  333. ASPECTY = 42;
  334. ASPECTXY = 44;
  335. LOGPIXELSX = 88;
  336. LOGPIXELSY = 90;
  337. SIZEPALETTE = 104;
  338. NUMRESERVED = 106;
  339. COLORRES = 108;
  340. { GetDeviceCaps() return value masks }
  341. { TECHNOLOGY }
  342. DT_PLOTTER = 0;
  343. DT_RASDISPLAY = 1;
  344. DT_RASPRINTER = 2;
  345. DT_RASCAMERA = 3;
  346. DT_CHARSTREAM = 4;
  347. DT_METAFILE = 5;
  348. DT_DISPFILE = 6;
  349. { CURVECAPS }
  350. CC_NONE = $0000;
  351. CC_CIRCLES = $0001;
  352. CC_PIE = $0002;
  353. CC_CHORD = $0004;
  354. CC_ELLIPSES = $0008;
  355. CC_WIDE = $0010;
  356. CC_STYLED = $0020;
  357. CC_WIDESTYLED = $0040;
  358. CC_INTERIORS = $0080;
  359. CC_ROUNDRECT = $0100;
  360. { LINECAPS }
  361. LC_NONE = $0000;
  362. LC_POLYLINE = $0002;
  363. LC_MARKER = $0004;
  364. LC_POLYMARKER = $0008;
  365. LC_WIDE = $0010;
  366. LC_STYLED = $0020;
  367. LC_WIDESTYLED = $0040;
  368. LC_INTERIORS = $0080;
  369. { POLYGONALCAPS }
  370. PC_NONE = $0000;
  371. PC_POLYGON = $0001;
  372. PC_RECTANGLE = $0002;
  373. PC_WINDPOLYGON = $0004;
  374. PC_SCANLINE = $0008;
  375. PC_WIDE = $0010;
  376. PC_STYLED = $0020;
  377. PC_WIDESTYLED = $0040;
  378. PC_INTERIORS = $0080;
  379. { TEXTCAPS }
  380. TC_OP_CHARACTER = $0001;
  381. TC_OP_STROKE = $0002;
  382. TC_CP_STROKE = $0004;
  383. TC_CR_90 = $0008;
  384. TC_CR_ANY = $0010;
  385. TC_SF_X_YINDEP = $0020;
  386. TC_SA_DOUBLE = $0040;
  387. TC_SA_INTEGER = $0080;
  388. TC_SA_CONTIN = $0100;
  389. TC_EA_DOUBLE = $0200;
  390. TC_IA_ABLE = $0400;
  391. TC_UA_ABLE = $0800;
  392. TC_SO_ABLE = $1000;
  393. TC_RA_ABLE = $2000;
  394. TC_VA_ABLE = $4000;
  395. TC_RESERVED = $8000;
  396. { CLIPCAPS }
  397. {$ifndef SYSTEMUNIT}
  398. CP_NONE = $0000;
  399. {$endif SYSTEMUNIT}
  400. CP_RECTANGLE = $0001;
  401. CP_REGION = $0002;
  402. { RASTERCAPS }
  403. RC_NONE = $0000;
  404. RC_BITBLT = $0001;
  405. RC_BANDING = $0002;
  406. RC_SCALING = $0004;
  407. RC_BITMAP64 = $0008;
  408. RC_GDI20_OUTPUT = $0010;
  409. RC_GDI20_STATE = $0020;
  410. RC_SAVEBITMAP = $0040;
  411. RC_DI_BITMAP = $0080;
  412. RC_PALETTE = $0100;
  413. RC_DIBTODEV = $0200;
  414. RC_BIGFONT = $0400;
  415. RC_STRETCHBLT = $0800;
  416. RC_FLOODFILL = $1000;
  417. RC_STRETCHDIB = $2000;
  418. RC_OP_DX_OUTPUT = $4000;
  419. RC_DEVBITS = $8000;
  420. { Coordinate transformation support }
  421. { Map modes }
  422. MM_TEXT = 1;
  423. MM_LOMETRIC = 2;
  424. MM_HIMETRIC = 3;
  425. MM_LOENGLISH = 4;
  426. MM_HIENGLISH = 5;
  427. MM_TWIPS = 6;
  428. MM_ISOTROPIC = 7;
  429. MM_ANISOTROPIC = 8;
  430. { Coordinate Modes }
  431. ABSOLUTE = 1;
  432. RELATIVE = 2;
  433. { Color support }
  434. type
  435. PCOLORREF = ^COLORREF;
  436. LPCOLORREF = ^COLORREF; far;
  437. COLORREF = DWORD;
  438. TColorRef = COLORREF;
  439. const
  440. COLOR_SCROLLBAR = 0;
  441. COLOR_BACKGROUND = 1;
  442. COLOR_ACTIVECAPTION = 2;
  443. COLOR_INACTIVECAPTION = 3;
  444. COLOR_MENU = 4;
  445. COLOR_WINDOW = 5;
  446. COLOR_WINDOWFRAME = 6;
  447. COLOR_MENUTEXT = 7;
  448. COLOR_WINDOWTEXT = 8;
  449. COLOR_CAPTIONTEXT = 9;
  450. COLOR_ACTIVEBORDER = 10;
  451. COLOR_INACTIVEBORDER = 11;
  452. COLOR_APPWORKSPACE = 12;
  453. COLOR_HIGHLIGHT = 13;
  454. COLOR_HIGHLIGHTTEXT = 14;
  455. COLOR_BTNFACE = 15;
  456. COLOR_BTNSHADOW = 16;
  457. COLOR_GRAYTEXT = 17;
  458. COLOR_BTNTEXT = 18;
  459. WM_SYSCOLORCHANGE = $0015;
  460. type
  461. { GDI Object Support }
  462. GOBJENUMPROC = function(lpLogObject: FarPointer; lpData: LPARAM): SmallInt; far;
  463. const
  464. { Object types for EnumObjects() }
  465. OBJ_PEN = 1;
  466. OBJ_BRUSH = 2;
  467. { Pen support }
  468. { Logical Pen }
  469. type
  470. PLOGPEN = ^LOGPEN;
  471. NPLOGPEN = ^LOGPEN; near;
  472. LPLOGPEN = ^LOGPEN; far;
  473. LOGPEN = record
  474. lopnStyle: UINT;
  475. lopnWidth: POINT;
  476. lopnColor: COLORREF;
  477. end;
  478. TLogPen = LOGPEN;
  479. { Pen Styles }
  480. const
  481. PS_SOLID = 0;
  482. PS_DASH = 1;
  483. PS_DOT = 2;
  484. PS_DASHDOT = 3;
  485. PS_DASHDOTDOT = 4;
  486. PS_NULL = 5;
  487. PS_INSIDEFRAME = 6;
  488. { Stock pens for use with GetStockObject(); }
  489. WHITE_PEN = 6;
  490. BLACK_PEN = 7;
  491. NULL_PEN = 8;
  492. { Brush support }
  493. { Brush Styles }
  494. BS_SOLID = 0;
  495. BS_NULL = 1;
  496. BS_HOLLOW = BS_NULL;
  497. BS_HATCHED = 2;
  498. BS_PATTERN = 3;
  499. BS_INDEXED = 4;
  500. BS_DIBPATTERN = 5;
  501. { Hatch Styles }
  502. HS_HORIZONTAL = 0;
  503. HS_VERTICAL = 1;
  504. HS_FDIAGONAL = 2;
  505. HS_BDIAGONAL = 3;
  506. HS_CROSS = 4;
  507. HS_DIAGCROSS = 5;
  508. { Logical Brush (or Pattern) }
  509. type
  510. PLOGBRUSH = ^LOGBRUSH;
  511. NPLOGBRUSH = ^LOGBRUSH; near;
  512. LPLOGBRUSH = ^LOGBRUSH; far;
  513. LOGBRUSH = record
  514. lbStyle: UINT;
  515. lbColor: COLORREF;
  516. lbHatch: SmallInt;
  517. end;
  518. TLogBrush = LOGBRUSH;
  519. PPATTERN = ^PATTERN;
  520. NPPATTERN = ^PATTERN; near;
  521. LPPATTERN = ^PATTERN; far;
  522. PATTERN = LOGBRUSH;
  523. TPattern = PATTERN;
  524. { Stock brushes for use with GetStockObject() }
  525. const
  526. WHITE_BRUSH = 0;
  527. LTGRAY_BRUSH = 1;
  528. GRAY_BRUSH = 2;
  529. DKGRAY_BRUSH = 3;
  530. BLACK_BRUSH = 4;
  531. NULL_BRUSH = 5;
  532. HOLLOW_BRUSH = NULL_BRUSH;
  533. { Region support }
  534. { Region type flags }
  535. {$ifndef SYSTEMUNIT}
  536. ERROR = 0;
  537. {$endif SYSTEMUNIT}
  538. NULLREGION = 1;
  539. SIMPLEREGION = 2;
  540. COMPLEXREGION = 3;
  541. { CombineRgn() command values }
  542. RGN_AND = 1;
  543. RGN_OR = 2;
  544. RGN_XOR = 3;
  545. RGN_DIFF = 4;
  546. RGN_COPY = 5;