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

Windows编程

开发平台:

Delphi

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