JwaWinGDI.pas
上传用户:davidchvip
上传日期:2009-07-28
资源大小:1749k
文件大小:424k
源码类别:

Windows编程

开发平台:

Delphi

  1. function wglSwapMultipleBuffers(fuCount: UINT; lpBuffers: LPWGLSWAP): DWORD; stdcall;
  2. {$EXTERNALSYM wglSwapMultipleBuffers}
  3. implementation
  4. function MAKEROP4(Fore, Back: DWORD): DWORD;
  5. begin
  6.   Result := ((Back shl 8) and DWORD($FF000000)) or Fore;
  7. end;
  8. function GetKValue(cmyk: COLORREF): BYTE;
  9. begin
  10.   Result := BYTE(cmyk);
  11. end;
  12. function GetYValue(cmyk: COLORREF): BYTE;
  13. begin
  14.   Result := BYTE(cmyk shr 8);
  15. end;
  16. function GetMValue(cmyk: COLORREF): BYTE;
  17. begin
  18.   Result := BYTE(cmyk shr 16);
  19. end;
  20. function GetCValue(cmyk: COLORREF): BYTE;
  21. begin
  22.   Result := BYTE(cmyk shr 24);
  23. end;
  24. function CMYK(c, m, y, k: BYTE): COLORREF;
  25. begin
  26.   Result := COLORREF(k or (y shl 8) or (m shl 16) or (c shl 24));
  27. end;
  28. function MAKEPOINTS(l: DWORD): POINTS;
  29. begin
  30.   Result.x := LOWORD(l);
  31.   Result.y := HIWORD(l);  
  32. end;
  33. function RGB(r, g, b: BYTE): COLORREF;
  34. begin
  35.   Result := COLORREF(r or (g shl 8) or (b shl 16));
  36. end;
  37. function PALETTERGB(r, g, b: BYTE): COLORREF;
  38. begin
  39.   Result := $02000000 or RGB(r, g, b);
  40. end;
  41. function PALETTEINDEX(i: WORD): COLORREF;
  42. begin
  43.   Result := COLORREF($01000000 or DWORD(i));
  44. end;
  45. function GetRValue(rgb: COLORREF): BYTE;
  46. begin
  47.   Result := BYTE(RGB);
  48. end;
  49. function GetGValue(rgb: COLORREF): BYTE;
  50. begin
  51.   Result := BYTE(rgb shr 8);
  52. end;
  53. function GetBValue(rgb: COLORREF): BYTE;
  54. begin
  55.   Result := BYTE(rgb shr 16);
  56. end;
  57. const
  58.   gdi32 = 'gdi32.dll';
  59.   msimg32 = 'msimg32.dll';
  60.   winspool32 = 'winspool32.drv';
  61.   opengl32 = 'opengl32.dll';
  62.   
  63. {$IFDEF DYNAMIC_LINK}
  64. var
  65.   _AddFontResourceA: Pointer;
  66. function AddFontResourceA;
  67. begin
  68.   GetProcedureAddress(_AddFontResourceA, gdi32, 'AddFontResourceA');
  69.   asm
  70.     mov esp, ebp
  71.     pop ebp
  72.     jmp [_AddFontResourceA]
  73.   end;
  74. end;
  75. {$ELSE}
  76. function AddFontResourceA; external gdi32 name 'AddFontResourceA';
  77. {$ENDIF DYNAMIC_LINK}
  78. {$IFDEF DYNAMIC_LINK}
  79. var
  80.   _AddFontResourceW: Pointer;
  81. function AddFontResourceW;
  82. begin
  83.   GetProcedureAddress(_AddFontResourceW, gdi32, 'AddFontResourceW');
  84.   asm
  85.     mov esp, ebp
  86.     pop ebp
  87.     jmp [_AddFontResourceW]
  88.   end;
  89. end;
  90. {$ELSE}
  91. function AddFontResourceW; external gdi32 name 'AddFontResourceW';
  92. {$ENDIF DYNAMIC_LINK}
  93. {$IFDEF UNICODE}
  94. {$IFDEF DYNAMIC_LINK}
  95. var
  96.   _AddFontResource: Pointer;
  97. function AddFontResource;
  98. begin
  99.   GetProcedureAddress(_AddFontResource, gdi32, 'AddFontResourceW');
  100.   asm
  101.     mov esp, ebp
  102.     pop ebp
  103.     jmp [_AddFontResource]
  104.   end;
  105. end;
  106. {$ELSE}
  107. function AddFontResource; external gdi32 name 'AddFontResourceW';
  108. {$ENDIF DYNAMIC_LINK}
  109. {$ELSE}
  110. {$IFDEF DYNAMIC_LINK}
  111. var
  112.   _AddFontResource: Pointer;
  113. function AddFontResource;
  114. begin
  115.   GetProcedureAddress(_AddFontResource, gdi32, 'AddFontResourceA');
  116.   asm
  117.     mov esp, ebp
  118.     pop ebp
  119.     jmp [_AddFontResource]
  120.   end;
  121. end;
  122. {$ELSE}
  123. function AddFontResource; external gdi32 name 'AddFontResourceA';
  124. {$ENDIF DYNAMIC_LINK}
  125. {$ENDIF}
  126. {$IFDEF DYNAMIC_LINK}
  127. var
  128.   _AnimatePalette: Pointer;
  129. function AnimatePalette;
  130. begin
  131.   GetProcedureAddress(_AnimatePalette, gdi32, 'AnimatePalette');
  132.   asm
  133.     mov esp, ebp
  134.     pop ebp
  135.     jmp [_AnimatePalette]
  136.   end;
  137. end;
  138. {$ELSE}
  139. function AnimatePalette; external gdi32 name 'AnimatePalette';
  140. {$ENDIF DYNAMIC_LINK}
  141. {$IFDEF DYNAMIC_LINK}
  142. var
  143.   _Arc: Pointer;
  144. function Arc;
  145. begin
  146.   GetProcedureAddress(_Arc, gdi32, 'Arc');
  147.   asm
  148.     mov esp, ebp
  149.     pop ebp
  150.     jmp [_Arc]
  151.   end;
  152. end;
  153. {$ELSE}
  154. function Arc; external gdi32 name 'Arc';
  155. {$ENDIF DYNAMIC_LINK}
  156. {$IFDEF DYNAMIC_LINK}
  157. var
  158.   _BitBlt: Pointer;
  159. function BitBlt;
  160. begin
  161.   GetProcedureAddress(_BitBlt, gdi32, 'BitBlt');
  162.   asm
  163.     mov esp, ebp
  164.     pop ebp
  165.     jmp [_BitBlt]
  166.   end;
  167. end;
  168. {$ELSE}
  169. function BitBlt; external gdi32 name 'BitBlt';
  170. {$ENDIF DYNAMIC_LINK}
  171. {$IFDEF DYNAMIC_LINK}
  172. var
  173.   _CancelDC: Pointer;
  174. function CancelDC;
  175. begin
  176.   GetProcedureAddress(_CancelDC, gdi32, 'CancelDC');
  177.   asm
  178.     mov esp, ebp
  179.     pop ebp
  180.     jmp [_CancelDC]
  181.   end;
  182. end;
  183. {$ELSE}
  184. function CancelDC; external gdi32 name 'CancelDC';
  185. {$ENDIF DYNAMIC_LINK}
  186. {$IFDEF DYNAMIC_LINK}
  187. var
  188.   _Chord: Pointer;
  189. function Chord;
  190. begin
  191.   GetProcedureAddress(_Chord, gdi32, 'Chord');
  192.   asm
  193.     mov esp, ebp
  194.     pop ebp
  195.     jmp [_Chord]
  196.   end;
  197. end;
  198. {$ELSE}
  199. function Chord; external gdi32 name 'Chord';
  200. {$ENDIF DYNAMIC_LINK}
  201. {$IFDEF DYNAMIC_LINK}
  202. var
  203.   _ChoosePixelFormat: Pointer;
  204. function ChoosePixelFormat;
  205. begin
  206.   GetProcedureAddress(_ChoosePixelFormat, gdi32, 'ChoosePixelFormat');
  207.   asm
  208.     mov esp, ebp
  209.     pop ebp
  210.     jmp [_ChoosePixelFormat]
  211.   end;
  212. end;
  213. {$ELSE}
  214. function ChoosePixelFormat; external gdi32 name 'ChoosePixelFormat';
  215. {$ENDIF DYNAMIC_LINK}
  216. {$IFDEF DYNAMIC_LINK}
  217. var
  218.   _CloseMetaFile: Pointer;
  219. function CloseMetaFile;
  220. begin
  221.   GetProcedureAddress(_CloseMetaFile, gdi32, 'CloseMetaFile');
  222.   asm
  223.     mov esp, ebp
  224.     pop ebp
  225.     jmp [_CloseMetaFile]
  226.   end;
  227. end;
  228. {$ELSE}
  229. function CloseMetaFile; external gdi32 name 'CloseMetaFile';
  230. {$ENDIF DYNAMIC_LINK}
  231. {$IFDEF DYNAMIC_LINK}
  232. var
  233.   _CombineRgn: Pointer;
  234. function CombineRgn;
  235. begin
  236.   GetProcedureAddress(_CombineRgn, gdi32, 'CombineRgn');
  237.   asm
  238.     mov esp, ebp
  239.     pop ebp
  240.     jmp [_CombineRgn]
  241.   end;
  242. end;
  243. {$ELSE}
  244. function CombineRgn; external gdi32 name 'CombineRgn';
  245. {$ENDIF DYNAMIC_LINK}
  246. {$IFDEF DYNAMIC_LINK}
  247. var
  248.   _CopyMetaFileA: Pointer;
  249. function CopyMetaFileA;
  250. begin
  251.   GetProcedureAddress(_CopyMetaFileA, gdi32, 'CopyMetaFileA');
  252.   asm
  253.     mov esp, ebp
  254.     pop ebp
  255.     jmp [_CopyMetaFileA]
  256.   end;
  257. end;
  258. {$ELSE}
  259. function CopyMetaFileA; external gdi32 name 'CopyMetaFileA';
  260. {$ENDIF DYNAMIC_LINK}
  261. {$IFDEF DYNAMIC_LINK}
  262. var
  263.   _CopyMetaFileW: Pointer;
  264. function CopyMetaFileW;
  265. begin
  266.   GetProcedureAddress(_CopyMetaFileW, gdi32, 'CopyMetaFileW');
  267.   asm
  268.     mov esp, ebp
  269.     pop ebp
  270.     jmp [_CopyMetaFileW]
  271.   end;
  272. end;
  273. {$ELSE}
  274. function CopyMetaFileW; external gdi32 name 'CopyMetaFileW';
  275. {$ENDIF DYNAMIC_LINK}
  276. {$IFDEF UNICODE}
  277. {$IFDEF DYNAMIC_LINK}
  278. var
  279.   _CopyMetaFile: Pointer;
  280. function CopyMetaFile;
  281. begin
  282.   GetProcedureAddress(_CopyMetaFile, gdi32, 'CopyMetaFileW');
  283.   asm
  284.     mov esp, ebp
  285.     pop ebp
  286.     jmp [_CopyMetaFile]
  287.   end;
  288. end;
  289. {$ELSE}
  290. function CopyMetaFile; external gdi32 name 'CopyMetaFileW';
  291. {$ENDIF DYNAMIC_LINK}
  292. {$ELSE}
  293. {$IFDEF DYNAMIC_LINK}
  294. var
  295.   _CopyMetaFile: Pointer;
  296. function CopyMetaFile;
  297. begin
  298.   GetProcedureAddress(_CopyMetaFile, gdi32, 'CopyMetaFileA');
  299.   asm
  300.     mov esp, ebp
  301.     pop ebp
  302.     jmp [_CopyMetaFile]
  303.   end;
  304. end;
  305. {$ELSE}
  306. function CopyMetaFile; external gdi32 name 'CopyMetaFileA';
  307. {$ENDIF DYNAMIC_LINK}
  308. {$ENDIF}
  309. {$IFDEF DYNAMIC_LINK}
  310. var
  311.   _CreateBitmap: Pointer;
  312. function CreateBitmap;
  313. begin
  314.   GetProcedureAddress(_CreateBitmap, gdi32, 'CreateBitmap');
  315.   asm
  316.     mov esp, ebp
  317.     pop ebp
  318.     jmp [_CreateBitmap]
  319.   end;
  320. end;
  321. {$ELSE}
  322. function CreateBitmap; external gdi32 name 'CreateBitmap';
  323. {$ENDIF DYNAMIC_LINK}
  324. {$IFDEF DYNAMIC_LINK}
  325. var
  326.   _CreateBitmapIndirect: Pointer;
  327. function CreateBitmapIndirect;
  328. begin
  329.   GetProcedureAddress(_CreateBitmapIndirect, gdi32, 'CreateBitmapIndirect');
  330.   asm
  331.     mov esp, ebp
  332.     pop ebp
  333.     jmp [_CreateBitmapIndirect]
  334.   end;
  335. end;
  336. {$ELSE}
  337. function CreateBitmapIndirect; external gdi32 name 'CreateBitmapIndirect';
  338. {$ENDIF DYNAMIC_LINK}
  339. {$IFDEF DYNAMIC_LINK}
  340. var
  341.   _CreateBrushIndirect: Pointer;
  342. function CreateBrushIndirect;
  343. begin
  344.   GetProcedureAddress(_CreateBrushIndirect, gdi32, 'CreateBrushIndirect');
  345.   asm
  346.     mov esp, ebp
  347.     pop ebp
  348.     jmp [_CreateBrushIndirect]
  349.   end;
  350. end;
  351. {$ELSE}
  352. function CreateBrushIndirect; external gdi32 name 'CreateBrushIndirect';
  353. {$ENDIF DYNAMIC_LINK}
  354. {$IFDEF DYNAMIC_LINK}
  355. var
  356.   _CreateCompatibleBitmap: Pointer;
  357. function CreateCompatibleBitmap;
  358. begin
  359.   GetProcedureAddress(_CreateCompatibleBitmap, gdi32, 'CreateCompatibleBitmap');
  360.   asm
  361.     mov esp, ebp
  362.     pop ebp
  363.     jmp [_CreateCompatibleBitmap]
  364.   end;
  365. end;
  366. {$ELSE}
  367. function CreateCompatibleBitmap; external gdi32 name 'CreateCompatibleBitmap';
  368. {$ENDIF DYNAMIC_LINK}
  369. {$IFDEF DYNAMIC_LINK}
  370. var
  371.   _CreateDiscardableBitmap: Pointer;
  372. function CreateDiscardableBitmap;
  373. begin
  374.   GetProcedureAddress(_CreateDiscardableBitmap, gdi32, 'CreateDiscardableBitmap');
  375.   asm
  376.     mov esp, ebp
  377.     pop ebp
  378.     jmp [_CreateDiscardableBitmap]
  379.   end;
  380. end;
  381. {$ELSE}
  382. function CreateDiscardableBitmap; external gdi32 name 'CreateDiscardableBitmap';
  383. {$ENDIF DYNAMIC_LINK}
  384. {$IFDEF DYNAMIC_LINK}
  385. var
  386.   _CreateCompatibleDC: Pointer;
  387. function CreateCompatibleDC;
  388. begin
  389.   GetProcedureAddress(_CreateCompatibleDC, gdi32, 'CreateCompatibleDC');
  390.   asm
  391.     mov esp, ebp
  392.     pop ebp
  393.     jmp [_CreateCompatibleDC]
  394.   end;
  395. end;
  396. {$ELSE}
  397. function CreateCompatibleDC; external gdi32 name 'CreateCompatibleDC';
  398. {$ENDIF DYNAMIC_LINK}
  399. {$IFDEF DYNAMIC_LINK}
  400. var
  401.   _CreateDCA: Pointer;
  402. function CreateDCA;
  403. begin
  404.   GetProcedureAddress(_CreateDCA, gdi32, 'CreateDCA');
  405.   asm
  406.     mov esp, ebp
  407.     pop ebp
  408.     jmp [_CreateDCA]
  409.   end;
  410. end;
  411. {$ELSE}
  412. function CreateDCA; external gdi32 name 'CreateDCA';
  413. {$ENDIF DYNAMIC_LINK}
  414. {$IFDEF DYNAMIC_LINK}
  415. var
  416.   _CreateDCW: Pointer;
  417. function CreateDCW;
  418. begin
  419.   GetProcedureAddress(_CreateDCW, gdi32, 'CreateDCW');
  420.   asm
  421.     mov esp, ebp
  422.     pop ebp
  423.     jmp [_CreateDCW]
  424.   end;
  425. end;
  426. {$ELSE}
  427. function CreateDCW; external gdi32 name 'CreateDCW';
  428. {$ENDIF DYNAMIC_LINK}
  429. {$IFDEF UNICODE}
  430. {$IFDEF DYNAMIC_LINK}
  431. var
  432.   _CreateDC: Pointer;
  433. function CreateDC;
  434. begin
  435.   GetProcedureAddress(_CreateDC, gdi32, 'CreateDCW');
  436.   asm
  437.     mov esp, ebp
  438.     pop ebp
  439.     jmp [_CreateDC]
  440.   end;
  441. end;
  442. {$ELSE}
  443. function CreateDC; external gdi32 name 'CreateDCW';
  444. {$ENDIF DYNAMIC_LINK}
  445. {$ELSE}
  446. {$IFDEF DYNAMIC_LINK}
  447. var
  448.   _CreateDC: Pointer;
  449. function CreateDC;
  450. begin
  451.   GetProcedureAddress(_CreateDC, gdi32, 'CreateDCA');
  452.   asm
  453.     mov esp, ebp
  454.     pop ebp
  455.     jmp [_CreateDC]
  456.   end;
  457. end;
  458. {$ELSE}
  459. function CreateDC; external gdi32 name 'CreateDCA';
  460. {$ENDIF DYNAMIC_LINK}
  461. {$ENDIF}
  462. {$IFDEF DYNAMIC_LINK}
  463. var
  464.   _CreateDIBitmap: Pointer;
  465. function CreateDIBitmap;
  466. begin
  467.   GetProcedureAddress(_CreateDIBitmap, gdi32, 'CreateDIBitmap');
  468.   asm
  469.     mov esp, ebp
  470.     pop ebp
  471.     jmp [_CreateDIBitmap]
  472.   end;
  473. end;
  474. {$ELSE}
  475. function CreateDIBitmap; external gdi32 name 'CreateDIBitmap';
  476. {$ENDIF DYNAMIC_LINK}
  477. {$IFDEF DYNAMIC_LINK}
  478. var
  479.   _CreateDIBPatternBrush: Pointer;
  480. function CreateDIBPatternBrush;
  481. begin
  482.   GetProcedureAddress(_CreateDIBPatternBrush, gdi32, 'CreateDIBPatternBrush');
  483.   asm
  484.     mov esp, ebp
  485.     pop ebp
  486.     jmp [_CreateDIBPatternBrush]
  487.   end;
  488. end;
  489. {$ELSE}
  490. function CreateDIBPatternBrush; external gdi32 name 'CreateDIBPatternBrush';
  491. {$ENDIF DYNAMIC_LINK}
  492. {$IFDEF DYNAMIC_LINK}
  493. var
  494.   _CreateDIBPatternBrushPt: Pointer;
  495. function CreateDIBPatternBrushPt;
  496. begin
  497.   GetProcedureAddress(_CreateDIBPatternBrushPt, gdi32, 'CreateDIBPatternBrushPt');
  498.   asm
  499.     mov esp, ebp
  500.     pop ebp
  501.     jmp [_CreateDIBPatternBrushPt]
  502.   end;
  503. end;
  504. {$ELSE}
  505. function CreateDIBPatternBrushPt; external gdi32 name 'CreateDIBPatternBrushPt';
  506. {$ENDIF DYNAMIC_LINK}
  507. {$IFDEF DYNAMIC_LINK}
  508. var
  509.   _CreateEllipticRgn: Pointer;
  510. function CreateEllipticRgn;
  511. begin
  512.   GetProcedureAddress(_CreateEllipticRgn, gdi32, 'CreateEllipticRgn');
  513.   asm
  514.     mov esp, ebp
  515.     pop ebp
  516.     jmp [_CreateEllipticRgn]
  517.   end;
  518. end;
  519. {$ELSE}
  520. function CreateEllipticRgn; external gdi32 name 'CreateEllipticRgn';
  521. {$ENDIF DYNAMIC_LINK}
  522. {$IFDEF DYNAMIC_LINK}
  523. var
  524.   _CreateEllipticRgnIndirect: Pointer;
  525. function CreateEllipticRgnIndirect;
  526. begin
  527.   GetProcedureAddress(_CreateEllipticRgnIndirect, gdi32, 'CreateEllipticRgnIndirect');
  528.   asm
  529.     mov esp, ebp
  530.     pop ebp
  531.     jmp [_CreateEllipticRgnIndirect]
  532.   end;
  533. end;
  534. {$ELSE}
  535. function CreateEllipticRgnIndirect; external gdi32 name 'CreateEllipticRgnIndirect';
  536. {$ENDIF DYNAMIC_LINK}
  537. {$IFDEF DYNAMIC_LINK}
  538. var
  539.   _CreateFontIndirectA: Pointer;
  540. function CreateFontIndirectA;
  541. begin
  542.   GetProcedureAddress(_CreateFontIndirectA, gdi32, 'CreateFontIndirectA');
  543.   asm
  544.     mov esp, ebp
  545.     pop ebp
  546.     jmp [_CreateFontIndirectA]
  547.   end;
  548. end;
  549. {$ELSE}
  550. function CreateFontIndirectA; external gdi32 name 'CreateFontIndirectA';
  551. {$ENDIF DYNAMIC_LINK}
  552. {$IFDEF DYNAMIC_LINK}
  553. var
  554.   _CreateFontIndirectW: Pointer;
  555. function CreateFontIndirectW;
  556. begin
  557.   GetProcedureAddress(_CreateFontIndirectW, gdi32, 'CreateFontIndirectW');
  558.   asm
  559.     mov esp, ebp
  560.     pop ebp
  561.     jmp [_CreateFontIndirectW]
  562.   end;
  563. end;
  564. {$ELSE}
  565. function CreateFontIndirectW; external gdi32 name 'CreateFontIndirectW';
  566. {$ENDIF DYNAMIC_LINK}
  567. {$IFDEF UNICODE}
  568. {$IFDEF DYNAMIC_LINK}
  569. var
  570.   _CreateFontIndirect: Pointer;
  571. function CreateFontIndirect;
  572. begin
  573.   GetProcedureAddress(_CreateFontIndirect, gdi32, 'CreateFontIndirectW');
  574.   asm
  575.     mov esp, ebp
  576.     pop ebp
  577.     jmp [_CreateFontIndirect]
  578.   end;
  579. end;
  580. {$ELSE}
  581. function CreateFontIndirect; external gdi32 name 'CreateFontIndirectW';
  582. {$ENDIF DYNAMIC_LINK}
  583. {$ELSE}
  584. {$IFDEF DYNAMIC_LINK}
  585. var
  586.   _CreateFontIndirect: Pointer;
  587. function CreateFontIndirect;
  588. begin
  589.   GetProcedureAddress(_CreateFontIndirect, gdi32, 'CreateFontIndirectA');
  590.   asm
  591.     mov esp, ebp
  592.     pop ebp
  593.     jmp [_CreateFontIndirect]
  594.   end;
  595. end;
  596. {$ELSE}
  597. function CreateFontIndirect; external gdi32 name 'CreateFontIndirectA';
  598. {$ENDIF DYNAMIC_LINK}
  599. {$ENDIF}
  600. {$IFDEF DYNAMIC_LINK}
  601. var
  602.   _CreateFontA: Pointer;
  603. function CreateFontA;
  604. begin
  605.   GetProcedureAddress(_CreateFontA, gdi32, 'CreateFontA');
  606.   asm
  607.     mov esp, ebp
  608.     pop ebp
  609.     jmp [_CreateFontA]
  610.   end;
  611. end;
  612. {$ELSE}
  613. function CreateFontA; external gdi32 name 'CreateFontA';
  614. {$ENDIF DYNAMIC_LINK}
  615. {$IFDEF DYNAMIC_LINK}
  616. var
  617.   _CreateFontW: Pointer;
  618. function CreateFontW;
  619. begin
  620.   GetProcedureAddress(_CreateFontW, gdi32, 'CreateFontW');
  621.   asm
  622.     mov esp, ebp
  623.     pop ebp
  624.     jmp [_CreateFontW]
  625.   end;
  626. end;
  627. {$ELSE}
  628. function CreateFontW; external gdi32 name 'CreateFontW';
  629. {$ENDIF DYNAMIC_LINK}
  630. {$IFDEF UNICODE}
  631. {$IFDEF DYNAMIC_LINK}
  632. var
  633.   _CreateFont: Pointer;
  634. function CreateFont;
  635. begin
  636.   GetProcedureAddress(_CreateFont, gdi32, 'CreateFontW');
  637.   asm
  638.     mov esp, ebp
  639.     pop ebp
  640.     jmp [_CreateFont]
  641.   end;
  642. end;
  643. {$ELSE}
  644. function CreateFont; external gdi32 name 'CreateFontW';
  645. {$ENDIF DYNAMIC_LINK}
  646. {$ELSE}
  647. {$IFDEF DYNAMIC_LINK}
  648. var
  649.   _CreateFont: Pointer;
  650. function CreateFont;
  651. begin
  652.   GetProcedureAddress(_CreateFont, gdi32, 'CreateFontA');
  653.   asm
  654.     mov esp, ebp
  655.     pop ebp
  656.     jmp [_CreateFont]
  657.   end;
  658. end;
  659. {$ELSE}
  660. function CreateFont; external gdi32 name 'CreateFontA';
  661. {$ENDIF DYNAMIC_LINK}
  662. {$ENDIF}
  663. {$IFDEF DYNAMIC_LINK}
  664. var
  665.   _CreateHatchBrush: Pointer;
  666. function CreateHatchBrush;
  667. begin
  668.   GetProcedureAddress(_CreateHatchBrush, gdi32, 'CreateHatchBrush');
  669.   asm
  670.     mov esp, ebp
  671.     pop ebp
  672.     jmp [_CreateHatchBrush]
  673.   end;
  674. end;
  675. {$ELSE}
  676. function CreateHatchBrush; external gdi32 name 'CreateHatchBrush';
  677. {$ENDIF DYNAMIC_LINK}
  678. {$IFDEF DYNAMIC_LINK}
  679. var
  680.   _CreateICA: Pointer;
  681. function CreateICA;
  682. begin
  683.   GetProcedureAddress(_CreateICA, gdi32, 'CreateICA');
  684.   asm
  685.     mov esp, ebp
  686.     pop ebp
  687.     jmp [_CreateICA]
  688.   end;
  689. end;
  690. {$ELSE}
  691. function CreateICA; external gdi32 name 'CreateICA';
  692. {$ENDIF DYNAMIC_LINK}
  693. {$IFDEF DYNAMIC_LINK}
  694. var
  695.   _CreateICW: Pointer;
  696. function CreateICW;
  697. begin
  698.   GetProcedureAddress(_CreateICW, gdi32, 'CreateICW');
  699.   asm
  700.     mov esp, ebp
  701.     pop ebp
  702.     jmp [_CreateICW]
  703.   end;
  704. end;
  705. {$ELSE}
  706. function CreateICW; external gdi32 name 'CreateICW';
  707. {$ENDIF DYNAMIC_LINK}
  708. {$IFDEF UNICODE}
  709. {$IFDEF DYNAMIC_LINK}
  710. var
  711.   _CreateIC: Pointer;
  712. function CreateIC;
  713. begin
  714.   GetProcedureAddress(_CreateIC, gdi32, 'CreateICW');
  715.   asm
  716.     mov esp, ebp
  717.     pop ebp
  718.     jmp [_CreateIC]
  719.   end;
  720. end;
  721. {$ELSE}
  722. function CreateIC; external gdi32 name 'CreateICW';
  723. {$ENDIF DYNAMIC_LINK}
  724. {$ELSE}
  725. {$IFDEF DYNAMIC_LINK}
  726. var
  727.   _CreateIC: Pointer;
  728. function CreateIC;
  729. begin
  730.   GetProcedureAddress(_CreateIC, gdi32, 'CreateICA');
  731.   asm
  732.     mov esp, ebp
  733.     pop ebp
  734.     jmp [_CreateIC]
  735.   end;
  736. end;
  737. {$ELSE}
  738. function CreateIC; external gdi32 name 'CreateICA';
  739. {$ENDIF DYNAMIC_LINK}
  740. {$ENDIF}
  741. {$IFDEF DYNAMIC_LINK}
  742. var
  743.   _CreateMetaFileA: Pointer;
  744. function CreateMetaFileA;
  745. begin
  746.   GetProcedureAddress(_CreateMetaFileA, gdi32, 'CreateMetaFileA');
  747.   asm
  748.     mov esp, ebp
  749.     pop ebp
  750.     jmp [_CreateMetaFileA]
  751.   end;
  752. end;
  753. {$ELSE}
  754. function CreateMetaFileA; external gdi32 name 'CreateMetaFileA';
  755. {$ENDIF DYNAMIC_LINK}
  756. {$IFDEF DYNAMIC_LINK}
  757. var
  758.   _CreateMetaFileW: Pointer;
  759. function CreateMetaFileW;
  760. begin
  761.   GetProcedureAddress(_CreateMetaFileW, gdi32, 'CreateMetaFileW');
  762.   asm
  763.     mov esp, ebp
  764.     pop ebp
  765.     jmp [_CreateMetaFileW]
  766.   end;
  767. end;
  768. {$ELSE}
  769. function CreateMetaFileW; external gdi32 name 'CreateMetaFileW';
  770. {$ENDIF DYNAMIC_LINK}
  771. {$IFDEF UNICODE}
  772. {$IFDEF DYNAMIC_LINK}
  773. var
  774.   _CreateMetaFile: Pointer;
  775. function CreateMetaFile;
  776. begin
  777.   GetProcedureAddress(_CreateMetaFile, gdi32, 'CreateMetaFileW');
  778.   asm
  779.     mov esp, ebp
  780.     pop ebp
  781.     jmp [_CreateMetaFile]
  782.   end;
  783. end;
  784. {$ELSE}
  785. function CreateMetaFile; external gdi32 name 'CreateMetaFileW';
  786. {$ENDIF DYNAMIC_LINK}
  787. {$ELSE}
  788. {$IFDEF DYNAMIC_LINK}
  789. var
  790.   _CreateMetaFile: Pointer;
  791. function CreateMetaFile;
  792. begin
  793.   GetProcedureAddress(_CreateMetaFile, gdi32, 'CreateMetaFileA');
  794.   asm
  795.     mov esp, ebp
  796.     pop ebp
  797.     jmp [_CreateMetaFile]
  798.   end;
  799. end;
  800. {$ELSE}
  801. function CreateMetaFile; external gdi32 name 'CreateMetaFileA';
  802. {$ENDIF DYNAMIC_LINK}
  803. {$ENDIF}
  804. {$IFDEF DYNAMIC_LINK}
  805. var
  806.   _CreatePalette: Pointer;
  807. function CreatePalette;
  808. begin
  809.   GetProcedureAddress(_CreatePalette, gdi32, 'CreatePalette');
  810.   asm
  811.     mov esp, ebp
  812.     pop ebp
  813.     jmp [_CreatePalette]
  814.   end;
  815. end;
  816. {$ELSE}
  817. function CreatePalette; external gdi32 name 'CreatePalette';
  818. {$ENDIF DYNAMIC_LINK}
  819. {$IFDEF DYNAMIC_LINK}
  820. var
  821.   _CreatePen: Pointer;
  822. function CreatePen;
  823. begin
  824.   GetProcedureAddress(_CreatePen, gdi32, 'CreatePen');
  825.   asm
  826.     mov esp, ebp
  827.     pop ebp
  828.     jmp [_CreatePen]
  829.   end;
  830. end;
  831. {$ELSE}
  832. function CreatePen; external gdi32 name 'CreatePen';
  833. {$ENDIF DYNAMIC_LINK}
  834. {$IFDEF DYNAMIC_LINK}
  835. var
  836.   _CreatePenIndirect: Pointer;
  837. function CreatePenIndirect;
  838. begin
  839.   GetProcedureAddress(_CreatePenIndirect, gdi32, 'CreatePenIndirect');
  840.   asm
  841.     mov esp, ebp
  842.     pop ebp
  843.     jmp [_CreatePenIndirect]
  844.   end;
  845. end;
  846. {$ELSE}
  847. function CreatePenIndirect; external gdi32 name 'CreatePenIndirect';
  848. {$ENDIF DYNAMIC_LINK}
  849. {$IFDEF DYNAMIC_LINK}
  850. var
  851.   _CreatePolyPolygonRgn: Pointer;
  852. function CreatePolyPolygonRgn;
  853. begin
  854.   GetProcedureAddress(_CreatePolyPolygonRgn, gdi32, 'CreatePolyPolygonRgn');
  855.   asm
  856.     mov esp, ebp
  857.     pop ebp
  858.     jmp [_CreatePolyPolygonRgn]
  859.   end;
  860. end;
  861. {$ELSE}
  862. function CreatePolyPolygonRgn; external gdi32 name 'CreatePolyPolygonRgn';
  863. {$ENDIF DYNAMIC_LINK}
  864. {$IFDEF DYNAMIC_LINK}
  865. var
  866.   _CreatePatternBrush: Pointer;
  867. function CreatePatternBrush;
  868. begin
  869.   GetProcedureAddress(_CreatePatternBrush, gdi32, 'CreatePatternBrush');
  870.   asm
  871.     mov esp, ebp
  872.     pop ebp
  873.     jmp [_CreatePatternBrush]
  874.   end;
  875. end;
  876. {$ELSE}
  877. function CreatePatternBrush; external gdi32 name 'CreatePatternBrush';
  878. {$ENDIF DYNAMIC_LINK}
  879. {$IFDEF DYNAMIC_LINK}
  880. var
  881.   _CreateRectRgn: Pointer;
  882. function CreateRectRgn;
  883. begin
  884.   GetProcedureAddress(_CreateRectRgn, gdi32, 'CreateRectRgn');
  885.   asm
  886.     mov esp, ebp
  887.     pop ebp
  888.     jmp [_CreateRectRgn]
  889.   end;
  890. end;
  891. {$ELSE}
  892. function CreateRectRgn; external gdi32 name 'CreateRectRgn';
  893. {$ENDIF DYNAMIC_LINK}
  894. {$IFDEF DYNAMIC_LINK}
  895. var
  896.   _CreateRectRgnIndirect: Pointer;
  897. function CreateRectRgnIndirect;
  898. begin
  899.   GetProcedureAddress(_CreateRectRgnIndirect, gdi32, 'CreateRectRgnIndirect');
  900.   asm
  901.     mov esp, ebp
  902.     pop ebp
  903.     jmp [_CreateRectRgnIndirect]
  904.   end;
  905. end;
  906. {$ELSE}
  907. function CreateRectRgnIndirect; external gdi32 name 'CreateRectRgnIndirect';
  908. {$ENDIF DYNAMIC_LINK}
  909. {$IFDEF DYNAMIC_LINK}
  910. var
  911.   _CreateRoundRectRgn: Pointer;
  912. function CreateRoundRectRgn;
  913. begin
  914.   GetProcedureAddress(_CreateRoundRectRgn, gdi32, 'CreateRoundRectRgn');
  915.   asm
  916.     mov esp, ebp
  917.     pop ebp
  918.     jmp [_CreateRoundRectRgn]
  919.   end;
  920. end;
  921. {$ELSE}
  922. function CreateRoundRectRgn; external gdi32 name 'CreateRoundRectRgn';
  923. {$ENDIF DYNAMIC_LINK}
  924. {$IFDEF DYNAMIC_LINK}
  925. var
  926.   _CreateScalableFontResourceA: Pointer;
  927. function CreateScalableFontResourceA;
  928. begin
  929.   GetProcedureAddress(_CreateScalableFontResourceA, gdi32, 'CreateScalableFontResourceA');
  930.   asm
  931.     mov esp, ebp
  932.     pop ebp
  933.     jmp [_CreateScalableFontResourceA]
  934.   end;
  935. end;
  936. {$ELSE}
  937. function CreateScalableFontResourceA; external gdi32 name 'CreateScalableFontResourceA';
  938. {$ENDIF DYNAMIC_LINK}
  939. {$IFDEF DYNAMIC_LINK}
  940. var
  941.   _CreateScalableFontResourceW: Pointer;
  942. function CreateScalableFontResourceW;
  943. begin
  944.   GetProcedureAddress(_CreateScalableFontResourceW, gdi32, 'CreateScalableFontResourceW');
  945.   asm
  946.     mov esp, ebp
  947.     pop ebp
  948.     jmp [_CreateScalableFontResourceW]
  949.   end;
  950. end;
  951. {$ELSE}
  952. function CreateScalableFontResourceW; external gdi32 name 'CreateScalableFontResourceW';
  953. {$ENDIF DYNAMIC_LINK}
  954. {$IFDEF UNICODE}
  955. {$IFDEF DYNAMIC_LINK}
  956. var
  957.   _CreateScalableFontResource: Pointer;
  958. function CreateScalableFontResource;
  959. begin
  960.   GetProcedureAddress(_CreateScalableFontResource, gdi32, 'CreateScalableFontResourceW');
  961.   asm
  962.     mov esp, ebp
  963.     pop ebp
  964.     jmp [_CreateScalableFontResource]
  965.   end;
  966. end;
  967. {$ELSE}
  968. function CreateScalableFontResource; external gdi32 name 'CreateScalableFontResourceW';
  969. {$ENDIF DYNAMIC_LINK}
  970. {$ELSE}
  971. {$IFDEF DYNAMIC_LINK}
  972. var
  973.   _CreateScalableFontResource: Pointer;
  974. function CreateScalableFontResource;
  975. begin
  976.   GetProcedureAddress(_CreateScalableFontResource, gdi32, 'CreateScalableFontResourceA');
  977.   asm
  978.     mov esp, ebp
  979.     pop ebp
  980.     jmp [_CreateScalableFontResource]
  981.   end;
  982. end;
  983. {$ELSE}
  984. function CreateScalableFontResource; external gdi32 name 'CreateScalableFontResourceA';
  985. {$ENDIF DYNAMIC_LINK}
  986. {$ENDIF}
  987. {$IFDEF DYNAMIC_LINK}
  988. var
  989.   _CreateSolidBrush: Pointer;
  990. function CreateSolidBrush;
  991. begin
  992.   GetProcedureAddress(_CreateSolidBrush, gdi32, 'CreateSolidBrush');
  993.   asm
  994.     mov esp, ebp
  995.     pop ebp
  996.     jmp [_CreateSolidBrush]
  997.   end;
  998. end;
  999. {$ELSE}
  1000. function CreateSolidBrush; external gdi32 name 'CreateSolidBrush';
  1001. {$ENDIF DYNAMIC_LINK}
  1002. {$IFDEF DYNAMIC_LINK}
  1003. var
  1004.   _DeleteDC: Pointer;
  1005. function DeleteDC;
  1006. begin
  1007.   GetProcedureAddress(_DeleteDC, gdi32, 'DeleteDC');
  1008.   asm
  1009.     mov esp, ebp
  1010.     pop ebp
  1011.     jmp [_DeleteDC]
  1012.   end;
  1013. end;
  1014. {$ELSE}
  1015. function DeleteDC; external gdi32 name 'DeleteDC';
  1016. {$ENDIF DYNAMIC_LINK}
  1017. {$IFDEF DYNAMIC_LINK}
  1018. var
  1019.   _DeleteMetaFile: Pointer;
  1020. function DeleteMetaFile;
  1021. begin
  1022.   GetProcedureAddress(_DeleteMetaFile, gdi32, 'DeleteMetaFile');
  1023.   asm
  1024.     mov esp, ebp
  1025.     pop ebp
  1026.     jmp [_DeleteMetaFile]
  1027.   end;
  1028. end;
  1029. {$ELSE}
  1030. function DeleteMetaFile; external gdi32 name 'DeleteMetaFile';
  1031. {$ENDIF DYNAMIC_LINK}
  1032. {$IFDEF DYNAMIC_LINK}
  1033. var
  1034.   _DeleteObject: Pointer;
  1035. function DeleteObject;
  1036. begin
  1037.   GetProcedureAddress(_DeleteObject, gdi32, 'DeleteObject');
  1038.   asm
  1039.     mov esp, ebp
  1040.     pop ebp
  1041.     jmp [_DeleteObject]
  1042.   end;
  1043. end;
  1044. {$ELSE}
  1045. function DeleteObject; external gdi32 name 'DeleteObject';
  1046. {$ENDIF DYNAMIC_LINK}
  1047. {$IFDEF DYNAMIC_LINK}
  1048. var
  1049.   _DescribePixelFormat: Pointer;
  1050. function DescribePixelFormat;
  1051. begin
  1052.   GetProcedureAddress(_DescribePixelFormat, gdi32, 'DescribePixelFormat');
  1053.   asm
  1054.     mov esp, ebp
  1055.     pop ebp
  1056.     jmp [_DescribePixelFormat]
  1057.   end;
  1058. end;
  1059. {$ELSE}
  1060. function DescribePixelFormat; external gdi32 name 'DescribePixelFormat';
  1061. {$ENDIF DYNAMIC_LINK}
  1062. {$IFDEF DYNAMIC_LINK}
  1063. var
  1064.   _DeviceCapabilitiesA: Pointer;
  1065. function DeviceCapabilitiesA;
  1066. begin
  1067.   GetProcedureAddress(_DeviceCapabilitiesA, winspool32, 'DeviceCapabilitiesA');
  1068.   asm
  1069.     mov esp, ebp
  1070.     pop ebp
  1071.     jmp [_DeviceCapabilitiesA]
  1072.   end;
  1073. end;
  1074. {$ELSE}
  1075. function DeviceCapabilitiesA; external winspool32 name 'DeviceCapabilitiesA';
  1076. {$ENDIF DYNAMIC_LINK}
  1077. {$IFDEF DYNAMIC_LINK}
  1078. var
  1079.   _DeviceCapabilitiesW: Pointer;
  1080. function DeviceCapabilitiesW;
  1081. begin
  1082.   GetProcedureAddress(_DeviceCapabilitiesW, winspool32, 'DeviceCapabilitiesW');
  1083.   asm
  1084.     mov esp, ebp
  1085.     pop ebp
  1086.     jmp [_DeviceCapabilitiesW]
  1087.   end;
  1088. end;
  1089. {$ELSE}
  1090. function DeviceCapabilitiesW; external winspool32 name 'DeviceCapabilitiesW';
  1091. {$ENDIF DYNAMIC_LINK}
  1092. {$IFDEF UNICODE}
  1093. {$IFDEF DYNAMIC_LINK}
  1094. var
  1095.   _DeviceCapabilities: Pointer;
  1096. function DeviceCapabilities;
  1097. begin
  1098.   GetProcedureAddress(_DeviceCapabilities, winspool32, 'DeviceCapabilitiesW');
  1099.   asm
  1100.     mov esp, ebp
  1101.     pop ebp
  1102.     jmp [_DeviceCapabilities]
  1103.   end;
  1104. end;
  1105. {$ELSE}
  1106. function DeviceCapabilities; external winspool32 name 'DeviceCapabilitiesW';
  1107. {$ENDIF DYNAMIC_LINK}
  1108. {$ELSE}
  1109. {$IFDEF DYNAMIC_LINK}
  1110. var
  1111.   _DeviceCapabilities: Pointer;
  1112. function DeviceCapabilities;
  1113. begin
  1114.   GetProcedureAddress(_DeviceCapabilities, winspool32, 'DeviceCapabilitiesA');
  1115.   asm
  1116.     mov esp, ebp
  1117.     pop ebp
  1118.     jmp [_DeviceCapabilities]
  1119.   end;
  1120. end;
  1121. {$ELSE}
  1122. function DeviceCapabilities; external winspool32 name 'DeviceCapabilitiesA';
  1123. {$ENDIF DYNAMIC_LINK}
  1124. {$ENDIF}
  1125. {$IFDEF DYNAMIC_LINK}
  1126. var
  1127.   _DrawEscape: Pointer;
  1128. function DrawEscape;
  1129. begin
  1130.   GetProcedureAddress(_DrawEscape, gdi32, 'DrawEscape');
  1131.   asm
  1132.     mov esp, ebp
  1133.     pop ebp
  1134.     jmp [_DrawEscape]
  1135.   end;
  1136. end;
  1137. {$ELSE}
  1138. function DrawEscape; external gdi32 name 'DrawEscape';
  1139. {$ENDIF DYNAMIC_LINK}
  1140. {$IFDEF DYNAMIC_LINK}
  1141. var
  1142.   _Ellipse: Pointer;
  1143. function Ellipse;
  1144. begin
  1145.   GetProcedureAddress(_Ellipse, gdi32, 'Ellipse');
  1146.   asm
  1147.     mov esp, ebp
  1148.     pop ebp
  1149.     jmp [_Ellipse]
  1150.   end;
  1151. end;
  1152. {$ELSE}
  1153. function Ellipse; external gdi32 name 'Ellipse';
  1154. {$ENDIF DYNAMIC_LINK}
  1155. {$IFDEF DYNAMIC_LINK}
  1156. var
  1157.   _EnumFontFamiliesExA: Pointer;
  1158. function EnumFontFamiliesExA;
  1159. begin
  1160.   GetProcedureAddress(_EnumFontFamiliesExA, gdi32, 'EnumFontFamiliesExA');
  1161.   asm
  1162.     mov esp, ebp
  1163.     pop ebp
  1164.     jmp [_EnumFontFamiliesExA]
  1165.   end;
  1166. end;
  1167. {$ELSE}
  1168. function EnumFontFamiliesExA; external gdi32 name 'EnumFontFamiliesExA';
  1169. {$ENDIF DYNAMIC_LINK}
  1170. {$IFDEF DYNAMIC_LINK}
  1171. var
  1172.   _EnumFontFamiliesExW: Pointer;
  1173. function EnumFontFamiliesExW;
  1174. begin
  1175.   GetProcedureAddress(_EnumFontFamiliesExW, gdi32, 'EnumFontFamiliesExW');
  1176.   asm
  1177.     mov esp, ebp
  1178.     pop ebp
  1179.     jmp [_EnumFontFamiliesExW]
  1180.   end;
  1181. end;
  1182. {$ELSE}
  1183. function EnumFontFamiliesExW; external gdi32 name 'EnumFontFamiliesExW';
  1184. {$ENDIF DYNAMIC_LINK}
  1185. {$IFDEF UNICODE}
  1186. {$IFDEF DYNAMIC_LINK}
  1187. var
  1188.   _EnumFontFamiliesEx: Pointer;
  1189. function EnumFontFamiliesEx;
  1190. begin
  1191.   GetProcedureAddress(_EnumFontFamiliesEx, gdi32, 'EnumFontFamiliesExW');
  1192.   asm
  1193.     mov esp, ebp
  1194.     pop ebp
  1195.     jmp [_EnumFontFamiliesEx]
  1196.   end;
  1197. end;
  1198. {$ELSE}
  1199. function EnumFontFamiliesEx; external gdi32 name 'EnumFontFamiliesExW';
  1200. {$ENDIF DYNAMIC_LINK}
  1201. {$ELSE}
  1202. {$IFDEF DYNAMIC_LINK}
  1203. var
  1204.   _EnumFontFamiliesEx: Pointer;
  1205. function EnumFontFamiliesEx;
  1206. begin
  1207.   GetProcedureAddress(_EnumFontFamiliesEx, gdi32, 'EnumFontFamiliesExA');
  1208.   asm
  1209.     mov esp, ebp
  1210.     pop ebp
  1211.     jmp [_EnumFontFamiliesEx]
  1212.   end;
  1213. end;
  1214. {$ELSE}
  1215. function EnumFontFamiliesEx; external gdi32 name 'EnumFontFamiliesExA';
  1216. {$ENDIF DYNAMIC_LINK}
  1217. {$ENDIF}
  1218. {$IFDEF DYNAMIC_LINK}
  1219. var
  1220.   _EnumFontFamiliesA: Pointer;
  1221. function EnumFontFamiliesA;
  1222. begin
  1223.   GetProcedureAddress(_EnumFontFamiliesA, gdi32, 'EnumFontFamiliesA');
  1224.   asm
  1225.     mov esp, ebp
  1226.     pop ebp
  1227.     jmp [_EnumFontFamiliesA]
  1228.   end;
  1229. end;
  1230. {$ELSE}
  1231. function EnumFontFamiliesA; external gdi32 name 'EnumFontFamiliesA';
  1232. {$ENDIF DYNAMIC_LINK}
  1233. {$IFDEF DYNAMIC_LINK}
  1234. var
  1235.   _EnumFontFamiliesW: Pointer;
  1236. function EnumFontFamiliesW;
  1237. begin
  1238.   GetProcedureAddress(_EnumFontFamiliesW, gdi32, 'EnumFontFamiliesW');
  1239.   asm
  1240.     mov esp, ebp
  1241.     pop ebp
  1242.     jmp [_EnumFontFamiliesW]
  1243.   end;
  1244. end;
  1245. {$ELSE}
  1246. function EnumFontFamiliesW; external gdi32 name 'EnumFontFamiliesW';
  1247. {$ENDIF DYNAMIC_LINK}
  1248. {$IFDEF UNICODE}
  1249. {$IFDEF DYNAMIC_LINK}
  1250. var
  1251.   _EnumFontFamilies: Pointer;
  1252. function EnumFontFamilies;
  1253. begin
  1254.   GetProcedureAddress(_EnumFontFamilies, gdi32, 'EnumFontFamiliesW');
  1255.   asm
  1256.     mov esp, ebp
  1257.     pop ebp
  1258.     jmp [_EnumFontFamilies]
  1259.   end;
  1260. end;
  1261. {$ELSE}
  1262. function EnumFontFamilies; external gdi32 name 'EnumFontFamiliesW';
  1263. {$ENDIF DYNAMIC_LINK}
  1264. {$ELSE}
  1265. {$IFDEF DYNAMIC_LINK}
  1266. var
  1267.   _EnumFontFamilies: Pointer;
  1268. function EnumFontFamilies;
  1269. begin
  1270.   GetProcedureAddress(_EnumFontFamilies, gdi32, 'EnumFontFamiliesA');
  1271.   asm
  1272.     mov esp, ebp
  1273.     pop ebp
  1274.     jmp [_EnumFontFamilies]
  1275.   end;
  1276. end;
  1277. {$ELSE}
  1278. function EnumFontFamilies; external gdi32 name 'EnumFontFamiliesA';
  1279. {$ENDIF DYNAMIC_LINK}
  1280. {$ENDIF}
  1281. {$IFDEF DYNAMIC_LINK}
  1282. var
  1283.   _EnumFontsA: Pointer;
  1284. function EnumFontsA;
  1285. begin
  1286.   GetProcedureAddress(_EnumFontsA, gdi32, 'EnumFontsA');
  1287.   asm
  1288.     mov esp, ebp
  1289.     pop ebp
  1290.     jmp [_EnumFontsA]
  1291.   end;
  1292. end;
  1293. {$ELSE}
  1294. function EnumFontsA; external gdi32 name 'EnumFontsA';
  1295. {$ENDIF DYNAMIC_LINK}
  1296. {$IFDEF DYNAMIC_LINK}
  1297. var
  1298.   _EnumFontsW: Pointer;
  1299. function EnumFontsW;
  1300. begin
  1301.   GetProcedureAddress(_EnumFontsW, gdi32, 'EnumFontsW');
  1302.   asm
  1303.     mov esp, ebp
  1304.     pop ebp
  1305.     jmp [_EnumFontsW]
  1306.   end;
  1307. end;
  1308. {$ELSE}
  1309. function EnumFontsW; external gdi32 name 'EnumFontsW';
  1310. {$ENDIF DYNAMIC_LINK}
  1311. {$IFDEF UNICODE}
  1312. {$IFDEF DYNAMIC_LINK}
  1313. var
  1314.   _EnumFonts: Pointer;
  1315. function EnumFonts;
  1316. begin
  1317.   GetProcedureAddress(_EnumFonts, gdi32, 'EnumFontsW');
  1318.   asm
  1319.     mov esp, ebp
  1320.     pop ebp
  1321.     jmp [_EnumFonts]
  1322.   end;
  1323. end;
  1324. {$ELSE}
  1325. function EnumFonts; external gdi32 name 'EnumFontsW';
  1326. {$ENDIF DYNAMIC_LINK}
  1327. {$ELSE}
  1328. {$IFDEF DYNAMIC_LINK}
  1329. var
  1330.   _EnumFonts: Pointer;
  1331. function EnumFonts;
  1332. begin
  1333.   GetProcedureAddress(_EnumFonts, gdi32, 'EnumFontsA');
  1334.   asm
  1335.     mov esp, ebp
  1336.     pop ebp
  1337.     jmp [_EnumFonts]
  1338.   end;
  1339. end;
  1340. {$ELSE}
  1341. function EnumFonts; external gdi32 name 'EnumFontsA';
  1342. {$ENDIF DYNAMIC_LINK}
  1343. {$ENDIF}
  1344. {$IFDEF DYNAMIC_LINK}
  1345. var
  1346.   _EnumObjects: Pointer;
  1347. function EnumObjects;
  1348. begin
  1349.   GetProcedureAddress(_EnumObjects, gdi32, 'EnumObjects');
  1350.   asm
  1351.     mov esp, ebp
  1352.     pop ebp
  1353.     jmp [_EnumObjects]
  1354.   end;
  1355. end;
  1356. {$ELSE}
  1357. function EnumObjects; external gdi32 name 'EnumObjects';
  1358. {$ENDIF DYNAMIC_LINK}
  1359. {$IFDEF DYNAMIC_LINK}
  1360. var
  1361.   _EqualRgn: Pointer;
  1362. function EqualRgn;
  1363. begin
  1364.   GetProcedureAddress(_EqualRgn, gdi32, 'EqualRgn');
  1365.   asm
  1366.     mov esp, ebp
  1367.     pop ebp
  1368.     jmp [_EqualRgn]
  1369.   end;
  1370. end;
  1371. {$ELSE}
  1372. function EqualRgn; external gdi32 name 'EqualRgn';
  1373. {$ENDIF DYNAMIC_LINK}
  1374. {$IFDEF DYNAMIC_LINK}
  1375. var
  1376.   _Escape: Pointer;
  1377. function Escape;
  1378. begin
  1379.   GetProcedureAddress(_Escape, gdi32, 'Escape');
  1380.   asm
  1381.     mov esp, ebp
  1382.     pop ebp
  1383.     jmp [_Escape]
  1384.   end;
  1385. end;
  1386. {$ELSE}
  1387. function Escape; external gdi32 name 'Escape';
  1388. {$ENDIF DYNAMIC_LINK}
  1389. {$IFDEF DYNAMIC_LINK}
  1390. var
  1391.   _ExtEscape: Pointer;
  1392. function ExtEscape;
  1393. begin
  1394.   GetProcedureAddress(_ExtEscape, gdi32, 'ExtEscape');
  1395.   asm
  1396.     mov esp, ebp
  1397.     pop ebp
  1398.     jmp [_ExtEscape]
  1399.   end;
  1400. end;
  1401. {$ELSE}
  1402. function ExtEscape; external gdi32 name 'ExtEscape';
  1403. {$ENDIF DYNAMIC_LINK}
  1404. {$IFDEF DYNAMIC_LINK}
  1405. var
  1406.   _ExcludeClipRect: Pointer;
  1407. function ExcludeClipRect;
  1408. begin
  1409.   GetProcedureAddress(_ExcludeClipRect, gdi32, 'ExcludeClipRect');
  1410.   asm
  1411.     mov esp, ebp
  1412.     pop ebp
  1413.     jmp [_ExcludeClipRect]
  1414.   end;
  1415. end;
  1416. {$ELSE}
  1417. function ExcludeClipRect; external gdi32 name 'ExcludeClipRect';
  1418. {$ENDIF DYNAMIC_LINK}
  1419. {$IFDEF DYNAMIC_LINK}
  1420. var
  1421.   _ExtCreateRegion: Pointer;
  1422. function ExtCreateRegion;
  1423. begin
  1424.   GetProcedureAddress(_ExtCreateRegion, gdi32, 'ExtCreateRegion');
  1425.   asm
  1426.     mov esp, ebp
  1427.     pop ebp
  1428.     jmp [_ExtCreateRegion]
  1429.   end;
  1430. end;
  1431. {$ELSE}
  1432. function ExtCreateRegion; external gdi32 name 'ExtCreateRegion';
  1433. {$ENDIF DYNAMIC_LINK}
  1434. {$IFDEF DYNAMIC_LINK}
  1435. var
  1436.   _ExtFloodFill: Pointer;
  1437. function ExtFloodFill;
  1438. begin
  1439.   GetProcedureAddress(_ExtFloodFill, gdi32, 'ExtFloodFill');
  1440.   asm
  1441.     mov esp, ebp
  1442.     pop ebp
  1443.     jmp [_ExtFloodFill]
  1444.   end;
  1445. end;
  1446. {$ELSE}
  1447. function ExtFloodFill; external gdi32 name 'ExtFloodFill';
  1448. {$ENDIF DYNAMIC_LINK}
  1449. {$IFDEF DYNAMIC_LINK}
  1450. var
  1451.   _FillRgn: Pointer;
  1452. function FillRgn;
  1453. begin
  1454.   GetProcedureAddress(_FillRgn, gdi32, 'FillRgn');
  1455.   asm
  1456.     mov esp, ebp
  1457.     pop ebp
  1458.     jmp [_FillRgn]
  1459.   end;
  1460. end;
  1461. {$ELSE}
  1462. function FillRgn; external gdi32 name 'FillRgn';
  1463. {$ENDIF DYNAMIC_LINK}
  1464. {$IFDEF DYNAMIC_LINK}
  1465. var
  1466.   _FloodFill: Pointer;
  1467. function FloodFill;
  1468. begin
  1469.   GetProcedureAddress(_FloodFill, gdi32, 'FloodFill');
  1470.   asm
  1471.     mov esp, ebp
  1472.     pop ebp
  1473.     jmp [_FloodFill]
  1474.   end;
  1475. end;
  1476. {$ELSE}
  1477. function FloodFill; external gdi32 name 'FloodFill';
  1478. {$ENDIF DYNAMIC_LINK}
  1479. {$IFDEF DYNAMIC_LINK}
  1480. var
  1481.   _FrameRgn: Pointer;
  1482. function FrameRgn;
  1483. begin
  1484.   GetProcedureAddress(_FrameRgn, gdi32, 'FrameRgn');
  1485.   asm
  1486.     mov esp, ebp
  1487.     pop ebp
  1488.     jmp [_FrameRgn]
  1489.   end;
  1490. end;
  1491. {$ELSE}
  1492. function FrameRgn; external gdi32 name 'FrameRgn';
  1493. {$ENDIF DYNAMIC_LINK}
  1494. {$IFDEF DYNAMIC_LINK}
  1495. var
  1496.   _GetROP2: Pointer;
  1497. function GetROP2;
  1498. begin
  1499.   GetProcedureAddress(_GetROP2, gdi32, 'GetROP2');
  1500.   asm
  1501.     mov esp, ebp
  1502.     pop ebp
  1503.     jmp [_GetROP2]
  1504.   end;
  1505. end;
  1506. {$ELSE}
  1507. function GetROP2; external gdi32 name 'GetROP2';
  1508. {$ENDIF DYNAMIC_LINK}
  1509. {$IFDEF DYNAMIC_LINK}
  1510. var
  1511.   _GetAspectRatioFilterEx: Pointer;
  1512. function GetAspectRatioFilterEx;
  1513. begin
  1514.   GetProcedureAddress(_GetAspectRatioFilterEx, gdi32, 'GetAspectRatioFilterEx');
  1515.   asm
  1516.     mov esp, ebp
  1517.     pop ebp
  1518.     jmp [_GetAspectRatioFilterEx]
  1519.   end;
  1520. end;
  1521. {$ELSE}
  1522. function GetAspectRatioFilterEx; external gdi32 name 'GetAspectRatioFilterEx';
  1523. {$ENDIF DYNAMIC_LINK}
  1524. {$IFDEF DYNAMIC_LINK}
  1525. var
  1526.   _GetBkColor: Pointer;
  1527. function GetBkColor;
  1528. begin
  1529.   GetProcedureAddress(_GetBkColor, gdi32, 'GetBkColor');
  1530.   asm
  1531.     mov esp, ebp
  1532.     pop ebp
  1533.     jmp [_GetBkColor]
  1534.   end;
  1535. end;
  1536. {$ELSE}
  1537. function GetBkColor; external gdi32 name 'GetBkColor';
  1538. {$ENDIF DYNAMIC_LINK}
  1539. {$IFDEF DYNAMIC_LINK}
  1540. var
  1541.   _GetDCBrushColor: Pointer;
  1542. function GetDCBrushColor;
  1543. begin
  1544.   GetProcedureAddress(_GetDCBrushColor, gdi32, 'GetDCBrushColor');
  1545.   asm
  1546.     mov esp, ebp
  1547.     pop ebp
  1548.     jmp [_GetDCBrushColor]
  1549.   end;
  1550. end;
  1551. {$ELSE}
  1552. function GetDCBrushColor; external gdi32 name 'GetDCBrushColor';
  1553. {$ENDIF DYNAMIC_LINK}
  1554. {$IFDEF DYNAMIC_LINK}
  1555. var
  1556.   _GetDCPenColor: Pointer;
  1557. function GetDCPenColor;
  1558. begin
  1559.   GetProcedureAddress(_GetDCPenColor, gdi32, 'GetDCPenColor');
  1560.   asm
  1561.     mov esp, ebp
  1562.     pop ebp
  1563.     jmp [_GetDCPenColor]
  1564.   end;
  1565. end;
  1566. {$ELSE}
  1567. function GetDCPenColor; external gdi32 name 'GetDCPenColor';
  1568. {$ENDIF DYNAMIC_LINK}
  1569. {$IFDEF DYNAMIC_LINK}
  1570. var
  1571.   _GetBkMode: Pointer;
  1572. function GetBkMode;
  1573. begin
  1574.   GetProcedureAddress(_GetBkMode, gdi32, 'GetBkMode');
  1575.   asm
  1576.     mov esp, ebp
  1577.     pop ebp
  1578.     jmp [_GetBkMode]
  1579.   end;
  1580. end;
  1581. {$ELSE}
  1582. function GetBkMode; external gdi32 name 'GetBkMode';
  1583. {$ENDIF DYNAMIC_LINK}
  1584. {$IFDEF DYNAMIC_LINK}
  1585. var
  1586.   _GetBitmapBits: Pointer;
  1587. function GetBitmapBits;
  1588. begin
  1589.   GetProcedureAddress(_GetBitmapBits, gdi32, 'GetBitmapBits');
  1590.   asm
  1591.     mov esp, ebp
  1592.     pop ebp
  1593.     jmp [_GetBitmapBits]
  1594.   end;
  1595. end;
  1596. {$ELSE}
  1597. function GetBitmapBits; external gdi32 name 'GetBitmapBits';
  1598. {$ENDIF DYNAMIC_LINK}
  1599. {$IFDEF DYNAMIC_LINK}
  1600. var
  1601.   _GetBitmapDimensionEx: Pointer;
  1602. function GetBitmapDimensionEx;
  1603. begin
  1604.   GetProcedureAddress(_GetBitmapDimensionEx, gdi32, 'GetBitmapDimensionEx');
  1605.   asm
  1606.     mov esp, ebp
  1607.     pop ebp
  1608.     jmp [_GetBitmapDimensionEx]
  1609.   end;
  1610. end;
  1611. {$ELSE}
  1612. function GetBitmapDimensionEx; external gdi32 name 'GetBitmapDimensionEx';
  1613. {$ENDIF DYNAMIC_LINK}
  1614. {$IFDEF DYNAMIC_LINK}
  1615. var
  1616.   _GetBoundsRect: Pointer;
  1617. function GetBoundsRect;
  1618. begin
  1619.   GetProcedureAddress(_GetBoundsRect, gdi32, 'GetBoundsRect');
  1620.   asm
  1621.     mov esp, ebp
  1622.     pop ebp
  1623.     jmp [_GetBoundsRect]
  1624.   end;
  1625. end;
  1626. {$ELSE}
  1627. function GetBoundsRect; external gdi32 name 'GetBoundsRect';
  1628. {$ENDIF DYNAMIC_LINK}
  1629. {$IFDEF DYNAMIC_LINK}
  1630. var
  1631.   _GetBrushOrgEx: Pointer;
  1632. function GetBrushOrgEx;
  1633. begin
  1634.   GetProcedureAddress(_GetBrushOrgEx, gdi32, 'GetBrushOrgEx');
  1635.   asm
  1636.     mov esp, ebp
  1637.     pop ebp
  1638.     jmp [_GetBrushOrgEx]
  1639.   end;
  1640. end;
  1641. {$ELSE}
  1642. function GetBrushOrgEx; external gdi32 name 'GetBrushOrgEx';
  1643. {$ENDIF DYNAMIC_LINK}
  1644. {$IFDEF DYNAMIC_LINK}
  1645. var
  1646.   _GetCharWidthA: Pointer;
  1647. function GetCharWidthA;
  1648. begin
  1649.   GetProcedureAddress(_GetCharWidthA, gdi32, 'GetCharWidthA');
  1650.   asm
  1651.     mov esp, ebp
  1652.     pop ebp
  1653.     jmp [_GetCharWidthA]
  1654.   end;
  1655. end;
  1656. {$ELSE}
  1657. function GetCharWidthA; external gdi32 name 'GetCharWidthA';
  1658. {$ENDIF DYNAMIC_LINK}
  1659. {$IFDEF DYNAMIC_LINK}
  1660. var
  1661.   _GetCharWidthW: Pointer;
  1662. function GetCharWidthW;
  1663. begin
  1664.   GetProcedureAddress(_GetCharWidthW, gdi32, 'GetCharWidthW');
  1665.   asm
  1666.     mov esp, ebp
  1667.     pop ebp
  1668.     jmp [_GetCharWidthW]
  1669.   end;
  1670. end;
  1671. {$ELSE}
  1672. function GetCharWidthW; external gdi32 name 'GetCharWidthW';
  1673. {$ENDIF DYNAMIC_LINK}
  1674. {$IFDEF UNICODE}
  1675. {$IFDEF DYNAMIC_LINK}
  1676. var
  1677.   _GetCharWidth: Pointer;
  1678. function GetCharWidth;
  1679. begin
  1680.   GetProcedureAddress(_GetCharWidth, gdi32, 'GetCharWidthW');
  1681.   asm
  1682.     mov esp, ebp
  1683.     pop ebp
  1684.     jmp [_GetCharWidth]
  1685.   end;
  1686. end;
  1687. {$ELSE}
  1688. function GetCharWidth; external gdi32 name 'GetCharWidthW';
  1689. {$ENDIF DYNAMIC_LINK}
  1690. {$ELSE}
  1691. {$IFDEF DYNAMIC_LINK}
  1692. var
  1693.   _GetCharWidth: Pointer;
  1694. function GetCharWidth;
  1695. begin
  1696.   GetProcedureAddress(_GetCharWidth, gdi32, 'GetCharWidthA');
  1697.   asm
  1698.     mov esp, ebp
  1699.     pop ebp
  1700.     jmp [_GetCharWidth]
  1701.   end;
  1702. end;
  1703. {$ELSE}
  1704. function GetCharWidth; external gdi32 name 'GetCharWidthA';
  1705. {$ENDIF DYNAMIC_LINK}
  1706. {$ENDIF}
  1707. {$IFDEF DYNAMIC_LINK}
  1708. var
  1709.   _GetCharWidth32A: Pointer;
  1710. function GetCharWidth32A;
  1711. begin
  1712.   GetProcedureAddress(_GetCharWidth32A, gdi32, 'GetCharWidth32A');
  1713.   asm
  1714.     mov esp, ebp
  1715.     pop ebp
  1716.     jmp [_GetCharWidth32A]
  1717.   end;
  1718. end;
  1719. {$ELSE}
  1720. function GetCharWidth32A; external gdi32 name 'GetCharWidth32A';
  1721. {$ENDIF DYNAMIC_LINK}
  1722. {$IFDEF DYNAMIC_LINK}
  1723. var
  1724.   _GetCharWidth32W: Pointer;
  1725. function GetCharWidth32W;
  1726. begin
  1727.   GetProcedureAddress(_GetCharWidth32W, gdi32, 'GetCharWidth32W');
  1728.   asm
  1729.     mov esp, ebp
  1730.     pop ebp
  1731.     jmp [_GetCharWidth32W]
  1732.   end;
  1733. end;
  1734. {$ELSE}
  1735. function GetCharWidth32W; external gdi32 name 'GetCharWidth32W';
  1736. {$ENDIF DYNAMIC_LINK}
  1737. {$IFDEF UNICODE}
  1738. {$IFDEF DYNAMIC_LINK}
  1739. var
  1740.   _GetCharWidth32: Pointer;
  1741. function GetCharWidth32;
  1742. begin
  1743.   GetProcedureAddress(_GetCharWidth32, gdi32, 'GetCharWidth32W');
  1744.   asm
  1745.     mov esp, ebp
  1746.     pop ebp
  1747.     jmp [_GetCharWidth32]
  1748.   end;
  1749. end;
  1750. {$ELSE}
  1751. function GetCharWidth32; external gdi32 name 'GetCharWidth32W';
  1752. {$ENDIF DYNAMIC_LINK}
  1753. {$ELSE}
  1754. {$IFDEF DYNAMIC_LINK}
  1755. var
  1756.   _GetCharWidth32: Pointer;
  1757. function GetCharWidth32;
  1758. begin
  1759.   GetProcedureAddress(_GetCharWidth32, gdi32, 'GetCharWidth32A');
  1760.   asm
  1761.     mov esp, ebp
  1762.     pop ebp
  1763.     jmp [_GetCharWidth32]
  1764.   end;
  1765. end;
  1766. {$ELSE}
  1767. function GetCharWidth32; external gdi32 name 'GetCharWidth32A';
  1768. {$ENDIF DYNAMIC_LINK}
  1769. {$ENDIF}
  1770. {$IFDEF DYNAMIC_LINK}
  1771. var
  1772.   _GetCharWidthFloatA: Pointer;
  1773. function GetCharWidthFloatA;
  1774. begin
  1775.   GetProcedureAddress(_GetCharWidthFloatA, gdi32, 'GetCharWidthFloatA');
  1776.   asm
  1777.     mov esp, ebp
  1778.     pop ebp
  1779.     jmp [_GetCharWidthFloatA]
  1780.   end;
  1781. end;
  1782. {$ELSE}
  1783. function GetCharWidthFloatA; external gdi32 name 'GetCharWidthFloatA';
  1784. {$ENDIF DYNAMIC_LINK}
  1785. {$IFDEF DYNAMIC_LINK}
  1786. var
  1787.   _GetCharWidthFloatW: Pointer;
  1788. function GetCharWidthFloatW;
  1789. begin
  1790.   GetProcedureAddress(_GetCharWidthFloatW, gdi32, 'GetCharWidthFloatW');
  1791.   asm
  1792.     mov esp, ebp
  1793.     pop ebp
  1794.     jmp [_GetCharWidthFloatW]
  1795.   end;
  1796. end;
  1797. {$ELSE}
  1798. function GetCharWidthFloatW; external gdi32 name 'GetCharWidthFloatW';
  1799. {$ENDIF DYNAMIC_LINK}
  1800. {$IFDEF UNICODE}
  1801. {$IFDEF DYNAMIC_LINK}
  1802. var
  1803.   _GetCharWidthFloat: Pointer;
  1804. function GetCharWidthFloat;
  1805. begin
  1806.   GetProcedureAddress(_GetCharWidthFloat, gdi32, 'GetCharWidthFloatW');
  1807.   asm
  1808.     mov esp, ebp
  1809.     pop ebp
  1810.     jmp [_GetCharWidthFloat]
  1811.   end;
  1812. end;
  1813. {$ELSE}
  1814. function GetCharWidthFloat; external gdi32 name 'GetCharWidthFloatW';
  1815. {$ENDIF DYNAMIC_LINK}
  1816. {$ELSE}
  1817. {$IFDEF DYNAMIC_LINK}
  1818. var
  1819.   _GetCharWidthFloat: Pointer;
  1820. function GetCharWidthFloat;
  1821. begin
  1822.   GetProcedureAddress(_GetCharWidthFloat, gdi32, 'GetCharWidthFloatA');
  1823.   asm
  1824.     mov esp, ebp
  1825.     pop ebp
  1826.     jmp [_GetCharWidthFloat]
  1827.   end;
  1828. end;
  1829. {$ELSE}
  1830. function GetCharWidthFloat; external gdi32 name 'GetCharWidthFloatA';
  1831. {$ENDIF DYNAMIC_LINK}
  1832. {$ENDIF}
  1833. {$IFDEF DYNAMIC_LINK}
  1834. var
  1835.   _GetCharABCWidthsA: Pointer;
  1836. function GetCharABCWidthsA;
  1837. begin
  1838.   GetProcedureAddress(_GetCharABCWidthsA, gdi32, 'GetCharABCWidthsA');
  1839.   asm
  1840.     mov esp, ebp
  1841.     pop ebp
  1842.     jmp [_GetCharABCWidthsA]
  1843.   end;
  1844. end;
  1845. {$ELSE}
  1846. function GetCharABCWidthsA; external gdi32 name 'GetCharABCWidthsA';
  1847. {$ENDIF DYNAMIC_LINK}
  1848. {$IFDEF DYNAMIC_LINK}
  1849. var
  1850.   _GetCharABCWidthsW: Pointer;
  1851. function GetCharABCWidthsW;
  1852. begin
  1853.   GetProcedureAddress(_GetCharABCWidthsW, gdi32, 'GetCharABCWidthsW');
  1854.   asm
  1855.     mov esp, ebp
  1856.     pop ebp
  1857.     jmp [_GetCharABCWidthsW]
  1858.   end;
  1859. end;
  1860. {$ELSE}
  1861. function GetCharABCWidthsW; external gdi32 name 'GetCharABCWidthsW';
  1862. {$ENDIF DYNAMIC_LINK}
  1863. {$IFDEF UNICODE}
  1864. {$IFDEF DYNAMIC_LINK}
  1865. var
  1866.   _GetCharABCWidths: Pointer;
  1867. function GetCharABCWidths;
  1868. begin
  1869.   GetProcedureAddress(_GetCharABCWidths, gdi32, 'GetCharABCWidthsW');
  1870.   asm
  1871.     mov esp, ebp
  1872.     pop ebp
  1873.     jmp [_GetCharABCWidths]
  1874.   end;
  1875. end;
  1876. {$ELSE}
  1877. function GetCharABCWidths; external gdi32 name 'GetCharABCWidthsW';
  1878. {$ENDIF DYNAMIC_LINK}
  1879. {$ELSE}
  1880. {$IFDEF DYNAMIC_LINK}
  1881. var
  1882.   _GetCharABCWidths: Pointer;
  1883. function GetCharABCWidths;
  1884. begin
  1885.   GetProcedureAddress(_GetCharABCWidths, gdi32, 'GetCharABCWidthsA');
  1886.   asm
  1887.     mov esp, ebp
  1888.     pop ebp
  1889.     jmp [_GetCharABCWidths]
  1890.   end;
  1891. end;
  1892. {$ELSE}
  1893. function GetCharABCWidths; external gdi32 name 'GetCharABCWidthsA';
  1894. {$ENDIF DYNAMIC_LINK}
  1895. {$ENDIF}
  1896. {$IFDEF DYNAMIC_LINK}
  1897. var
  1898.   _GetCharABCWidthsFloatA: Pointer;
  1899. function GetCharABCWidthsFloatA;
  1900. begin
  1901.   GetProcedureAddress(_GetCharABCWidthsFloatA, gdi32, 'GetCharABCWidthsFloatA');
  1902.   asm
  1903.     mov esp, ebp
  1904.     pop ebp
  1905.     jmp [_GetCharABCWidthsFloatA]
  1906.   end;
  1907. end;
  1908. {$ELSE}
  1909. function GetCharABCWidthsFloatA; external gdi32 name 'GetCharABCWidthsFloatA';
  1910. {$ENDIF DYNAMIC_LINK}
  1911. {$IFDEF DYNAMIC_LINK}
  1912. var
  1913.   _GetCharABCWidthsFloatW: Pointer;
  1914. function GetCharABCWidthsFloatW;
  1915. begin
  1916.   GetProcedureAddress(_GetCharABCWidthsFloatW, gdi32, 'GetCharABCWidthsFloatW');
  1917.   asm
  1918.     mov esp, ebp
  1919.     pop ebp
  1920.     jmp [_GetCharABCWidthsFloatW]
  1921.   end;
  1922. end;
  1923. {$ELSE}
  1924. function GetCharABCWidthsFloatW; external gdi32 name 'GetCharABCWidthsFloatW';
  1925. {$ENDIF DYNAMIC_LINK}
  1926. {$IFDEF UNICODE}
  1927. {$IFDEF DYNAMIC_LINK}
  1928. var
  1929.   _GetCharABCWidthsFloat: Pointer;
  1930. function GetCharABCWidthsFloat;
  1931. begin
  1932.   GetProcedureAddress(_GetCharABCWidthsFloat, gdi32, 'GetCharABCWidthsFloatW');
  1933.   asm
  1934.     mov esp, ebp
  1935.     pop ebp
  1936.     jmp [_GetCharABCWidthsFloat]
  1937.   end;
  1938. end;
  1939. {$ELSE}
  1940. function GetCharABCWidthsFloat; external gdi32 name 'GetCharABCWidthsFloatW';
  1941. {$ENDIF DYNAMIC_LINK}
  1942. {$ELSE}
  1943. {$IFDEF DYNAMIC_LINK}
  1944. var
  1945.   _GetCharABCWidthsFloat: Pointer;
  1946. function GetCharABCWidthsFloat;
  1947. begin
  1948.   GetProcedureAddress(_GetCharABCWidthsFloat, gdi32, 'GetCharABCWidthsFloatA');
  1949.   asm
  1950.     mov esp, ebp
  1951.     pop ebp
  1952.     jmp [_GetCharABCWidthsFloat]
  1953.   end;
  1954. end;
  1955. {$ELSE}
  1956. function GetCharABCWidthsFloat; external gdi32 name 'GetCharABCWidthsFloatA';
  1957. {$ENDIF DYNAMIC_LINK}
  1958. {$ENDIF}
  1959. {$IFDEF DYNAMIC_LINK}
  1960. var
  1961.   _GetClipBox: Pointer;
  1962. function GetClipBox;
  1963. begin
  1964.   GetProcedureAddress(_GetClipBox, gdi32, 'GetClipBox');
  1965.   asm
  1966.     mov esp, ebp
  1967.     pop ebp
  1968.     jmp [_GetClipBox]
  1969.   end;
  1970. end;
  1971. {$ELSE}
  1972. function GetClipBox; external gdi32 name 'GetClipBox';
  1973. {$ENDIF DYNAMIC_LINK}
  1974. {$IFDEF DYNAMIC_LINK}
  1975. var
  1976.   _GetClipRgn: Pointer;
  1977. function GetClipRgn;
  1978. begin
  1979.   GetProcedureAddress(_GetClipRgn, gdi32, 'GetClipRgn');
  1980.   asm
  1981.     mov esp, ebp
  1982.     pop ebp
  1983.     jmp [_GetClipRgn]
  1984.   end;
  1985. end;
  1986. {$ELSE}
  1987. function GetClipRgn; external gdi32 name 'GetClipRgn';
  1988. {$ENDIF DYNAMIC_LINK}
  1989. {$IFDEF DYNAMIC_LINK}
  1990. var
  1991.   _GetMetaRgn: Pointer;
  1992. function GetMetaRgn;
  1993. begin
  1994.   GetProcedureAddress(_GetMetaRgn, gdi32, 'GetMetaRgn');
  1995.   asm
  1996.     mov esp, ebp
  1997.     pop ebp
  1998.     jmp [_GetMetaRgn]
  1999.   end;
  2000. end;
  2001. {$ELSE}
  2002. function GetMetaRgn; external gdi32 name 'GetMetaRgn';
  2003. {$ENDIF DYNAMIC_LINK}
  2004. {$IFDEF DYNAMIC_LINK}
  2005. var
  2006.   _GetCurrentObject: Pointer;
  2007. function GetCurrentObject;
  2008. begin
  2009.   GetProcedureAddress(_GetCurrentObject, gdi32, 'GetCurrentObject');
  2010.   asm
  2011.     mov esp, ebp
  2012.     pop ebp
  2013.     jmp [_GetCurrentObject]
  2014.   end;
  2015. end;
  2016. {$ELSE}
  2017. function GetCurrentObject; external gdi32 name 'GetCurrentObject';
  2018. {$ENDIF DYNAMIC_LINK}
  2019. {$IFDEF DYNAMIC_LINK}
  2020. var
  2021.   _GetCurrentPositionEx: Pointer;
  2022. function GetCurrentPositionEx;
  2023. begin
  2024.   GetProcedureAddress(_GetCurrentPositionEx, gdi32, 'GetCurrentPositionEx');
  2025.   asm
  2026.     mov esp, ebp
  2027.     pop ebp
  2028.     jmp [_GetCurrentPositionEx]
  2029.   end;
  2030. end;
  2031. {$ELSE}
  2032. function GetCurrentPositionEx; external gdi32 name 'GetCurrentPositionEx';
  2033. {$ENDIF DYNAMIC_LINK}
  2034. {$IFDEF DYNAMIC_LINK}
  2035. var
  2036.   _GetDeviceCaps: Pointer;
  2037. function GetDeviceCaps;
  2038. begin
  2039.   GetProcedureAddress(_GetDeviceCaps, gdi32, 'GetDeviceCaps');
  2040.   asm
  2041.     mov esp, ebp
  2042.     pop ebp
  2043.     jmp [_GetDeviceCaps]
  2044.   end;
  2045. end;
  2046. {$ELSE}
  2047. function GetDeviceCaps; external gdi32 name 'GetDeviceCaps';
  2048. {$ENDIF DYNAMIC_LINK}
  2049. {$IFDEF DYNAMIC_LINK}
  2050. var
  2051.   _GetDIBits: Pointer;
  2052. function GetDIBits;
  2053. begin
  2054.   GetProcedureAddress(_GetDIBits, gdi32, 'GetDIBits');
  2055.   asm
  2056.     mov esp, ebp
  2057.     pop ebp
  2058.     jmp [_GetDIBits]
  2059.   end;
  2060. end;
  2061. {$ELSE}
  2062. function GetDIBits; external gdi32 name 'GetDIBits';
  2063. {$ENDIF DYNAMIC_LINK}
  2064. {$IFDEF DYNAMIC_LINK}
  2065. var
  2066.   _GetFontData: Pointer;
  2067. function GetFontData;
  2068. begin
  2069.   GetProcedureAddress(_GetFontData, gdi32, 'GetFontData');
  2070.   asm
  2071.     mov esp, ebp
  2072.     pop ebp
  2073.     jmp [_GetFontData]
  2074.   end;
  2075. end;
  2076. {$ELSE}
  2077. function GetFontData; external gdi32 name 'GetFontData';
  2078. {$ENDIF DYNAMIC_LINK}
  2079. {$IFDEF DYNAMIC_LINK}
  2080. var
  2081.   _GetGlyphOutlineA: Pointer;
  2082. function GetGlyphOutlineA;
  2083. begin
  2084.   GetProcedureAddress(_GetGlyphOutlineA, gdi32, 'GetGlyphOutlineA');
  2085.   asm
  2086.     mov esp, ebp
  2087.     pop ebp
  2088.     jmp [_GetGlyphOutlineA]
  2089.   end;
  2090. end;
  2091. {$ELSE}
  2092. function GetGlyphOutlineA; external gdi32 name 'GetGlyphOutlineA';
  2093. {$ENDIF DYNAMIC_LINK}
  2094. {$IFDEF DYNAMIC_LINK}
  2095. var
  2096.   _GetGlyphOutlineW: Pointer;
  2097. function GetGlyphOutlineW;
  2098. begin
  2099.   GetProcedureAddress(_GetGlyphOutlineW, gdi32, 'GetGlyphOutlineW');
  2100.   asm
  2101.     mov esp, ebp
  2102.     pop ebp
  2103.     jmp [_GetGlyphOutlineW]
  2104.   end;
  2105. end;
  2106. {$ELSE}
  2107. function GetGlyphOutlineW; external gdi32 name 'GetGlyphOutlineW';
  2108. {$ENDIF DYNAMIC_LINK}
  2109. {$IFDEF UNICODE}
  2110. {$IFDEF DYNAMIC_LINK}
  2111. var
  2112.   _GetGlyphOutline: Pointer;
  2113. function GetGlyphOutline;
  2114. begin
  2115.   GetProcedureAddress(_GetGlyphOutline, gdi32, 'GetGlyphOutlineW');
  2116.   asm
  2117.     mov esp, ebp
  2118.     pop ebp
  2119.     jmp [_GetGlyphOutline]
  2120.   end;
  2121. end;
  2122. {$ELSE}
  2123. function GetGlyphOutline; external gdi32 name 'GetGlyphOutlineW';
  2124. {$ENDIF DYNAMIC_LINK}
  2125. {$ELSE}
  2126. {$IFDEF DYNAMIC_LINK}
  2127. var
  2128.   _GetGlyphOutline: Pointer;
  2129. function GetGlyphOutline;
  2130. begin
  2131.   GetProcedureAddress(_GetGlyphOutline, gdi32, 'GetGlyphOutlineA');
  2132.   asm
  2133.     mov esp, ebp
  2134.     pop ebp
  2135.     jmp [_GetGlyphOutline]
  2136.   end;
  2137. end;
  2138. {$ELSE}
  2139. function GetGlyphOutline; external gdi32 name 'GetGlyphOutlineA';
  2140. {$ENDIF DYNAMIC_LINK}
  2141. {$ENDIF}
  2142. {$IFDEF DYNAMIC_LINK}
  2143. var
  2144.   _GetGraphicsMode: Pointer;
  2145. function GetGraphicsMode;
  2146. begin
  2147.   GetProcedureAddress(_GetGraphicsMode, gdi32, 'GetGraphicsMode');
  2148.   asm
  2149.     mov esp, ebp
  2150.     pop ebp
  2151.     jmp [_GetGraphicsMode]
  2152.   end;
  2153. end;
  2154. {$ELSE}
  2155. function GetGraphicsMode; external gdi32 name 'GetGraphicsMode';
  2156. {$ENDIF DYNAMIC_LINK}
  2157. {$IFDEF DYNAMIC_LINK}
  2158. var
  2159.   _GetMapMode: Pointer;
  2160. function GetMapMode;
  2161. begin
  2162.   GetProcedureAddress(_GetMapMode, gdi32, 'GetMapMode');
  2163.   asm
  2164.     mov esp, ebp
  2165.     pop ebp
  2166.     jmp [_GetMapMode]
  2167.   end;
  2168. end;
  2169. {$ELSE}
  2170. function GetMapMode; external gdi32 name 'GetMapMode';
  2171. {$ENDIF DYNAMIC_LINK}
  2172. {$IFDEF DYNAMIC_LINK}
  2173. var
  2174.   _GetMetaFileBitsEx: Pointer;
  2175. function GetMetaFileBitsEx;
  2176. begin
  2177.   GetProcedureAddress(_GetMetaFileBitsEx, gdi32, 'GetMetaFileBitsEx');
  2178.   asm
  2179.     mov esp, ebp
  2180.     pop ebp
  2181.     jmp [_GetMetaFileBitsEx]
  2182.   end;
  2183. end;
  2184. {$ELSE}
  2185. function GetMetaFileBitsEx; external gdi32 name 'GetMetaFileBitsEx';
  2186. {$ENDIF DYNAMIC_LINK}
  2187. {$IFDEF DYNAMIC_LINK}
  2188. var
  2189.   _GetMetaFileA: Pointer;
  2190. function GetMetaFileA;
  2191. begin
  2192.   GetProcedureAddress(_GetMetaFileA, gdi32, 'GetMetaFileA');
  2193.   asm
  2194.     mov esp, ebp
  2195.     pop ebp
  2196.     jmp [_GetMetaFileA]
  2197.   end;
  2198. end;
  2199. {$ELSE}
  2200. function GetMetaFileA; external gdi32 name 'GetMetaFileA';
  2201. {$ENDIF DYNAMIC_LINK}
  2202. {$IFDEF DYNAMIC_LINK}
  2203. var
  2204.   _GetMetaFileW: Pointer;
  2205. function GetMetaFileW;
  2206. begin
  2207.   GetProcedureAddress(_GetMetaFileW, gdi32, 'GetMetaFileW');
  2208.   asm
  2209.     mov esp, ebp
  2210.     pop ebp
  2211.     jmp [_GetMetaFileW]
  2212.   end;
  2213. end;
  2214. {$ELSE}
  2215. function GetMetaFileW; external gdi32 name 'GetMetaFileW';
  2216. {$ENDIF DYNAMIC_LINK}
  2217. {$IFDEF UNICODE}
  2218. {$IFDEF DYNAMIC_LINK}
  2219. var
  2220.   _GetMetaFile: Pointer;
  2221. function GetMetaFile;
  2222. begin
  2223.   GetProcedureAddress(_GetMetaFile, gdi32, 'GetMetaFileW');
  2224.   asm
  2225.     mov esp, ebp
  2226.     pop ebp
  2227.     jmp [_GetMetaFile]
  2228.   end;
  2229. end;
  2230. {$ELSE}
  2231. function GetMetaFile; external gdi32 name 'GetMetaFileW';
  2232. {$ENDIF DYNAMIC_LINK}
  2233. {$ELSE}
  2234. {$IFDEF DYNAMIC_LINK}
  2235. var
  2236.   _GetMetaFile: Pointer;
  2237. function GetMetaFile;
  2238. begin
  2239.   GetProcedureAddress(_GetMetaFile, gdi32, 'GetMetaFileA');
  2240.   asm
  2241.     mov esp, ebp
  2242.     pop ebp
  2243.     jmp [_GetMetaFile]
  2244.   end;
  2245. end;
  2246. {$ELSE}
  2247. function GetMetaFile; external gdi32 name 'GetMetaFileA';
  2248. {$ENDIF DYNAMIC_LINK}
  2249. {$ENDIF}
  2250. {$IFDEF DYNAMIC_LINK}
  2251. var
  2252.   _GetNearestColor: Pointer;
  2253. function GetNearestColor;
  2254. begin
  2255.   GetProcedureAddress(_GetNearestColor, gdi32, 'GetNearestColor');
  2256.   asm
  2257.     mov esp, ebp
  2258.     pop ebp
  2259.     jmp [_GetNearestColor]
  2260.   end;
  2261. end;
  2262. {$ELSE}
  2263. function GetNearestColor; external gdi32 name 'GetNearestColor';
  2264. {$ENDIF DYNAMIC_LINK}
  2265. {$IFDEF DYNAMIC_LINK}
  2266. var
  2267.   _GetNearestPaletteIndex: Pointer;
  2268. function GetNearestPaletteIndex;
  2269. begin
  2270.   GetProcedureAddress(_GetNearestPaletteIndex, gdi32, 'GetNearestPaletteIndex');
  2271.   asm
  2272.     mov esp, ebp
  2273.     pop ebp
  2274.     jmp [_GetNearestPaletteIndex]
  2275.   end;
  2276. end;
  2277. {$ELSE}
  2278. function GetNearestPaletteIndex; external gdi32 name 'GetNearestPaletteIndex';
  2279. {$ENDIF DYNAMIC_LINK}
  2280. {$IFDEF DYNAMIC_LINK}
  2281. var
  2282.   _GetObjectType: Pointer;
  2283. function GetObjectType;
  2284. begin
  2285.   GetProcedureAddress(_GetObjectType, gdi32, 'GetObjectType');
  2286.   asm
  2287.     mov esp, ebp
  2288.     pop ebp
  2289.     jmp [_GetObjectType]
  2290.   end;
  2291. end;
  2292. {$ELSE}
  2293. function GetObjectType; external gdi32 name 'GetObjectType';
  2294. {$ENDIF DYNAMIC_LINK}
  2295. {$IFDEF DYNAMIC_LINK}
  2296. var
  2297.   _GetOutlineTextMetricsA: Pointer;
  2298. function GetOutlineTextMetricsA;
  2299. begin
  2300.   GetProcedureAddress(_GetOutlineTextMetricsA, gdi32, 'GetOutlineTextMetricsA');
  2301.   asm
  2302.     mov esp, ebp
  2303.     pop ebp
  2304.     jmp [_GetOutlineTextMetricsA]
  2305.   end;
  2306. end;
  2307. {$ELSE}
  2308. function GetOutlineTextMetricsA; external gdi32 name 'GetOutlineTextMetricsA';
  2309. {$ENDIF DYNAMIC_LINK}
  2310. {$IFDEF DYNAMIC_LINK}
  2311. var
  2312.   _GetOutlineTextMetricsW: Pointer;
  2313. function GetOutlineTextMetricsW;
  2314. begin
  2315.   GetProcedureAddress(_GetOutlineTextMetricsW, gdi32, 'GetOutlineTextMetricsW');
  2316.   asm
  2317.     mov esp, ebp
  2318.     pop ebp
  2319.     jmp [_GetOutlineTextMetricsW]
  2320.   end;
  2321. end;
  2322. {$ELSE}
  2323. function GetOutlineTextMetricsW; external gdi32 name 'GetOutlineTextMetricsW';
  2324. {$ENDIF DYNAMIC_LINK}
  2325. {$IFDEF UNICODE}
  2326. {$IFDEF DYNAMIC_LINK}
  2327. var
  2328.   _GetOutlineTextMetrics: Pointer;
  2329. function GetOutlineTextMetrics;
  2330. begin
  2331.   GetProcedureAddress(_GetOutlineTextMetrics, gdi32, 'GetOutlineTextMetricsW');
  2332.   asm
  2333.     mov esp, ebp
  2334.     pop ebp
  2335.     jmp [_GetOutlineTextMetrics]
  2336.   end;
  2337. end;
  2338. {$ELSE}
  2339. function GetOutlineTextMetrics; external gdi32 name 'GetOutlineTextMetricsW';
  2340. {$ENDIF DYNAMIC_LINK}
  2341. {$ELSE}
  2342. {$IFDEF DYNAMIC_LINK}
  2343. var
  2344.   _GetOutlineTextMetrics: Pointer;
  2345. function GetOutlineTextMetrics;
  2346. begin
  2347.   GetProcedureAddress(_GetOutlineTextMetrics, gdi32, 'GetOutlineTextMetricsA');
  2348.   asm
  2349.     mov esp, ebp
  2350.     pop ebp
  2351.     jmp [_GetOutlineTextMetrics]
  2352.   end;
  2353. end;
  2354. {$ELSE}
  2355. function GetOutlineTextMetrics; external gdi32 name 'GetOutlineTextMetricsA';
  2356. {$ENDIF DYNAMIC_LINK}
  2357. {$ENDIF}
  2358. {$IFDEF DYNAMIC_LINK}
  2359. var
  2360.   _GetPaletteEntries: Pointer;
  2361. function GetPaletteEntries;
  2362. begin
  2363.   GetProcedureAddress(_GetPaletteEntries, gdi32, 'GetPaletteEntries');
  2364.   asm
  2365.     mov esp, ebp
  2366.     pop ebp
  2367.     jmp [_GetPaletteEntries]
  2368.   end;
  2369. end;
  2370. {$ELSE}
  2371. function GetPaletteEntries; external gdi32 name 'GetPaletteEntries';
  2372. {$ENDIF DYNAMIC_LINK}
  2373. {$IFDEF DYNAMIC_LINK}
  2374. var
  2375.   _GetPixel: Pointer;
  2376. function GetPixel;
  2377. begin
  2378.   GetProcedureAddress(_GetPixel, gdi32, 'GetPixel');
  2379.   asm
  2380.     mov esp, ebp
  2381.     pop ebp
  2382.     jmp [_GetPixel]
  2383.   end;
  2384. end;
  2385. {$ELSE}
  2386. function GetPixel; external gdi32 name 'GetPixel';
  2387. {$ENDIF DYNAMIC_LINK}
  2388. {$IFDEF DYNAMIC_LINK}
  2389. var
  2390.   _GetPixelFormat: Pointer;
  2391. function GetPixelFormat;
  2392. begin
  2393.   GetProcedureAddress(_GetPixelFormat, gdi32, 'GetPixelFormat');
  2394.   asm
  2395.     mov esp, ebp
  2396.     pop ebp
  2397.     jmp [_GetPixelFormat]
  2398.   end;
  2399. end;
  2400. {$ELSE}
  2401. function GetPixelFormat; external gdi32 name 'GetPixelFormat';
  2402. {$ENDIF DYNAMIC_LINK}
  2403. {$IFDEF DYNAMIC_LINK}
  2404. var
  2405.   _GetPolyFillMode: Pointer;
  2406. function GetPolyFillMode;
  2407. begin
  2408.   GetProcedureAddress(_GetPolyFillMode, gdi32, 'GetPolyFillMode');
  2409.   asm
  2410.     mov esp, ebp
  2411.     pop ebp
  2412.     jmp [_GetPolyFillMode]
  2413.   end;
  2414. end;
  2415. {$ELSE}
  2416. function GetPolyFillMode; external gdi32 name 'GetPolyFillMode';
  2417. {$ENDIF DYNAMIC_LINK}
  2418. {$IFDEF DYNAMIC_LINK}
  2419. var
  2420.   _GetRasterizerCaps: Pointer;
  2421. function GetRasterizerCaps;
  2422. begin
  2423.   GetProcedureAddress(_GetRasterizerCaps, gdi32, 'GetRasterizerCaps');
  2424.   asm
  2425.     mov esp, ebp
  2426.     pop ebp
  2427.     jmp [_GetRasterizerCaps]
  2428.   end;
  2429. end;
  2430. {$ELSE}
  2431. function GetRasterizerCaps; external gdi32 name 'GetRasterizerCaps';
  2432. {$ENDIF DYNAMIC_LINK}
  2433. {$IFDEF DYNAMIC_LINK}
  2434. var
  2435.   _GetRandomRgn: Pointer;
  2436. function GetRandomRgn;
  2437. begin
  2438.   GetProcedureAddress(_GetRandomRgn, gdi32, 'GetRandomRgn');
  2439.   asm
  2440.     mov esp, ebp
  2441.     pop ebp
  2442.     jmp [_GetRandomRgn]
  2443.   end;
  2444. end;
  2445. {$ELSE}
  2446. function GetRandomRgn; external gdi32 name 'GetRandomRgn';
  2447. {$ENDIF DYNAMIC_LINK}
  2448. {$IFDEF DYNAMIC_LINK}
  2449. var
  2450.   _GetRegionData: Pointer;
  2451. function GetRegionData;
  2452. begin
  2453.   GetProcedureAddress(_GetRegionData, gdi32, 'GetRegionData');
  2454.   asm
  2455.     mov esp, ebp
  2456.     pop ebp
  2457.     jmp [_GetRegionData]
  2458.   end;
  2459. end;
  2460. {$ELSE}
  2461. function GetRegionData; external gdi32 name 'GetRegionData';
  2462. {$ENDIF DYNAMIC_LINK}
  2463. {$IFDEF DYNAMIC_LINK}
  2464. var
  2465.   _GetRgnBox: Pointer;
  2466. function GetRgnBox;
  2467. begin
  2468.   GetProcedureAddress(_GetRgnBox, gdi32, 'GetRgnBox');
  2469.   asm
  2470.     mov esp, ebp
  2471.     pop ebp
  2472.     jmp [_GetRgnBox]
  2473.   end;
  2474. end;
  2475. {$ELSE}
  2476. function GetRgnBox; external gdi32 name 'GetRgnBox';
  2477. {$ENDIF DYNAMIC_LINK}
  2478. {$IFDEF DYNAMIC_LINK}
  2479. var
  2480.   _GetStockObject: Pointer;
  2481. function GetStockObject;
  2482. begin
  2483.   GetProcedureAddress(_GetStockObject, gdi32, 'GetStockObject');
  2484.   asm
  2485.     mov esp, ebp
  2486.     pop ebp
  2487.     jmp [_GetStockObject]
  2488.   end;
  2489. end;
  2490. {$ELSE}
  2491. function GetStockObject; external gdi32 name 'GetStockObject';
  2492. {$ENDIF DYNAMIC_LINK}
  2493. {$IFDEF DYNAMIC_LINK}
  2494. var
  2495.   _GetStretchBltMode: Pointer;
  2496. function GetStretchBltMode;
  2497. begin
  2498.   GetProcedureAddress(_GetStretchBltMode, gdi32, 'GetStretchBltMode');
  2499.   asm
  2500.     mov esp, ebp
  2501.     pop ebp
  2502.     jmp [_GetStretchBltMode]
  2503.   end;
  2504. end;
  2505. {$ELSE}
  2506. function GetStretchBltMode; external gdi32 name 'GetStretchBltMode';
  2507. {$ENDIF DYNAMIC_LINK}
  2508. {$IFDEF DYNAMIC_LINK}
  2509. var
  2510.   _GetSystemPaletteEntries: Pointer;
  2511. function GetSystemPaletteEntries;
  2512. begin
  2513.   GetProcedureAddress(_GetSystemPaletteEntries, gdi32, 'GetSystemPaletteEntries');
  2514.   asm
  2515.     mov esp, ebp
  2516.     pop ebp
  2517.     jmp [_GetSystemPaletteEntries]
  2518.   end;
  2519. end;
  2520. {$ELSE}
  2521. function GetSystemPaletteEntries; external gdi32 name 'GetSystemPaletteEntries';
  2522. {$ENDIF DYNAMIC_LINK}
  2523. {$IFDEF DYNAMIC_LINK}
  2524. var
  2525.   _GetSystemPaletteUse: Pointer;
  2526. function GetSystemPaletteUse;
  2527. begin
  2528.   GetProcedureAddress(_GetSystemPaletteUse, gdi32, 'GetSystemPaletteUse');
  2529.   asm
  2530.     mov esp, ebp
  2531.     pop ebp
  2532.     jmp [_GetSystemPaletteUse]
  2533.   end;
  2534. end;
  2535. {$ELSE}
  2536. function GetSystemPaletteUse; external gdi32 name 'GetSystemPaletteUse';
  2537. {$ENDIF DYNAMIC_LINK}
  2538. {$IFDEF DYNAMIC_LINK}
  2539. var
  2540.   _GetTextCharacterExtra: Pointer;
  2541. function GetTextCharacterExtra;
  2542. begin
  2543.   GetProcedureAddress(_GetTextCharacterExtra, gdi32, 'GetTextCharacterExtra');
  2544.   asm
  2545.     mov esp, ebp
  2546.     pop ebp
  2547.     jmp [_GetTextCharacterExtra]
  2548.   end;
  2549. end;
  2550. {$ELSE}
  2551. function GetTextCharacterExtra; external gdi32 name 'GetTextCharacterExtra';
  2552. {$ENDIF DYNAMIC_LINK}
  2553. {$IFDEF DYNAMIC_LINK}
  2554. var
  2555.   _GetTextAlign: Pointer;
  2556. function GetTextAlign;
  2557. begin
  2558.   GetProcedureAddress(_GetTextAlign, gdi32, 'GetTextAlign');
  2559.   asm
  2560.     mov esp, ebp
  2561.     pop ebp
  2562.     jmp [_GetTextAlign]
  2563.   end;
  2564. end;
  2565. {$ELSE}
  2566. function GetTextAlign; external gdi32 name 'GetTextAlign';
  2567. {$ENDIF DYNAMIC_LINK}
  2568. {$IFDEF DYNAMIC_LINK}
  2569. var
  2570.   _GetTextColor: Pointer;
  2571. function GetTextColor;
  2572. begin
  2573.   GetProcedureAddress(_GetTextColor, gdi32, 'GetTextColor');
  2574.   asm
  2575.     mov esp, ebp
  2576.     pop ebp
  2577.     jmp [_GetTextColor]
  2578.   end;
  2579. end;
  2580. {$ELSE}
  2581. function GetTextColor; external gdi32 name 'GetTextColor';
  2582. {$ENDIF DYNAMIC_LINK}
  2583. {$IFDEF DYNAMIC_LINK}
  2584. var
  2585.   _GetTextExtentPointA: Pointer;
  2586. function GetTextExtentPointA;
  2587. begin
  2588.   GetProcedureAddress(_GetTextExtentPointA, gdi32, 'GetTextExtentPointA');
  2589.   asm
  2590.     mov esp, ebp
  2591.     pop ebp
  2592.     jmp [_GetTextExtentPointA]
  2593.   end;
  2594. end;
  2595. {$ELSE}
  2596. function GetTextExtentPointA; external gdi32 name 'GetTextExtentPointA';
  2597. {$ENDIF DYNAMIC_LINK}
  2598. {$IFDEF DYNAMIC_LINK}
  2599. var
  2600.   _GetTextExtentPointW: Pointer;
  2601. function GetTextExtentPointW;
  2602. begin
  2603.   GetProcedureAddress(_GetTextExtentPointW, gdi32, 'GetTextExtentPointW');
  2604.   asm
  2605.     mov esp, ebp
  2606.     pop ebp
  2607.     jmp [_GetTextExtentPointW]
  2608.   end;
  2609. end;
  2610. {$ELSE}
  2611. function GetTextExtentPointW; external gdi32 name 'GetTextExtentPointW';
  2612. {$ENDIF DYNAMIC_LINK}
  2613. {$IFDEF UNICODE}
  2614. {$IFDEF DYNAMIC_LINK}
  2615. var
  2616.   _GetTextExtentPoint: Pointer;
  2617. function GetTextExtentPoint;
  2618. begin
  2619.   GetProcedureAddress(_GetTextExtentPoint, gdi32, 'GetTextExtentPointW');
  2620.   asm
  2621.     mov esp, ebp
  2622.     pop ebp
  2623.     jmp [_GetTextExtentPoint]
  2624.   end;
  2625. end;
  2626. {$ELSE}
  2627. function GetTextExtentPoint; external gdi32 name 'GetTextExtentPointW';
  2628. {$ENDIF DYNAMIC_LINK}
  2629. {$ELSE}
  2630. {$IFDEF DYNAMIC_LINK}
  2631. var
  2632.   _GetTextExtentPoint: Pointer;
  2633. function GetTextExtentPoint;
  2634. begin
  2635.   GetProcedureAddress(_GetTextExtentPoint, gdi32, 'GetTextExtentPointA');
  2636.   asm
  2637.     mov esp, ebp
  2638.     pop ebp
  2639.     jmp [_GetTextExtentPoint]
  2640.   end;
  2641. end;
  2642. {$ELSE}
  2643. function GetTextExtentPoint; external gdi32 name 'GetTextExtentPointA';
  2644. {$ENDIF DYNAMIC_LINK}
  2645. {$ENDIF}
  2646. {$IFDEF DYNAMIC_LINK}
  2647. var
  2648.   _GetTextExtentPoint32A: Pointer;
  2649. function GetTextExtentPoint32A;
  2650. begin
  2651.   GetProcedureAddress(_GetTextExtentPoint32A, gdi32, 'GetTextExtentPoint32A');
  2652.   asm
  2653.     mov esp, ebp
  2654.     pop ebp
  2655.     jmp [_GetTextExtentPoint32A]
  2656.   end;
  2657. end;
  2658. {$ELSE}
  2659. function GetTextExtentPoint32A; external gdi32 name 'GetTextExtentPoint32A';
  2660. {$ENDIF DYNAMIC_LINK}
  2661. {$IFDEF DYNAMIC_LINK}
  2662. var
  2663.   _GetTextExtentPoint32W: Pointer;
  2664. function GetTextExtentPoint32W;
  2665. begin
  2666.   GetProcedureAddress(_GetTextExtentPoint32W, gdi32, 'GetTextExtentPoint32W');
  2667.   asm
  2668.     mov esp, ebp
  2669.     pop ebp
  2670.     jmp [_GetTextExtentPoint32W]
  2671.   end;
  2672. end;
  2673. {$ELSE}
  2674. function GetTextExtentPoint32W; external gdi32 name 'GetTextExtentPoint32W';
  2675. {$ENDIF DYNAMIC_LINK}
  2676. {$IFDEF UNICODE}
  2677. {$IFDEF DYNAMIC_LINK}
  2678. var
  2679.   _GetTextExtentPoint32: Pointer;
  2680. function GetTextExtentPoint32;
  2681. begin
  2682.   GetProcedureAddress(_GetTextExtentPoint32, gdi32, 'GetTextExtentPoint32W');
  2683.   asm
  2684.     mov esp, ebp
  2685.     pop ebp
  2686.     jmp [_GetTextExtentPoint32]
  2687.   end;
  2688. end;
  2689. {$ELSE}
  2690. function GetTextExtentPoint32; external gdi32 name 'GetTextExtentPoint32W';
  2691. {$ENDIF DYNAMIC_LINK}
  2692. {$ELSE}
  2693. {$IFDEF DYNAMIC_LINK}
  2694. var
  2695.   _GetTextExtentPoint32: Pointer;
  2696. function GetTextExtentPoint32;
  2697. begin
  2698.   GetProcedureAddress(_GetTextExtentPoint32, gdi32, 'GetTextExtentPoint32A');
  2699.   asm
  2700.     mov esp, ebp
  2701.     pop ebp
  2702.     jmp [_GetTextExtentPoint32]
  2703.   end;
  2704. end;
  2705. {$ELSE}
  2706. function GetTextExtentPoint32; external gdi32 name 'GetTextExtentPoint32A';
  2707. {$ENDIF DYNAMIC_LINK}
  2708. {$ENDIF}
  2709. {$IFDEF DYNAMIC_LINK}
  2710. var
  2711.   _GetTextExtentExPointA: Pointer;
  2712. function GetTextExtentExPointA;
  2713. begin
  2714.   GetProcedureAddress(_GetTextExtentExPointA, gdi32, 'GetTextExtentExPointA');
  2715.   asm
  2716.     mov esp, ebp
  2717.     pop ebp
  2718.     jmp [_GetTextExtentExPointA]
  2719.   end;
  2720. end;
  2721. {$ELSE}
  2722. function GetTextExtentExPointA; external gdi32 name 'GetTextExtentExPointA';
  2723. {$ENDIF DYNAMIC_LINK}
  2724. {$IFDEF DYNAMIC_LINK}
  2725. var
  2726.   _GetTextExtentExPointW: Pointer;
  2727. function GetTextExtentExPointW;
  2728. begin
  2729.   GetProcedureAddress(_GetTextExtentExPointW, gdi32, 'GetTextExtentExPointW');
  2730.   asm
  2731.     mov esp, ebp
  2732.     pop ebp
  2733.     jmp [_GetTextExtentExPointW]
  2734.   end;
  2735. end;
  2736. {$ELSE}
  2737. function GetTextExtentExPointW; external gdi32 name 'GetTextExtentExPointW';
  2738. {$ENDIF DYNAMIC_LINK}
  2739. {$IFDEF UNICODE}
  2740. {$IFDEF DYNAMIC_LINK}
  2741. var
  2742.   _GetTextExtentExPoint: Pointer;
  2743. function GetTextExtentExPoint;
  2744. begin
  2745.   GetProcedureAddress(_GetTextExtentExPoint, gdi32, 'GetTextExtentExPointW');
  2746.   asm
  2747.     mov esp, ebp
  2748.     pop ebp
  2749.     jmp [_GetTextExtentExPoint]
  2750.   end;
  2751. end;
  2752. {$ELSE}
  2753. function GetTextExtentExPoint; external gdi32 name 'GetTextExtentExPointW';
  2754. {$ENDIF DYNAMIC_LINK}
  2755. {$ELSE}
  2756. {$IFDEF DYNAMIC_LINK}
  2757. var
  2758.   _GetTextExtentExPoint: Pointer;
  2759. function GetTextExtentExPoint;
  2760. begin
  2761.   GetProcedureAddress(_GetTextExtentExPoint, gdi32, 'GetTextExtentExPointA');
  2762.   asm
  2763.     mov esp, ebp
  2764.     pop ebp
  2765.     jmp [_GetTextExtentExPoint]
  2766.   end;
  2767. end;
  2768. {$ELSE}
  2769. function GetTextExtentExPoint; external gdi32 name 'GetTextExtentExPointA';
  2770. {$ENDIF DYNAMIC_LINK}
  2771. {$ENDIF}
  2772. {$IFDEF DYNAMIC_LINK}
  2773. var
  2774.   _GetTextCharset: Pointer;
  2775. function GetTextCharset;
  2776. begin
  2777.   GetProcedureAddress(_GetTextCharset, gdi32, 'GetTextCharset');
  2778.   asm
  2779.     mov esp, ebp
  2780.     pop ebp
  2781.     jmp [_GetTextCharset]
  2782.   end;
  2783. end;
  2784. {$ELSE}
  2785. function GetTextCharset; external gdi32 name 'GetTextCharset';
  2786. {$ENDIF DYNAMIC_LINK}
  2787. {$IFDEF DYNAMIC_LINK}
  2788. var
  2789.   _GetTextCharsetInfo: Pointer;
  2790. function GetTextCharsetInfo;
  2791. begin
  2792.   GetProcedureAddress(_GetTextCharsetInfo, gdi32, 'GetTextCharsetInfo');
  2793.   asm
  2794.     mov esp, ebp
  2795.     pop ebp
  2796.     jmp [_GetTextCharsetInfo]
  2797.   end;
  2798. end;
  2799. {$ELSE}
  2800. function GetTextCharsetInfo; external gdi32 name 'GetTextCharsetInfo';
  2801. {$ENDIF DYNAMIC_LINK}
  2802. {$IFDEF DYNAMIC_LINK}
  2803. var
  2804.   _TranslateCharsetInfo: Pointer;
  2805. function TranslateCharsetInfo;
  2806. begin
  2807.   GetProcedureAddress(_TranslateCharsetInfo, gdi32, 'TranslateCharsetInfo');
  2808.   asm
  2809.     mov esp, ebp
  2810.     pop ebp
  2811.     jmp [_TranslateCharsetInfo]
  2812.   end;
  2813. end;
  2814. {$ELSE}
  2815. function TranslateCharsetInfo; external gdi32 name 'TranslateCharsetInfo';
  2816. {$ENDIF DYNAMIC_LINK}
  2817. {$IFDEF DYNAMIC_LINK}
  2818. var
  2819.   _GetFontLanguageInfo: Pointer;
  2820. function GetFontLanguageInfo;
  2821. begin
  2822.   GetProcedureAddress(_GetFontLanguageInfo, gdi32, 'GetFontLanguageInfo');
  2823.   asm
  2824.     mov esp, ebp
  2825.     pop ebp
  2826.     jmp [_GetFontLanguageInfo]
  2827.   end;
  2828. end;
  2829. {$ELSE}
  2830. function GetFontLanguageInfo; external gdi32 name 'GetFontLanguageInfo';
  2831. {$ENDIF DYNAMIC_LINK}
  2832. {$IFDEF DYNAMIC_LINK}
  2833. var
  2834.   _GetCharacterPlacementA: Pointer;
  2835. function GetCharacterPlacementA;
  2836. begin
  2837.   GetProcedureAddress(_GetCharacterPlacementA, gdi32, 'GetCharacterPlacementA');
  2838.   asm
  2839.     mov esp, ebp
  2840.     pop ebp
  2841.     jmp [_GetCharacterPlacementA]
  2842.   end;
  2843. end;
  2844. {$ELSE}
  2845. function GetCharacterPlacementA; external gdi32 name 'GetCharacterPlacementA';
  2846. {$ENDIF DYNAMIC_LINK}
  2847. {$IFDEF DYNAMIC_LINK}
  2848. var
  2849.   _GetCharacterPlacementW: Pointer;
  2850. function GetCharacterPlacementW;
  2851. begin
  2852.   GetProcedureAddress(_GetCharacterPlacementW, gdi32, 'GetCharacterPlacementW');
  2853.   asm
  2854.     mov esp, ebp
  2855.     pop ebp
  2856.     jmp [_GetCharacterPlacementW]
  2857.   end;
  2858. end;
  2859. {$ELSE}
  2860. function GetCharacterPlacementW; external gdi32 name 'GetCharacterPlacementW';
  2861. {$ENDIF DYNAMIC_LINK}
  2862. {$IFDEF UNICODE}
  2863. {$IFDEF DYNAMIC_LINK}
  2864. var
  2865.   _GetCharacterPlacement: Pointer;
  2866. function GetCharacterPlacement;
  2867. begin
  2868.   GetProcedureAddress(_GetCharacterPlacement, gdi32, 'GetCharacterPlacementW');
  2869.   asm
  2870.     mov esp, ebp
  2871.     pop ebp
  2872.     jmp [_GetCharacterPlacement]
  2873.   end;
  2874. end;
  2875. {$ELSE}
  2876. function GetCharacterPlacement; external gdi32 name 'GetCharacterPlacementW';
  2877. {$ENDIF DYNAMIC_LINK}
  2878. {$ELSE}
  2879. {$IFDEF DYNAMIC_LINK}
  2880. var
  2881.   _GetCharacterPlacement: Pointer;
  2882. function GetCharacterPlacement;
  2883. begin
  2884.   GetProcedureAddress(_GetCharacterPlacement, gdi32, 'GetCharacterPlacementA');
  2885.   asm
  2886.     mov esp, ebp
  2887.     pop ebp
  2888.     jmp [_GetCharacterPlacement]
  2889.   end;
  2890. end;
  2891. {$ELSE}
  2892. function GetCharacterPlacement; external gdi32 name 'GetCharacterPlacementA';
  2893. {$ENDIF DYNAMIC_LINK}
  2894. {$ENDIF}
  2895. {$IFDEF DYNAMIC_LINK}
  2896. var
  2897.   _GetFontUnicodeRanges: Pointer;
  2898. function GetFontUnicodeRanges;
  2899. begin
  2900.   GetProcedureAddress(_GetFontUnicodeRanges, gdi32, 'GetFontUnicodeRanges');
  2901.   asm
  2902.     mov esp, ebp
  2903.     pop ebp
  2904.     jmp [_GetFontUnicodeRanges]
  2905.   end;
  2906. end;
  2907. {$ELSE}
  2908. function GetFontUnicodeRanges; external gdi32 name 'GetFontUnicodeRanges';
  2909. {$ENDIF DYNAMIC_LINK}
  2910. {$IFDEF DYNAMIC_LINK}
  2911. var
  2912.   _GetGlyphIndicesA: Pointer;
  2913. function GetGlyphIndicesA;
  2914. begin
  2915.   GetProcedureAddress(_GetGlyphIndicesA, gdi32, 'GetGlyphIndicesA');
  2916.   asm
  2917.     mov esp, ebp
  2918.     pop ebp
  2919.     jmp [_GetGlyphIndicesA]
  2920.   end;
  2921. end;
  2922. {$ELSE}
  2923. function GetGlyphIndicesA; external gdi32 name 'GetGlyphIndicesA';
  2924. {$ENDIF DYNAMIC_LINK}
  2925. {$IFDEF DYNAMIC_LINK}
  2926. var
  2927.   _GetGlyphIndicesW: Pointer;
  2928. function GetGlyphIndicesW;
  2929. begin
  2930.   GetProcedureAddress(_GetGlyphIndicesW, gdi32, 'GetGlyphIndicesW');
  2931.   asm
  2932.     mov esp, ebp
  2933.     pop ebp
  2934.     jmp [_GetGlyphIndicesW]
  2935.   end;
  2936. end;
  2937. {$ELSE}
  2938. function GetGlyphIndicesW; external gdi32 name 'GetGlyphIndicesW';
  2939. {$ENDIF DYNAMIC_LINK}
  2940. {$IFDEF UNICODE}
  2941. {$IFDEF DYNAMIC_LINK}
  2942. var
  2943.   _GetGlyphIndices: Pointer;
  2944. function GetGlyphIndices;
  2945. begin
  2946.   GetProcedureAddress(_GetGlyphIndices, gdi32, 'GetGlyphIndicesW');
  2947.   asm
  2948.     mov esp, ebp
  2949.     pop ebp
  2950.     jmp [_GetGlyphIndices]
  2951.   end;
  2952. end;
  2953. {$ELSE}
  2954. function GetGlyphIndices; external gdi32 name 'GetGlyphIndicesW';
  2955. {$ENDIF DYNAMIC_LINK}
  2956. {$ELSE}
  2957. {$IFDEF DYNAMIC_LINK}
  2958. var
  2959.   _GetGlyphIndices: Pointer;
  2960. function GetGlyphIndices;
  2961. begin
  2962.   GetProcedureAddress(_GetGlyphIndices, gdi32, 'GetGlyphIndicesA');
  2963.   asm
  2964.     mov esp, ebp
  2965.     pop ebp
  2966.     jmp [_GetGlyphIndices]
  2967.   end;
  2968. end;
  2969. {$ELSE}
  2970. function GetGlyphIndices; external gdi32 name 'GetGlyphIndicesA';
  2971. {$ENDIF DYNAMIC_LINK}
  2972. {$ENDIF}
  2973. {$IFDEF DYNAMIC_LINK}
  2974. var
  2975.   _GetTextExtentPointI: Pointer;
  2976. function GetTextExtentPointI;
  2977. begin
  2978.   GetProcedureAddress(_GetTextExtentPointI, gdi32, 'GetTextExtentPointI');
  2979.   asm
  2980.     mov esp, ebp
  2981.     pop ebp
  2982.     jmp [_GetTextExtentPointI]
  2983.   end;
  2984. end;
  2985. {$ELSE}
  2986. function GetTextExtentPointI; external gdi32 name 'GetTextExtentPointI';
  2987. {$ENDIF DYNAMIC_LINK}
  2988. {$IFDEF DYNAMIC_LINK}
  2989. var
  2990.   _GetTextExtentExPointI: Pointer;
  2991. function GetTextExtentExPointI;
  2992. begin
  2993.   GetProcedureAddress(_GetTextExtentExPointI, gdi32, 'GetTextExtentExPointI');
  2994.   asm
  2995.     mov esp, ebp
  2996.     pop ebp
  2997.     jmp [_GetTextExtentExPointI]
  2998.   end;
  2999. end;
  3000. {$ELSE}
  3001. function GetTextExtentExPointI; external gdi32 name 'GetTextExtentExPointI';
  3002. {$ENDIF DYNAMIC_LINK}
  3003. {$IFDEF DYNAMIC_LINK}
  3004. var
  3005.   _GetCharWidthI: Pointer;
  3006. function GetCharWidthI;
  3007. begin
  3008.   GetProcedureAddress(_GetCharWidthI, gdi32, 'GetCharWidthI');
  3009.   asm
  3010.     mov esp, ebp
  3011.     pop ebp
  3012.     jmp [_GetCharWidthI]
  3013.   end;
  3014. end;
  3015. {$ELSE}
  3016. function GetCharWidthI; external gdi32 name 'GetCharWidthI';
  3017. {$ENDIF DYNAMIC_LINK}
  3018. {$IFDEF DYNAMIC_LINK}
  3019. var
  3020.   _GetCharABCWidthsI: Pointer;
  3021. function GetCharABCWidthsI;
  3022. begin
  3023.   GetProcedureAddress(_GetCharABCWidthsI, gdi32, 'GetCharABCWidthsI');
  3024.   asm
  3025.     mov esp, ebp
  3026.     pop ebp
  3027.     jmp [_GetCharABCWidthsI]
  3028.   end;
  3029. end;
  3030. {$ELSE}
  3031. function GetCharABCWidthsI; external gdi32 name 'GetCharABCWidthsI';
  3032. {$ENDIF DYNAMIC_LINK}
  3033. {$IFDEF DYNAMIC_LINK}
  3034. var
  3035.   _AddFontResourceExA: Pointer;
  3036. function AddFontResourceExA;
  3037. begin
  3038.   GetProcedureAddress(_AddFontResourceExA, gdi32, 'AddFontResourceExA');
  3039.   asm
  3040.     mov esp, ebp
  3041.     pop ebp
  3042.     jmp [_AddFontResourceExA]
  3043.   end;
  3044. end;
  3045. {$ELSE}
  3046. function AddFontResourceExA; external gdi32 name 'AddFontResourceExA';
  3047. {$ENDIF DYNAMIC_LINK}
  3048. {$IFDEF DYNAMIC_LINK}
  3049. var
  3050.   _AddFontResourceExW: Pointer;
  3051. function AddFontResourceExW;
  3052. begin
  3053.   GetProcedureAddress(_AddFontResourceExW, gdi32, 'AddFontResourceExW');
  3054.   asm
  3055.     mov esp, ebp
  3056.     pop ebp
  3057.     jmp [_AddFontResourceExW]
  3058.   end;
  3059. end;
  3060. {$ELSE}
  3061. function AddFontResourceExW; external gdi32 name 'AddFontResourceExW';
  3062. {$ENDIF DYNAMIC_LINK}
  3063. {$IFDEF UNICODE}
  3064. {$IFDEF DYNAMIC_LINK}
  3065. var
  3066.   _AddFontResourceEx: Pointer;
  3067. function AddFontResourceEx;
  3068. begin
  3069.   GetProcedureAddress(_AddFontResourceEx, gdi32, 'AddFontResourceExW');
  3070.   asm
  3071.     mov esp, ebp
  3072.     pop ebp
  3073.     jmp [_AddFontResourceEx]
  3074.   end;
  3075. end;
  3076. {$ELSE}
  3077. function AddFontResourceEx; external gdi32 name 'AddFontResourceExW';
  3078. {$ENDIF DYNAMIC_LINK}
  3079. {$ELSE}
  3080. {$IFDEF DYNAMIC_LINK}
  3081. var
  3082.   _AddFontResourceEx: Pointer;
  3083. function AddFontResourceEx;
  3084. begin
  3085.   GetProcedureAddress(_AddFontResourceEx, gdi32, 'AddFontResourceExA');
  3086.   asm
  3087.     mov esp, ebp
  3088.     pop ebp
  3089.     jmp [_AddFontResourceEx]
  3090.   end;
  3091. end;
  3092. {$ELSE}
  3093. function AddFontResourceEx; external gdi32 name 'AddFontResourceExA';
  3094. {$ENDIF DYNAMIC_LINK}
  3095. {$ENDIF}
  3096. {$IFDEF DYNAMIC_LINK}
  3097. var
  3098.   _RemoveFontResourceExA: Pointer;
  3099. function RemoveFontResourceExA;
  3100. begin
  3101.   GetProcedureAddress(_RemoveFontResourceExA, gdi32, 'RemoveFontResourceExA');
  3102.   asm
  3103.     mov esp, ebp
  3104.     pop ebp
  3105.     jmp [_RemoveFontResourceExA]
  3106.   end;
  3107. end;
  3108. {$ELSE}
  3109. function RemoveFontResourceExA; external gdi32 name 'RemoveFontResourceExA';
  3110. {$ENDIF DYNAMIC_LINK}
  3111. {$IFDEF DYNAMIC_LINK}
  3112. var
  3113.   _RemoveFontResourceExW: Pointer;
  3114. function RemoveFontResourceExW;
  3115. begin
  3116.   GetProcedureAddress(_RemoveFontResourceExW, gdi32, 'RemoveFontResourceExW');
  3117.   asm
  3118.     mov esp, ebp
  3119.     pop ebp
  3120.     jmp [_RemoveFontResourceExW]
  3121.   end;
  3122. end;
  3123. {$ELSE}
  3124. function RemoveFontResourceExW; external gdi32 name 'RemoveFontResourceExW';
  3125. {$ENDIF DYNAMIC_LINK}
  3126. {$IFDEF UNICODE}
  3127. {$IFDEF DYNAMIC_LINK}
  3128. var
  3129.   _RemoveFontResourceEx: Pointer;
  3130. function RemoveFontResourceEx;
  3131. begin
  3132.   GetProcedureAddress(_RemoveFontResourceEx, gdi32, 'RemoveFontResourceExW');
  3133.   asm
  3134.     mov esp, ebp
  3135.     pop ebp
  3136.     jmp [_RemoveFontResourceEx]
  3137.   end;
  3138. end;
  3139. {$ELSE}
  3140. function RemoveFontResourceEx; external gdi32 name 'RemoveFontResourceExW';
  3141. {$ENDIF DYNAMIC_LINK}
  3142. {$ELSE}
  3143. {$IFDEF DYNAMIC_LINK}
  3144. var
  3145.   _RemoveFontResourceEx: Pointer;
  3146. function RemoveFontResourceEx;
  3147. begin
  3148.   GetProcedureAddress(_RemoveFontResourceEx, gdi32, 'RemoveFontResourceExA');
  3149.   asm
  3150.     mov esp, ebp
  3151.     pop ebp
  3152.     jmp [_RemoveFontResourceEx]
  3153.   end;
  3154. end;
  3155. {$ELSE}
  3156. function RemoveFontResourceEx; external gdi32 name 'RemoveFontResourceExA';
  3157. {$ENDIF DYNAMIC_LINK}
  3158. {$ENDIF}
  3159. {$IFDEF DYNAMIC_LINK}
  3160. var
  3161.   _AddFontMemResourceEx: Pointer;
  3162. function AddFontMemResourceEx;
  3163. begin
  3164.   GetProcedureAddress(_AddFontMemResourceEx, gdi32, 'AddFontMemResourceEx');
  3165.   asm
  3166.     mov esp, ebp
  3167.     pop ebp
  3168.     jmp [_AddFontMemResourceEx]
  3169.   end;
  3170. end;
  3171. {$ELSE}
  3172. function AddFontMemResourceEx; external gdi32 name 'AddFontMemResourceEx';
  3173. {$ENDIF DYNAMIC_LINK}
  3174. {$IFDEF DYNAMIC_LINK}
  3175. var
  3176.   _RemoveFontMemResourceEx: Pointer;
  3177. function RemoveFontMemResourceEx;
  3178. begin
  3179.   GetProcedureAddress(_RemoveFontMemResourceEx, gdi32, 'RemoveFontMemResourceEx');
  3180.   asm
  3181.     mov esp, ebp
  3182.     pop ebp
  3183.     jmp [_RemoveFontMemResourceEx]
  3184.   end;
  3185. end;
  3186. {$ELSE}
  3187. function RemoveFontMemResourceEx; external gdi32 name 'RemoveFontMemResourceEx';
  3188. {$ENDIF DYNAMIC_LINK}
  3189. {$IFDEF DYNAMIC_LINK}
  3190. var
  3191.   _CreateFontIndirectExA: Pointer;
  3192. function CreateFontIndirectExA;
  3193. begin
  3194.   GetProcedureAddress(_CreateFontIndirectExA, gdi32, 'CreateFontIndirectExA');
  3195.   asm
  3196.     mov esp, ebp
  3197.     pop ebp
  3198.     jmp [_CreateFontIndirectExA]
  3199.   end;
  3200. end;
  3201. {$ELSE}
  3202. function CreateFontIndirectExA; external gdi32 name 'CreateFontIndirectExA';
  3203. {$ENDIF DYNAMIC_LINK}
  3204. {$IFDEF DYNAMIC_LINK}
  3205. var
  3206.   _CreateFontIndirectExW: Pointer;
  3207. function CreateFontIndirectExW;
  3208. begin
  3209.   GetProcedureAddress(_CreateFontIndirectExW, gdi32, 'CreateFontIndirectExW');
  3210.   asm
  3211.     mov esp, ebp
  3212.     pop ebp
  3213.     jmp [_CreateFontIndirectExW]
  3214.   end;
  3215. end;
  3216. {$ELSE}
  3217. function CreateFontIndirectExW; external gdi32 name 'CreateFontIndirectExW';
  3218. {$ENDIF DYNAMIC_LINK}
  3219. {$IFDEF UNICODE}
  3220. {$IFDEF DYNAMIC_LINK}
  3221. var
  3222.   _CreateFontIndirectEx: Pointer;
  3223. function CreateFontIndirectEx;
  3224. begin
  3225.   GetProcedureAddress(_CreateFontIndirectEx, gdi32, 'CreateFontIndirectExW');
  3226.   asm
  3227.     mov esp, ebp
  3228.     pop ebp
  3229.     jmp [_CreateFontIndirectEx]
  3230.   end;
  3231. end;
  3232. {$ELSE}
  3233. function CreateFontIndirectEx; external gdi32 name 'CreateFontIndirectExW';
  3234. {$ENDIF DYNAMIC_LINK}
  3235. {$ELSE}
  3236. {$IFDEF DYNAMIC_LINK}
  3237. var
  3238.   _CreateFontIndirectEx: Pointer;
  3239. function CreateFontIndirectEx;
  3240. begin
  3241.   GetProcedureAddress(_CreateFontIndirectEx, gdi32, 'CreateFontIndirectExA');
  3242.   asm
  3243.     mov esp, ebp
  3244.     pop ebp
  3245.     jmp [_CreateFontIndirectEx]
  3246.   end;
  3247. end;
  3248. {$ELSE}
  3249. function CreateFontIndirectEx; external gdi32 name 'CreateFontIndirectExA';
  3250. {$ENDIF DYNAMIC_LINK}
  3251. {$ENDIF}
  3252. {$IFDEF DYNAMIC_LINK}
  3253. var
  3254.   _GetViewportExtEx: Pointer;
  3255. function GetViewportExtEx;
  3256. begin
  3257.   GetProcedureAddress(_GetViewportExtEx, gdi32, 'GetViewportExtEx');
  3258.   asm
  3259.     mov esp, ebp
  3260.     pop ebp
  3261.     jmp [_GetViewportExtEx]
  3262.   end;
  3263. end;
  3264. {$ELSE}
  3265. function GetViewportExtEx; external gdi32 name 'GetViewportExtEx';
  3266. {$ENDIF DYNAMIC_LINK}
  3267. {$IFDEF DYNAMIC_LINK}
  3268. var
  3269.   _GetViewportOrgEx: Pointer;
  3270. function GetViewportOrgEx;
  3271. begin
  3272.   GetProcedureAddress(_GetViewportOrgEx, gdi32, 'GetViewportOrgEx');
  3273.   asm
  3274.     mov esp, ebp
  3275.     pop ebp
  3276.     jmp [_GetViewportOrgEx]
  3277.   end;
  3278. end;
  3279. {$ELSE}
  3280. function GetViewportOrgEx; external gdi32 name 'GetViewportOrgEx';
  3281. {$ENDIF DYNAMIC_LINK}
  3282. {$IFDEF DYNAMIC_LINK}
  3283. var
  3284.   _GetWindowExtEx: Pointer;
  3285. function GetWindowExtEx;
  3286. begin
  3287.   GetProcedureAddress(_GetWindowExtEx, gdi32, 'GetWindowExtEx');
  3288.   asm
  3289.     mov esp, ebp
  3290.     pop ebp
  3291.     jmp [_GetWindowExtEx]
  3292.   end;
  3293. end;
  3294. {$ELSE}
  3295. function GetWindowExtEx; external gdi32 name 'GetWindowExtEx';
  3296. {$ENDIF DYNAMIC_LINK}
  3297. {$IFDEF DYNAMIC_LINK}
  3298. var
  3299.   _GetWindowOrgEx: Pointer;
  3300. function GetWindowOrgEx;
  3301. begin
  3302.   GetProcedureAddress(_GetWindowOrgEx, gdi32, 'GetWindowOrgEx');
  3303.   asm
  3304.     mov esp, ebp
  3305.     pop ebp
  3306.     jmp [_GetWindowOrgEx]
  3307.   end;
  3308. end;
  3309. {$ELSE}
  3310. function GetWindowOrgEx; external gdi32 name 'GetWindowOrgEx';
  3311. {$ENDIF DYNAMIC_LINK}
  3312. {$IFDEF DYNAMIC_LINK}
  3313. var
  3314.   _IntersectClipRect: Pointer;
  3315. function IntersectClipRect;
  3316. begin
  3317.   GetProcedureAddress(_IntersectClipRect, gdi32, 'IntersectClipRect');
  3318.   asm
  3319.     mov esp, ebp
  3320.     pop ebp
  3321.     jmp [_IntersectClipRect]
  3322.   end;
  3323. end;
  3324. {$ELSE}
  3325. function IntersectClipRect; external gdi32 name 'IntersectClipRect';
  3326. {$ENDIF DYNAMIC_LINK}
  3327. {$IFDEF DYNAMIC_LINK}
  3328. var
  3329.   _InvertRgn: Pointer;
  3330. function InvertRgn;
  3331. begin
  3332.   GetProcedureAddress(_InvertRgn, gdi32, 'InvertRgn');
  3333.   asm
  3334.     mov esp, ebp
  3335.     pop ebp
  3336.     jmp [_InvertRgn]
  3337.   end;
  3338. end;
  3339. {$ELSE}
  3340. function InvertRgn; external gdi32 name 'InvertRgn';
  3341. {$ENDIF DYNAMIC_LINK}
  3342. {$IFDEF DYNAMIC_LINK}
  3343. var
  3344.   _LineDDA: Pointer;
  3345. function LineDDA;
  3346. begin
  3347.   GetProcedureAddress(_LineDDA, gdi32, 'LineDDA');
  3348.   asm
  3349.     mov esp, ebp
  3350.     pop ebp
  3351.     jmp [_LineDDA]
  3352.   end;
  3353. end;
  3354. {$ELSE}
  3355. function LineDDA; external gdi32 name 'LineDDA';
  3356. {$ENDIF DYNAMIC_LINK}
  3357. {$IFDEF DYNAMIC_LINK}
  3358. var
  3359.   _LineTo: Pointer;
  3360. function LineTo;
  3361. begin
  3362.   GetProcedureAddress(_LineTo, gdi32, 'LineTo');
  3363.   asm
  3364.     mov esp, ebp
  3365.     pop ebp
  3366.     jmp [_LineTo]
  3367.   end;
  3368. end;
  3369. {$ELSE}
  3370. function LineTo; external gdi32 name 'LineTo';
  3371. {$ENDIF DYNAMIC_LINK}
  3372. {$IFDEF DYNAMIC_LINK}
  3373. var
  3374.   _MaskBlt: Pointer;
  3375. function MaskBlt;
  3376. begin
  3377.   GetProcedureAddress(_MaskBlt, gdi32, 'MaskBlt');
  3378.   asm
  3379.     mov esp, ebp
  3380.     pop ebp
  3381.     jmp [_MaskBlt]
  3382.   end;
  3383. end;
  3384. {$ELSE}
  3385. function MaskBlt; external gdi32 name 'MaskBlt';
  3386. {$ENDIF DYNAMIC_LINK}
  3387. {$IFDEF DYNAMIC_LINK}
  3388. var
  3389.   _PlgBlt: Pointer;
  3390. function PlgBlt;
  3391. begin
  3392.   GetProcedureAddress(_PlgBlt, gdi32, 'PlgBlt');
  3393.   asm
  3394.     mov esp, ebp
  3395.     pop ebp
  3396.     jmp [_PlgBlt]
  3397.   end;
  3398. end;
  3399. {$ELSE}
  3400. function PlgBlt; external gdi32 name 'PlgBlt';
  3401. {$ENDIF DYNAMIC_LINK}
  3402. {$IFDEF DYNAMIC_LINK}
  3403. var
  3404.   _OffsetClipRgn: Pointer;
  3405. function OffsetClipRgn;
  3406. begin
  3407.   GetProcedureAddress(_OffsetClipRgn, gdi32, 'OffsetClipRgn');
  3408.   asm
  3409.     mov esp, ebp
  3410.     pop ebp
  3411.     jmp [_OffsetClipRgn]
  3412.   end;
  3413. end;
  3414. {$ELSE}
  3415. function OffsetClipRgn; external gdi32 name 'OffsetClipRgn';
  3416. {$ENDIF DYNAMIC_LINK}
  3417. {$IFDEF DYNAMIC_LINK}
  3418. var
  3419.   _OffsetRgn: Pointer;
  3420. function OffsetRgn;
  3421. begin
  3422.   GetProcedureAddress(_OffsetRgn, gdi32, 'OffsetRgn');
  3423.   asm
  3424.     mov esp, ebp
  3425.     pop ebp
  3426.     jmp [_OffsetRgn]
  3427.   end;
  3428. end;
  3429. {$ELSE}
  3430. function OffsetRgn; external gdi32 name 'OffsetRgn';
  3431. {$ENDIF DYNAMIC_LINK}
  3432. {$IFDEF DYNAMIC_LINK}
  3433. var
  3434.   _PatBlt: Pointer;
  3435. function PatBlt;
  3436. begin
  3437.   GetProcedureAddress(_PatBlt, gdi32, 'PatBlt');
  3438.   asm
  3439.     mov esp, ebp
  3440.     pop ebp
  3441.     jmp [_PatBlt]
  3442.   end;
  3443. end;
  3444. {$ELSE}
  3445. function PatBlt; external gdi32 name 'PatBlt';
  3446. {$ENDIF DYNAMIC_LINK}
  3447. {$IFDEF DYNAMIC_LINK}
  3448. var
  3449.   _Pie: Pointer;
  3450. function Pie;
  3451. begin
  3452.   GetProcedureAddress(_Pie, gdi32, 'Pie');
  3453.   asm
  3454.     mov esp, ebp
  3455.     pop ebp
  3456.     jmp [_Pie]
  3457.   end;
  3458. end;
  3459. {$ELSE}
  3460. function Pie; external gdi32 name 'Pie';
  3461. {$ENDIF DYNAMIC_LINK}
  3462. {$IFDEF DYNAMIC_LINK}
  3463. var
  3464.   _PlayMetaFile: Pointer;
  3465. function PlayMetaFile;
  3466. begin
  3467.   GetProcedureAddress(_PlayMetaFile, gdi32, 'PlayMetaFile');
  3468.   asm
  3469.     mov esp, ebp
  3470.     pop ebp
  3471.     jmp [_PlayMetaFile]
  3472.   end;
  3473. end;
  3474. {$ELSE}
  3475. function PlayMetaFile; external gdi32 name 'PlayMetaFile';
  3476. {$ENDIF DYNAMIC_LINK}
  3477. {$IFDEF DYNAMIC_LINK}
  3478. var
  3479.   _PaintRgn: Pointer;
  3480. function PaintRgn;
  3481. begin
  3482.   GetProcedureAddress(_PaintRgn, gdi32, 'PaintRgn');
  3483.   asm
  3484.     mov esp, ebp
  3485.     pop ebp
  3486.     jmp [_PaintRgn]
  3487.   end;
  3488. end;
  3489. {$ELSE}
  3490. function PaintRgn; external gdi32 name 'PaintRgn';
  3491. {$ENDIF DYNAMIC_LINK}
  3492. {$IFDEF DYNAMIC_LINK}
  3493. var
  3494.   _PolyPolygon: Pointer;
  3495. function PolyPolygon;
  3496. begin
  3497.   GetProcedureAddress(_PolyPolygon, gdi32, 'PolyPolygon');
  3498.   asm
  3499.     mov esp, ebp
  3500.     pop ebp
  3501.     jmp [_PolyPolygon]
  3502.   end;
  3503. end;
  3504. {$ELSE}
  3505. function PolyPolygon; external gdi32 name 'PolyPolygon';
  3506. {$ENDIF DYNAMIC_LINK}
  3507. {$IFDEF DYNAMIC_LINK}
  3508. var
  3509.   _PtInRegion: Pointer;
  3510. function PtInRegion;
  3511. begin
  3512.   GetProcedureAddress(_PtInRegion, gdi32, 'PtInRegion');
  3513.   asm
  3514.     mov esp, ebp
  3515.     pop ebp
  3516.     jmp [_PtInRegion]
  3517.   end;
  3518. end;
  3519. {$ELSE}
  3520. function PtInRegion; external gdi32 name 'PtInRegion';
  3521. {$ENDIF DYNAMIC_LINK}
  3522. {$IFDEF DYNAMIC_LINK}
  3523. var
  3524.   _PtVisible: Pointer;
  3525. function PtVisible;
  3526. begin
  3527.   GetProcedureAddress(_PtVisible, gdi32, 'PtVisible');
  3528.   asm
  3529.     mov esp, ebp
  3530.     pop ebp
  3531.     jmp [_PtVisible]
  3532.   end;
  3533. end;
  3534. {$ELSE}
  3535. function PtVisible; external gdi32 name 'PtVisible';
  3536. {$ENDIF DYNAMIC_LINK}
  3537. {$IFDEF DYNAMIC_LINK}
  3538. var
  3539.   _RectInRegion: Pointer;
  3540. function RectInRegion;
  3541. begin
  3542.   GetProcedureAddress(_RectInRegion, gdi32, 'RectInRegion');
  3543.   asm
  3544.     mov esp, ebp
  3545.     pop ebp
  3546.     jmp [_RectInRegion]
  3547.   end;
  3548. end;
  3549. {$ELSE}
  3550. function RectInRegion; external gdi32 name 'RectInRegion';
  3551. {$ENDIF DYNAMIC_LINK}
  3552. {$IFDEF DYNAMIC_LINK}
  3553. var
  3554.   _RectVisible: Pointer;
  3555. function RectVisible;
  3556. begin
  3557.   GetProcedureAddress(_RectVisible, gdi32, 'RectVisible');
  3558.   asm
  3559.     mov esp, ebp
  3560.     pop ebp
  3561.     jmp [_RectVisible]
  3562.   end;
  3563. end;