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

Windows编程

开发平台:

Delphi

  1. {$IFDEF DYNAMIC_LINK}
  2. var
  3.   _CreateEvent: Pointer;
  4. function CreateEvent;
  5. begin
  6.   GetProcedureAddress(_CreateEvent, kernel32, 'CreateEventW');
  7.   asm
  8.     mov esp, ebp
  9.     pop ebp
  10.     jmp [_CreateEvent]
  11.   end;
  12. end;
  13. {$ELSE}
  14. function CreateEvent; external kernel32 name 'CreateEventW';
  15. {$ENDIF DYNAMIC_LINK}
  16. {$ELSE}
  17. {$IFDEF DYNAMIC_LINK}
  18. var
  19.   _CreateEvent: Pointer;
  20. function CreateEvent;
  21. begin
  22.   GetProcedureAddress(_CreateEvent, kernel32, 'CreateEventA');
  23.   asm
  24.     mov esp, ebp
  25.     pop ebp
  26.     jmp [_CreateEvent]
  27.   end;
  28. end;
  29. {$ELSE}
  30. function CreateEvent; external kernel32 name 'CreateEventA';
  31. {$ENDIF DYNAMIC_LINK}
  32. {$ENDIF}
  33. {$IFDEF DYNAMIC_LINK}
  34. var
  35.   _OpenEventA: Pointer;
  36. function OpenEventA;
  37. begin
  38.   GetProcedureAddress(_OpenEventA, kernel32, 'OpenEventA');
  39.   asm
  40.     mov esp, ebp
  41.     pop ebp
  42.     jmp [_OpenEventA]
  43.   end;
  44. end;
  45. {$ELSE}
  46. function OpenEventA; external kernel32 name 'OpenEventA';
  47. {$ENDIF DYNAMIC_LINK}
  48. {$IFDEF DYNAMIC_LINK}
  49. var
  50.   _OpenEventW: Pointer;
  51. function OpenEventW;
  52. begin
  53.   GetProcedureAddress(_OpenEventW, kernel32, 'OpenEventW');
  54.   asm
  55.     mov esp, ebp
  56.     pop ebp
  57.     jmp [_OpenEventW]
  58.   end;
  59. end;
  60. {$ELSE}
  61. function OpenEventW; external kernel32 name 'OpenEventW';
  62. {$ENDIF DYNAMIC_LINK}
  63. {$IFDEF UNICODE}
  64. {$IFDEF DYNAMIC_LINK}
  65. var
  66.   _OpenEvent: Pointer;
  67. function OpenEvent;
  68. begin
  69.   GetProcedureAddress(_OpenEvent, kernel32, 'OpenEventW');
  70.   asm
  71.     mov esp, ebp
  72.     pop ebp
  73.     jmp [_OpenEvent]
  74.   end;
  75. end;
  76. {$ELSE}
  77. function OpenEvent; external kernel32 name 'OpenEventW';
  78. {$ENDIF DYNAMIC_LINK}
  79. {$ELSE}
  80. {$IFDEF DYNAMIC_LINK}
  81. var
  82.   _OpenEvent: Pointer;
  83. function OpenEvent;
  84. begin
  85.   GetProcedureAddress(_OpenEvent, kernel32, 'OpenEventA');
  86.   asm
  87.     mov esp, ebp
  88.     pop ebp
  89.     jmp [_OpenEvent]
  90.   end;
  91. end;
  92. {$ELSE}
  93. function OpenEvent; external kernel32 name 'OpenEventA';
  94. {$ENDIF DYNAMIC_LINK}
  95. {$ENDIF}
  96. {$IFDEF DYNAMIC_LINK}
  97. var
  98.   _CreateSemaphoreA: Pointer;
  99. function CreateSemaphoreA;
  100. begin
  101.   GetProcedureAddress(_CreateSemaphoreA, kernel32, 'CreateSemaphoreA');
  102.   asm
  103.     mov esp, ebp
  104.     pop ebp
  105.     jmp [_CreateSemaphoreA]
  106.   end;
  107. end;
  108. {$ELSE}
  109. function CreateSemaphoreA; external kernel32 name 'CreateSemaphoreA';
  110. {$ENDIF DYNAMIC_LINK}
  111. {$IFDEF DYNAMIC_LINK}
  112. var
  113.   _CreateSemaphoreW: Pointer;
  114. function CreateSemaphoreW;
  115. begin
  116.   GetProcedureAddress(_CreateSemaphoreW, kernel32, 'CreateSemaphoreW');
  117.   asm
  118.     mov esp, ebp
  119.     pop ebp
  120.     jmp [_CreateSemaphoreW]
  121.   end;
  122. end;
  123. {$ELSE}
  124. function CreateSemaphoreW; external kernel32 name 'CreateSemaphoreW';
  125. {$ENDIF DYNAMIC_LINK}
  126. {$IFDEF UNICODE}
  127. {$IFDEF DYNAMIC_LINK}
  128. var
  129.   _CreateSemaphore: Pointer;
  130. function CreateSemaphore;
  131. begin
  132.   GetProcedureAddress(_CreateSemaphore, kernel32, 'CreateSemaphoreW');
  133.   asm
  134.     mov esp, ebp
  135.     pop ebp
  136.     jmp [_CreateSemaphore]
  137.   end;
  138. end;
  139. {$ELSE}
  140. function CreateSemaphore; external kernel32 name 'CreateSemaphoreW';
  141. {$ENDIF DYNAMIC_LINK}
  142. {$ELSE}
  143. {$IFDEF DYNAMIC_LINK}
  144. var
  145.   _CreateSemaphore: Pointer;
  146. function CreateSemaphore;
  147. begin
  148.   GetProcedureAddress(_CreateSemaphore, kernel32, 'CreateSemaphoreA');
  149.   asm
  150.     mov esp, ebp
  151.     pop ebp
  152.     jmp [_CreateSemaphore]
  153.   end;
  154. end;
  155. {$ELSE}
  156. function CreateSemaphore; external kernel32 name 'CreateSemaphoreA';
  157. {$ENDIF DYNAMIC_LINK}
  158. {$ENDIF}
  159. {$IFDEF DYNAMIC_LINK}
  160. var
  161.   _OpenSemaphoreA: Pointer;
  162. function OpenSemaphoreA;
  163. begin
  164.   GetProcedureAddress(_OpenSemaphoreA, kernel32, 'OpenSemaphoreA');
  165.   asm
  166.     mov esp, ebp
  167.     pop ebp
  168.     jmp [_OpenSemaphoreA]
  169.   end;
  170. end;
  171. {$ELSE}
  172. function OpenSemaphoreA; external kernel32 name 'OpenSemaphoreA';
  173. {$ENDIF DYNAMIC_LINK}
  174. {$IFDEF DYNAMIC_LINK}
  175. var
  176.   _OpenSemaphoreW: Pointer;
  177. function OpenSemaphoreW;
  178. begin
  179.   GetProcedureAddress(_OpenSemaphoreW, kernel32, 'OpenSemaphoreW');
  180.   asm
  181.     mov esp, ebp
  182.     pop ebp
  183.     jmp [_OpenSemaphoreW]
  184.   end;
  185. end;
  186. {$ELSE}
  187. function OpenSemaphoreW; external kernel32 name 'OpenSemaphoreW';
  188. {$ENDIF DYNAMIC_LINK}
  189. {$IFDEF UNICODE}
  190. {$IFDEF DYNAMIC_LINK}
  191. var
  192.   _OpenSemaphore: Pointer;
  193. function OpenSemaphore;
  194. begin
  195.   GetProcedureAddress(_OpenSemaphore, kernel32, 'OpenSemaphoreW');
  196.   asm
  197.     mov esp, ebp
  198.     pop ebp
  199.     jmp [_OpenSemaphore]
  200.   end;
  201. end;
  202. {$ELSE}
  203. function OpenSemaphore; external kernel32 name 'OpenSemaphoreW';
  204. {$ENDIF DYNAMIC_LINK}
  205. {$ELSE}
  206. {$IFDEF DYNAMIC_LINK}
  207. var
  208.   _OpenSemaphore: Pointer;
  209. function OpenSemaphore;
  210. begin
  211.   GetProcedureAddress(_OpenSemaphore, kernel32, 'OpenSemaphoreA');
  212.   asm
  213.     mov esp, ebp
  214.     pop ebp
  215.     jmp [_OpenSemaphore]
  216.   end;
  217. end;
  218. {$ELSE}
  219. function OpenSemaphore; external kernel32 name 'OpenSemaphoreA';
  220. {$ENDIF DYNAMIC_LINK}
  221. {$ENDIF}
  222. {$IFDEF DYNAMIC_LINK}
  223. var
  224.   _CreateWaitableTimerA: Pointer;
  225. function CreateWaitableTimerA;
  226. begin
  227.   GetProcedureAddress(_CreateWaitableTimerA, kernel32, 'CreateWaitableTimerA');
  228.   asm
  229.     mov esp, ebp
  230.     pop ebp
  231.     jmp [_CreateWaitableTimerA]
  232.   end;
  233. end;
  234. {$ELSE}
  235. function CreateWaitableTimerA; external kernel32 name 'CreateWaitableTimerA';
  236. {$ENDIF DYNAMIC_LINK}
  237. {$IFDEF DYNAMIC_LINK}
  238. var
  239.   _CreateWaitableTimerW: Pointer;
  240. function CreateWaitableTimerW;
  241. begin
  242.   GetProcedureAddress(_CreateWaitableTimerW, kernel32, 'CreateWaitableTimerW');
  243.   asm
  244.     mov esp, ebp
  245.     pop ebp
  246.     jmp [_CreateWaitableTimerW]
  247.   end;
  248. end;
  249. {$ELSE}
  250. function CreateWaitableTimerW; external kernel32 name 'CreateWaitableTimerW';
  251. {$ENDIF DYNAMIC_LINK}
  252. {$IFDEF UNICODE}
  253. {$IFDEF DYNAMIC_LINK}
  254. var
  255.   _CreateWaitableTimer: Pointer;
  256. function CreateWaitableTimer;
  257. begin
  258.   GetProcedureAddress(_CreateWaitableTimer, kernel32, 'CreateWaitableTimerW');
  259.   asm
  260.     mov esp, ebp
  261.     pop ebp
  262.     jmp [_CreateWaitableTimer]
  263.   end;
  264. end;
  265. {$ELSE}
  266. function CreateWaitableTimer; external kernel32 name 'CreateWaitableTimerW';
  267. {$ENDIF DYNAMIC_LINK}
  268. {$ELSE}
  269. {$IFDEF DYNAMIC_LINK}
  270. var
  271.   _CreateWaitableTimer: Pointer;
  272. function CreateWaitableTimer;
  273. begin
  274.   GetProcedureAddress(_CreateWaitableTimer, kernel32, 'CreateWaitableTimerA');
  275.   asm
  276.     mov esp, ebp
  277.     pop ebp
  278.     jmp [_CreateWaitableTimer]
  279.   end;
  280. end;
  281. {$ELSE}
  282. function CreateWaitableTimer; external kernel32 name 'CreateWaitableTimerA';
  283. {$ENDIF DYNAMIC_LINK}
  284. {$ENDIF}
  285. {$IFDEF DYNAMIC_LINK}
  286. var
  287.   _OpenWaitableTimerA: Pointer;
  288. function OpenWaitableTimerA;
  289. begin
  290.   GetProcedureAddress(_OpenWaitableTimerA, kernel32, 'OpenWaitableTimerA');
  291.   asm
  292.     mov esp, ebp
  293.     pop ebp
  294.     jmp [_OpenWaitableTimerA]
  295.   end;
  296. end;
  297. {$ELSE}
  298. function OpenWaitableTimerA; external kernel32 name 'OpenWaitableTimerA';
  299. {$ENDIF DYNAMIC_LINK}
  300. {$IFDEF DYNAMIC_LINK}
  301. var
  302.   _OpenWaitableTimerW: Pointer;
  303. function OpenWaitableTimerW;
  304. begin
  305.   GetProcedureAddress(_OpenWaitableTimerW, kernel32, 'OpenWaitableTimerW');
  306.   asm
  307.     mov esp, ebp
  308.     pop ebp
  309.     jmp [_OpenWaitableTimerW]
  310.   end;
  311. end;
  312. {$ELSE}
  313. function OpenWaitableTimerW; external kernel32 name 'OpenWaitableTimerW';
  314. {$ENDIF DYNAMIC_LINK}
  315. {$IFDEF UNICODE}
  316. {$IFDEF DYNAMIC_LINK}
  317. var
  318.   _OpenWaitableTimer: Pointer;
  319. function OpenWaitableTimer;
  320. begin
  321.   GetProcedureAddress(_OpenWaitableTimer, kernel32, 'OpenWaitableTimerW');
  322.   asm
  323.     mov esp, ebp
  324.     pop ebp
  325.     jmp [_OpenWaitableTimer]
  326.   end;
  327. end;
  328. {$ELSE}
  329. function OpenWaitableTimer; external kernel32 name 'OpenWaitableTimerW';
  330. {$ENDIF DYNAMIC_LINK}
  331. {$ELSE}
  332. {$IFDEF DYNAMIC_LINK}
  333. var
  334.   _OpenWaitableTimer: Pointer;
  335. function OpenWaitableTimer;
  336. begin
  337.   GetProcedureAddress(_OpenWaitableTimer, kernel32, 'OpenWaitableTimerA');
  338.   asm
  339.     mov esp, ebp
  340.     pop ebp
  341.     jmp [_OpenWaitableTimer]
  342.   end;
  343. end;
  344. {$ELSE}
  345. function OpenWaitableTimer; external kernel32 name 'OpenWaitableTimerA';
  346. {$ENDIF DYNAMIC_LINK}
  347. {$ENDIF}
  348. {$IFDEF DYNAMIC_LINK}
  349. var
  350.   _SetWaitableTimer: Pointer;
  351. function SetWaitableTimer;
  352. begin
  353.   GetProcedureAddress(_SetWaitableTimer, kernel32, 'SetWaitableTimer');
  354.   asm
  355.     mov esp, ebp
  356.     pop ebp
  357.     jmp [_SetWaitableTimer]
  358.   end;
  359. end;
  360. {$ELSE}
  361. function SetWaitableTimer; external kernel32 name 'SetWaitableTimer';
  362. {$ENDIF DYNAMIC_LINK}
  363. {$IFDEF DYNAMIC_LINK}
  364. var
  365.   _CancelWaitableTimer: Pointer;
  366. function CancelWaitableTimer;
  367. begin
  368.   GetProcedureAddress(_CancelWaitableTimer, kernel32, 'CancelWaitableTimer');
  369.   asm
  370.     mov esp, ebp
  371.     pop ebp
  372.     jmp [_CancelWaitableTimer]
  373.   end;
  374. end;
  375. {$ELSE}
  376. function CancelWaitableTimer; external kernel32 name 'CancelWaitableTimer';
  377. {$ENDIF DYNAMIC_LINK}
  378. {$IFDEF DYNAMIC_LINK}
  379. var
  380.   _CreateFileMappingA: Pointer;
  381. function CreateFileMappingA;
  382. begin
  383.   GetProcedureAddress(_CreateFileMappingA, kernel32, 'CreateFileMappingA');
  384.   asm
  385.     mov esp, ebp
  386.     pop ebp
  387.     jmp [_CreateFileMappingA]
  388.   end;
  389. end;
  390. {$ELSE}
  391. function CreateFileMappingA; external kernel32 name 'CreateFileMappingA';
  392. {$ENDIF DYNAMIC_LINK}
  393. {$IFDEF DYNAMIC_LINK}
  394. var
  395.   _CreateFileMappingW: Pointer;
  396. function CreateFileMappingW;
  397. begin
  398.   GetProcedureAddress(_CreateFileMappingW, kernel32, 'CreateFileMappingW');
  399.   asm
  400.     mov esp, ebp
  401.     pop ebp
  402.     jmp [_CreateFileMappingW]
  403.   end;
  404. end;
  405. {$ELSE}
  406. function CreateFileMappingW; external kernel32 name 'CreateFileMappingW';
  407. {$ENDIF DYNAMIC_LINK}
  408. {$IFDEF UNICODE}
  409. {$IFDEF DYNAMIC_LINK}
  410. var
  411.   _CreateFileMapping: Pointer;
  412. function CreateFileMapping;
  413. begin
  414.   GetProcedureAddress(_CreateFileMapping, kernel32, 'CreateFileMappingW');
  415.   asm
  416.     mov esp, ebp
  417.     pop ebp
  418.     jmp [_CreateFileMapping]
  419.   end;
  420. end;
  421. {$ELSE}
  422. function CreateFileMapping; external kernel32 name 'CreateFileMappingW';
  423. {$ENDIF DYNAMIC_LINK}
  424. {$ELSE}
  425. {$IFDEF DYNAMIC_LINK}
  426. var
  427.   _CreateFileMapping: Pointer;
  428. function CreateFileMapping;
  429. begin
  430.   GetProcedureAddress(_CreateFileMapping, kernel32, 'CreateFileMappingA');
  431.   asm
  432.     mov esp, ebp
  433.     pop ebp
  434.     jmp [_CreateFileMapping]
  435.   end;
  436. end;
  437. {$ELSE}
  438. function CreateFileMapping; external kernel32 name 'CreateFileMappingA';
  439. {$ENDIF DYNAMIC_LINK}
  440. {$ENDIF}
  441. {$IFDEF DYNAMIC_LINK}
  442. var
  443.   _OpenFileMappingA: Pointer;
  444. function OpenFileMappingA;
  445. begin
  446.   GetProcedureAddress(_OpenFileMappingA, kernel32, 'OpenFileMappingA');
  447.   asm
  448.     mov esp, ebp
  449.     pop ebp
  450.     jmp [_OpenFileMappingA]
  451.   end;
  452. end;
  453. {$ELSE}
  454. function OpenFileMappingA; external kernel32 name 'OpenFileMappingA';
  455. {$ENDIF DYNAMIC_LINK}
  456. {$IFDEF DYNAMIC_LINK}
  457. var
  458.   _OpenFileMappingW: Pointer;
  459. function OpenFileMappingW;
  460. begin
  461.   GetProcedureAddress(_OpenFileMappingW, kernel32, 'OpenFileMappingW');
  462.   asm
  463.     mov esp, ebp
  464.     pop ebp
  465.     jmp [_OpenFileMappingW]
  466.   end;
  467. end;
  468. {$ELSE}
  469. function OpenFileMappingW; external kernel32 name 'OpenFileMappingW';
  470. {$ENDIF DYNAMIC_LINK}
  471. {$IFDEF UNICODE}
  472. {$IFDEF DYNAMIC_LINK}
  473. var
  474.   _OpenFileMapping: Pointer;
  475. function OpenFileMapping;
  476. begin
  477.   GetProcedureAddress(_OpenFileMapping, kernel32, 'OpenFileMappingW');
  478.   asm
  479.     mov esp, ebp
  480.     pop ebp
  481.     jmp [_OpenFileMapping]
  482.   end;
  483. end;
  484. {$ELSE}
  485. function OpenFileMapping; external kernel32 name 'OpenFileMappingW';
  486. {$ENDIF DYNAMIC_LINK}
  487. {$ELSE}
  488. {$IFDEF DYNAMIC_LINK}
  489. var
  490.   _OpenFileMapping: Pointer;
  491. function OpenFileMapping;
  492. begin
  493.   GetProcedureAddress(_OpenFileMapping, kernel32, 'OpenFileMappingA');
  494.   asm
  495.     mov esp, ebp
  496.     pop ebp
  497.     jmp [_OpenFileMapping]
  498.   end;
  499. end;
  500. {$ELSE}
  501. function OpenFileMapping; external kernel32 name 'OpenFileMappingA';
  502. {$ENDIF DYNAMIC_LINK}
  503. {$ENDIF}
  504. {$IFDEF DYNAMIC_LINK}
  505. var
  506.   _GetLogicalDriveStringsA: Pointer;
  507. function GetLogicalDriveStringsA;
  508. begin
  509.   GetProcedureAddress(_GetLogicalDriveStringsA, kernel32, 'GetLogicalDriveStringsA');
  510.   asm
  511.     mov esp, ebp
  512.     pop ebp
  513.     jmp [_GetLogicalDriveStringsA]
  514.   end;
  515. end;
  516. {$ELSE}
  517. function GetLogicalDriveStringsA; external kernel32 name 'GetLogicalDriveStringsA';
  518. {$ENDIF DYNAMIC_LINK}
  519. {$IFDEF DYNAMIC_LINK}
  520. var
  521.   _GetLogicalDriveStringsW: Pointer;
  522. function GetLogicalDriveStringsW;
  523. begin
  524.   GetProcedureAddress(_GetLogicalDriveStringsW, kernel32, 'GetLogicalDriveStringsW');
  525.   asm
  526.     mov esp, ebp
  527.     pop ebp
  528.     jmp [_GetLogicalDriveStringsW]
  529.   end;
  530. end;
  531. {$ELSE}
  532. function GetLogicalDriveStringsW; external kernel32 name 'GetLogicalDriveStringsW';
  533. {$ENDIF DYNAMIC_LINK}
  534. {$IFDEF UNICODE}
  535. {$IFDEF DYNAMIC_LINK}
  536. var
  537.   _GetLogicalDriveStrings: Pointer;
  538. function GetLogicalDriveStrings;
  539. begin
  540.   GetProcedureAddress(_GetLogicalDriveStrings, kernel32, 'GetLogicalDriveStringsW');
  541.   asm
  542.     mov esp, ebp
  543.     pop ebp
  544.     jmp [_GetLogicalDriveStrings]
  545.   end;
  546. end;
  547. {$ELSE}
  548. function GetLogicalDriveStrings; external kernel32 name 'GetLogicalDriveStringsW';
  549. {$ENDIF DYNAMIC_LINK}
  550. {$ELSE}
  551. {$IFDEF DYNAMIC_LINK}
  552. var
  553.   _GetLogicalDriveStrings: Pointer;
  554. function GetLogicalDriveStrings;
  555. begin
  556.   GetProcedureAddress(_GetLogicalDriveStrings, kernel32, 'GetLogicalDriveStringsA');
  557.   asm
  558.     mov esp, ebp
  559.     pop ebp
  560.     jmp [_GetLogicalDriveStrings]
  561.   end;
  562. end;
  563. {$ELSE}
  564. function GetLogicalDriveStrings; external kernel32 name 'GetLogicalDriveStringsA';
  565. {$ENDIF DYNAMIC_LINK}
  566. {$ENDIF}
  567. {$IFDEF DYNAMIC_LINK}
  568. var
  569.   _CreateMemResNotification: Pointer;
  570. function CreateMemoryResourceNotification;
  571. begin
  572.   GetProcedureAddress(_CreateMemResNotification, kernel32, 'CreateMemoryResourceNotification');
  573.   asm
  574.     mov esp, ebp
  575.     pop ebp
  576.     jmp [_CreateMemResNotification]
  577.   end;
  578. end;
  579. {$ELSE}
  580. function CreateMemoryResourceNotification; external kernel32 name 'CreateMemoryResourceNotification';
  581. {$ENDIF DYNAMIC_LINK}
  582. {$IFDEF DYNAMIC_LINK}
  583. var
  584.   _QueryMemoryResourceNotification: Pointer;
  585. function QueryMemoryResourceNotification;
  586. begin
  587.   GetProcedureAddress(_QueryMemoryResourceNotification, kernel32, 'QueryMemoryResourceNotification');
  588.   asm
  589.     mov esp, ebp
  590.     pop ebp
  591.     jmp [_QueryMemoryResourceNotification]
  592.   end;
  593. end;
  594. {$ELSE}
  595. function QueryMemoryResourceNotification; external kernel32 name 'QueryMemoryResourceNotification';
  596. {$ENDIF DYNAMIC_LINK}
  597. {$IFDEF DYNAMIC_LINK}
  598. var
  599.   _LoadLibraryA: Pointer;
  600. function LoadLibraryA;
  601. begin
  602.   GetProcedureAddress(_LoadLibraryA, kernel32, 'LoadLibraryA');
  603.   asm
  604.     mov esp, ebp
  605.     pop ebp
  606.     jmp [_LoadLibraryA]
  607.   end;
  608. end;
  609. {$ELSE}
  610. function LoadLibraryA; external kernel32 name 'LoadLibraryA';
  611. {$ENDIF DYNAMIC_LINK}
  612. {$IFDEF DYNAMIC_LINK}
  613. var
  614.   _LoadLibraryW: Pointer;
  615. function LoadLibraryW;
  616. begin
  617.   GetProcedureAddress(_LoadLibraryW, kernel32, 'LoadLibraryW');
  618.   asm
  619.     mov esp, ebp
  620.     pop ebp
  621.     jmp [_LoadLibraryW]
  622.   end;
  623. end;
  624. {$ELSE}
  625. function LoadLibraryW; external kernel32 name 'LoadLibraryW';
  626. {$ENDIF DYNAMIC_LINK}
  627. {$IFDEF UNICODE}
  628. {$IFDEF DYNAMIC_LINK}
  629. var
  630.   _LoadLibrary: Pointer;
  631. function LoadLibrary;
  632. begin
  633.   GetProcedureAddress(_LoadLibrary, kernel32, 'LoadLibraryW');
  634.   asm
  635.     mov esp, ebp
  636.     pop ebp
  637.     jmp [_LoadLibrary]
  638.   end;
  639. end;
  640. {$ELSE}
  641. function LoadLibrary; external kernel32 name 'LoadLibraryW';
  642. {$ENDIF DYNAMIC_LINK}
  643. {$ELSE}
  644. {$IFDEF DYNAMIC_LINK}
  645. var
  646.   _LoadLibrary: Pointer;
  647. function LoadLibrary;
  648. begin
  649.   GetProcedureAddress(_LoadLibrary, kernel32, 'LoadLibraryA');
  650.   asm
  651.     mov esp, ebp
  652.     pop ebp
  653.     jmp [_LoadLibrary]
  654.   end;
  655. end;
  656. {$ELSE}
  657. function LoadLibrary; external kernel32 name 'LoadLibraryA';
  658. {$ENDIF DYNAMIC_LINK}
  659. {$ENDIF}
  660. {$IFDEF DYNAMIC_LINK}
  661. var
  662.   _LoadLibraryExA: Pointer;
  663. function LoadLibraryExA;
  664. begin
  665.   GetProcedureAddress(_LoadLibraryExA, kernel32, 'LoadLibraryExA');
  666.   asm
  667.     mov esp, ebp
  668.     pop ebp
  669.     jmp [_LoadLibraryExA]
  670.   end;
  671. end;
  672. {$ELSE}
  673. function LoadLibraryExA; external kernel32 name 'LoadLibraryExA';
  674. {$ENDIF DYNAMIC_LINK}
  675. {$IFDEF DYNAMIC_LINK}
  676. var
  677.   _LoadLibraryExW: Pointer;
  678. function LoadLibraryExW;
  679. begin
  680.   GetProcedureAddress(_LoadLibraryExW, kernel32, 'LoadLibraryExW');
  681.   asm
  682.     mov esp, ebp
  683.     pop ebp
  684.     jmp [_LoadLibraryExW]
  685.   end;
  686. end;
  687. {$ELSE}
  688. function LoadLibraryExW; external kernel32 name 'LoadLibraryExW';
  689. {$ENDIF DYNAMIC_LINK}
  690. {$IFDEF UNICODE}
  691. {$IFDEF DYNAMIC_LINK}
  692. var
  693.   _LoadLibraryEx: Pointer;
  694. function LoadLibraryEx;
  695. begin
  696.   GetProcedureAddress(_LoadLibraryEx, kernel32, 'LoadLibraryExW');
  697.   asm
  698.     mov esp, ebp
  699.     pop ebp
  700.     jmp [_LoadLibraryEx]
  701.   end;
  702. end;
  703. {$ELSE}
  704. function LoadLibraryEx; external kernel32 name 'LoadLibraryExW';
  705. {$ENDIF DYNAMIC_LINK}
  706. {$ELSE}
  707. {$IFDEF DYNAMIC_LINK}
  708. var
  709.   _LoadLibraryEx: Pointer;
  710. function LoadLibraryEx;
  711. begin
  712.   GetProcedureAddress(_LoadLibraryEx, kernel32, 'LoadLibraryExA');
  713.   asm
  714.     mov esp, ebp
  715.     pop ebp
  716.     jmp [_LoadLibraryEx]
  717.   end;
  718. end;
  719. {$ELSE}
  720. function LoadLibraryEx; external kernel32 name 'LoadLibraryExA';
  721. {$ENDIF DYNAMIC_LINK}
  722. {$ENDIF}
  723. {$IFDEF DYNAMIC_LINK}
  724. var
  725.   _GetModuleFileNameA: Pointer;
  726. function GetModuleFileNameA;
  727. begin
  728.   GetProcedureAddress(_GetModuleFileNameA, kernel32, 'GetModuleFileNameA');
  729.   asm
  730.     mov esp, ebp
  731.     pop ebp
  732.     jmp [_GetModuleFileNameA]
  733.   end;
  734. end;
  735. {$ELSE}
  736. function GetModuleFileNameA; external kernel32 name 'GetModuleFileNameA';
  737. {$ENDIF DYNAMIC_LINK}
  738. {$IFDEF DYNAMIC_LINK}
  739. var
  740.   _GetModuleFileNameW: Pointer;
  741. function GetModuleFileNameW;
  742. begin
  743.   GetProcedureAddress(_GetModuleFileNameW, kernel32, 'GetModuleFileNameW');
  744.   asm
  745.     mov esp, ebp
  746.     pop ebp
  747.     jmp [_GetModuleFileNameW]
  748.   end;
  749. end;
  750. {$ELSE}
  751. function GetModuleFileNameW; external kernel32 name 'GetModuleFileNameW';
  752. {$ENDIF DYNAMIC_LINK}
  753. {$IFDEF UNICODE}
  754. {$IFDEF DYNAMIC_LINK}
  755. var
  756.   _GetModuleFileName: Pointer;
  757. function GetModuleFileName;
  758. begin
  759.   GetProcedureAddress(_GetModuleFileName, kernel32, 'GetModuleFileNameW');
  760.   asm
  761.     mov esp, ebp
  762.     pop ebp
  763.     jmp [_GetModuleFileName]
  764.   end;
  765. end;
  766. {$ELSE}
  767. function GetModuleFileName; external kernel32 name 'GetModuleFileNameW';
  768. {$ENDIF DYNAMIC_LINK}
  769. {$ELSE}
  770. {$IFDEF DYNAMIC_LINK}
  771. var
  772.   _GetModuleFileName: Pointer;
  773. function GetModuleFileName;
  774. begin
  775.   GetProcedureAddress(_GetModuleFileName, kernel32, 'GetModuleFileNameA');
  776.   asm
  777.     mov esp, ebp
  778.     pop ebp
  779.     jmp [_GetModuleFileName]
  780.   end;
  781. end;
  782. {$ELSE}
  783. function GetModuleFileName; external kernel32 name 'GetModuleFileNameA';
  784. {$ENDIF DYNAMIC_LINK}
  785. {$ENDIF}
  786. {$IFDEF DYNAMIC_LINK}
  787. var
  788.   _GetModuleHandleA: Pointer;
  789. function GetModuleHandleA;
  790. begin
  791.   GetProcedureAddress(_GetModuleHandleA, kernel32, 'GetModuleHandleA');
  792.   asm
  793.     mov esp, ebp
  794.     pop ebp
  795.     jmp [_GetModuleHandleA]
  796.   end;
  797. end;
  798. {$ELSE}
  799. function GetModuleHandleA; external kernel32 name 'GetModuleHandleA';
  800. {$ENDIF DYNAMIC_LINK}
  801. {$IFDEF DYNAMIC_LINK}
  802. var
  803.   _GetModuleHandleW: Pointer;
  804. function GetModuleHandleW;
  805. begin
  806.   GetProcedureAddress(_GetModuleHandleW, kernel32, 'GetModuleHandleW');
  807.   asm
  808.     mov esp, ebp
  809.     pop ebp
  810.     jmp [_GetModuleHandleW]
  811.   end;
  812. end;
  813. {$ELSE}
  814. function GetModuleHandleW; external kernel32 name 'GetModuleHandleW';
  815. {$ENDIF DYNAMIC_LINK}
  816. {$IFDEF UNICODE}
  817. {$IFDEF DYNAMIC_LINK}
  818. var
  819.   _GetModuleHandle: Pointer;
  820. function GetModuleHandle;
  821. begin
  822.   GetProcedureAddress(_GetModuleHandle, kernel32, 'GetModuleHandleW');
  823.   asm
  824.     mov esp, ebp
  825.     pop ebp
  826.     jmp [_GetModuleHandle]
  827.   end;
  828. end;
  829. {$ELSE}
  830. function GetModuleHandle; external kernel32 name 'GetModuleHandleW';
  831. {$ENDIF DYNAMIC_LINK}
  832. {$ELSE}
  833. {$IFDEF DYNAMIC_LINK}
  834. var
  835.   _GetModuleHandle: Pointer;
  836. function GetModuleHandle;
  837. begin
  838.   GetProcedureAddress(_GetModuleHandle, kernel32, 'GetModuleHandleA');
  839.   asm
  840.     mov esp, ebp
  841.     pop ebp
  842.     jmp [_GetModuleHandle]
  843.   end;
  844. end;
  845. {$ELSE}
  846. function GetModuleHandle; external kernel32 name 'GetModuleHandleA';
  847. {$ENDIF DYNAMIC_LINK}
  848. {$ENDIF}
  849. {$IFDEF DYNAMIC_LINK}
  850. var
  851.   _CreateProcessA: Pointer;
  852. function CreateProcessA;
  853. begin
  854.   GetProcedureAddress(_CreateProcessA, kernel32, 'CreateProcessA');
  855.   asm
  856.     mov esp, ebp
  857.     pop ebp
  858.     jmp [_CreateProcessA]
  859.   end;
  860. end;
  861. {$ELSE}
  862. function CreateProcessA; external kernel32 name 'CreateProcessA';
  863. {$ENDIF DYNAMIC_LINK}
  864. {$IFDEF DYNAMIC_LINK}
  865. var
  866.   _CreateProcessW: Pointer;
  867. function CreateProcessW;
  868. begin
  869.   GetProcedureAddress(_CreateProcessW, kernel32, 'CreateProcessW');
  870.   asm
  871.     mov esp, ebp
  872.     pop ebp
  873.     jmp [_CreateProcessW]
  874.   end;
  875. end;
  876. {$ELSE}
  877. function CreateProcessW; external kernel32 name 'CreateProcessW';
  878. {$ENDIF DYNAMIC_LINK}
  879. {$IFDEF UNICODE}
  880. {$IFDEF DYNAMIC_LINK}
  881. var
  882.   _CreateProcess: Pointer;
  883. function CreateProcess;
  884. begin
  885.   GetProcedureAddress(_CreateProcess, kernel32, 'CreateProcessW');
  886.   asm
  887.     mov esp, ebp
  888.     pop ebp
  889.     jmp [_CreateProcess]
  890.   end;
  891. end;
  892. {$ELSE}
  893. function CreateProcess; external kernel32 name 'CreateProcessW';
  894. {$ENDIF DYNAMIC_LINK}
  895. {$ELSE}
  896. {$IFDEF DYNAMIC_LINK}
  897. var
  898.   _CreateProcess: Pointer;
  899. function CreateProcess;
  900. begin
  901.   GetProcedureAddress(_CreateProcess, kernel32, 'CreateProcessA');
  902.   asm
  903.     mov esp, ebp
  904.     pop ebp
  905.     jmp [_CreateProcess]
  906.   end;
  907. end;
  908. {$ELSE}
  909. function CreateProcess; external kernel32 name 'CreateProcessA';
  910. {$ENDIF DYNAMIC_LINK}
  911. {$ENDIF}
  912. {$IFDEF DYNAMIC_LINK}
  913. var
  914.   _GetModuleHandleExA: Pointer;
  915. function GetModuleHandleExA;
  916. begin
  917.   GetProcedureAddress(_GetModuleHandleExA, kernel32, 'GetModuleHandleExA');
  918.   asm
  919.     mov esp, ebp
  920.     pop ebp
  921.     jmp [_GetModuleHandleExA]
  922.   end;
  923. end;
  924. {$ELSE}
  925. function GetModuleHandleExA; external kernel32 name 'GetModuleHandleExA';
  926. {$ENDIF DYNAMIC_LINK}
  927. {$IFDEF DYNAMIC_LINK}
  928. var
  929.   _GetModuleHandleExW: Pointer;
  930. function GetModuleHandleExW;
  931. begin
  932.   GetProcedureAddress(_GetModuleHandleExW, kernel32, 'GetModuleHandleExW');
  933.   asm
  934.     mov esp, ebp
  935.     pop ebp
  936.     jmp [_GetModuleHandleExW]
  937.   end;
  938. end;
  939. {$ELSE}
  940. function GetModuleHandleExW; external kernel32 name 'GetModuleHandleExW';
  941. {$ENDIF DYNAMIC_LINK}
  942. {$IFDEF UNICODE}
  943. {$IFDEF DYNAMIC_LINK}
  944. var
  945.   _GetModuleHandleEx: Pointer;
  946. function GetModuleHandleEx;
  947. begin
  948.   GetProcedureAddress(_GetModuleHandleEx, kernel32, 'GetModuleHandleExW');
  949.   asm
  950.     mov esp, ebp
  951.     pop ebp
  952.     jmp [_GetModuleHandleEx]
  953.   end;
  954. end;
  955. {$ELSE}
  956. function GetModuleHandleEx; external kernel32 name 'GetModuleHandleExW';
  957. {$ENDIF DYNAMIC_LINK}
  958. {$ELSE}
  959. {$IFDEF DYNAMIC_LINK}
  960. var
  961.   _GetModuleHandleEx: Pointer;
  962. function GetModuleHandleEx;
  963. begin
  964.   GetProcedureAddress(_GetModuleHandleEx, kernel32, 'GetModuleHandleExA');
  965.   asm
  966.     mov esp, ebp
  967.     pop ebp
  968.     jmp [_GetModuleHandleEx]
  969.   end;
  970. end;
  971. {$ELSE}
  972. function GetModuleHandleEx; external kernel32 name 'GetModuleHandleExA';
  973. {$ENDIF DYNAMIC_LINK}
  974. {$ENDIF}
  975. {$IFDEF DYNAMIC_LINK}
  976. var
  977.   _SetProcessShutdownParameters: Pointer;
  978. function SetProcessShutdownParameters;
  979. begin
  980.   GetProcedureAddress(_SetProcessShutdownParameters, kernel32, 'SetProcessShutdownParameters');
  981.   asm
  982.     mov esp, ebp
  983.     pop ebp
  984.     jmp [_SetProcessShutdownParameters]
  985.   end;
  986. end;
  987. {$ELSE}
  988. function SetProcessShutdownParameters; external kernel32 name 'SetProcessShutdownParameters';
  989. {$ENDIF DYNAMIC_LINK}
  990. {$IFDEF DYNAMIC_LINK}
  991. var
  992.   _GetProcessShutdownParameters: Pointer;
  993. function GetProcessShutdownParameters;
  994. begin
  995.   GetProcedureAddress(_GetProcessShutdownParameters, kernel32, 'GetProcessShutdownParameters');
  996.   asm
  997.     mov esp, ebp
  998.     pop ebp
  999.     jmp [_GetProcessShutdownParameters]
  1000.   end;
  1001. end;
  1002. {$ELSE}
  1003. function GetProcessShutdownParameters; external kernel32 name 'GetProcessShutdownParameters';
  1004. {$ENDIF DYNAMIC_LINK}
  1005. {$IFDEF DYNAMIC_LINK}
  1006. var
  1007.   _GetProcessVersion: Pointer;
  1008. function GetProcessVersion;
  1009. begin
  1010.   GetProcedureAddress(_GetProcessVersion, kernel32, 'GetProcessVersion');
  1011.   asm
  1012.     mov esp, ebp
  1013.     pop ebp
  1014.     jmp [_GetProcessVersion]
  1015.   end;
  1016. end;
  1017. {$ELSE}
  1018. function GetProcessVersion; external kernel32 name 'GetProcessVersion';
  1019. {$ENDIF DYNAMIC_LINK}
  1020. {$IFDEF DYNAMIC_LINK}
  1021. var
  1022.   _FatalAppExitA: Pointer;
  1023. procedure FatalAppExitA;
  1024. begin
  1025.   GetProcedureAddress(_FatalAppExitA, kernel32, 'FatalAppExitA');
  1026.   asm
  1027.     mov esp, ebp
  1028.     pop ebp
  1029.     jmp [_FatalAppExitA]
  1030.   end;
  1031. end;
  1032. {$ELSE}
  1033. procedure FatalAppExitA; external kernel32 name 'FatalAppExitA';
  1034. {$ENDIF DYNAMIC_LINK}
  1035. {$IFDEF DYNAMIC_LINK}
  1036. var
  1037.   _FatalAppExitW: Pointer;
  1038. procedure FatalAppExitW;
  1039. begin
  1040.   GetProcedureAddress(_FatalAppExitW, kernel32, 'FatalAppExitW');
  1041.   asm
  1042.     mov esp, ebp
  1043.     pop ebp
  1044.     jmp [_FatalAppExitW]
  1045.   end;
  1046. end;
  1047. {$ELSE}
  1048. procedure FatalAppExitW; external kernel32 name 'FatalAppExitW';
  1049. {$ENDIF DYNAMIC_LINK}
  1050. {$IFDEF UNICODE}
  1051. {$IFDEF DYNAMIC_LINK}
  1052. var
  1053.   _FatalAppExit: Pointer;
  1054. procedure FatalAppExit;
  1055. begin
  1056.   GetProcedureAddress(_FatalAppExit, kernel32, 'FatalAppExitW');
  1057.   asm
  1058.     mov esp, ebp
  1059.     pop ebp
  1060.     jmp [_FatalAppExit]
  1061.   end;
  1062. end;
  1063. {$ELSE}
  1064. procedure FatalAppExit; external kernel32 name 'FatalAppExitW';
  1065. {$ENDIF DYNAMIC_LINK}
  1066. {$ELSE}
  1067. {$IFDEF DYNAMIC_LINK}
  1068. var
  1069.   _FatalAppExit: Pointer;
  1070. procedure FatalAppExit;
  1071. begin
  1072.   GetProcedureAddress(_FatalAppExit, kernel32, 'FatalAppExitA');
  1073.   asm
  1074.     mov esp, ebp
  1075.     pop ebp
  1076.     jmp [_FatalAppExit]
  1077.   end;
  1078. end;
  1079. {$ELSE}
  1080. procedure FatalAppExit; external kernel32 name 'FatalAppExitA';
  1081. {$ENDIF DYNAMIC_LINK}
  1082. {$ENDIF}
  1083. {$IFDEF DYNAMIC_LINK}
  1084. var
  1085.   _GetStartupInfoA: Pointer;
  1086. procedure GetStartupInfoA;
  1087. begin
  1088.   GetProcedureAddress(_GetStartupInfoA, kernel32, 'GetStartupInfoA');
  1089.   asm
  1090.     mov esp, ebp
  1091.     pop ebp
  1092.     jmp [_GetStartupInfoA]
  1093.   end;
  1094. end;
  1095. {$ELSE}
  1096. procedure GetStartupInfoA; external kernel32 name 'GetStartupInfoA';
  1097. {$ENDIF DYNAMIC_LINK}
  1098. {$IFDEF DYNAMIC_LINK}
  1099. var
  1100.   _GetStartupInfoW: Pointer;
  1101. procedure GetStartupInfoW;
  1102. begin
  1103.   GetProcedureAddress(_GetStartupInfoW, kernel32, 'GetStartupInfoW');
  1104.   asm
  1105.     mov esp, ebp
  1106.     pop ebp
  1107.     jmp [_GetStartupInfoW]
  1108.   end;
  1109. end;
  1110. {$ELSE}
  1111. procedure GetStartupInfoW; external kernel32 name 'GetStartupInfoW';
  1112. {$ENDIF DYNAMIC_LINK}
  1113. {$IFDEF UNICODE}
  1114. {$IFDEF DYNAMIC_LINK}
  1115. var
  1116.   _GetStartupInfo: Pointer;
  1117. procedure GetStartupInfo;
  1118. begin
  1119.   GetProcedureAddress(_GetStartupInfo, kernel32, 'GetStartupInfoW');
  1120.   asm
  1121.     mov esp, ebp
  1122.     pop ebp
  1123.     jmp [_GetStartupInfo]
  1124.   end;
  1125. end;
  1126. {$ELSE}
  1127. procedure GetStartupInfo; external kernel32 name 'GetStartupInfoW';
  1128. {$ENDIF DYNAMIC_LINK}
  1129. {$ELSE}
  1130. {$IFDEF DYNAMIC_LINK}
  1131. var
  1132.   _GetStartupInfo: Pointer;
  1133. procedure GetStartupInfo;
  1134. begin
  1135.   GetProcedureAddress(_GetStartupInfo, kernel32, 'GetStartupInfoA');
  1136.   asm
  1137.     mov esp, ebp
  1138.     pop ebp
  1139.     jmp [_GetStartupInfo]
  1140.   end;
  1141. end;
  1142. {$ELSE}
  1143. procedure GetStartupInfo; external kernel32 name 'GetStartupInfoA';
  1144. {$ENDIF DYNAMIC_LINK}
  1145. {$ENDIF}
  1146. {$IFDEF DYNAMIC_LINK}
  1147. var
  1148.   _GetCommandLineA: Pointer;
  1149. function GetCommandLineA;
  1150. begin
  1151.   GetProcedureAddress(_GetCommandLineA, kernel32, 'GetCommandLineA');
  1152.   asm
  1153.     mov esp, ebp
  1154.     pop ebp
  1155.     jmp [_GetCommandLineA]
  1156.   end;
  1157. end;
  1158. {$ELSE}
  1159. function GetCommandLineA; external kernel32 name 'GetCommandLineA';
  1160. {$ENDIF DYNAMIC_LINK}
  1161. {$IFDEF DYNAMIC_LINK}
  1162. var
  1163.   _GetCommandLineW: Pointer;
  1164. function GetCommandLineW;
  1165. begin
  1166.   GetProcedureAddress(_GetCommandLineW, kernel32, 'GetCommandLineW');
  1167.   asm
  1168.     mov esp, ebp
  1169.     pop ebp
  1170.     jmp [_GetCommandLineW]
  1171.   end;
  1172. end;
  1173. {$ELSE}
  1174. function GetCommandLineW; external kernel32 name 'GetCommandLineW';
  1175. {$ENDIF DYNAMIC_LINK}
  1176. {$IFDEF UNICODE}
  1177. {$IFDEF DYNAMIC_LINK}
  1178. var
  1179.   _GetCommandLine: Pointer;
  1180. function GetCommandLine;
  1181. begin
  1182.   GetProcedureAddress(_GetCommandLine, kernel32, 'GetCommandLineW');
  1183.   asm
  1184.     mov esp, ebp
  1185.     pop ebp
  1186.     jmp [_GetCommandLine]
  1187.   end;
  1188. end;
  1189. {$ELSE}
  1190. function GetCommandLine; external kernel32 name 'GetCommandLineW';
  1191. {$ENDIF DYNAMIC_LINK}
  1192. {$ELSE}
  1193. {$IFDEF DYNAMIC_LINK}
  1194. var
  1195.   _GetCommandLine: Pointer;
  1196. function GetCommandLine;
  1197. begin
  1198.   GetProcedureAddress(_GetCommandLine, kernel32, 'GetCommandLineA');
  1199.   asm
  1200.     mov esp, ebp
  1201.     pop ebp
  1202.     jmp [_GetCommandLine]
  1203.   end;
  1204. end;
  1205. {$ELSE}
  1206. function GetCommandLine; external kernel32 name 'GetCommandLineA';
  1207. {$ENDIF DYNAMIC_LINK}
  1208. {$ENDIF}
  1209. {$IFDEF DYNAMIC_LINK}
  1210. var
  1211.   _GetEnvironmentVariableA: Pointer;
  1212. function GetEnvironmentVariableA;
  1213. begin
  1214.   GetProcedureAddress(_GetEnvironmentVariableA, kernel32, 'GetEnvironmentVariableA');
  1215.   asm
  1216.     mov esp, ebp
  1217.     pop ebp
  1218.     jmp [_GetEnvironmentVariableA]
  1219.   end;
  1220. end;
  1221. {$ELSE}
  1222. function GetEnvironmentVariableA; external kernel32 name 'GetEnvironmentVariableA';
  1223. {$ENDIF DYNAMIC_LINK}
  1224. {$IFDEF DYNAMIC_LINK}
  1225. var
  1226.   _GetEnvironmentVariableW: Pointer;
  1227. function GetEnvironmentVariableW;
  1228. begin
  1229.   GetProcedureAddress(_GetEnvironmentVariableW, kernel32, 'GetEnvironmentVariableW');
  1230.   asm
  1231.     mov esp, ebp
  1232.     pop ebp
  1233.     jmp [_GetEnvironmentVariableW]
  1234.   end;
  1235. end;
  1236. {$ELSE}
  1237. function GetEnvironmentVariableW; external kernel32 name 'GetEnvironmentVariableW';
  1238. {$ENDIF DYNAMIC_LINK}
  1239. {$IFDEF UNICODE}
  1240. {$IFDEF DYNAMIC_LINK}
  1241. var
  1242.   _GetEnvironmentVariable: Pointer;
  1243. function GetEnvironmentVariable;
  1244. begin
  1245.   GetProcedureAddress(_GetEnvironmentVariable, kernel32, 'GetEnvironmentVariableW');
  1246.   asm
  1247.     mov esp, ebp
  1248.     pop ebp
  1249.     jmp [_GetEnvironmentVariable]
  1250.   end;
  1251. end;
  1252. {$ELSE}
  1253. function GetEnvironmentVariable; external kernel32 name 'GetEnvironmentVariableW';
  1254. {$ENDIF DYNAMIC_LINK}
  1255. {$ELSE}
  1256. {$IFDEF DYNAMIC_LINK}
  1257. var
  1258.   _GetEnvironmentVariable: Pointer;
  1259. function GetEnvironmentVariable;
  1260. begin
  1261.   GetProcedureAddress(_GetEnvironmentVariable, kernel32, 'GetEnvironmentVariableA');
  1262.   asm
  1263.     mov esp, ebp
  1264.     pop ebp
  1265.     jmp [_GetEnvironmentVariable]
  1266.   end;
  1267. end;
  1268. {$ELSE}
  1269. function GetEnvironmentVariable; external kernel32 name 'GetEnvironmentVariableA';
  1270. {$ENDIF DYNAMIC_LINK}
  1271. {$ENDIF}
  1272. {$IFDEF DYNAMIC_LINK}
  1273. var
  1274.   _SetEnvironmentVariableA: Pointer;
  1275. function SetEnvironmentVariableA;
  1276. begin
  1277.   GetProcedureAddress(_SetEnvironmentVariableA, kernel32, 'SetEnvironmentVariableA');
  1278.   asm
  1279.     mov esp, ebp
  1280.     pop ebp
  1281.     jmp [_SetEnvironmentVariableA]
  1282.   end;
  1283. end;
  1284. {$ELSE}
  1285. function SetEnvironmentVariableA; external kernel32 name 'SetEnvironmentVariableA';
  1286. {$ENDIF DYNAMIC_LINK}
  1287. {$IFDEF DYNAMIC_LINK}
  1288. var
  1289.   _SetEnvironmentVariableW: Pointer;
  1290. function SetEnvironmentVariableW;
  1291. begin
  1292.   GetProcedureAddress(_SetEnvironmentVariableW, kernel32, 'SetEnvironmentVariableW');
  1293.   asm
  1294.     mov esp, ebp
  1295.     pop ebp
  1296.     jmp [_SetEnvironmentVariableW]
  1297.   end;
  1298. end;
  1299. {$ELSE}
  1300. function SetEnvironmentVariableW; external kernel32 name 'SetEnvironmentVariableW';
  1301. {$ENDIF DYNAMIC_LINK}
  1302. {$IFDEF UNICODE}
  1303. {$IFDEF DYNAMIC_LINK}
  1304. var
  1305.   _SetEnvironmentVariable: Pointer;
  1306. function SetEnvironmentVariable;
  1307. begin
  1308.   GetProcedureAddress(_SetEnvironmentVariable, kernel32, 'SetEnvironmentVariableW');
  1309.   asm
  1310.     mov esp, ebp
  1311.     pop ebp
  1312.     jmp [_SetEnvironmentVariable]
  1313.   end;
  1314. end;
  1315. {$ELSE}
  1316. function SetEnvironmentVariable; external kernel32 name 'SetEnvironmentVariableW';
  1317. {$ENDIF DYNAMIC_LINK}
  1318. {$ELSE}
  1319. {$IFDEF DYNAMIC_LINK}
  1320. var
  1321.   _SetEnvironmentVariable: Pointer;
  1322. function SetEnvironmentVariable;
  1323. begin
  1324.   GetProcedureAddress(_SetEnvironmentVariable, kernel32, 'SetEnvironmentVariableA');
  1325.   asm
  1326.     mov esp, ebp
  1327.     pop ebp
  1328.     jmp [_SetEnvironmentVariable]
  1329.   end;
  1330. end;
  1331. {$ELSE}
  1332. function SetEnvironmentVariable; external kernel32 name 'SetEnvironmentVariableA';
  1333. {$ENDIF DYNAMIC_LINK}
  1334. {$ENDIF}
  1335. {$IFDEF DYNAMIC_LINK}
  1336. var
  1337.   _ExpandEnvironmentStringsA: Pointer;
  1338. function ExpandEnvironmentStringsA;
  1339. begin
  1340.   GetProcedureAddress(_ExpandEnvironmentStringsA, kernel32, 'ExpandEnvironmentStringsA');
  1341.   asm
  1342.     mov esp, ebp
  1343.     pop ebp
  1344.     jmp [_ExpandEnvironmentStringsA]
  1345.   end;
  1346. end;
  1347. {$ELSE}
  1348. function ExpandEnvironmentStringsA; external kernel32 name 'ExpandEnvironmentStringsA';
  1349. {$ENDIF DYNAMIC_LINK}
  1350. {$IFDEF DYNAMIC_LINK}
  1351. var
  1352.   _ExpandEnvironmentStringsW: Pointer;
  1353. function ExpandEnvironmentStringsW;
  1354. begin
  1355.   GetProcedureAddress(_ExpandEnvironmentStringsW, kernel32, 'ExpandEnvironmentStringsW');
  1356.   asm
  1357.     mov esp, ebp
  1358.     pop ebp
  1359.     jmp [_ExpandEnvironmentStringsW]
  1360.   end;
  1361. end;
  1362. {$ELSE}
  1363. function ExpandEnvironmentStringsW; external kernel32 name 'ExpandEnvironmentStringsW';
  1364. {$ENDIF DYNAMIC_LINK}
  1365. {$IFDEF UNICODE}
  1366. {$IFDEF DYNAMIC_LINK}
  1367. var
  1368.   _ExpandEnvironmentStrings: Pointer;
  1369. function ExpandEnvironmentStrings;
  1370. begin
  1371.   GetProcedureAddress(_ExpandEnvironmentStrings, kernel32, 'ExpandEnvironmentStringsW');
  1372.   asm
  1373.     mov esp, ebp
  1374.     pop ebp
  1375.     jmp [_ExpandEnvironmentStrings]
  1376.   end;
  1377. end;
  1378. {$ELSE}
  1379. function ExpandEnvironmentStrings; external kernel32 name 'ExpandEnvironmentStringsW';
  1380. {$ENDIF DYNAMIC_LINK}
  1381. {$ELSE}
  1382. {$IFDEF DYNAMIC_LINK}
  1383. var
  1384.   _ExpandEnvironmentStrings: Pointer;
  1385. function ExpandEnvironmentStrings;
  1386. begin
  1387.   GetProcedureAddress(_ExpandEnvironmentStrings, kernel32, 'ExpandEnvironmentStringsA');
  1388.   asm
  1389.     mov esp, ebp
  1390.     pop ebp
  1391.     jmp [_ExpandEnvironmentStrings]
  1392.   end;
  1393. end;
  1394. {$ELSE}
  1395. function ExpandEnvironmentStrings; external kernel32 name 'ExpandEnvironmentStringsA';
  1396. {$ENDIF DYNAMIC_LINK}
  1397. {$ENDIF}
  1398. {$IFDEF DYNAMIC_LINK}
  1399. var
  1400.   _GetFirmwareEnvironmentVariableA: Pointer;
  1401. function GetFirmwareEnvironmentVariableA;
  1402. begin
  1403.   GetProcedureAddress(_GetFirmwareEnvironmentVariableA, kernel32, 'GetFirmwareEnvironmentVariableA');
  1404.   asm
  1405.     mov esp, ebp
  1406.     pop ebp
  1407.     jmp [_GetFirmwareEnvironmentVariableA]
  1408.   end;
  1409. end;
  1410. {$ELSE}
  1411. function GetFirmwareEnvironmentVariableA; external kernel32 name 'GetFirmwareEnvironmentVariableA';
  1412. {$ENDIF DYNAMIC_LINK}
  1413. {$IFDEF DYNAMIC_LINK}
  1414. var
  1415.   _GetFirmwareEnvironmentVariableW: Pointer;
  1416. function GetFirmwareEnvironmentVariableW;
  1417. begin
  1418.   GetProcedureAddress(_GetFirmwareEnvironmentVariableW, kernel32, 'GetFirmwareEnvironmentVariableW');
  1419.   asm
  1420.     mov esp, ebp
  1421.     pop ebp
  1422.     jmp [_GetFirmwareEnvironmentVariableW]
  1423.   end;
  1424. end;
  1425. {$ELSE}
  1426. function GetFirmwareEnvironmentVariableW; external kernel32 name 'GetFirmwareEnvironmentVariableW';
  1427. {$ENDIF DYNAMIC_LINK}
  1428. {$IFDEF UNICODE}
  1429. {$IFDEF DYNAMIC_LINK}
  1430. var
  1431.   _GetFirmwareEnvironmentVariable: Pointer;
  1432. function GetFirmwareEnvironmentVariable;
  1433. begin
  1434.   GetProcedureAddress(_GetFirmwareEnvironmentVariable, kernel32, 'GetFirmwareEnvironmentVariableW');
  1435.   asm
  1436.     mov esp, ebp
  1437.     pop ebp
  1438.     jmp [_GetFirmwareEnvironmentVariable]
  1439.   end;
  1440. end;
  1441. {$ELSE}
  1442. function GetFirmwareEnvironmentVariable; external kernel32 name 'GetFirmwareEnvironmentVariableW';
  1443. {$ENDIF DYNAMIC_LINK}
  1444. {$ELSE}
  1445. {$IFDEF DYNAMIC_LINK}
  1446. var
  1447.   _GetFirmwareEnvironmentVariable: Pointer;
  1448. function GetFirmwareEnvironmentVariable;
  1449. begin
  1450.   GetProcedureAddress(_GetFirmwareEnvironmentVariable, kernel32, 'GetFirmwareEnvironmentVariableA');
  1451.   asm
  1452.     mov esp, ebp
  1453.     pop ebp
  1454.     jmp [_GetFirmwareEnvironmentVariable]
  1455.   end;
  1456. end;
  1457. {$ELSE}
  1458. function GetFirmwareEnvironmentVariable; external kernel32 name 'GetFirmwareEnvironmentVariableA';
  1459. {$ENDIF DYNAMIC_LINK}
  1460. {$ENDIF}
  1461. {$IFDEF DYNAMIC_LINK}
  1462. var
  1463.   _SetFirmwareEnvironmentVariableA: Pointer;
  1464. function SetFirmwareEnvironmentVariableA;
  1465. begin
  1466.   GetProcedureAddress(_SetFirmwareEnvironmentVariableA, kernel32, 'SetFirmwareEnvironmentVariableA');
  1467.   asm
  1468.     mov esp, ebp
  1469.     pop ebp
  1470.     jmp [_SetFirmwareEnvironmentVariableA]
  1471.   end;
  1472. end;
  1473. {$ELSE}
  1474. function SetFirmwareEnvironmentVariableA; external kernel32 name 'SetFirmwareEnvironmentVariableA';
  1475. {$ENDIF DYNAMIC_LINK}
  1476. {$IFDEF DYNAMIC_LINK}
  1477. var
  1478.   _SetFirmwareEnvironmentVariableW: Pointer;
  1479. function SetFirmwareEnvironmentVariableW;
  1480. begin
  1481.   GetProcedureAddress(_SetFirmwareEnvironmentVariableW, kernel32, 'SetFirmwareEnvironmentVariableW');
  1482.   asm
  1483.     mov esp, ebp
  1484.     pop ebp
  1485.     jmp [_SetFirmwareEnvironmentVariableW]
  1486.   end;
  1487. end;
  1488. {$ELSE}
  1489. function SetFirmwareEnvironmentVariableW; external kernel32 name 'SetFirmwareEnvironmentVariableW';
  1490. {$ENDIF DYNAMIC_LINK}
  1491. {$IFDEF UNICODE}
  1492. {$IFDEF DYNAMIC_LINK}
  1493. var
  1494.   _SetFirmwareEnvironmentVariable: Pointer;
  1495. function SetFirmwareEnvironmentVariable;
  1496. begin
  1497.   GetProcedureAddress(_SetFirmwareEnvironmentVariable, kernel32, 'SetFirmwareEnvironmentVariableW');
  1498.   asm
  1499.     mov esp, ebp
  1500.     pop ebp
  1501.     jmp [_SetFirmwareEnvironmentVariable]
  1502.   end;
  1503. end;
  1504. {$ELSE}
  1505. function SetFirmwareEnvironmentVariable; external kernel32 name 'SetFirmwareEnvironmentVariableW';
  1506. {$ENDIF DYNAMIC_LINK}
  1507. {$ELSE}
  1508. {$IFDEF DYNAMIC_LINK}
  1509. var
  1510.   _SetFirmwareEnvironmentVariable: Pointer;
  1511. function SetFirmwareEnvironmentVariable;
  1512. begin
  1513.   GetProcedureAddress(_SetFirmwareEnvironmentVariable, kernel32, 'SetFirmwareEnvironmentVariableA');
  1514.   asm
  1515.     mov esp, ebp
  1516.     pop ebp
  1517.     jmp [_SetFirmwareEnvironmentVariable]
  1518.   end;
  1519. end;
  1520. {$ELSE}
  1521. function SetFirmwareEnvironmentVariable; external kernel32 name 'SetFirmwareEnvironmentVariableA';
  1522. {$ENDIF DYNAMIC_LINK}
  1523. {$ENDIF}
  1524. {$IFDEF DYNAMIC_LINK}
  1525. var
  1526.   _OutputDebugStringA: Pointer;
  1527. procedure OutputDebugStringA;
  1528. begin
  1529.   GetProcedureAddress(_OutputDebugStringA, kernel32, 'OutputDebugStringA');
  1530.   asm
  1531.     mov esp, ebp
  1532.     pop ebp
  1533.     jmp [_OutputDebugStringA]
  1534.   end;
  1535. end;
  1536. {$ELSE}
  1537. procedure OutputDebugStringA; external kernel32 name 'OutputDebugStringA';
  1538. {$ENDIF DYNAMIC_LINK}
  1539. {$IFDEF DYNAMIC_LINK}
  1540. var
  1541.   _OutputDebugStringW: Pointer;
  1542. procedure OutputDebugStringW;
  1543. begin
  1544.   GetProcedureAddress(_OutputDebugStringW, kernel32, 'OutputDebugStringW');
  1545.   asm
  1546.     mov esp, ebp
  1547.     pop ebp
  1548.     jmp [_OutputDebugStringW]
  1549.   end;
  1550. end;
  1551. {$ELSE}
  1552. procedure OutputDebugStringW; external kernel32 name 'OutputDebugStringW';
  1553. {$ENDIF DYNAMIC_LINK}
  1554. {$IFDEF UNICODE}
  1555. {$IFDEF DYNAMIC_LINK}
  1556. var
  1557.   _OutputDebugString: Pointer;
  1558. procedure OutputDebugString;
  1559. begin
  1560.   GetProcedureAddress(_OutputDebugString, kernel32, 'OutputDebugStringW');
  1561.   asm
  1562.     mov esp, ebp
  1563.     pop ebp
  1564.     jmp [_OutputDebugString]
  1565.   end;
  1566. end;
  1567. {$ELSE}
  1568. procedure OutputDebugString; external kernel32 name 'OutputDebugStringW';
  1569. {$ENDIF DYNAMIC_LINK}
  1570. {$ELSE}
  1571. {$IFDEF DYNAMIC_LINK}
  1572. var
  1573.   _OutputDebugString: Pointer;
  1574. procedure OutputDebugString;
  1575. begin
  1576.   GetProcedureAddress(_OutputDebugString, kernel32, 'OutputDebugStringA');
  1577.   asm
  1578.     mov esp, ebp
  1579.     pop ebp
  1580.     jmp [_OutputDebugString]
  1581.   end;
  1582. end;
  1583. {$ELSE}
  1584. procedure OutputDebugString; external kernel32 name 'OutputDebugStringA';
  1585. {$ENDIF DYNAMIC_LINK}
  1586. {$ENDIF}
  1587. {$IFDEF DYNAMIC_LINK}
  1588. var
  1589.   _FindResourceA: Pointer;
  1590. function FindResourceA;
  1591. begin
  1592.   GetProcedureAddress(_FindResourceA, kernel32, 'FindResourceA');
  1593.   asm
  1594.     mov esp, ebp
  1595.     pop ebp
  1596.     jmp [_FindResourceA]
  1597.   end;
  1598. end;
  1599. {$ELSE}
  1600. function FindResourceA; external kernel32 name 'FindResourceA';
  1601. {$ENDIF DYNAMIC_LINK}
  1602. {$IFDEF DYNAMIC_LINK}
  1603. var
  1604.   _FindResourceW: Pointer;
  1605. function FindResourceW;
  1606. begin
  1607.   GetProcedureAddress(_FindResourceW, kernel32, 'FindResourceW');
  1608.   asm
  1609.     mov esp, ebp
  1610.     pop ebp
  1611.     jmp [_FindResourceW]
  1612.   end;
  1613. end;
  1614. {$ELSE}
  1615. function FindResourceW; external kernel32 name 'FindResourceW';
  1616. {$ENDIF DYNAMIC_LINK}
  1617. {$IFDEF UNICODE}
  1618. {$IFDEF DYNAMIC_LINK}
  1619. var
  1620.   _FindResource: Pointer;
  1621. function FindResource;
  1622. begin
  1623.   GetProcedureAddress(_FindResource, kernel32, 'FindResourceW');
  1624.   asm
  1625.     mov esp, ebp
  1626.     pop ebp
  1627.     jmp [_FindResource]
  1628.   end;
  1629. end;
  1630. {$ELSE}
  1631. function FindResource; external kernel32 name 'FindResourceW';
  1632. {$ENDIF DYNAMIC_LINK}
  1633. {$ELSE}
  1634. {$IFDEF DYNAMIC_LINK}
  1635. var
  1636.   _FindResource: Pointer;
  1637. function FindResource;
  1638. begin
  1639.   GetProcedureAddress(_FindResource, kernel32, 'FindResourceA');
  1640.   asm
  1641.     mov esp, ebp
  1642.     pop ebp
  1643.     jmp [_FindResource]
  1644.   end;
  1645. end;
  1646. {$ELSE}
  1647. function FindResource; external kernel32 name 'FindResourceA';
  1648. {$ENDIF DYNAMIC_LINK}
  1649. {$ENDIF}
  1650. {$IFDEF DYNAMIC_LINK}
  1651. var
  1652.   _FindResourceExA: Pointer;
  1653. function FindResourceExA;
  1654. begin
  1655.   GetProcedureAddress(_FindResourceExA, kernel32, 'FindResourceExA');
  1656.   asm
  1657.     mov esp, ebp
  1658.     pop ebp
  1659.     jmp [_FindResourceExA]
  1660.   end;
  1661. end;
  1662. {$ELSE}
  1663. function FindResourceExA; external kernel32 name 'FindResourceExA';
  1664. {$ENDIF DYNAMIC_LINK}
  1665. {$IFDEF DYNAMIC_LINK}
  1666. var
  1667.   _FindResourceExW: Pointer;
  1668. function FindResourceExW;
  1669. begin
  1670.   GetProcedureAddress(_FindResourceExW, kernel32, 'FindResourceExW');
  1671.   asm
  1672.     mov esp, ebp
  1673.     pop ebp
  1674.     jmp [_FindResourceExW]
  1675.   end;
  1676. end;
  1677. {$ELSE}
  1678. function FindResourceExW; external kernel32 name 'FindResourceExW';
  1679. {$ENDIF DYNAMIC_LINK}
  1680. {$IFDEF UNICODE}
  1681. {$IFDEF DYNAMIC_LINK}
  1682. var
  1683.   _FindResourceEx: Pointer;
  1684. function FindResourceEx;
  1685. begin
  1686.   GetProcedureAddress(_FindResourceEx, kernel32, 'FindResourceExW');
  1687.   asm
  1688.     mov esp, ebp
  1689.     pop ebp
  1690.     jmp [_FindResourceEx]
  1691.   end;
  1692. end;
  1693. {$ELSE}
  1694. function FindResourceEx; external kernel32 name 'FindResourceExW';
  1695. {$ENDIF DYNAMIC_LINK}
  1696. {$ELSE}
  1697. {$IFDEF DYNAMIC_LINK}
  1698. var
  1699.   _FindResourceEx: Pointer;
  1700. function FindResourceEx;
  1701. begin
  1702.   GetProcedureAddress(_FindResourceEx, kernel32, 'FindResourceExA');
  1703.   asm
  1704.     mov esp, ebp
  1705.     pop ebp
  1706.     jmp [_FindResourceEx]
  1707.   end;
  1708. end;
  1709. {$ELSE}
  1710. function FindResourceEx; external kernel32 name 'FindResourceExA';
  1711. {$ENDIF DYNAMIC_LINK}
  1712. {$ENDIF}
  1713. {$IFDEF DYNAMIC_LINK}
  1714. var
  1715.   _EnumResourceTypesA: Pointer;
  1716. function EnumResourceTypesA;
  1717. begin
  1718.   GetProcedureAddress(_EnumResourceTypesA, kernel32, 'EnumResourceTypesA');
  1719.   asm
  1720.     mov esp, ebp
  1721.     pop ebp
  1722.     jmp [_EnumResourceTypesA]
  1723.   end;
  1724. end;
  1725. {$ELSE}
  1726. function EnumResourceTypesA; external kernel32 name 'EnumResourceTypesA';
  1727. {$ENDIF DYNAMIC_LINK}
  1728. {$IFDEF DYNAMIC_LINK}
  1729. var
  1730.   _EnumResourceTypesW: Pointer;
  1731. function EnumResourceTypesW;
  1732. begin
  1733.   GetProcedureAddress(_EnumResourceTypesW, kernel32, 'EnumResourceTypesW');
  1734.   asm
  1735.     mov esp, ebp
  1736.     pop ebp
  1737.     jmp [_EnumResourceTypesW]
  1738.   end;
  1739. end;
  1740. {$ELSE}
  1741. function EnumResourceTypesW; external kernel32 name 'EnumResourceTypesW';
  1742. {$ENDIF DYNAMIC_LINK}
  1743. {$IFDEF UNICODE}
  1744. {$IFDEF DYNAMIC_LINK}
  1745. var
  1746.   _EnumResourceTypes: Pointer;
  1747. function EnumResourceTypes;
  1748. begin
  1749.   GetProcedureAddress(_EnumResourceTypes, kernel32, 'EnumResourceTypesW');
  1750.   asm
  1751.     mov esp, ebp
  1752.     pop ebp
  1753.     jmp [_EnumResourceTypes]
  1754.   end;
  1755. end;
  1756. {$ELSE}
  1757. function EnumResourceTypes; external kernel32 name 'EnumResourceTypesW';
  1758. {$ENDIF DYNAMIC_LINK}
  1759. {$ELSE}
  1760. {$IFDEF DYNAMIC_LINK}
  1761. var
  1762.   _EnumResourceTypes: Pointer;
  1763. function EnumResourceTypes;
  1764. begin
  1765.   GetProcedureAddress(_EnumResourceTypes, kernel32, 'EnumResourceTypesA');
  1766.   asm
  1767.     mov esp, ebp
  1768.     pop ebp
  1769.     jmp [_EnumResourceTypes]
  1770.   end;
  1771. end;
  1772. {$ELSE}
  1773. function EnumResourceTypes; external kernel32 name 'EnumResourceTypesA';
  1774. {$ENDIF DYNAMIC_LINK}
  1775. {$ENDIF}
  1776. {$IFDEF DYNAMIC_LINK}
  1777. var
  1778.   _EnumResourceNamesA: Pointer;
  1779. function EnumResourceNamesA;
  1780. begin
  1781.   GetProcedureAddress(_EnumResourceNamesA, kernel32, 'EnumResourceNamesA');
  1782.   asm
  1783.     mov esp, ebp
  1784.     pop ebp
  1785.     jmp [_EnumResourceNamesA]
  1786.   end;
  1787. end;
  1788. {$ELSE}
  1789. function EnumResourceNamesA; external kernel32 name 'EnumResourceNamesA';
  1790. {$ENDIF DYNAMIC_LINK}
  1791. {$IFDEF DYNAMIC_LINK}
  1792. var
  1793.   _EnumResourceNamesW: Pointer;
  1794. function EnumResourceNamesW;
  1795. begin
  1796.   GetProcedureAddress(_EnumResourceNamesW, kernel32, 'EnumResourceNamesW');
  1797.   asm
  1798.     mov esp, ebp
  1799.     pop ebp
  1800.     jmp [_EnumResourceNamesW]
  1801.   end;
  1802. end;
  1803. {$ELSE}
  1804. function EnumResourceNamesW; external kernel32 name 'EnumResourceNamesW';
  1805. {$ENDIF DYNAMIC_LINK}
  1806. {$IFDEF UNICODE}
  1807. {$IFDEF DYNAMIC_LINK}
  1808. var
  1809.   _EnumResourceNames: Pointer;
  1810. function EnumResourceNames;
  1811. begin
  1812.   GetProcedureAddress(_EnumResourceNames, kernel32, 'EnumResourceNamesW');
  1813.   asm
  1814.     mov esp, ebp
  1815.     pop ebp
  1816.     jmp [_EnumResourceNames]
  1817.   end;
  1818. end;
  1819. {$ELSE}
  1820. function EnumResourceNames; external kernel32 name 'EnumResourceNamesW';
  1821. {$ENDIF DYNAMIC_LINK}
  1822. {$ELSE}
  1823. {$IFDEF DYNAMIC_LINK}
  1824. var
  1825.   _EnumResourceNames: Pointer;
  1826. function EnumResourceNames;
  1827. begin
  1828.   GetProcedureAddress(_EnumResourceNames, kernel32, 'EnumResourceNamesA');
  1829.   asm
  1830.     mov esp, ebp
  1831.     pop ebp
  1832.     jmp [_EnumResourceNames]
  1833.   end;
  1834. end;
  1835. {$ELSE}
  1836. function EnumResourceNames; external kernel32 name 'EnumResourceNamesA';
  1837. {$ENDIF DYNAMIC_LINK}
  1838. {$ENDIF}
  1839. {$IFDEF DYNAMIC_LINK}
  1840. var
  1841.   _EnumResourceLanguagesA: Pointer;
  1842. function EnumResourceLanguagesA;
  1843. begin
  1844.   GetProcedureAddress(_EnumResourceLanguagesA, kernel32, 'EnumResourceLanguagesA');
  1845.   asm
  1846.     mov esp, ebp
  1847.     pop ebp
  1848.     jmp [_EnumResourceLanguagesA]
  1849.   end;
  1850. end;
  1851. {$ELSE}
  1852. function EnumResourceLanguagesA; external kernel32 name 'EnumResourceLanguagesA';
  1853. {$ENDIF DYNAMIC_LINK}
  1854. {$IFDEF DYNAMIC_LINK}
  1855. var
  1856.   _EnumResourceLanguagesW: Pointer;
  1857. function EnumResourceLanguagesW;
  1858. begin
  1859.   GetProcedureAddress(_EnumResourceLanguagesW, kernel32, 'EnumResourceLanguagesW');
  1860.   asm
  1861.     mov esp, ebp
  1862.     pop ebp
  1863.     jmp [_EnumResourceLanguagesW]
  1864.   end;
  1865. end;
  1866. {$ELSE}
  1867. function EnumResourceLanguagesW; external kernel32 name 'EnumResourceLanguagesW';
  1868. {$ENDIF DYNAMIC_LINK}
  1869. {$IFDEF UNICODE}
  1870. {$IFDEF DYNAMIC_LINK}
  1871. var
  1872.   _EnumResourceLanguages: Pointer;
  1873. function EnumResourceLanguages;
  1874. begin
  1875.   GetProcedureAddress(_EnumResourceLanguages, kernel32, 'EnumResourceLanguagesW');
  1876.   asm
  1877.     mov esp, ebp
  1878.     pop ebp
  1879.     jmp [_EnumResourceLanguages]
  1880.   end;
  1881. end;
  1882. {$ELSE}
  1883. function EnumResourceLanguages; external kernel32 name 'EnumResourceLanguagesW';
  1884. {$ENDIF DYNAMIC_LINK}
  1885. {$ELSE}
  1886. {$IFDEF DYNAMIC_LINK}
  1887. var
  1888.   _EnumResourceLanguages: Pointer;
  1889. function EnumResourceLanguages;
  1890. begin
  1891.   GetProcedureAddress(_EnumResourceLanguages, kernel32, 'EnumResourceLanguagesA');
  1892.   asm
  1893.     mov esp, ebp
  1894.     pop ebp
  1895.     jmp [_EnumResourceLanguages]
  1896.   end;
  1897. end;
  1898. {$ELSE}
  1899. function EnumResourceLanguages; external kernel32 name 'EnumResourceLanguagesA';
  1900. {$ENDIF DYNAMIC_LINK}
  1901. {$ENDIF}
  1902. {$IFDEF DYNAMIC_LINK}
  1903. var
  1904.   _BeginUpdateResourceA: Pointer;
  1905. function BeginUpdateResourceA;
  1906. begin
  1907.   GetProcedureAddress(_BeginUpdateResourceA, kernel32, 'BeginUpdateResourceA');
  1908.   asm
  1909.     mov esp, ebp
  1910.     pop ebp
  1911.     jmp [_BeginUpdateResourceA]
  1912.   end;
  1913. end;
  1914. {$ELSE}
  1915. function BeginUpdateResourceA; external kernel32 name 'BeginUpdateResourceA';
  1916. {$ENDIF DYNAMIC_LINK}
  1917. {$IFDEF DYNAMIC_LINK}
  1918. var
  1919.   _BeginUpdateResourceW: Pointer;
  1920. function BeginUpdateResourceW;
  1921. begin
  1922.   GetProcedureAddress(_BeginUpdateResourceW, kernel32, 'BeginUpdateResourceW');
  1923.   asm
  1924.     mov esp, ebp
  1925.     pop ebp
  1926.     jmp [_BeginUpdateResourceW]
  1927.   end;
  1928. end;
  1929. {$ELSE}
  1930. function BeginUpdateResourceW; external kernel32 name 'BeginUpdateResourceW';
  1931. {$ENDIF DYNAMIC_LINK}
  1932. {$IFDEF UNICODE}
  1933. {$IFDEF DYNAMIC_LINK}
  1934. var
  1935.   _BeginUpdateResource: Pointer;
  1936. function BeginUpdateResource;
  1937. begin
  1938.   GetProcedureAddress(_BeginUpdateResource, kernel32, 'BeginUpdateResourceW');
  1939.   asm
  1940.     mov esp, ebp
  1941.     pop ebp
  1942.     jmp [_BeginUpdateResource]
  1943.   end;
  1944. end;
  1945. {$ELSE}
  1946. function BeginUpdateResource; external kernel32 name 'BeginUpdateResourceW';
  1947. {$ENDIF DYNAMIC_LINK}
  1948. {$ELSE}
  1949. {$IFDEF DYNAMIC_LINK}
  1950. var
  1951.   _BeginUpdateResource: Pointer;
  1952. function BeginUpdateResource;
  1953. begin
  1954.   GetProcedureAddress(_BeginUpdateResource, kernel32, 'BeginUpdateResourceA');
  1955.   asm
  1956.     mov esp, ebp
  1957.     pop ebp
  1958.     jmp [_BeginUpdateResource]
  1959.   end;
  1960. end;
  1961. {$ELSE}
  1962. function BeginUpdateResource; external kernel32 name 'BeginUpdateResourceA';
  1963. {$ENDIF DYNAMIC_LINK}
  1964. {$ENDIF}
  1965. {$IFDEF DYNAMIC_LINK}
  1966. var
  1967.   _UpdateResourceA: Pointer;
  1968. function UpdateResourceA;
  1969. begin
  1970.   GetProcedureAddress(_UpdateResourceA, kernel32, 'UpdateResourceA');
  1971.   asm
  1972.     mov esp, ebp
  1973.     pop ebp
  1974.     jmp [_UpdateResourceA]
  1975.   end;
  1976. end;
  1977. {$ELSE}
  1978. function UpdateResourceA; external kernel32 name 'UpdateResourceA';
  1979. {$ENDIF DYNAMIC_LINK}
  1980. {$IFDEF DYNAMIC_LINK}
  1981. var
  1982.   _UpdateResourceW: Pointer;
  1983. function UpdateResourceW;
  1984. begin
  1985.   GetProcedureAddress(_UpdateResourceW, kernel32, 'UpdateResourceW');
  1986.   asm
  1987.     mov esp, ebp
  1988.     pop ebp
  1989.     jmp [_UpdateResourceW]
  1990.   end;
  1991. end;
  1992. {$ELSE}
  1993. function UpdateResourceW; external kernel32 name 'UpdateResourceW';
  1994. {$ENDIF DYNAMIC_LINK}
  1995. {$IFDEF UNICODE}
  1996. {$IFDEF DYNAMIC_LINK}
  1997. var
  1998.   _UpdateResource: Pointer;
  1999. function UpdateResource;
  2000. begin
  2001.   GetProcedureAddress(_UpdateResource, kernel32, 'UpdateResourceW');
  2002.   asm
  2003.     mov esp, ebp
  2004.     pop ebp
  2005.     jmp [_UpdateResource]
  2006.   end;
  2007. end;
  2008. {$ELSE}
  2009. function UpdateResource; external kernel32 name 'UpdateResourceW';
  2010. {$ENDIF DYNAMIC_LINK}
  2011. {$ELSE}
  2012. {$IFDEF DYNAMIC_LINK}
  2013. var
  2014.   _UpdateResource: Pointer;
  2015. function UpdateResource;
  2016. begin
  2017.   GetProcedureAddress(_UpdateResource, kernel32, 'UpdateResourceA');
  2018.   asm
  2019.     mov esp, ebp
  2020.     pop ebp
  2021.     jmp [_UpdateResource]
  2022.   end;
  2023. end;
  2024. {$ELSE}
  2025. function UpdateResource; external kernel32 name 'UpdateResourceA';
  2026. {$ENDIF DYNAMIC_LINK}
  2027. {$ENDIF}
  2028. {$IFDEF DYNAMIC_LINK}
  2029. var
  2030.   _EndUpdateResourceA: Pointer;
  2031. function EndUpdateResourceA;
  2032. begin
  2033.   GetProcedureAddress(_EndUpdateResourceA, kernel32, 'EndUpdateResourceA');
  2034.   asm
  2035.     mov esp, ebp
  2036.     pop ebp
  2037.     jmp [_EndUpdateResourceA]
  2038.   end;
  2039. end;
  2040. {$ELSE}
  2041. function EndUpdateResourceA; external kernel32 name 'EndUpdateResourceA';
  2042. {$ENDIF DYNAMIC_LINK}
  2043. {$IFDEF DYNAMIC_LINK}
  2044. var
  2045.   _EndUpdateResourceW: Pointer;
  2046. function EndUpdateResourceW;
  2047. begin
  2048.   GetProcedureAddress(_EndUpdateResourceW, kernel32, 'EndUpdateResourceW');
  2049.   asm
  2050.     mov esp, ebp
  2051.     pop ebp
  2052.     jmp [_EndUpdateResourceW]
  2053.   end;
  2054. end;
  2055. {$ELSE}
  2056. function EndUpdateResourceW; external kernel32 name 'EndUpdateResourceW';
  2057. {$ENDIF DYNAMIC_LINK}
  2058. {$IFDEF UNICODE}
  2059. {$IFDEF DYNAMIC_LINK}
  2060. var
  2061.   _EndUpdateResource: Pointer;
  2062. function EndUpdateResource;
  2063. begin
  2064.   GetProcedureAddress(_EndUpdateResource, kernel32, 'EndUpdateResourceW');
  2065.   asm
  2066.     mov esp, ebp
  2067.     pop ebp
  2068.     jmp [_EndUpdateResource]
  2069.   end;
  2070. end;
  2071. {$ELSE}
  2072. function EndUpdateResource; external kernel32 name 'EndUpdateResourceW';
  2073. {$ENDIF DYNAMIC_LINK}
  2074. {$ELSE}
  2075. {$IFDEF DYNAMIC_LINK}
  2076. var
  2077.   _EndUpdateResource: Pointer;
  2078. function EndUpdateResource;
  2079. begin
  2080.   GetProcedureAddress(_EndUpdateResource, kernel32, 'EndUpdateResourceA');
  2081.   asm
  2082.     mov esp, ebp
  2083.     pop ebp
  2084.     jmp [_EndUpdateResource]
  2085.   end;
  2086. end;
  2087. {$ELSE}
  2088. function EndUpdateResource; external kernel32 name 'EndUpdateResourceA';
  2089. {$ENDIF DYNAMIC_LINK}
  2090. {$ENDIF}
  2091. {$IFDEF DYNAMIC_LINK}
  2092. var
  2093.   _GlobalAddAtomA: Pointer;
  2094. function GlobalAddAtomA;
  2095. begin
  2096.   GetProcedureAddress(_GlobalAddAtomA, kernel32, 'GlobalAddAtomA');
  2097.   asm
  2098.     mov esp, ebp
  2099.     pop ebp
  2100.     jmp [_GlobalAddAtomA]
  2101.   end;
  2102. end;
  2103. {$ELSE}
  2104. function GlobalAddAtomA; external kernel32 name 'GlobalAddAtomA';
  2105. {$ENDIF DYNAMIC_LINK}
  2106. {$IFDEF DYNAMIC_LINK}
  2107. var
  2108.   _GlobalAddAtomW: Pointer;
  2109. function GlobalAddAtomW;
  2110. begin
  2111.   GetProcedureAddress(_GlobalAddAtomW, kernel32, 'GlobalAddAtomW');
  2112.   asm
  2113.     mov esp, ebp
  2114.     pop ebp
  2115.     jmp [_GlobalAddAtomW]
  2116.   end;
  2117. end;
  2118. {$ELSE}
  2119. function GlobalAddAtomW; external kernel32 name 'GlobalAddAtomW';
  2120. {$ENDIF DYNAMIC_LINK}
  2121. {$IFDEF UNICODE}
  2122. {$IFDEF DYNAMIC_LINK}
  2123. var
  2124.   _GlobalAddAtom: Pointer;
  2125. function GlobalAddAtom;
  2126. begin
  2127.   GetProcedureAddress(_GlobalAddAtom, kernel32, 'GlobalAddAtomW');
  2128.   asm
  2129.     mov esp, ebp
  2130.     pop ebp
  2131.     jmp [_GlobalAddAtom]
  2132.   end;
  2133. end;
  2134. {$ELSE}
  2135. function GlobalAddAtom; external kernel32 name 'GlobalAddAtomW';
  2136. {$ENDIF DYNAMIC_LINK}
  2137. {$ELSE}
  2138. {$IFDEF DYNAMIC_LINK}
  2139. var
  2140.   _GlobalAddAtom: Pointer;
  2141. function GlobalAddAtom;
  2142. begin
  2143.   GetProcedureAddress(_GlobalAddAtom, kernel32, 'GlobalAddAtomA');
  2144.   asm
  2145.     mov esp, ebp
  2146.     pop ebp
  2147.     jmp [_GlobalAddAtom]
  2148.   end;
  2149. end;
  2150. {$ELSE}
  2151. function GlobalAddAtom; external kernel32 name 'GlobalAddAtomA';
  2152. {$ENDIF DYNAMIC_LINK}
  2153. {$ENDIF}
  2154. {$IFDEF DYNAMIC_LINK}
  2155. var
  2156.   _GlobalFindAtomA: Pointer;
  2157. function GlobalFindAtomA;
  2158. begin
  2159.   GetProcedureAddress(_GlobalFindAtomA, kernel32, 'GlobalFindAtomA');
  2160.   asm
  2161.     mov esp, ebp
  2162.     pop ebp
  2163.     jmp [_GlobalFindAtomA]
  2164.   end;
  2165. end;
  2166. {$ELSE}
  2167. function GlobalFindAtomA; external kernel32 name 'GlobalFindAtomA';
  2168. {$ENDIF DYNAMIC_LINK}
  2169. {$IFDEF DYNAMIC_LINK}
  2170. var
  2171.   _GlobalFindAtomW: Pointer;
  2172. function GlobalFindAtomW;
  2173. begin
  2174.   GetProcedureAddress(_GlobalFindAtomW, kernel32, 'GlobalFindAtomW');
  2175.   asm
  2176.     mov esp, ebp
  2177.     pop ebp
  2178.     jmp [_GlobalFindAtomW]
  2179.   end;
  2180. end;
  2181. {$ELSE}
  2182. function GlobalFindAtomW; external kernel32 name 'GlobalFindAtomW';
  2183. {$ENDIF DYNAMIC_LINK}
  2184. {$IFDEF UNICODE}
  2185. {$IFDEF DYNAMIC_LINK}
  2186. var
  2187.   _GlobalFindAtom: Pointer;
  2188. function GlobalFindAtom;
  2189. begin
  2190.   GetProcedureAddress(_GlobalFindAtom, kernel32, 'GlobalFindAtomW');
  2191.   asm
  2192.     mov esp, ebp
  2193.     pop ebp
  2194.     jmp [_GlobalFindAtom]
  2195.   end;
  2196. end;
  2197. {$ELSE}
  2198. function GlobalFindAtom; external kernel32 name 'GlobalFindAtomW';
  2199. {$ENDIF DYNAMIC_LINK}
  2200. {$ELSE}
  2201. {$IFDEF DYNAMIC_LINK}
  2202. var
  2203.   _GlobalFindAtom: Pointer;
  2204. function GlobalFindAtom;
  2205. begin
  2206.   GetProcedureAddress(_GlobalFindAtom, kernel32, 'GlobalFindAtomA');
  2207.   asm
  2208.     mov esp, ebp
  2209.     pop ebp
  2210.     jmp [_GlobalFindAtom]
  2211.   end;
  2212. end;
  2213. {$ELSE}
  2214. function GlobalFindAtom; external kernel32 name 'GlobalFindAtomA';
  2215. {$ENDIF DYNAMIC_LINK}
  2216. {$ENDIF}
  2217. {$IFDEF DYNAMIC_LINK}
  2218. var
  2219.   _GlobalGetAtomNameA: Pointer;
  2220. function GlobalGetAtomNameA;
  2221. begin
  2222.   GetProcedureAddress(_GlobalGetAtomNameA, kernel32, 'GlobalGetAtomNameA');
  2223.   asm
  2224.     mov esp, ebp
  2225.     pop ebp
  2226.     jmp [_GlobalGetAtomNameA]
  2227.   end;
  2228. end;
  2229. {$ELSE}
  2230. function GlobalGetAtomNameA; external kernel32 name 'GlobalGetAtomNameA';
  2231. {$ENDIF DYNAMIC_LINK}
  2232. {$IFDEF DYNAMIC_LINK}
  2233. var
  2234.   _GlobalGetAtomNameW: Pointer;
  2235. function GlobalGetAtomNameW;
  2236. begin
  2237.   GetProcedureAddress(_GlobalGetAtomNameW, kernel32, 'GlobalGetAtomNameW');
  2238.   asm
  2239.     mov esp, ebp
  2240.     pop ebp
  2241.     jmp [_GlobalGetAtomNameW]
  2242.   end;
  2243. end;
  2244. {$ELSE}
  2245. function GlobalGetAtomNameW; external kernel32 name 'GlobalGetAtomNameW';
  2246. {$ENDIF DYNAMIC_LINK}
  2247. {$IFDEF UNICODE}
  2248. {$IFDEF DYNAMIC_LINK}
  2249. var
  2250.   _GlobalGetAtomName: Pointer;
  2251. function GlobalGetAtomName;
  2252. begin
  2253.   GetProcedureAddress(_GlobalGetAtomName, kernel32, 'GlobalGetAtomNameW');
  2254.   asm
  2255.     mov esp, ebp
  2256.     pop ebp
  2257.     jmp [_GlobalGetAtomName]
  2258.   end;
  2259. end;
  2260. {$ELSE}
  2261. function GlobalGetAtomName; external kernel32 name 'GlobalGetAtomNameW';
  2262. {$ENDIF DYNAMIC_LINK}
  2263. {$ELSE}
  2264. {$IFDEF DYNAMIC_LINK}
  2265. var
  2266.   _GlobalGetAtomName: Pointer;
  2267. function GlobalGetAtomName;
  2268. begin
  2269.   GetProcedureAddress(_GlobalGetAtomName, kernel32, 'GlobalGetAtomNameA');
  2270.   asm
  2271.     mov esp, ebp
  2272.     pop ebp
  2273.     jmp [_GlobalGetAtomName]
  2274.   end;
  2275. end;
  2276. {$ELSE}
  2277. function GlobalGetAtomName; external kernel32 name 'GlobalGetAtomNameA';
  2278. {$ENDIF DYNAMIC_LINK}
  2279. {$ENDIF}
  2280. {$IFDEF DYNAMIC_LINK}
  2281. var
  2282.   _AddAtomA: Pointer;
  2283. function AddAtomA;
  2284. begin
  2285.   GetProcedureAddress(_AddAtomA, kernel32, 'AddAtomA');
  2286.   asm
  2287.     mov esp, ebp
  2288.     pop ebp
  2289.     jmp [_AddAtomA]
  2290.   end;
  2291. end;
  2292. {$ELSE}
  2293. function AddAtomA; external kernel32 name 'AddAtomA';
  2294. {$ENDIF DYNAMIC_LINK}
  2295. {$IFDEF DYNAMIC_LINK}
  2296. var
  2297.   _AddAtomW: Pointer;
  2298. function AddAtomW;
  2299. begin
  2300.   GetProcedureAddress(_AddAtomW, kernel32, 'AddAtomW');
  2301.   asm
  2302.     mov esp, ebp
  2303.     pop ebp
  2304.     jmp [_AddAtomW]
  2305.   end;
  2306. end;
  2307. {$ELSE}
  2308. function AddAtomW; external kernel32 name 'AddAtomW';
  2309. {$ENDIF DYNAMIC_LINK}
  2310. {$IFDEF UNICODE}
  2311. {$IFDEF DYNAMIC_LINK}
  2312. var
  2313.   _AddAtom: Pointer;
  2314. function AddAtom;
  2315. begin
  2316.   GetProcedureAddress(_AddAtom, kernel32, 'AddAtomW');
  2317.   asm
  2318.     mov esp, ebp
  2319.     pop ebp
  2320.     jmp [_AddAtom]
  2321.   end;
  2322. end;
  2323. {$ELSE}
  2324. function AddAtom; external kernel32 name 'AddAtomW';
  2325. {$ENDIF DYNAMIC_LINK}
  2326. {$ELSE}
  2327. {$IFDEF DYNAMIC_LINK}
  2328. var
  2329.   _AddAtom: Pointer;
  2330. function AddAtom;
  2331. begin
  2332.   GetProcedureAddress(_AddAtom, kernel32, 'AddAtomA');
  2333.   asm
  2334.     mov esp, ebp
  2335.     pop ebp
  2336.     jmp [_AddAtom]
  2337.   end;
  2338. end;
  2339. {$ELSE}
  2340. function AddAtom; external kernel32 name 'AddAtomA';
  2341. {$ENDIF DYNAMIC_LINK}
  2342. {$ENDIF}
  2343. {$IFDEF DYNAMIC_LINK}
  2344. var
  2345.   _FindAtomA: Pointer;
  2346. function FindAtomA;
  2347. begin
  2348.   GetProcedureAddress(_FindAtomA, kernel32, 'FindAtomA');
  2349.   asm
  2350.     mov esp, ebp
  2351.     pop ebp
  2352.     jmp [_FindAtomA]
  2353.   end;
  2354. end;
  2355. {$ELSE}
  2356. function FindAtomA; external kernel32 name 'FindAtomA';
  2357. {$ENDIF DYNAMIC_LINK}
  2358. {$IFDEF DYNAMIC_LINK}
  2359. var
  2360.   _FindAtomW: Pointer;
  2361. function FindAtomW;
  2362. begin
  2363.   GetProcedureAddress(_FindAtomW, kernel32, 'FindAtomW');
  2364.   asm
  2365.     mov esp, ebp
  2366.     pop ebp
  2367.     jmp [_FindAtomW]
  2368.   end;
  2369. end;
  2370. {$ELSE}
  2371. function FindAtomW; external kernel32 name 'FindAtomW';
  2372. {$ENDIF DYNAMIC_LINK}
  2373. {$IFDEF UNICODE}
  2374. {$IFDEF DYNAMIC_LINK}
  2375. var
  2376.   _FindAtom: Pointer;
  2377. function FindAtom;
  2378. begin
  2379.   GetProcedureAddress(_FindAtom, kernel32, 'FindAtomW');
  2380.   asm
  2381.     mov esp, ebp
  2382.     pop ebp
  2383.     jmp [_FindAtom]
  2384.   end;
  2385. end;
  2386. {$ELSE}
  2387. function FindAtom; external kernel32 name 'FindAtomW';
  2388. {$ENDIF DYNAMIC_LINK}
  2389. {$ELSE}
  2390. {$IFDEF DYNAMIC_LINK}
  2391. var
  2392.   _FindAtom: Pointer;
  2393. function FindAtom;
  2394. begin
  2395.   GetProcedureAddress(_FindAtom, kernel32, 'FindAtomA');
  2396.   asm
  2397.     mov esp, ebp
  2398.     pop ebp
  2399.     jmp [_FindAtom]
  2400.   end;
  2401. end;
  2402. {$ELSE}
  2403. function FindAtom; external kernel32 name 'FindAtomA';
  2404. {$ENDIF DYNAMIC_LINK}
  2405. {$ENDIF}
  2406. {$IFDEF DYNAMIC_LINK}
  2407. var
  2408.   _GetAtomNameA: Pointer;
  2409. function GetAtomNameA;
  2410. begin
  2411.   GetProcedureAddress(_GetAtomNameA, kernel32, 'GetAtomNameA');
  2412.   asm
  2413.     mov esp, ebp
  2414.     pop ebp
  2415.     jmp [_GetAtomNameA]
  2416.   end;
  2417. end;
  2418. {$ELSE}
  2419. function GetAtomNameA; external kernel32 name 'GetAtomNameA';
  2420. {$ENDIF DYNAMIC_LINK}
  2421. {$IFDEF DYNAMIC_LINK}
  2422. var
  2423.   _GetAtomNameW: Pointer;
  2424. function GetAtomNameW;
  2425. begin
  2426.   GetProcedureAddress(_GetAtomNameW, kernel32, 'GetAtomNameW');
  2427.   asm
  2428.     mov esp, ebp
  2429.     pop ebp
  2430.     jmp [_GetAtomNameW]
  2431.   end;
  2432. end;
  2433. {$ELSE}
  2434. function GetAtomNameW; external kernel32 name 'GetAtomNameW';
  2435. {$ENDIF DYNAMIC_LINK}
  2436. {$IFDEF UNICODE}
  2437. {$IFDEF DYNAMIC_LINK}
  2438. var
  2439.   _GetAtomName: Pointer;
  2440. function GetAtomName;
  2441. begin
  2442.   GetProcedureAddress(_GetAtomName, kernel32, 'GetAtomNameW');
  2443.   asm
  2444.     mov esp, ebp
  2445.     pop ebp
  2446.     jmp [_GetAtomName]
  2447.   end;
  2448. end;
  2449. {$ELSE}
  2450. function GetAtomName; external kernel32 name 'GetAtomNameW';
  2451. {$ENDIF DYNAMIC_LINK}
  2452. {$ELSE}
  2453. {$IFDEF DYNAMIC_LINK}
  2454. var
  2455.   _GetAtomName: Pointer;
  2456. function GetAtomName;
  2457. begin
  2458.   GetProcedureAddress(_GetAtomName, kernel32, 'GetAtomNameA');
  2459.   asm
  2460.     mov esp, ebp
  2461.     pop ebp
  2462.     jmp [_GetAtomName]
  2463.   end;
  2464. end;
  2465. {$ELSE}
  2466. function GetAtomName; external kernel32 name 'GetAtomNameA';
  2467. {$ENDIF DYNAMIC_LINK}
  2468. {$ENDIF}
  2469. {$IFDEF DYNAMIC_LINK}
  2470. var
  2471.   _GetProfileIntA: Pointer;
  2472. function GetProfileIntA;
  2473. begin
  2474.   GetProcedureAddress(_GetProfileIntA, kernel32, 'GetProfileIntA');
  2475.   asm
  2476.     mov esp, ebp
  2477.     pop ebp
  2478.     jmp [_GetProfileIntA]
  2479.   end;
  2480. end;
  2481. {$ELSE}
  2482. function GetProfileIntA; external kernel32 name 'GetProfileIntA';
  2483. {$ENDIF DYNAMIC_LINK}
  2484. {$IFDEF DYNAMIC_LINK}
  2485. var
  2486.   _GetProfileIntW: Pointer;
  2487. function GetProfileIntW;
  2488. begin
  2489.   GetProcedureAddress(_GetProfileIntW, kernel32, 'GetProfileIntW');
  2490.   asm
  2491.     mov esp, ebp
  2492.     pop ebp
  2493.     jmp [_GetProfileIntW]
  2494.   end;
  2495. end;
  2496. {$ELSE}
  2497. function GetProfileIntW; external kernel32 name 'GetProfileIntW';
  2498. {$ENDIF DYNAMIC_LINK}
  2499. {$IFDEF UNICODE}
  2500. {$IFDEF DYNAMIC_LINK}
  2501. var
  2502.   _GetProfileInt: Pointer;
  2503. function GetProfileInt;
  2504. begin
  2505.   GetProcedureAddress(_GetProfileInt, kernel32, 'GetProfileIntW');
  2506.   asm
  2507.     mov esp, ebp
  2508.     pop ebp
  2509.     jmp [_GetProfileInt]
  2510.   end;
  2511. end;
  2512. {$ELSE}
  2513. function GetProfileInt; external kernel32 name 'GetProfileIntW';
  2514. {$ENDIF DYNAMIC_LINK}
  2515. {$ELSE}
  2516. {$IFDEF DYNAMIC_LINK}
  2517. var
  2518.   _GetProfileInt: Pointer;
  2519. function GetProfileInt;
  2520. begin
  2521.   GetProcedureAddress(_GetProfileInt, kernel32, 'GetProfileIntA');
  2522.   asm
  2523.     mov esp, ebp
  2524.     pop ebp
  2525.     jmp [_GetProfileInt]
  2526.   end;
  2527. end;
  2528. {$ELSE}
  2529. function GetProfileInt; external kernel32 name 'GetProfileIntA';
  2530. {$ENDIF DYNAMIC_LINK}
  2531. {$ENDIF}
  2532. {$IFDEF DYNAMIC_LINK}
  2533. var
  2534.   _GetProfileStringA: Pointer;
  2535. function GetProfileStringA;
  2536. begin
  2537.   GetProcedureAddress(_GetProfileStringA, kernel32, 'GetProfileStringA');
  2538.   asm
  2539.     mov esp, ebp
  2540.     pop ebp
  2541.     jmp [_GetProfileStringA]
  2542.   end;
  2543. end;
  2544. {$ELSE}
  2545. function GetProfileStringA; external kernel32 name 'GetProfileStringA';
  2546. {$ENDIF DYNAMIC_LINK}
  2547. {$IFDEF DYNAMIC_LINK}
  2548. var
  2549.   _GetProfileStringW: Pointer;
  2550. function GetProfileStringW;
  2551. begin
  2552.   GetProcedureAddress(_GetProfileStringW, kernel32, 'GetProfileStringW');
  2553.   asm
  2554.     mov esp, ebp
  2555.     pop ebp
  2556.     jmp [_GetProfileStringW]
  2557.   end;
  2558. end;
  2559. {$ELSE}
  2560. function GetProfileStringW; external kernel32 name 'GetProfileStringW';
  2561. {$ENDIF DYNAMIC_LINK}
  2562. {$IFDEF UNICODE}
  2563. {$IFDEF DYNAMIC_LINK}
  2564. var
  2565.   _GetProfileString: Pointer;
  2566. function GetProfileString;
  2567. begin
  2568.   GetProcedureAddress(_GetProfileString, kernel32, 'GetProfileStringW');
  2569.   asm
  2570.     mov esp, ebp
  2571.     pop ebp
  2572.     jmp [_GetProfileString]
  2573.   end;
  2574. end;
  2575. {$ELSE}
  2576. function GetProfileString; external kernel32 name 'GetProfileStringW';
  2577. {$ENDIF DYNAMIC_LINK}
  2578. {$ELSE}
  2579. {$IFDEF DYNAMIC_LINK}
  2580. var
  2581.   _GetProfileString: Pointer;
  2582. function GetProfileString;
  2583. begin
  2584.   GetProcedureAddress(_GetProfileString, kernel32, 'GetProfileStringA');
  2585.   asm
  2586.     mov esp, ebp
  2587.     pop ebp
  2588.     jmp [_GetProfileString]
  2589.   end;
  2590. end;
  2591. {$ELSE}
  2592. function GetProfileString; external kernel32 name 'GetProfileStringA';
  2593. {$ENDIF DYNAMIC_LINK}
  2594. {$ENDIF}
  2595. {$IFDEF DYNAMIC_LINK}
  2596. var
  2597.   _WriteProfileStringA: Pointer;
  2598. function WriteProfileStringA;
  2599. begin
  2600.   GetProcedureAddress(_WriteProfileStringA, kernel32, 'WriteProfileStringA');
  2601.   asm
  2602.     mov esp, ebp
  2603.     pop ebp
  2604.     jmp [_WriteProfileStringA]
  2605.   end;
  2606. end;
  2607. {$ELSE}
  2608. function WriteProfileStringA; external kernel32 name 'WriteProfileStringA';
  2609. {$ENDIF DYNAMIC_LINK}
  2610. {$IFDEF DYNAMIC_LINK}
  2611. var
  2612.   _WriteProfileStringW: Pointer;
  2613. function WriteProfileStringW;
  2614. begin
  2615.   GetProcedureAddress(_WriteProfileStringW, kernel32, 'WriteProfileStringW');
  2616.   asm
  2617.     mov esp, ebp
  2618.     pop ebp
  2619.     jmp [_WriteProfileStringW]
  2620.   end;
  2621. end;
  2622. {$ELSE}
  2623. function WriteProfileStringW; external kernel32 name 'WriteProfileStringW';
  2624. {$ENDIF DYNAMIC_LINK}
  2625. {$IFDEF UNICODE}
  2626. {$IFDEF DYNAMIC_LINK}
  2627. var
  2628.   _WriteProfileString: Pointer;
  2629. function WriteProfileString;
  2630. begin
  2631.   GetProcedureAddress(_WriteProfileString, kernel32, 'WriteProfileStringW');
  2632.   asm
  2633.     mov esp, ebp
  2634.     pop ebp
  2635.     jmp [_WriteProfileString]
  2636.   end;
  2637. end;
  2638. {$ELSE}
  2639. function WriteProfileString; external kernel32 name 'WriteProfileStringW';
  2640. {$ENDIF DYNAMIC_LINK}
  2641. {$ELSE}
  2642. {$IFDEF DYNAMIC_LINK}
  2643. var
  2644.   _WriteProfileString: Pointer;
  2645. function WriteProfileString;
  2646. begin
  2647.   GetProcedureAddress(_WriteProfileString, kernel32, 'WriteProfileStringA');
  2648.   asm
  2649.     mov esp, ebp
  2650.     pop ebp
  2651.     jmp [_WriteProfileString]
  2652.   end;
  2653. end;
  2654. {$ELSE}
  2655. function WriteProfileString; external kernel32 name 'WriteProfileStringA';
  2656. {$ENDIF DYNAMIC_LINK}
  2657. {$ENDIF}
  2658. {$IFDEF DYNAMIC_LINK}
  2659. var
  2660.   _GetProfileSectionA: Pointer;
  2661. function GetProfileSectionA;
  2662. begin
  2663.   GetProcedureAddress(_GetProfileSectionA, kernel32, 'GetProfileSectionA');
  2664.   asm
  2665.     mov esp, ebp
  2666.     pop ebp
  2667.     jmp [_GetProfileSectionA]
  2668.   end;
  2669. end;
  2670. {$ELSE}
  2671. function GetProfileSectionA; external kernel32 name 'GetProfileSectionA';
  2672. {$ENDIF DYNAMIC_LINK}
  2673. {$IFDEF DYNAMIC_LINK}
  2674. var
  2675.   _GetProfileSectionW: Pointer;
  2676. function GetProfileSectionW;
  2677. begin
  2678.   GetProcedureAddress(_GetProfileSectionW, kernel32, 'GetProfileSectionW');
  2679.   asm
  2680.     mov esp, ebp
  2681.     pop ebp
  2682.     jmp [_GetProfileSectionW]
  2683.   end;
  2684. end;
  2685. {$ELSE}
  2686. function GetProfileSectionW; external kernel32 name 'GetProfileSectionW';
  2687. {$ENDIF DYNAMIC_LINK}
  2688. {$IFDEF UNICODE}
  2689. {$IFDEF DYNAMIC_LINK}
  2690. var
  2691.   _GetProfileSection: Pointer;
  2692. function GetProfileSection;
  2693. begin
  2694.   GetProcedureAddress(_GetProfileSection, kernel32, 'GetProfileSectionW');
  2695.   asm
  2696.     mov esp, ebp
  2697.     pop ebp
  2698.     jmp [_GetProfileSection]
  2699.   end;
  2700. end;
  2701. {$ELSE}
  2702. function GetProfileSection; external kernel32 name 'GetProfileSectionW';
  2703. {$ENDIF DYNAMIC_LINK}
  2704. {$ELSE}
  2705. {$IFDEF DYNAMIC_LINK}
  2706. var
  2707.   _GetProfileSection: Pointer;
  2708. function GetProfileSection;
  2709. begin
  2710.   GetProcedureAddress(_GetProfileSection, kernel32, 'GetProfileSectionA');
  2711.   asm
  2712.     mov esp, ebp
  2713.     pop ebp
  2714.     jmp [_GetProfileSection]
  2715.   end;
  2716. end;
  2717. {$ELSE}
  2718. function GetProfileSection; external kernel32 name 'GetProfileSectionA';
  2719. {$ENDIF DYNAMIC_LINK}
  2720. {$ENDIF}
  2721. {$IFDEF DYNAMIC_LINK}
  2722. var
  2723.   _WriteProfileSectionA: Pointer;
  2724. function WriteProfileSectionA;
  2725. begin
  2726.   GetProcedureAddress(_WriteProfileSectionA, kernel32, 'WriteProfileSectionA');
  2727.   asm
  2728.     mov esp, ebp
  2729.     pop ebp
  2730.     jmp [_WriteProfileSectionA]
  2731.   end;
  2732. end;
  2733. {$ELSE}
  2734. function WriteProfileSectionA; external kernel32 name 'WriteProfileSectionA';
  2735. {$ENDIF DYNAMIC_LINK}
  2736. {$IFDEF DYNAMIC_LINK}
  2737. var
  2738.   _WriteProfileSectionW: Pointer;
  2739. function WriteProfileSectionW;
  2740. begin
  2741.   GetProcedureAddress(_WriteProfileSectionW, kernel32, 'WriteProfileSectionW');
  2742.   asm
  2743.     mov esp, ebp
  2744.     pop ebp
  2745.     jmp [_WriteProfileSectionW]
  2746.   end;
  2747. end;
  2748. {$ELSE}
  2749. function WriteProfileSectionW; external kernel32 name 'WriteProfileSectionW';
  2750. {$ENDIF DYNAMIC_LINK}
  2751. {$IFDEF UNICODE}
  2752. {$IFDEF DYNAMIC_LINK}
  2753. var
  2754.   _WriteProfileSection: Pointer;
  2755. function WriteProfileSection;
  2756. begin
  2757.   GetProcedureAddress(_WriteProfileSection, kernel32, 'WriteProfileSectionW');
  2758.   asm
  2759.     mov esp, ebp
  2760.     pop ebp
  2761.     jmp [_WriteProfileSection]
  2762.   end;
  2763. end;
  2764. {$ELSE}
  2765. function WriteProfileSection; external kernel32 name 'WriteProfileSectionW';
  2766. {$ENDIF DYNAMIC_LINK}
  2767. {$ELSE}
  2768. {$IFDEF DYNAMIC_LINK}
  2769. var
  2770.   _WriteProfileSection: Pointer;
  2771. function WriteProfileSection;
  2772. begin
  2773.   GetProcedureAddress(_WriteProfileSection, kernel32, 'WriteProfileSectionA');
  2774.   asm
  2775.     mov esp, ebp
  2776.     pop ebp
  2777.     jmp [_WriteProfileSection]
  2778.   end;
  2779. end;
  2780. {$ELSE}
  2781. function WriteProfileSection; external kernel32 name 'WriteProfileSectionA';
  2782. {$ENDIF DYNAMIC_LINK}
  2783. {$ENDIF}
  2784. {$IFDEF DYNAMIC_LINK}
  2785. var
  2786.   _GetPrivateProfileIntA: Pointer;
  2787. function GetPrivateProfileIntA;
  2788. begin
  2789.   GetProcedureAddress(_GetPrivateProfileIntA, kernel32, 'GetPrivateProfileIntA');
  2790.   asm
  2791.     mov esp, ebp
  2792.     pop ebp
  2793.     jmp [_GetPrivateProfileIntA]
  2794.   end;
  2795. end;
  2796. {$ELSE}
  2797. function GetPrivateProfileIntA; external kernel32 name 'GetPrivateProfileIntA';
  2798. {$ENDIF DYNAMIC_LINK}
  2799. {$IFDEF DYNAMIC_LINK}
  2800. var
  2801.   _GetPrivateProfileIntW: Pointer;
  2802. function GetPrivateProfileIntW;
  2803. begin
  2804.   GetProcedureAddress(_GetPrivateProfileIntW, kernel32, 'GetPrivateProfileIntW');
  2805.   asm
  2806.     mov esp, ebp
  2807.     pop ebp
  2808.     jmp [_GetPrivateProfileIntW]
  2809.   end;
  2810. end;
  2811. {$ELSE}
  2812. function GetPrivateProfileIntW; external kernel32 name 'GetPrivateProfileIntW';
  2813. {$ENDIF DYNAMIC_LINK}
  2814. {$IFDEF UNICODE}
  2815. {$IFDEF DYNAMIC_LINK}
  2816. var
  2817.   _GetPrivateProfileInt: Pointer;
  2818. function GetPrivateProfileInt;
  2819. begin
  2820.   GetProcedureAddress(_GetPrivateProfileInt, kernel32, 'GetPrivateProfileIntW');
  2821.   asm
  2822.     mov esp, ebp
  2823.     pop ebp
  2824.     jmp [_GetPrivateProfileInt]
  2825.   end;
  2826. end;
  2827. {$ELSE}
  2828. function GetPrivateProfileInt; external kernel32 name 'GetPrivateProfileIntW';
  2829. {$ENDIF DYNAMIC_LINK}
  2830. {$ELSE}
  2831. {$IFDEF DYNAMIC_LINK}
  2832. var
  2833.   _GetPrivateProfileInt: Pointer;
  2834. function GetPrivateProfileInt;
  2835. begin
  2836.   GetProcedureAddress(_GetPrivateProfileInt, kernel32, 'GetPrivateProfileIntA');
  2837.   asm
  2838.     mov esp, ebp
  2839.     pop ebp
  2840.     jmp [_GetPrivateProfileInt]
  2841.   end;
  2842. end;
  2843. {$ELSE}
  2844. function GetPrivateProfileInt; external kernel32 name 'GetPrivateProfileIntA';
  2845. {$ENDIF DYNAMIC_LINK}
  2846. {$ENDIF}
  2847. {$IFDEF DYNAMIC_LINK}
  2848. var
  2849.   _GetPrivateProfileStringA: Pointer;
  2850. function GetPrivateProfileStringA;
  2851. begin
  2852.   GetProcedureAddress(_GetPrivateProfileStringA, kernel32, 'GetPrivateProfileStringA');
  2853.   asm
  2854.     mov esp, ebp
  2855.     pop ebp
  2856.     jmp [_GetPrivateProfileStringA]
  2857.   end;
  2858. end;
  2859. {$ELSE}
  2860. function GetPrivateProfileStringA; external kernel32 name 'GetPrivateProfileStringA';
  2861. {$ENDIF DYNAMIC_LINK}
  2862. {$IFDEF DYNAMIC_LINK}
  2863. var
  2864.   _GetPrivateProfileStringW: Pointer;
  2865. function GetPrivateProfileStringW;
  2866. begin
  2867.   GetProcedureAddress(_GetPrivateProfileStringW, kernel32, 'GetPrivateProfileStringW');
  2868.   asm
  2869.     mov esp, ebp
  2870.     pop ebp
  2871.     jmp [_GetPrivateProfileStringW]
  2872.   end;
  2873. end;
  2874. {$ELSE}
  2875. function GetPrivateProfileStringW; external kernel32 name 'GetPrivateProfileStringW';
  2876. {$ENDIF DYNAMIC_LINK}
  2877. {$IFDEF UNICODE}
  2878. {$IFDEF DYNAMIC_LINK}
  2879. var
  2880.   _GetPrivateProfileString: Pointer;
  2881. function GetPrivateProfileString;
  2882. begin
  2883.   GetProcedureAddress(_GetPrivateProfileString, kernel32, 'GetPrivateProfileStringW');
  2884.   asm
  2885.     mov esp, ebp
  2886.     pop ebp
  2887.     jmp [_GetPrivateProfileString]
  2888.   end;
  2889. end;
  2890. {$ELSE}
  2891. function GetPrivateProfileString; external kernel32 name 'GetPrivateProfileStringW';
  2892. {$ENDIF DYNAMIC_LINK}
  2893. {$ELSE}
  2894. {$IFDEF DYNAMIC_LINK}
  2895. var
  2896.   _GetPrivateProfileString: Pointer;
  2897. function GetPrivateProfileString;
  2898. begin
  2899.   GetProcedureAddress(_GetPrivateProfileString, kernel32, 'GetPrivateProfileStringA');
  2900.   asm
  2901.     mov esp, ebp
  2902.     pop ebp
  2903.     jmp [_GetPrivateProfileString]
  2904.   end;
  2905. end;
  2906. {$ELSE}
  2907. function GetPrivateProfileString; external kernel32 name 'GetPrivateProfileStringA';
  2908. {$ENDIF DYNAMIC_LINK}
  2909. {$ENDIF}
  2910. {$IFDEF DYNAMIC_LINK}
  2911. var
  2912.   _WritePrivateProfileStringA: Pointer;
  2913. function WritePrivateProfileStringA;
  2914. begin
  2915.   GetProcedureAddress(_WritePrivateProfileStringA, kernel32, 'WritePrivateProfileStringA');
  2916.   asm
  2917.     mov esp, ebp
  2918.     pop ebp
  2919.     jmp [_WritePrivateProfileStringA]
  2920.   end;
  2921. end;
  2922. {$ELSE}
  2923. function WritePrivateProfileStringA; external kernel32 name 'WritePrivateProfileStringA';
  2924. {$ENDIF DYNAMIC_LINK}
  2925. {$IFDEF DYNAMIC_LINK}
  2926. var
  2927.   _WritePrivateProfileStringW: Pointer;
  2928. function WritePrivateProfileStringW;
  2929. begin
  2930.   GetProcedureAddress(_WritePrivateProfileStringW, kernel32, 'WritePrivateProfileStringW');
  2931.   asm
  2932.     mov esp, ebp
  2933.     pop ebp
  2934.     jmp [_WritePrivateProfileStringW]
  2935.   end;
  2936. end;
  2937. {$ELSE}
  2938. function WritePrivateProfileStringW; external kernel32 name 'WritePrivateProfileStringW';
  2939. {$ENDIF DYNAMIC_LINK}
  2940. {$IFDEF UNICODE}
  2941. {$IFDEF DYNAMIC_LINK}
  2942. var
  2943.   _WritePrivateProfileString: Pointer;
  2944. function WritePrivateProfileString;
  2945. begin
  2946.   GetProcedureAddress(_WritePrivateProfileString, kernel32, 'WritePrivateProfileStringW');
  2947.   asm
  2948.     mov esp, ebp
  2949.     pop ebp
  2950.     jmp [_WritePrivateProfileString]
  2951.   end;
  2952. end;
  2953. {$ELSE}
  2954. function WritePrivateProfileString; external kernel32 name 'WritePrivateProfileStringW';
  2955. {$ENDIF DYNAMIC_LINK}
  2956. {$ELSE}
  2957. {$IFDEF DYNAMIC_LINK}
  2958. var
  2959.   _WritePrivateProfileString: Pointer;
  2960. function WritePrivateProfileString;
  2961. begin
  2962.   GetProcedureAddress(_WritePrivateProfileString, kernel32, 'WritePrivateProfileStringA');
  2963.   asm
  2964.     mov esp, ebp
  2965.     pop ebp
  2966.     jmp [_WritePrivateProfileString]
  2967.   end;
  2968. end;
  2969. {$ELSE}
  2970. function WritePrivateProfileString; external kernel32 name 'WritePrivateProfileStringA';
  2971. {$ENDIF DYNAMIC_LINK}
  2972. {$ENDIF}
  2973. {$IFDEF DYNAMIC_LINK}
  2974. var
  2975.   _GetPrivateProfileSectionA: Pointer;
  2976. function GetPrivateProfileSectionA;
  2977. begin
  2978.   GetProcedureAddress(_GetPrivateProfileSectionA, kernel32, 'GetPrivateProfileSectionA');
  2979.   asm
  2980.     mov esp, ebp
  2981.     pop ebp
  2982.     jmp [_GetPrivateProfileSectionA]
  2983.   end;
  2984. end;
  2985. {$ELSE}
  2986. function GetPrivateProfileSectionA; external kernel32 name 'GetPrivateProfileSectionA';
  2987. {$ENDIF DYNAMIC_LINK}
  2988. {$IFDEF DYNAMIC_LINK}
  2989. var
  2990.   _GetPrivateProfileSectionW: Pointer;
  2991. function GetPrivateProfileSectionW;
  2992. begin
  2993.   GetProcedureAddress(_GetPrivateProfileSectionW, kernel32, 'GetPrivateProfileSectionW');
  2994.   asm
  2995.     mov esp, ebp
  2996.     pop ebp
  2997.     jmp [_GetPrivateProfileSectionW]
  2998.   end;
  2999. end;
  3000. {$ELSE}
  3001. function GetPrivateProfileSectionW; external kernel32 name 'GetPrivateProfileSectionW';
  3002. {$ENDIF DYNAMIC_LINK}
  3003. {$IFDEF UNICODE}
  3004. {$IFDEF DYNAMIC_LINK}
  3005. var
  3006.   _GetPrivateProfileSection: Pointer;
  3007. function GetPrivateProfileSection;
  3008. begin
  3009.   GetProcedureAddress(_GetPrivateProfileSection, kernel32, 'GetPrivateProfileSectionW');
  3010.   asm
  3011.     mov esp, ebp
  3012.     pop ebp
  3013.     jmp [_GetPrivateProfileSection]
  3014.   end;
  3015. end;
  3016. {$ELSE}
  3017. function GetPrivateProfileSection; external kernel32 name 'GetPrivateProfileSectionW';
  3018. {$ENDIF DYNAMIC_LINK}
  3019. {$ELSE}
  3020. {$IFDEF DYNAMIC_LINK}
  3021. var
  3022.   _GetPrivateProfileSection: Pointer;
  3023. function GetPrivateProfileSection;
  3024. begin
  3025.   GetProcedureAddress(_GetPrivateProfileSection, kernel32, 'GetPrivateProfileSectionA');
  3026.   asm
  3027.     mov esp, ebp
  3028.     pop ebp
  3029.     jmp [_GetPrivateProfileSection]
  3030.   end;
  3031. end;
  3032. {$ELSE}
  3033. function GetPrivateProfileSection; external kernel32 name 'GetPrivateProfileSectionA';
  3034. {$ENDIF DYNAMIC_LINK}
  3035. {$ENDIF}
  3036. {$IFDEF DYNAMIC_LINK}
  3037. var
  3038.   _WritePrivateProfileSectionA: Pointer;
  3039. function WritePrivateProfileSectionA;
  3040. begin
  3041.   GetProcedureAddress(_WritePrivateProfileSectionA, kernel32, 'WritePrivateProfileSectionA');
  3042.   asm
  3043.     mov esp, ebp
  3044.     pop ebp
  3045.     jmp [_WritePrivateProfileSectionA]
  3046.   end;
  3047. end;
  3048. {$ELSE}
  3049. function WritePrivateProfileSectionA; external kernel32 name 'WritePrivateProfileSectionA';
  3050. {$ENDIF DYNAMIC_LINK}
  3051. {$IFDEF DYNAMIC_LINK}
  3052. var
  3053.   _WritePrivateProfileSectionW: Pointer;
  3054. function WritePrivateProfileSectionW;
  3055. begin
  3056.   GetProcedureAddress(_WritePrivateProfileSectionW, kernel32, 'WritePrivateProfileSectionW');
  3057.   asm
  3058.     mov esp, ebp
  3059.     pop ebp
  3060.     jmp [_WritePrivateProfileSectionW]
  3061.   end;
  3062. end;
  3063. {$ELSE}
  3064. function WritePrivateProfileSectionW; external kernel32 name 'WritePrivateProfileSectionW';
  3065. {$ENDIF DYNAMIC_LINK}
  3066. {$IFDEF UNICODE}
  3067. {$IFDEF DYNAMIC_LINK}
  3068. var
  3069.   _WritePrivateProfileSection: Pointer;
  3070. function WritePrivateProfileSection;
  3071. begin
  3072.   GetProcedureAddress(_WritePrivateProfileSection, kernel32, 'WritePrivateProfileSectionW');
  3073.   asm
  3074.     mov esp, ebp
  3075.     pop ebp
  3076.     jmp [_WritePrivateProfileSection]
  3077.   end;
  3078. end;
  3079. {$ELSE}
  3080. function WritePrivateProfileSection; external kernel32 name 'WritePrivateProfileSectionW';
  3081. {$ENDIF DYNAMIC_LINK}
  3082. {$ELSE}
  3083. {$IFDEF DYNAMIC_LINK}
  3084. var
  3085.   _WritePrivateProfileSection: Pointer;
  3086. function WritePrivateProfileSection;
  3087. begin
  3088.   GetProcedureAddress(_WritePrivateProfileSection, kernel32, 'WritePrivateProfileSectionA');
  3089.   asm
  3090.     mov esp, ebp
  3091.     pop ebp
  3092.     jmp [_WritePrivateProfileSection]
  3093.   end;
  3094. end;
  3095. {$ELSE}
  3096. function WritePrivateProfileSection; external kernel32 name 'WritePrivateProfileSectionA';
  3097. {$ENDIF DYNAMIC_LINK}
  3098. {$ENDIF}
  3099. {$IFDEF DYNAMIC_LINK}
  3100. var
  3101.   _GetPrivateProfileSectionNamesA: Pointer;
  3102. function GetPrivateProfileSectionNamesA;
  3103. begin
  3104.   GetProcedureAddress(_GetPrivateProfileSectionNamesA, kernel32, 'GetPrivateProfileSectionNamesA');
  3105.   asm
  3106.     mov esp, ebp
  3107.     pop ebp
  3108.     jmp [_GetPrivateProfileSectionNamesA]
  3109.   end;
  3110. end;
  3111. {$ELSE}
  3112. function GetPrivateProfileSectionNamesA; external kernel32 name 'GetPrivateProfileSectionNamesA';
  3113. {$ENDIF DYNAMIC_LINK}
  3114. {$IFDEF DYNAMIC_LINK}
  3115. var
  3116.   _GetPrivateProfileSectionNamesW: Pointer;
  3117. function GetPrivateProfileSectionNamesW;
  3118. begin
  3119.   GetProcedureAddress(_GetPrivateProfileSectionNamesW, kernel32, 'GetPrivateProfileSectionNamesW');
  3120.   asm
  3121.     mov esp, ebp
  3122.     pop ebp
  3123.     jmp [_GetPrivateProfileSectionNamesW]
  3124.   end;
  3125. end;
  3126. {$ELSE}
  3127. function GetPrivateProfileSectionNamesW; external kernel32 name 'GetPrivateProfileSectionNamesW';
  3128. {$ENDIF DYNAMIC_LINK}
  3129. {$IFDEF UNICODE}
  3130. {$IFDEF DYNAMIC_LINK}
  3131. var
  3132.   _GetPrivateProfileSectionNames: Pointer;
  3133. function GetPrivateProfileSectionNames;
  3134. begin
  3135.   GetProcedureAddress(_GetPrivateProfileSectionNames, kernel32, 'GetPrivateProfileSectionNamesW');
  3136.   asm
  3137.     mov esp, ebp
  3138.     pop ebp
  3139.     jmp [_GetPrivateProfileSectionNames]
  3140.   end;
  3141. end;
  3142. {$ELSE}
  3143. function GetPrivateProfileSectionNames; external kernel32 name 'GetPrivateProfileSectionNamesW';
  3144. {$ENDIF DYNAMIC_LINK}
  3145. {$ELSE}
  3146. {$IFDEF DYNAMIC_LINK}
  3147. var
  3148.   _GetPrivateProfileSectionNames: Pointer;
  3149. function GetPrivateProfileSectionNames;
  3150. begin
  3151.   GetProcedureAddress(_GetPrivateProfileSectionNames, kernel32, 'GetPrivateProfileSectionNamesA');
  3152.   asm
  3153.     mov esp, ebp
  3154.     pop ebp
  3155.     jmp [_GetPrivateProfileSectionNames]
  3156.   end;
  3157. end;
  3158. {$ELSE}
  3159. function GetPrivateProfileSectionNames; external kernel32 name 'GetPrivateProfileSectionNamesA';
  3160. {$ENDIF DYNAMIC_LINK}
  3161. {$ENDIF}
  3162. {$IFDEF DYNAMIC_LINK}
  3163. var
  3164.   _GetPrivateProfileStructA: Pointer;
  3165. function GetPrivateProfileStructA;
  3166. begin
  3167.   GetProcedureAddress(_GetPrivateProfileStructA, kernel32, 'GetPrivateProfileStructA');
  3168.   asm
  3169.     mov esp, ebp
  3170.     pop ebp
  3171.     jmp [_GetPrivateProfileStructA]
  3172.   end;
  3173. end;
  3174. {$ELSE}
  3175. function GetPrivateProfileStructA; external kernel32 name 'GetPrivateProfileStructA';
  3176. {$ENDIF DYNAMIC_LINK}
  3177. {$IFDEF DYNAMIC_LINK}
  3178. var
  3179.   _GetPrivateProfileStructW: Pointer;
  3180. function GetPrivateProfileStructW;
  3181. begin
  3182.   GetProcedureAddress(_GetPrivateProfileStructW, kernel32, 'GetPrivateProfileStructW');
  3183.   asm
  3184.     mov esp, ebp
  3185.     pop ebp
  3186.     jmp [_GetPrivateProfileStructW]
  3187.   end;
  3188. end;
  3189. {$ELSE}
  3190. function GetPrivateProfileStructW; external kernel32 name 'GetPrivateProfileStructW';
  3191. {$ENDIF DYNAMIC_LINK}
  3192. {$IFDEF UNICODE}
  3193. {$IFDEF DYNAMIC_LINK}
  3194. var
  3195.   _GetPrivateProfileStruct: Pointer;
  3196. function GetPrivateProfileStruct;
  3197. begin
  3198.   GetProcedureAddress(_GetPrivateProfileStruct, kernel32, 'GetPrivateProfileStructW');
  3199.   asm
  3200.     mov esp, ebp
  3201.     pop ebp
  3202.     jmp [_GetPrivateProfileStruct]
  3203.   end;
  3204. end;
  3205. {$ELSE}
  3206. function GetPrivateProfileStruct; external kernel32 name 'GetPrivateProfileStructW';
  3207. {$ENDIF DYNAMIC_LINK}
  3208. {$ELSE}
  3209. {$IFDEF DYNAMIC_LINK}
  3210. var
  3211.   _GetPrivateProfileStruct: Pointer;
  3212. function GetPrivateProfileStruct;
  3213. begin
  3214.   GetProcedureAddress(_GetPrivateProfileStruct, kernel32, 'GetPrivateProfileStructA');
  3215.   asm
  3216.     mov esp, ebp
  3217.     pop ebp
  3218.     jmp [_GetPrivateProfileStruct]
  3219.   end;
  3220. end;
  3221. {$ELSE}
  3222. function GetPrivateProfileStruct; external kernel32 name 'GetPrivateProfileStructA';
  3223. {$ENDIF DYNAMIC_LINK}
  3224. {$ENDIF}
  3225. {$IFDEF DYNAMIC_LINK}
  3226. var
  3227.   _WritePrivateProfileStructA: Pointer;
  3228. function WritePrivateProfileStructA;
  3229. begin
  3230.   GetProcedureAddress(_WritePrivateProfileStructA, kernel32, 'WritePrivateProfileStructA');
  3231.   asm
  3232.     mov esp, ebp
  3233.     pop ebp
  3234.     jmp [_WritePrivateProfileStructA]
  3235.   end;
  3236. end;
  3237. {$ELSE}
  3238. function WritePrivateProfileStructA; external kernel32 name 'WritePrivateProfileStructA';
  3239. {$ENDIF DYNAMIC_LINK}
  3240. {$IFDEF DYNAMIC_LINK}
  3241. var
  3242.   _WritePrivateProfileStructW: Pointer;
  3243. function WritePrivateProfileStructW;
  3244. begin
  3245.   GetProcedureAddress(_WritePrivateProfileStructW, kernel32, 'WritePrivateProfileStructW');
  3246.   asm
  3247.     mov esp, ebp
  3248.     pop ebp
  3249.     jmp [_WritePrivateProfileStructW]
  3250.   end;
  3251. end;
  3252. {$ELSE}
  3253. function WritePrivateProfileStructW; external kernel32 name 'WritePrivateProfileStructW';
  3254. {$ENDIF DYNAMIC_LINK}
  3255. {$IFDEF UNICODE}
  3256. {$IFDEF DYNAMIC_LINK}
  3257. var
  3258.   _WritePrivateProfileStruct: Pointer;
  3259. function WritePrivateProfileStruct;
  3260. begin
  3261.   GetProcedureAddress(_WritePrivateProfileStruct, kernel32, 'WritePrivateProfileStructW');
  3262.   asm
  3263.     mov esp, ebp
  3264.     pop ebp
  3265.     jmp [_WritePrivateProfileStruct]
  3266.   end;
  3267. end;
  3268. {$ELSE}
  3269. function WritePrivateProfileStruct; external kernel32 name 'WritePrivateProfileStructW';
  3270. {$ENDIF DYNAMIC_LINK}
  3271. {$ELSE}
  3272. {$IFDEF DYNAMIC_LINK}
  3273. var
  3274.   _WritePrivateProfileStruct: Pointer;
  3275. function WritePrivateProfileStruct;
  3276. begin
  3277.   GetProcedureAddress(_WritePrivateProfileStruct, kernel32, 'WritePrivateProfileStructA');
  3278.   asm
  3279.     mov esp, ebp
  3280.     pop ebp
  3281.     jmp [_WritePrivateProfileStruct]
  3282.   end;
  3283. end;
  3284. {$ELSE}
  3285. function WritePrivateProfileStruct; external kernel32 name 'WritePrivateProfileStructA';
  3286. {$ENDIF DYNAMIC_LINK}
  3287. {$ENDIF}
  3288. {$IFDEF DYNAMIC_LINK}
  3289. var
  3290.   _GetDriveTypeA: Pointer;
  3291. function GetDriveTypeA;
  3292. begin
  3293.   GetProcedureAddress(_GetDriveTypeA, kernel32, 'GetDriveTypeA');
  3294.   asm
  3295.     mov esp, ebp
  3296.     pop ebp
  3297.     jmp [_GetDriveTypeA]
  3298.   end;
  3299. end;
  3300. {$ELSE}
  3301. function GetDriveTypeA; external kernel32 name 'GetDriveTypeA';
  3302. {$ENDIF DYNAMIC_LINK}
  3303. {$IFDEF DYNAMIC_LINK}
  3304. var
  3305.   _GetDriveTypeW: Pointer;
  3306. function GetDriveTypeW;
  3307. begin
  3308.   GetProcedureAddress(_GetDriveTypeW, kernel32, 'GetDriveTypeW');
  3309.   asm
  3310.     mov esp, ebp
  3311.     pop ebp
  3312.     jmp [_GetDriveTypeW]
  3313.   end;
  3314. end;
  3315. {$ELSE}
  3316. function GetDriveTypeW; external kernel32 name 'GetDriveTypeW';
  3317. {$ENDIF DYNAMIC_LINK}
  3318. {$IFDEF UNICODE}
  3319. {$IFDEF DYNAMIC_LINK}
  3320. var
  3321.   _GetDriveType: Pointer;
  3322. function GetDriveType;
  3323. begin
  3324.   GetProcedureAddress(_GetDriveType, kernel32, 'GetDriveTypeW');
  3325.   asm
  3326.     mov esp, ebp
  3327.     pop ebp
  3328.     jmp [_GetDriveType]
  3329.   end;
  3330. end;
  3331. {$ELSE}
  3332. function GetDriveType; external kernel32 name 'GetDriveTypeW';
  3333. {$ENDIF DYNAMIC_LINK}
  3334. {$ELSE}
  3335. {$IFDEF DYNAMIC_LINK}
  3336. var
  3337.   _GetDriveType: Pointer;
  3338. function GetDriveType;
  3339. begin
  3340.   GetProcedureAddress(_GetDriveType, kernel32, 'GetDriveTypeA');
  3341.   asm
  3342.     mov esp, ebp
  3343.     pop ebp
  3344.     jmp [_GetDriveType]
  3345.   end;
  3346. end;
  3347. {$ELSE}
  3348. function GetDriveType; external kernel32 name 'GetDriveTypeA';
  3349. {$ENDIF DYNAMIC_LINK}
  3350. {$ENDIF}
  3351. {$IFDEF DYNAMIC_LINK}
  3352. var
  3353.   _GetSystemDirectoryA: Pointer;
  3354. function GetSystemDirectoryA;
  3355. begin
  3356.   GetProcedureAddress(_GetSystemDirectoryA, kernel32, 'GetSystemDirectoryA');
  3357.   asm
  3358.     mov esp, ebp
  3359.     pop ebp
  3360.     jmp [_GetSystemDirectoryA]
  3361.   end;
  3362. end;
  3363. {$ELSE}
  3364. function GetSystemDirectoryA; external kernel32 name 'GetSystemDirectoryA';
  3365. {$ENDIF DYNAMIC_LINK}
  3366. {$IFDEF DYNAMIC_LINK}
  3367. var
  3368.   _GetSystemDirectoryW: Pointer;
  3369. function GetSystemDirectoryW;
  3370. begin
  3371.   GetProcedureAddress(_GetSystemDirectoryW, kernel32, 'GetSystemDirectoryW');
  3372.   asm
  3373.     mov esp, ebp
  3374.     pop ebp
  3375.     jmp [_GetSystemDirectoryW]
  3376.   end;
  3377. end;
  3378. {$ELSE}
  3379. function GetSystemDirectoryW; external kernel32 name 'GetSystemDirectoryW';
  3380. {$ENDIF DYNAMIC_LINK}
  3381. {$IFDEF UNICODE}
  3382. {$IFDEF DYNAMIC_LINK}
  3383. var
  3384.   _GetSystemDirectory: Pointer;
  3385. function GetSystemDirectory;
  3386. begin
  3387.   GetProcedureAddress(_GetSystemDirectory, kernel32, 'GetSystemDirectoryW');
  3388.   asm
  3389.     mov esp, ebp
  3390.     pop ebp
  3391.     jmp [_GetSystemDirectory]
  3392.   end;
  3393. end;
  3394. {$ELSE}
  3395. function GetSystemDirectory; external kernel32 name 'GetSystemDirectoryW';
  3396. {$ENDIF DYNAMIC_LINK}
  3397. {$ELSE}
  3398. {$IFDEF DYNAMIC_LINK}
  3399. var
  3400.   _GetSystemDirectory: Pointer;
  3401. function GetSystemDirectory;
  3402. begin
  3403.   GetProcedureAddress(_GetSystemDirectory, kernel32, 'GetSystemDirectoryA');
  3404.   asm
  3405.     mov esp, ebp
  3406.     pop ebp
  3407.     jmp [_GetSystemDirectory]
  3408.   end;
  3409. end;
  3410. {$ELSE}
  3411. function GetSystemDirectory; external kernel32 name 'GetSystemDirectoryA';
  3412. {$ENDIF DYNAMIC_LINK}
  3413. {$ENDIF}
  3414. {$IFDEF DYNAMIC_LINK}
  3415. var
  3416.   _GetTempPathA: Pointer;
  3417. function GetTempPathA;
  3418. begin
  3419.   GetProcedureAddress(_GetTempPathA, kernel32, 'GetTempPathA');
  3420.   asm
  3421.     mov esp, ebp
  3422.     pop ebp
  3423.     jmp [_GetTempPathA]
  3424.   end;
  3425. end;
  3426. {$ELSE}
  3427. function GetTempPathA; external kernel32 name 'GetTempPathA';
  3428. {$ENDIF DYNAMIC_LINK}
  3429. {$IFDEF DYNAMIC_LINK}
  3430. var
  3431.   _GetTempPathW: Pointer;
  3432. function GetTempPathW;
  3433. begin
  3434.   GetProcedureAddress(_GetTempPathW, kernel32, 'GetTempPathW');
  3435.   asm
  3436.     mov esp, ebp
  3437.     pop ebp
  3438.     jmp [_GetTempPathW]
  3439.   end;
  3440. end;
  3441. {$ELSE}
  3442. function GetTempPathW; external kernel32 name 'GetTempPathW';
  3443. {$ENDIF DYNAMIC_LINK}
  3444. {$IFDEF UNICODE}
  3445. {$IFDEF DYNAMIC_LINK}
  3446. var
  3447.   _GetTempPath: Pointer;
  3448. function GetTempPath;
  3449. begin
  3450.   GetProcedureAddress(_GetTempPath, kernel32, 'GetTempPathW');
  3451.   asm
  3452.     mov esp, ebp
  3453.     pop ebp
  3454.     jmp [_GetTempPath]
  3455.   end;
  3456. end;
  3457. {$ELSE}
  3458. function GetTempPath; external kernel32 name 'GetTempPathW';
  3459. {$ENDIF DYNAMIC_LINK}
  3460. {$ELSE}
  3461. {$IFDEF DYNAMIC_LINK}
  3462. var
  3463.   _GetTempPath: Pointer;
  3464. function GetTempPath;
  3465. begin
  3466.   GetProcedureAddress(_GetTempPath, kernel32, 'GetTempPathA');
  3467.   asm
  3468.     mov esp, ebp
  3469.     pop ebp
  3470.     jmp [_GetTempPath]
  3471.   end;
  3472. end;
  3473. {$ELSE}
  3474. function GetTempPath; external kernel32 name 'GetTempPathA';
  3475. {$ENDIF DYNAMIC_LINK}
  3476. {$ENDIF}
  3477. {$IFDEF DYNAMIC_LINK}
  3478. var
  3479.   _GetTempFileNameA: Pointer;
  3480. function GetTempFileNameA;
  3481. begin
  3482.   GetProcedureAddress(_GetTempFileNameA, kernel32, 'GetTempFileNameA');
  3483.   asm
  3484.     mov esp, ebp
  3485.     pop ebp
  3486.     jmp [_GetTempFileNameA]
  3487.   end;
  3488. end;
  3489. {$ELSE}
  3490. function GetTempFileNameA; external kernel32 name 'GetTempFileNameA';
  3491. {$ENDIF DYNAMIC_LINK}
  3492. {$IFDEF DYNAMIC_LINK}
  3493. var
  3494.   _GetTempFileNameW: Pointer;
  3495. function GetTempFileNameW;
  3496. begin
  3497.   GetProcedureAddress(_GetTempFileNameW, kernel32, 'GetTempFileNameW');
  3498.   asm
  3499.     mov esp, ebp
  3500.     pop ebp
  3501.     jmp [_GetTempFileNameW]
  3502.   end;
  3503. end;
  3504. {$ELSE}
  3505. function GetTempFileNameW; external kernel32 name 'GetTempFileNameW';
  3506. {$ENDIF DYNAMIC_LINK}
  3507. {$IFDEF UNICODE}
  3508. {$IFDEF DYNAMIC_LINK}
  3509. var
  3510.   _GetTempFileName: Pointer;
  3511. function GetTempFileName;
  3512. begin
  3513.   GetProcedureAddress(_GetTempFileName, kernel32, 'GetTempFileNameW');
  3514.   asm
  3515.     mov esp, ebp
  3516.     pop ebp
  3517.     jmp [_GetTempFileName]
  3518.   end;
  3519. end;
  3520. {$ELSE}
  3521. function GetTempFileName; external kernel32 name 'GetTempFileNameW';
  3522. {$ENDIF DYNAMIC_LINK}
  3523. {$ELSE}
  3524. {$IFDEF DYNAMIC_LINK}
  3525. var
  3526.   _GetTempFileName: Pointer;
  3527. function GetTempFileName;
  3528. begin
  3529.   GetProcedureAddress(_GetTempFileName, kernel32, 'GetTempFileNameA');
  3530.   asm
  3531.     mov esp, ebp
  3532.     pop ebp
  3533.     jmp [_GetTempFileName]
  3534.   end;
  3535. end;
  3536. {$ELSE}
  3537. function GetTempFileName; external kernel32 name 'GetTempFileNameA';
  3538. {$ENDIF DYNAMIC_LINK}
  3539. {$ENDIF}
  3540. {$IFDEF DYNAMIC_LINK}
  3541. var
  3542.   _GetWindowsDirectoryA: Pointer;
  3543. function GetWindowsDirectoryA;
  3544. begin
  3545.   GetProcedureAddress(_GetWindowsDirectoryA, kernel32, 'GetWindowsDirectoryA');
  3546.   asm
  3547.     mov esp, ebp
  3548.     pop ebp
  3549.     jmp [_GetWindowsDirectoryA]
  3550.   end;
  3551. end;
  3552. {$ELSE}
  3553. function GetWindowsDirectoryA; external kernel32 name 'GetWindowsDirectoryA';
  3554. {$ENDIF DYNAMIC_LINK}
  3555. {$IFDEF DYNAMIC_LINK}
  3556. var
  3557.   _GetWindowsDirectoryW: Pointer;
  3558. function GetWindowsDirectoryW;
  3559. begin
  3560.   GetProcedureAddress(_GetWindowsDirectoryW, kernel32, 'GetWindowsDirectoryW');
  3561.   asm
  3562.     mov esp, ebp
  3563.     pop ebp
  3564.     jmp [_GetWindowsDirectoryW]
  3565.   end;
  3566. end;
  3567. {$ELSE}
  3568. function GetWindowsDirectoryW; external kernel32 name 'GetWindowsDirectoryW';
  3569. {$ENDIF DYNAMIC_LINK}
  3570. {$IFDEF UNICODE}
  3571. {$IFDEF DYNAMIC_LINK}
  3572. var
  3573.   _GetWindowsDirectory: Pointer;
  3574. function GetWindowsDirectory;
  3575. begin
  3576.   GetProcedureAddress(_GetWindowsDirectory, kernel32, 'GetWindowsDirectoryW');
  3577.   asm
  3578.     mov esp, ebp
  3579.     pop ebp
  3580.     jmp [_GetWindowsDirectory]
  3581.   end;
  3582. end;
  3583. {$ELSE}
  3584. function GetWindowsDirectory; external kernel32 name 'GetWindowsDirectoryW';
  3585. {$ENDIF DYNAMIC_LINK}
  3586. {$ELSE}
  3587. {$IFDEF DYNAMIC_LINK}
  3588. var
  3589.   _GetWindowsDirectory: Pointer;
  3590. function GetWindowsDirectory;
  3591. begin
  3592.   GetProcedureAddress(_GetWindowsDirectory, kernel32, 'GetWindowsDirectoryA');
  3593.   asm
  3594.     mov esp, ebp
  3595.     pop ebp
  3596.     jmp [_GetWindowsDirectory]
  3597.   end;
  3598. end;
  3599. {$ELSE}
  3600. function GetWindowsDirectory; external kernel32 name 'GetWindowsDirectoryA';
  3601. {$ENDIF DYNAMIC_LINK}
  3602. {$ENDIF}
  3603. {$IFDEF DYNAMIC_LINK}
  3604. var
  3605.   _GetSystemWindowsDirectoryA: Pointer;
  3606. function GetSystemWindowsDirectoryA;
  3607. begin
  3608.   GetProcedureAddress(_GetSystemWindowsDirectoryA, kernel32, 'GetSystemWindowsDirectoryA');
  3609.   asm
  3610.     mov esp, ebp
  3611.     pop ebp
  3612.     jmp [_GetSystemWindowsDirectoryA]
  3613.   end;
  3614. end;
  3615. {$ELSE}
  3616. function GetSystemWindowsDirectoryA; external kernel32 name 'GetSystemWindowsDirectoryA';
  3617. {$ENDIF DYNAMIC_LINK}
  3618. {$IFDEF DYNAMIC_LINK}
  3619. var
  3620.   _GetSystemWindowsDirectoryW: Pointer;
  3621. function GetSystemWindowsDirectoryW;
  3622. begin
  3623.   GetProcedureAddress(_GetSystemWindowsDirectoryW, kernel32, 'GetSystemWindowsDirectoryW');
  3624.   asm
  3625.     mov esp, ebp
  3626.     pop ebp
  3627.     jmp [_GetSystemWindowsDirectoryW]
  3628.   end;
  3629. end;
  3630. {$ELSE}
  3631. function GetSystemWindowsDirectoryW; external kernel32 name 'GetSystemWindowsDirectoryW';
  3632. {$ENDIF DYNAMIC_LINK}
  3633. {$IFDEF UNICODE}
  3634. {$IFDEF DYNAMIC_LINK}
  3635. var
  3636.   _GetSystemWindowsDirectory: Pointer;
  3637. function GetSystemWindowsDirectory;
  3638. begin
  3639.   GetProcedureAddress(_GetSystemWindowsDirectory, kernel32, 'GetSystemWindowsDirectoryW');
  3640.   asm
  3641.     mov esp, ebp
  3642.     pop ebp
  3643.     jmp [_GetSystemWindowsDirectory]
  3644.   end;
  3645. end;
  3646. {$ELSE}
  3647. function GetSystemWindowsDirectory; external kernel32 name 'GetSystemWindowsDirectoryW';
  3648. {$ENDIF DYNAMIC_LINK}
  3649. {$ELSE}
  3650. {$IFDEF DYNAMIC_LINK}
  3651. var
  3652.   _GetSystemWindowsDirectory: Pointer;
  3653. function GetSystemWindowsDirectory;
  3654. begin
  3655.   GetProcedureAddress(_GetSystemWindowsDirectory, kernel32, 'GetSystemWindowsDirectoryA');
  3656.   asm
  3657.     mov esp, ebp
  3658.     pop ebp
  3659.     jmp [_GetSystemWindowsDirectory]
  3660.   end;
  3661. end;
  3662. {$ELSE}
  3663. function GetSystemWindowsDirectory; external kernel32 name 'GetSystemWindowsDirectoryA';
  3664. {$ENDIF DYNAMIC_LINK}
  3665. {$ENDIF}
  3666. {$IFDEF DYNAMIC_LINK}
  3667. var
  3668.   _GetSystemWow64DirectoryA: Pointer;
  3669. function GetSystemWow64DirectoryA;
  3670. begin
  3671.   GetProcedureAddress(_GetSystemWow64DirectoryA, kernel32, 'GetSystemWow64DirectoryA');
  3672.   asm
  3673.     mov esp, ebp
  3674.     pop ebp
  3675.     jmp [_GetSystemWow64DirectoryA]
  3676.   end;
  3677. end;
  3678. {$ELSE}
  3679. function GetSystemWow64DirectoryA; external kernel32 name 'GetSystemWow64DirectoryA';
  3680. {$ENDIF DYNAMIC_LINK}
  3681. {$IFDEF DYNAMIC_LINK}
  3682. var
  3683.   _GetSystemWow64DirectoryW: Pointer;
  3684. function GetSystemWow64DirectoryW;
  3685. begin
  3686.   GetProcedureAddress(_GetSystemWow64DirectoryW, kernel32, 'GetSystemWow64DirectoryW');
  3687.   asm
  3688.     mov esp, ebp
  3689.     pop ebp
  3690.     jmp [_GetSystemWow64DirectoryW]
  3691.   end;
  3692. end;
  3693. {$ELSE}
  3694. function GetSystemWow64DirectoryW; external kernel32 name 'GetSystemWow64DirectoryW';
  3695. {$ENDIF DYNAMIC_LINK}
  3696. {$IFDEF UNICODE}
  3697. {$IFDEF DYNAMIC_LINK}
  3698. var
  3699.   _GetSystemWow64Directory: Pointer;
  3700. function GetSystemWow64Directory;
  3701. begin
  3702.   GetProcedureAddress(_GetSystemWow64Directory, kernel32, 'GetSystemWow64DirectoryW');
  3703.   asm
  3704.     mov esp, ebp
  3705.     pop ebp
  3706.     jmp [_GetSystemWow64Directory]
  3707.   end;
  3708. end;
  3709. {$ELSE}
  3710. function GetSystemWow64Directory; external kernel32 name 'GetSystemWow64DirectoryW';
  3711. {$ENDIF DYNAMIC_LINK}
  3712. {$ELSE}
  3713. {$IFDEF DYNAMIC_LINK}
  3714. var
  3715.   _GetSystemWow64Directory: Pointer;
  3716. function GetSystemWow64Directory;
  3717. begin
  3718.   GetProcedureAddress(_GetSystemWow64Directory, kernel32, 'GetSystemWow64DirectoryA');
  3719.   asm
  3720.     mov esp, ebp
  3721.     pop ebp
  3722.     jmp [_GetSystemWow64Directory]
  3723.   end;
  3724. end;
  3725. {$ELSE}
  3726. function GetSystemWow64Directory; external kernel32 name 'GetSystemWow64DirectoryA';
  3727. {$ENDIF DYNAMIC_LINK}
  3728. {$ENDIF}
  3729. {$IFDEF DYNAMIC_LINK}
  3730. var
  3731.   _SetCurrentDirectoryA: Pointer;
  3732. function SetCurrentDirectoryA;
  3733. begin
  3734.   GetProcedureAddress(_SetCurrentDirectoryA, kernel32, 'SetCurrentDirectoryA');
  3735.   asm
  3736.     mov esp, ebp
  3737.     pop ebp
  3738.     jmp [_SetCurrentDirectoryA]
  3739.   end;
  3740. end;
  3741. {$ELSE}
  3742. function SetCurrentDirectoryA; external kernel32 name 'SetCurrentDirectoryA';
  3743. {$ENDIF DYNAMIC_LINK}
  3744. {$IFDEF DYNAMIC_LINK}
  3745. var
  3746.   _SetCurrentDirectoryW: Pointer;
  3747. function SetCurrentDirectoryW;
  3748. begin
  3749.   GetProcedureAddress(_SetCurrentDirectoryW, kernel32, 'SetCurrentDirectoryW');
  3750.   asm
  3751.     mov esp, ebp
  3752.     pop ebp
  3753.     jmp [_SetCurrentDirectoryW]
  3754.   end;
  3755. end;
  3756. {$ELSE}
  3757. function SetCurrentDirectoryW; external kernel32 name 'SetCurrentDirectoryW';
  3758. {$ENDIF DYNAMIC_LINK}
  3759. {$IFDEF UNICODE}
  3760. {$IFDEF DYNAMIC_LINK}
  3761. var
  3762.   _SetCurrentDirectory: Pointer;
  3763. function SetCurrentDirectory;
  3764. begin
  3765.   GetProcedureAddress(_SetCurrentDirectory, kernel32, 'SetCurrentDirectoryW');
  3766.   asm
  3767.     mov esp, ebp
  3768.     pop ebp
  3769.     jmp [_SetCurrentDirectory]
  3770.   end;
  3771. end;
  3772. {$ELSE}
  3773. function SetCurrentDirectory; external kernel32 name 'SetCurrentDirectoryW';
  3774. {$ENDIF DYNAMIC_LINK}
  3775. {$ELSE}
  3776. {$IFDEF DYNAMIC_LINK}
  3777. var
  3778.   _SetCurrentDirectory: Pointer;
  3779. function SetCurrentDirectory;
  3780. begin
  3781.   GetProcedureAddress(_SetCurrentDirectory, kernel32, 'SetCurrentDirectoryA');
  3782.   asm
  3783.     mov esp, ebp
  3784.     pop ebp
  3785.     jmp [_SetCurrentDirectory]
  3786.   end;
  3787. end;
  3788. {$ELSE}
  3789. function SetCurrentDirectory; external kernel32 name 'SetCurrentDirectoryA';
  3790. {$ENDIF DYNAMIC_LINK}
  3791. {$ENDIF}
  3792. {$IFDEF DYNAMIC_LINK}
  3793. var
  3794.   _GetCurrentDirectoryA: Pointer;
  3795. function GetCurrentDirectoryA;
  3796. begin
  3797.   GetProcedureAddress(_GetCurrentDirectoryA, kernel32, 'GetCurrentDirectoryA');
  3798.   asm
  3799.     mov esp, ebp
  3800.     pop ebp
  3801.     jmp [_GetCurrentDirectoryA]
  3802.   end;
  3803. end;
  3804. {$ELSE}
  3805. function GetCurrentDirectoryA; external kernel32 name 'GetCurrentDirectoryA';
  3806. {$ENDIF DYNAMIC_LINK}
  3807. {$IFDEF DYNAMIC_LINK}
  3808. var
  3809.   _GetCurrentDirectoryW: Pointer;
  3810. function GetCurrentDirectoryW;
  3811. begin
  3812.   GetProcedureAddress(_GetCurrentDirectoryW, kernel32, 'GetCurrentDirectoryW');
  3813.   asm
  3814.     mov esp, ebp
  3815.     pop ebp
  3816.     jmp [_GetCurrentDirectoryW]
  3817.   end;
  3818. end;
  3819. {$ELSE}
  3820. function GetCurrentDirectoryW; external kernel32 name 'GetCurrentDirectoryW';
  3821. {$ENDIF DYNAMIC_LINK}
  3822. {$IFDEF UNICODE}
  3823. {$IFDEF DYNAMIC_LINK}
  3824. var
  3825.   _GetCurrentDirectory: Pointer;
  3826. function GetCurrentDirectory;
  3827. begin
  3828.   GetProcedureAddress(_GetCurrentDirectory, kernel32, 'GetCurrentDirectoryW');
  3829.   asm
  3830.     mov esp, ebp
  3831.     pop ebp
  3832.     jmp [_GetCurrentDirectory]
  3833.   end;
  3834. end;
  3835. {$ELSE}
  3836. function GetCurrentDirectory; external kernel32 name 'GetCurrentDirectoryW';
  3837. {$ENDIF DYNAMIC_LINK}
  3838. {$ELSE}
  3839. {$IFDEF DYNAMIC_LINK}
  3840. var
  3841.   _GetCurrentDirectory: Pointer;
  3842. function GetCurrentDirectory;
  3843. begin
  3844.   GetProcedureAddress(_GetCurrentDirectory, kernel32, 'GetCurrentDirectoryA');
  3845.   asm
  3846.     mov esp, ebp
  3847.     pop ebp
  3848.     jmp [_GetCurrentDirectory]
  3849.   end;
  3850. end;
  3851. {$ELSE}
  3852. function GetCurrentDirectory; external kernel32 name 'GetCurrentDirectoryA';
  3853. {$ENDIF DYNAMIC_LINK}
  3854. {$ENDIF}
  3855. {$IFDEF DYNAMIC_LINK}
  3856. var
  3857.   _SetDllDirectoryA: Pointer;
  3858. function SetDllDirectoryA;
  3859. begin
  3860.   GetProcedureAddress(_SetDllDirectoryA, kernel32, 'SetDllDirectoryA');
  3861.   asm
  3862.     mov esp, ebp
  3863.     pop ebp
  3864.     jmp [_SetDllDirectoryA]
  3865.   end;
  3866. end;
  3867. {$ELSE}
  3868. function SetDllDirectoryA; external kernel32 name 'SetDllDirectoryA';
  3869. {$ENDIF DYNAMIC_LINK}
  3870. {$IFDEF DYNAMIC_LINK}
  3871. var
  3872.   _SetDllDirectoryW: Pointer;
  3873. function SetDllDirectoryW;
  3874. begin
  3875.   GetProcedureAddress(_SetDllDirectoryW, kernel32, 'SetDllDirectoryW');
  3876.   asm
  3877.     mov esp, ebp
  3878.     pop ebp
  3879.     jmp [_SetDllDirectoryW]
  3880.   end;
  3881. end;
  3882. {$ELSE}
  3883. function SetDllDirectoryW; external kernel32 name 'SetDllDirectoryW';
  3884. {$ENDIF DYNAMIC_LINK}
  3885. {$IFDEF UNICODE}
  3886. {$IFDEF DYNAMIC_LINK}
  3887. var
  3888.   _SetDllDirectory: Pointer;
  3889. function SetDllDirectory;
  3890. begin
  3891.   GetProcedureAddress(_SetDllDirectory, kernel32, 'SetDllDirectoryW');
  3892.   asm
  3893.     mov esp, ebp
  3894.     pop ebp
  3895.     jmp [_SetDllDirectory]
  3896.   end;
  3897. end;
  3898. {$ELSE}
  3899. function SetDllDirectory; external kernel32 name 'SetDllDirectoryW';
  3900. {$ENDIF DYNAMIC_LINK}
  3901. {$ELSE}
  3902. {$IFDEF DYNAMIC_LINK}
  3903. var
  3904.   _SetDllDirectory: Pointer;
  3905. function SetDllDirectory;
  3906. begin
  3907.   GetProcedureAddress(_SetDllDirectory, kernel32, 'SetDllDirectoryA');
  3908.   asm
  3909.     mov esp, ebp
  3910.     pop ebp
  3911.     jmp [_SetDllDirectory]
  3912.   end;
  3913. end;
  3914. {$ELSE}
  3915. function SetDllDirectory; external kernel32 name 'SetDllDirectoryA';
  3916. {$ENDIF DYNAMIC_LINK}
  3917. {$ENDIF}
  3918. {$IFDEF DYNAMIC_LINK}
  3919. var
  3920.   _GetDllDirectoryA: Pointer;
  3921. function GetDllDirectoryA;
  3922. begin
  3923.   GetProcedureAddress(_GetDllDirectoryA, kernel32, 'GetDllDirectoryA');
  3924.   asm
  3925.     mov esp, ebp
  3926.     pop ebp
  3927.     jmp [_GetDllDirectoryA]
  3928.   end;
  3929. end;
  3930. {$ELSE}
  3931. function GetDllDirectoryA; external kernel32 name 'GetDllDirectoryA';
  3932. {$ENDIF DYNAMIC_LINK}
  3933. {$IFDEF DYNAMIC_LINK}
  3934. var
  3935.   _GetDllDirectoryW: Pointer;
  3936. function GetDllDirectoryW;
  3937. begin
  3938.   GetProcedureAddress(_GetDllDirectoryW, kernel32, 'GetDllDirectoryW');
  3939.   asm
  3940.     mov esp, ebp
  3941.     pop ebp
  3942.     jmp [_GetDllDirectoryW]
  3943.   end;
  3944. end;
  3945. {$ELSE}
  3946. function GetDllDirectoryW; external kernel32 name 'GetDllDirectoryW';
  3947. {$ENDIF DYNAMIC_LINK}
  3948. {$IFDEF UNICODE}
  3949. {$IFDEF DYNAMIC_LINK}
  3950. var
  3951.   _GetDllDirectory: Pointer;
  3952. function GetDllDirectory;
  3953. begin
  3954.   GetProcedureAddress(_GetDllDirectory, kernel32, 'GetDllDirectoryW');
  3955.   asm
  3956.     mov esp, ebp
  3957.     pop ebp
  3958.     jmp [_GetDllDirectory]
  3959.   end;
  3960. end;
  3961. {$ELSE}
  3962. function GetDllDirectory; external kernel32 name 'GetDllDirectoryW';
  3963. {$ENDIF DYNAMIC_LINK}
  3964. {$ELSE}
  3965. {$IFDEF DYNAMIC_LINK}
  3966. var
  3967.   _GetDllDirectory: Pointer;
  3968. function GetDllDirectory;
  3969. begin
  3970.   GetProcedureAddress(_GetDllDirectory, kernel32, 'GetDllDirectoryA');
  3971.   asm
  3972.     mov esp, ebp
  3973.     pop ebp
  3974.     jmp [_GetDllDirectory]
  3975.   end;
  3976. end;
  3977. {$ELSE}
  3978. function GetDllDirectory; external kernel32 name 'GetDllDirectoryA';
  3979. {$ENDIF DYNAMIC_LINK}
  3980. {$ENDIF UNICODE}
  3981. {$IFDEF DYNAMIC_LINK}
  3982. var
  3983.   _GetDiskFreeSpaceA: Pointer;
  3984. function GetDiskFreeSpaceA;
  3985. begin
  3986.   GetProcedureAddress(_GetDiskFreeSpaceA, kernel32, 'GetDiskFreeSpaceA');
  3987.   asm
  3988.     mov esp, ebp
  3989.     pop ebp
  3990.     jmp [_GetDiskFreeSpaceA]
  3991.   end;
  3992. end;
  3993. {$ELSE}
  3994. function GetDiskFreeSpaceA; external kernel32 name 'GetDiskFreeSpaceA';
  3995. {$ENDIF DYNAMIC_LINK}
  3996. {$IFDEF DYNAMIC_LINK}
  3997. var
  3998.   _GetDiskFreeSpaceW: Pointer;
  3999. function GetDiskFreeSpaceW;
  4000. begin
  4001.   GetProcedureAddress(_GetDiskFreeSpaceW, kernel32, 'GetDiskFreeSpaceW');
  4002.   asm
  4003.     mov esp, ebp
  4004.     pop ebp
  4005.     jmp [_GetDiskFreeSpaceW]
  4006.   end;
  4007. end;
  4008. {$ELSE}
  4009. function GetDiskFreeSpaceW; external kernel32 name 'GetDiskFreeSpaceW';
  4010. {$ENDIF DYNAMIC_LINK}
  4011. {$IFDEF UNICODE}
  4012. {$IFDEF DYNAMIC_LINK}
  4013. var
  4014.   _GetDiskFreeSpace: Pointer;
  4015. function GetDiskFreeSpace;
  4016. begin
  4017.   GetProcedureAddress(_GetDiskFreeSpace, kernel32, 'GetDiskFreeSpaceW');
  4018.   asm
  4019.     mov esp, ebp
  4020.     pop ebp
  4021.     jmp [_GetDiskFreeSpace]
  4022.   end;
  4023. end;