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

Windows编程

开发平台:

Delphi

  1. {******************************************************************************}
  2. {                                                                       }
  3. { Web Publishing API interface Unit for Object Pascal                          }
  4. {                                                                       }
  5. { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft          }
  6. { Corporation. All Rights Reserved.                                            }
  7. {                 }
  8. { The original file is: wpapi.h, released June 2000. The original Pascal       }
  9. { code is: WPApi.pas, released December 2000. The initial developer of the     }
  10. { Pascal code is Marcel van Brakel (brakelm@chello.nl).                        }
  11. {                                                                              }
  12. { Portions created by Marcel van Brakel are Copyright (C) 1999-2001            }
  13. { Marcel van Brakel. All Rights Reserved.                                      }
  14. {                 }
  15. { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI)        }
  16. {                }
  17. { You may retrieve the latest version of this file at the Project JEDI home    }
  18. { page, located at http://delphi-jedi.org or my personal homepage located at   }
  19. { http://members.chello.nl/m.vanbrakel2                                        }
  20. {                }
  21. { The contents of this file are used with permission, subject to the Mozilla   }
  22. { Public License Version 1.1 (the "License"); you may not use this file except }
  23. { in compliance with the License. You may obtain a copy of the License at      }
  24. { http://www.mozilla.org/MPL/MPL-1.1.html                                      }
  25. {                                                                              }
  26. { Software distributed under the License is distributed on an "AS IS" basis,   }
  27. { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
  28. { the specific language governing rights and limitations under the License.    }
  29. {                                                                              }
  30. { Alternatively, the contents of this file may be used under the terms of the  }
  31. { GNU Lesser General Public License (the  "LGPL License"), in which case the   }
  32. { provisions of the LGPL License are applicable instead of those above.        }
  33. { If you wish to allow use of your version of this file only under the terms   }
  34. { of the LGPL License and not to allow others to use your version of this file }
  35. { under the MPL, indicate your decision by deleting  the provisions above and  }
  36. { replace  them with the notice and other provisions required by the LGPL      }
  37. { License.  If you do not delete the provisions above, a recipient may use     }
  38. { your version of this file under either the MPL or the LGPL License.          }
  39. {                 }
  40. { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
  41. {                 }
  42. {******************************************************************************}
  43. unit JwaWPApi;
  44. {$WEAKPACKAGEUNIT}
  45. {$HPPEMIT ''}
  46. {$HPPEMIT '#include "wpapi.h"'}
  47. {$HPPEMIT ''}
  48. {$I WINDEFINES.INC}
  49. interface
  50. uses
  51.   JwaWPTypes, JwaWinType;
  52. //
  53. // Flags
  54. //
  55. const
  56.   WPF_NO_RECURSIVE_POST     = $00000001; // WpPost
  57.   {$EXTERNALSYM WPF_NO_RECURSIVE_POST}
  58.   WPF_NO_WIZARD             = $00000002; // WpPost
  59.   {$EXTERNALSYM WPF_NO_WIZARD}
  60.   WPF_MINIMAL_UI            = $00000004; // WpPost - OBSOLETE
  61.   {$EXTERNALSYM WPF_MINIMAL_UI}
  62.   WPF_FIRST_FILE_AS_DEFAULT = $00000008; // WpPost/PostFiles
  63.   {$EXTERNALSYM WPF_FIRST_FILE_AS_DEFAULT}
  64.   WPF_NO_DIRECT_LOOKUP      = $00000010; // WpBindToSite
  65.   {$EXTERNALSYM WPF_NO_DIRECT_LOOKUP}
  66.   WPF_NO_URL_LOOKUP         = $00000020; // WpBindToSite
  67.   {$EXTERNALSYM WPF_NO_URL_LOOKUP}
  68.   WPF_USE_PROVIDER_PASSED   = $00000040; // WpCreateSite
  69.   {$EXTERNALSYM WPF_USE_PROVIDER_PASSED}
  70.   WPF_NO_VERIFY_POST        = $00000080; // WpPost
  71.   {$EXTERNALSYM WPF_NO_VERIFY_POST}
  72.   WPF_NO_PROGRESS_DLGS      = $00000200; // WpPost
  73.   {$EXTERNALSYM WPF_NO_PROGRESS_DLGS}
  74.   WPF_SHOWPAGE_WELCOME      = $00010000; // WpPost/Wizard
  75.   {$EXTERNALSYM WPF_SHOWPAGE_WELCOME}
  76.   WPF_SHOWPAGE_SRCFILE      = $00020000; // WpPost/Wizard
  77.   {$EXTERNALSYM WPF_SHOWPAGE_SRCFILE}
  78.   WPF_SHOWPAGE_DESTSITE     = $00040000; // WpPost/Wizard
  79.   {$EXTERNALSYM WPF_SHOWPAGE_DESTSITE}
  80.   WPF_SHOWPAGE_PROVIDER     = $00080000; // WpPost/Wizard/AddWizardPages
  81.   {$EXTERNALSYM WPF_SHOWPAGE_PROVIDER}
  82.   WPF_ENABLE_LOCAL_BASE_DIR = $00100000; // WpPost/Wizard
  83.   {$EXTERNALSYM WPF_ENABLE_LOCAL_BASE_DIR}
  84.   WPF_NO_UI = WPF_NO_WIZARD or WPF_NO_PROGRESS_DLGS;
  85.   {$EXTERNALSYM WPF_NO_UI}
  86.   WPF_SHOWPAGE_ALL = WPF_SHOWPAGE_WELCOME or WPF_SHOWPAGE_SRCFILE or WPF_SHOWPAGE_DESTSITE or WPF_SHOWPAGE_PROVIDER;
  87.   {$EXTERNALSYM WPF_SHOWPAGE_ALL}
  88. //
  89. // Miscellaneous
  90. //
  91.   MAX_SITENAME_LEN = 128;
  92.   {$EXTERNALSYM MAX_SITENAME_LEN}
  93. //
  94. // Unicode APIs
  95. //
  96. function WpPostW(hwnd: HWND; dwNumLocalPaths: DWORD; pwsLocalPaths: LPWSTR;
  97.   var pdwSiteNameBufLen: DWORD; wsSiteName: LPWSTR; var pdwDestURLBufLen: DWORD;
  98.   wsDestURL: LPWSTR; dwFlag: DWORD): DWORD; stdcall;
  99. {$EXTERNALSYM WpPostW}
  100. function WpListSitesW(var pdwSitesBufLen: DWORD; pSitesBuffer: LPWPSITEINFOW;
  101.   var pdwNumSites: DWORD): DWORD; stdcall;
  102. {$EXTERNALSYM WpListSitesW}
  103. function WpDoesSiteExistW(wsSiteName: LPCWSTR; var pfSiteExists: BOOL): DWORD; stdcall;
  104. {$EXTERNALSYM WpDoesSiteExistW}
  105. function WpDeleteSiteW(wsSiteName: LPCWSTR): DWORD; stdcall;
  106. {$EXTERNALSYM WpDeleteSiteW}
  107. function WpBindToSiteW(hwnd: HWND; wsSiteName, wsSitePostingURL: LPCWSTR;
  108.   dwFlag, dwReserved: DWORD; out ppvUnk: IUnknown): DWORD; stdcall;
  109. {$EXTERNALSYM WpBindToSiteW}
  110. function WpCreateSiteW(wsSiteName, wsSiteLocalBaseDir, wsSitePostingURL,
  111.   wsProviderCLSID: LPCWSTR; dwFlags: DWORD): DWORD; stdcall;
  112. {$EXTERNALSYM WpCreateSiteW}
  113. function WpEnumProvidersW(var pdwProvidersBufLen: DWORD; pProvidersBuffer: LPWPPROVINFOW;
  114.   var pdwNumProviders: DWORD): DWORD; stdcall;
  115. {$EXTERNALSYM WpEnumProvidersW}
  116. function WpGetErrorStringW(uErrCode: UINT; wsOutputBuf: LPWSTR; var pdwBufLen: DWORD): DWORD; stdcall;
  117. {$EXTERNALSYM WpGetErrorStringW}
  118. //
  119. // ANSI APIs
  120. //
  121. function WpPostA(hwnd: HWND; dwNumLocalPaths: DWORD; pwsLocalPaths: LPSTR;
  122.   var pdwSiteNameBufLen: DWORD; wsSiteName: LPSTR; var pdwDestURLBufLen: DWORD;
  123.   wsDestURL: LPSTR; dwFlag: DWORD): DWORD; stdcall;
  124. {$EXTERNALSYM WpPostA}
  125. function WpListSitesA(var pdwSitesBufLen: DWORD; pSitesBuffer: LPWPSITEINFOA;
  126.   var pdwNumSites: DWORD): DWORD; stdcall;
  127. {$EXTERNALSYM WpListSitesA}
  128. function WpDoesSiteExistA(wsSiteName: LPCSTR; var pfSiteExists: BOOL): DWORD; stdcall;
  129. {$EXTERNALSYM WpDoesSiteExistA}
  130. function WpDeleteSiteA(wsSiteName: LPCSTR): DWORD; stdcall;
  131. {$EXTERNALSYM WpDeleteSiteA}
  132. function WpBindToSiteA(hwnd: HWND; wsSiteName, wsSitePostingURL: LPCSTR;
  133.   dwFlag, dwReserved: DWORD; out ppvUnk: IUnknown): DWORD; stdcall;
  134. {$EXTERNALSYM WpBindToSiteA}
  135. function WpCreateSiteA(wsSiteName, wsSiteLocalBaseDir, wsSitePostingURL,
  136.   wsProviderCLSID: LPCSTR; dwFlags: DWORD): DWORD; stdcall;
  137. {$EXTERNALSYM WpCreateSiteA}
  138. function WpEnumProvidersA(var pdwProvidersBufLen: DWORD; pProvidersBuffer: LPWPPROVINFOA;
  139.   var pdwNumProviders: DWORD): DWORD; stdcall;
  140. {$EXTERNALSYM WpEnumProvidersA}
  141. function WpGetErrorStringA(uErrCode: UINT; wsOutputBuf: LPSTR; var pdwBufLen: DWORD): DWORD; stdcall;
  142. {$EXTERNALSYM WpGetErrorStringA}
  143. {$IFDEF UNICODE}
  144. function WpPost(hwnd: HWND; dwNumLocalPaths: DWORD; pwsLocalPaths: LPWSTR;
  145.   var pdwSiteNameBufLen: DWORD; wsSiteName: LPWSTR; var pdwDestURLBufLen: DWORD;
  146.   wsDestURL: LPWSTR; dwFlag: DWORD): DWORD; stdcall;
  147. {$EXTERNALSYM WpPost}
  148. function WpListSites(var pdwSitesBufLen: DWORD; pSitesBuffer: LPWPSITEINFOW;
  149.   var pdwNumSites: DWORD): DWORD; stdcall;
  150. {$EXTERNALSYM WpListSites}
  151. function WpDoesSiteExist(wsSiteName: LPCWSTR; var pfSiteExists: BOOL): DWORD; stdcall;
  152. {$EXTERNALSYM WpDoesSiteExist}
  153. function WpDeleteSite(wsSiteName: LPCWSTR): DWORD; stdcall;
  154. {$EXTERNALSYM WpDeleteSite}
  155. function WpBindToSite(hwnd: HWND; wsSiteName, wsSitePostingURL: LPCWSTR;
  156.   dwFlag, dwReserved: DWORD; out ppvUnk: IUnknown): DWORD; stdcall;
  157. {$EXTERNALSYM WpBindToSite}
  158. function WpCreateSite(wsSiteName, wsSiteLocalBaseDir, wsSitePostingURL, wsProviderCLSID: LPCWSTR; dwFlags: DWORD): DWORD; stdcall;
  159. {$EXTERNALSYM WpCreateSite}
  160. function WpEnumProviders(var pdwProvidersBufLen: DWORD; pProvidersBuffer: LPWPPROVINFOW;
  161.   var pdwNumProviders: DWORD): DWORD; stdcall;
  162. {$EXTERNALSYM WpEnumProviders}
  163. function WpGetErrorString(uErrCode: UINT; wsOutputBuf: LPWSTR; var pdwBufLen: DWORD): DWORD; stdcall;
  164. {$EXTERNALSYM WpGetErrorString}
  165. {$ELSE}
  166. function WpPost(hwnd: HWND; dwNumLocalPaths: DWORD; pwsLocalPaths: LPSTR;
  167.   var pdwSiteNameBufLen: DWORD; wsSiteName: LPSTR; var pdwDestURLBufLen: DWORD;
  168.   wsDestURL: LPSTR; dwFlag: DWORD): DWORD; stdcall;
  169. {$EXTERNALSYM WpPost}
  170. function WpListSites(var pdwSitesBufLen: DWORD; pSitesBuffer: LPWPSITEINFOA;
  171.   var pdwNumSites: DWORD): DWORD; stdcall;
  172. {$EXTERNALSYM WpListSites}
  173. function WpDoesSiteExist(wsSiteName: LPCSTR; var pfSiteExists: BOOL): DWORD; stdcall;
  174. {$EXTERNALSYM WpDoesSiteExist}
  175. function WpDeleteSite(wsSiteName: LPCSTR): DWORD; stdcall;
  176. {$EXTERNALSYM WpDeleteSite}
  177. function WpBindToSite(hwnd: HWND; wsSiteName, wsSitePostingURL: LPCSTR;
  178.   dwFlag, dwReserved: DWORD; out ppvUnk: IUnknown): DWORD; stdcall;
  179. {$EXTERNALSYM WpBindToSite}
  180. function WpCreateSite(wsSiteName, wsSiteLocalBaseDir, wsSitePostingURL, wsProviderCLSID: LPCSTR; dwFlags: DWORD): DWORD; stdcall;
  181. {$EXTERNALSYM WpCreateSite}
  182. function WpEnumProviders(var pdwProvidersBufLen: DWORD; pProvidersBuffer: LPWPPROVINFOA;
  183.   var pdwNumProviders: DWORD): DWORD; stdcall;
  184. {$EXTERNALSYM WpEnumProviders}
  185. function WpGetErrorString(uErrCode: UINT; wsOutputBuf: LPSTR; var pdwBufLen: DWORD): DWORD; stdcall;
  186. {$EXTERNALSYM WpGetErrorString}
  187. {$ENDIF}
  188. implementation
  189. const
  190.   wpapi_lib = 'wpapi.dll';
  191. {$IFDEF DYNAMIC_LINK}
  192. var
  193.   _WpPostA: Pointer;
  194. function WpPostA;
  195. begin
  196.   GetProcedureAddress(_WpPostA, wpapi_lib, 'WpPostA');
  197.   asm
  198.     mov esp, ebp
  199.     pop ebp
  200.     jmp [_WpPostA]
  201.   end;
  202. end;
  203. {$ELSE}
  204. function WpPostA; external wpapi_lib name 'WpPostA';
  205. {$ENDIF DYNAMIC_LINK}
  206. {$IFDEF DYNAMIC_LINK}
  207. var
  208.   _WpListSitesA: Pointer;
  209. function WpListSitesA;
  210. begin
  211.   GetProcedureAddress(_WpListSitesA, wpapi_lib, 'WpListSitesA');
  212.   asm
  213.     mov esp, ebp
  214.     pop ebp
  215.     jmp [_WpListSitesA]
  216.   end;
  217. end;
  218. {$ELSE}
  219. function WpListSitesA; external wpapi_lib name 'WpListSitesA';
  220. {$ENDIF DYNAMIC_LINK}
  221. {$IFDEF DYNAMIC_LINK}
  222. var
  223.   _WpDoesSiteExistA: Pointer;
  224. function WpDoesSiteExistA;
  225. begin
  226.   GetProcedureAddress(_WpDoesSiteExistA, wpapi_lib, 'WpDoesSiteExistA');
  227.   asm
  228.     mov esp, ebp
  229.     pop ebp
  230.     jmp [_WpDoesSiteExistA]
  231.   end;
  232. end;
  233. {$ELSE}
  234. function WpDoesSiteExistA; external wpapi_lib name 'WpDoesSiteExistA';
  235. {$ENDIF DYNAMIC_LINK}
  236. {$IFDEF DYNAMIC_LINK}
  237. var
  238.   _WpDeleteSiteA: Pointer;
  239. function WpDeleteSiteA;
  240. begin
  241.   GetProcedureAddress(_WpDeleteSiteA, wpapi_lib, 'WpDeleteSiteA');
  242.   asm
  243.     mov esp, ebp
  244.     pop ebp
  245.     jmp [_WpDeleteSiteA]
  246.   end;
  247. end;
  248. {$ELSE}
  249. function WpDeleteSiteA; external wpapi_lib name 'WpDeleteSiteA';
  250. {$ENDIF DYNAMIC_LINK}
  251. {$IFDEF DYNAMIC_LINK}
  252. var
  253.   _WpBindToSiteA: Pointer;
  254. function WpBindToSiteA;
  255. begin
  256.   GetProcedureAddress(_WpBindToSiteA, wpapi_lib, 'WpBindToSiteA');
  257.   asm
  258.     mov esp, ebp
  259.     pop ebp
  260.     jmp [_WpBindToSiteA]
  261.   end;
  262. end;
  263. {$ELSE}
  264. function WpBindToSiteA; external wpapi_lib name 'WpBindToSiteA';
  265. {$ENDIF DYNAMIC_LINK}
  266. {$IFDEF DYNAMIC_LINK}
  267. var
  268.   _WpCreateSiteA: Pointer;
  269. function WpCreateSiteA;
  270. begin
  271.   GetProcedureAddress(_WpCreateSiteA, wpapi_lib, 'WpCreateSiteA');
  272.   asm
  273.     mov esp, ebp
  274.     pop ebp
  275.     jmp [_WpCreateSiteA]
  276.   end;
  277. end;
  278. {$ELSE}
  279. function WpCreateSiteA; external wpapi_lib name 'WpCreateSiteA';
  280. {$ENDIF DYNAMIC_LINK}
  281. {$IFDEF DYNAMIC_LINK}
  282. var
  283.   _WpEnumProvidersA: Pointer;
  284. function WpEnumProvidersA;
  285. begin
  286.   GetProcedureAddress(_WpEnumProvidersA, wpapi_lib, 'WpEnumProvidersA');
  287.   asm
  288.     mov esp, ebp
  289.     pop ebp
  290.     jmp [_WpEnumProvidersA]
  291.   end;
  292. end;
  293. {$ELSE}
  294. function WpEnumProvidersA; external wpapi_lib name 'WpEnumProvidersA';
  295. {$ENDIF DYNAMIC_LINK}
  296. {$IFDEF DYNAMIC_LINK}
  297. var
  298.   _WpGetErrorStringA: Pointer;
  299. function WpGetErrorStringA;
  300. begin
  301.   GetProcedureAddress(_WpGetErrorStringA, wpapi_lib, 'WpGetErrorStringA');
  302.   asm
  303.     mov esp, ebp
  304.     pop ebp
  305.     jmp [_WpGetErrorStringA]
  306.   end;
  307. end;
  308. {$ELSE}
  309. function WpGetErrorStringA; external wpapi_lib name 'WpGetErrorStringA';
  310. {$ENDIF DYNAMIC_LINK}
  311. {$IFDEF DYNAMIC_LINK}
  312. var
  313.   _WpPostW: Pointer;
  314. function WpPostW;
  315. begin
  316.   GetProcedureAddress(_WpPostW, wpapi_lib, 'WpPostW');
  317.   asm
  318.     mov esp, ebp
  319.     pop ebp
  320.     jmp [_WpPostW]
  321.   end;
  322. end;
  323. {$ELSE}
  324. function WpPostW; external wpapi_lib name 'WpPostW';
  325. {$ENDIF DYNAMIC_LINK}
  326. {$IFDEF DYNAMIC_LINK}
  327. var
  328.   _WpListSitesW: Pointer;
  329. function WpListSitesW;
  330. begin
  331.   GetProcedureAddress(_WpListSitesW, wpapi_lib, 'WpListSitesW');
  332.   asm
  333.     mov esp, ebp
  334.     pop ebp
  335.     jmp [_WpListSitesW]
  336.   end;
  337. end;
  338. {$ELSE}
  339. function WpListSitesW; external wpapi_lib name 'WpListSitesW';
  340. {$ENDIF DYNAMIC_LINK}
  341. {$IFDEF DYNAMIC_LINK}
  342. var
  343.   _WpDoesSiteExistW: Pointer;
  344. function WpDoesSiteExistW;
  345. begin
  346.   GetProcedureAddress(_WpDoesSiteExistW, wpapi_lib, 'WpDoesSiteExistW');
  347.   asm
  348.     mov esp, ebp
  349.     pop ebp
  350.     jmp [_WpDoesSiteExistW]
  351.   end;
  352. end;
  353. {$ELSE}
  354. function WpDoesSiteExistW; external wpapi_lib name 'WpDoesSiteExistW';
  355. {$ENDIF DYNAMIC_LINK}
  356. {$IFDEF DYNAMIC_LINK}
  357. var
  358.   _WpDeleteSiteW: Pointer;
  359. function WpDeleteSiteW;
  360. begin
  361.   GetProcedureAddress(_WpDeleteSiteW, wpapi_lib, 'WpDeleteSiteW');
  362.   asm
  363.     mov esp, ebp
  364.     pop ebp
  365.     jmp [_WpDeleteSiteW]
  366.   end;
  367. end;
  368. {$ELSE}
  369. function WpDeleteSiteW; external wpapi_lib name 'WpDeleteSiteW';
  370. {$ENDIF DYNAMIC_LINK}
  371. {$IFDEF DYNAMIC_LINK}
  372. var
  373.   _WpBindToSiteW: Pointer;
  374. function WpBindToSiteW;
  375. begin
  376.   GetProcedureAddress(_WpBindToSiteW, wpapi_lib, 'WpBindToSiteW');
  377.   asm
  378.     mov esp, ebp
  379.     pop ebp
  380.     jmp [_WpBindToSiteW]
  381.   end;
  382. end;
  383. {$ELSE}
  384. function WpBindToSiteW; external wpapi_lib name 'WpBindToSiteW';
  385. {$ENDIF DYNAMIC_LINK}
  386. {$IFDEF DYNAMIC_LINK}
  387. var
  388.   _WpCreateSiteW: Pointer;
  389. function WpCreateSiteW;
  390. begin
  391.   GetProcedureAddress(_WpCreateSiteW, wpapi_lib, 'WpCreateSiteW');
  392.   asm
  393.     mov esp, ebp
  394.     pop ebp
  395.     jmp [_WpCreateSiteW]
  396.   end;
  397. end;
  398. {$ELSE}
  399. function WpCreateSiteW; external wpapi_lib name 'WpCreateSiteW';
  400. {$ENDIF DYNAMIC_LINK}
  401. {$IFDEF DYNAMIC_LINK}
  402. var
  403.   _WpEnumProvidersW: Pointer;
  404. function WpEnumProvidersW;
  405. begin
  406.   GetProcedureAddress(_WpEnumProvidersW, wpapi_lib, 'WpEnumProvidersW');
  407.   asm
  408.     mov esp, ebp
  409.     pop ebp
  410.     jmp [_WpEnumProvidersW]
  411.   end;
  412. end;
  413. {$ELSE}
  414. function WpEnumProvidersW; external wpapi_lib name 'WpEnumProvidersW';
  415. {$ENDIF DYNAMIC_LINK}
  416. {$IFDEF DYNAMIC_LINK}
  417. var
  418.   _WpGetErrorStringW: Pointer;
  419. function WpGetErrorStringW;
  420. begin
  421.   GetProcedureAddress(_WpGetErrorStringW, wpapi_lib, 'WpGetErrorStringW');
  422.   asm
  423.     mov esp, ebp
  424.     pop ebp
  425.     jmp [_WpGetErrorStringW]
  426.   end;
  427. end;
  428. {$ELSE}
  429. function WpGetErrorStringW; external wpapi_lib name 'WpGetErrorStringW';
  430. {$ENDIF DYNAMIC_LINK}
  431. {$IFDEF UNICODE}
  432. {$IFDEF DYNAMIC_LINK}
  433. var
  434.   _WpPost: Pointer;
  435. function WpPost;
  436. begin
  437.   GetProcedureAddress(_WpPost, wpapi_lib, 'WpPostW');
  438.   asm
  439.     mov esp, ebp
  440.     pop ebp
  441.     jmp [_WpPost]
  442.   end;
  443. end;
  444. {$ELSE}
  445. function WpPost; external wpapi_lib name 'WpPostW';
  446. {$ENDIF DYNAMIC_LINK}
  447. {$IFDEF DYNAMIC_LINK}
  448. var
  449.   _WpListSites: Pointer;
  450. function WpListSites;
  451. begin
  452.   GetProcedureAddress(_WpListSites, wpapi_lib, 'WpListSitesW');
  453.   asm
  454.     mov esp, ebp
  455.     pop ebp
  456.     jmp [_WpListSites]
  457.   end;
  458. end;
  459. {$ELSE}
  460. function WpListSites; external wpapi_lib name 'WpListSitesW';
  461. {$ENDIF DYNAMIC_LINK}
  462. {$IFDEF DYNAMIC_LINK}
  463. var
  464.   _WpDoesSiteExist: Pointer;
  465. function WpDoesSiteExist;
  466. begin
  467.   GetProcedureAddress(_WpDoesSiteExist, wpapi_lib, 'WpDoesSiteExistW');
  468.   asm
  469.     mov esp, ebp
  470.     pop ebp
  471.     jmp [_WpDoesSiteExist]
  472.   end;
  473. end;
  474. {$ELSE}
  475. function WpDoesSiteExist; external wpapi_lib name 'WpDoesSiteExistW';
  476. {$ENDIF DYNAMIC_LINK}
  477. {$IFDEF DYNAMIC_LINK}
  478. var
  479.   _WpDeleteSite: Pointer;
  480. function WpDeleteSite;
  481. begin
  482.   GetProcedureAddress(_WpDeleteSite, wpapi_lib, 'WpDeleteSiteW');
  483.   asm
  484.     mov esp, ebp
  485.     pop ebp
  486.     jmp [_WpDeleteSite]
  487.   end;
  488. end;
  489. {$ELSE}
  490. function WpDeleteSite; external wpapi_lib name 'WpDeleteSiteW';
  491. {$ENDIF DYNAMIC_LINK}
  492. {$IFDEF DYNAMIC_LINK}
  493. var
  494.   _WpBindToSite: Pointer;
  495. function WpBindToSite;
  496. begin
  497.   GetProcedureAddress(_WpBindToSite, wpapi_lib, 'WpBindToSiteW');
  498.   asm
  499.     mov esp, ebp
  500.     pop ebp
  501.     jmp [_WpBindToSite]
  502.   end;
  503. end;
  504. {$ELSE}
  505. function WpBindToSite; external wpapi_lib name 'WpBindToSiteW';
  506. {$ENDIF DYNAMIC_LINK}
  507. {$IFDEF DYNAMIC_LINK}
  508. var
  509.   _WpCreateSite: Pointer;
  510. function WpCreateSite;
  511. begin
  512.   GetProcedureAddress(_WpCreateSite, wpapi_lib, 'WpCreateSiteW');
  513.   asm
  514.     mov esp, ebp
  515.     pop ebp
  516.     jmp [_WpCreateSite]
  517.   end;
  518. end;
  519. {$ELSE}
  520. function WpCreateSite; external wpapi_lib name 'WpCreateSiteW';
  521. {$ENDIF DYNAMIC_LINK}
  522. {$IFDEF DYNAMIC_LINK}
  523. var
  524.   _WpEnumProviders: Pointer;
  525. function WpEnumProviders;
  526. begin
  527.   GetProcedureAddress(_WpEnumProviders, wpapi_lib, 'WpEnumProvidersW');
  528.   asm
  529.     mov esp, ebp
  530.     pop ebp
  531.     jmp [_WpEnumProviders]
  532.   end;
  533. end;
  534. {$ELSE}
  535. function WpEnumProviders; external wpapi_lib name 'WpEnumProvidersW';
  536. {$ENDIF DYNAMIC_LINK}
  537. {$IFDEF DYNAMIC_LINK}
  538. var
  539.   _WpGetErrorString: Pointer;
  540. function WpGetErrorString;
  541. begin
  542.   GetProcedureAddress(_WpGetErrorString, wpapi_lib, 'WpGetErrorStringW');
  543.   asm
  544.     mov esp, ebp
  545.     pop ebp
  546.     jmp [_WpGetErrorString]
  547.   end;
  548. end;
  549. {$ELSE}
  550. function WpGetErrorString; external wpapi_lib name 'WpGetErrorStringW';
  551. {$ENDIF DYNAMIC_LINK}
  552. {$ELSE}
  553. {$IFDEF DYNAMIC_LINK}
  554. var
  555.   _WpPost: Pointer;
  556. function WpPost;
  557. begin
  558.   GetProcedureAddress(_WpPost, wpapi_lib, 'WpPostA');
  559.   asm
  560.     mov esp, ebp
  561.     pop ebp
  562.     jmp [_WpPost]
  563.   end;
  564. end;
  565. {$ELSE}
  566. function WpPost; external wpapi_lib name 'WpPostA';
  567. {$ENDIF DYNAMIC_LINK}
  568. {$IFDEF DYNAMIC_LINK}
  569. var
  570.   _WpListSites: Pointer;
  571. function WpListSites;
  572. begin
  573.   GetProcedureAddress(_WpListSites, wpapi_lib, 'WpListSitesA');
  574.   asm
  575.     mov esp, ebp
  576.     pop ebp
  577.     jmp [_WpListSites]
  578.   end;
  579. end;
  580. {$ELSE}
  581. function WpListSites; external wpapi_lib name 'WpListSitesA';
  582. {$ENDIF DYNAMIC_LINK}
  583. {$IFDEF DYNAMIC_LINK}
  584. var
  585.   _WpDoesSiteExist: Pointer;
  586. function WpDoesSiteExist;
  587. begin
  588.   GetProcedureAddress(_WpDoesSiteExist, wpapi_lib, 'WpDoesSiteExistA');
  589.   asm
  590.     mov esp, ebp
  591.     pop ebp
  592.     jmp [_WpDoesSiteExist]
  593.   end;
  594. end;
  595. {$ELSE}
  596. function WpDoesSiteExist; external wpapi_lib name 'WpDoesSiteExistA';
  597. {$ENDIF DYNAMIC_LINK}
  598. {$IFDEF DYNAMIC_LINK}
  599. var
  600.   _WpDeleteSite: Pointer;
  601. function WpDeleteSite;
  602. begin
  603.   GetProcedureAddress(_WpDeleteSite, wpapi_lib, 'WpDeleteSiteA');
  604.   asm
  605.     mov esp, ebp
  606.     pop ebp
  607.     jmp [_WpDeleteSite]
  608.   end;
  609. end;
  610. {$ELSE}
  611. function WpDeleteSite; external wpapi_lib name 'WpDeleteSiteA';
  612. {$ENDIF DYNAMIC_LINK}
  613. {$IFDEF DYNAMIC_LINK}
  614. var
  615.   _WpBindToSite: Pointer;
  616. function WpBindToSite;
  617. begin
  618.   GetProcedureAddress(_WpBindToSite, wpapi_lib, 'WpBindToSiteA');
  619.   asm
  620.     mov esp, ebp
  621.     pop ebp
  622.     jmp [_WpBindToSite]
  623.   end;
  624. end;
  625. {$ELSE}
  626. function WpBindToSite; external wpapi_lib name 'WpBindToSiteA';
  627. {$ENDIF DYNAMIC_LINK}
  628. {$IFDEF DYNAMIC_LINK}
  629. var
  630.   _WpCreateSite: Pointer;
  631. function WpCreateSite;
  632. begin
  633.   GetProcedureAddress(_WpCreateSite, wpapi_lib, 'WpCreateSiteA');
  634.   asm
  635.     mov esp, ebp
  636.     pop ebp
  637.     jmp [_WpCreateSite]
  638.   end;
  639. end;
  640. {$ELSE}
  641. function WpCreateSite; external wpapi_lib name 'WpCreateSiteA';
  642. {$ENDIF DYNAMIC_LINK}
  643. {$IFDEF DYNAMIC_LINK}
  644. var
  645.   _WpEnumProviders: Pointer;
  646. function WpEnumProviders;
  647. begin
  648.   GetProcedureAddress(_WpEnumProviders, wpapi_lib, 'WpEnumProvidersA');
  649.   asm
  650.     mov esp, ebp
  651.     pop ebp
  652.     jmp [_WpEnumProviders]
  653.   end;
  654. end;
  655. {$ELSE}
  656. function WpEnumProviders; external wpapi_lib name 'WpEnumProvidersA';
  657. {$ENDIF DYNAMIC_LINK}
  658. {$IFDEF DYNAMIC_LINK}
  659. var
  660.   _WpGetErrorString: Pointer;
  661. function WpGetErrorString;
  662. begin
  663.   GetProcedureAddress(_WpGetErrorString, wpapi_lib, 'WpGetErrorStringA');
  664.   asm
  665.     mov esp, ebp
  666.     pop ebp
  667.     jmp [_WpGetErrorString]
  668.   end;
  669. end;
  670. {$ELSE}
  671. function WpGetErrorString; external wpapi_lib name 'WpGetErrorStringA';
  672. {$ENDIF DYNAMIC_LINK}
  673. {$ENDIF}
  674. end.