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

Windows编程

开发平台:

Delphi

  1. {******************************************************************************}
  2. {                                                                       }
  3. { Windows Networking 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: winnetwk.h, released June 2000. The original Pascal    }
  9. { code is: WinNetWk.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 JwaWinNetWk;
  44. {$WEAKPACKAGEUNIT}
  45. {$HPPEMIT ''}
  46. {$HPPEMIT '#include "WinNetWk.h"'}
  47. {$HPPEMIT ''}
  48. {$I WINDEFINES.INC}
  49. interface
  50. uses
  51.   JwaWinError, JwaWinType;
  52. //
  53. // Network types
  54. //
  55. const
  56.   WNNC_NET_MSNET       = $00010000;
  57.   {$EXTERNALSYM WNNC_NET_MSNET}
  58.   WNNC_NET_LANMAN      = $00020000;
  59.   {$EXTERNALSYM WNNC_NET_LANMAN}
  60.   WNNC_NET_NETWARE     = $00030000;
  61.   {$EXTERNALSYM WNNC_NET_NETWARE}
  62.   WNNC_NET_VINES       = $00040000;
  63.   {$EXTERNALSYM WNNC_NET_VINES}
  64.   WNNC_NET_10NET       = $00050000;
  65.   {$EXTERNALSYM WNNC_NET_10NET}
  66.   WNNC_NET_LOCUS       = $00060000;
  67.   {$EXTERNALSYM WNNC_NET_LOCUS}
  68.   WNNC_NET_SUN_PC_NFS  = $00070000;
  69.   {$EXTERNALSYM WNNC_NET_SUN_PC_NFS}
  70.   WNNC_NET_LANSTEP     = $00080000;
  71.   {$EXTERNALSYM WNNC_NET_LANSTEP}
  72.   WNNC_NET_9TILES      = $00090000;
  73.   {$EXTERNALSYM WNNC_NET_9TILES}
  74.   WNNC_NET_LANTASTIC   = $000A0000;
  75.   {$EXTERNALSYM WNNC_NET_LANTASTIC}
  76.   WNNC_NET_AS400       = $000B0000;
  77.   {$EXTERNALSYM WNNC_NET_AS400}
  78.   WNNC_NET_FTP_NFS     = $000C0000;
  79.   {$EXTERNALSYM WNNC_NET_FTP_NFS}
  80.   WNNC_NET_PATHWORKS   = $000D0000;
  81.   {$EXTERNALSYM WNNC_NET_PATHWORKS}
  82.   WNNC_NET_LIFENET     = $000E0000;
  83.   {$EXTERNALSYM WNNC_NET_LIFENET}
  84.   WNNC_NET_POWERLAN    = $000F0000;
  85.   {$EXTERNALSYM WNNC_NET_POWERLAN}
  86.   WNNC_NET_BWNFS       = $00100000;
  87.   {$EXTERNALSYM WNNC_NET_BWNFS}
  88.   WNNC_NET_COGENT      = $00110000;
  89.   {$EXTERNALSYM WNNC_NET_COGENT}
  90.   WNNC_NET_FARALLON    = $00120000;
  91.   {$EXTERNALSYM WNNC_NET_FARALLON}
  92.   WNNC_NET_APPLETALK   = $00130000;
  93.   {$EXTERNALSYM WNNC_NET_APPLETALK}
  94.   WNNC_NET_INTERGRAPH  = $00140000;
  95.   {$EXTERNALSYM WNNC_NET_INTERGRAPH}
  96.   WNNC_NET_SYMFONET    = $00150000;
  97.   {$EXTERNALSYM WNNC_NET_SYMFONET}
  98.   WNNC_NET_CLEARCASE   = $00160000;
  99.   {$EXTERNALSYM WNNC_NET_CLEARCASE}
  100.   WNNC_NET_FRONTIER    = $00170000;
  101.   {$EXTERNALSYM WNNC_NET_FRONTIER}
  102.   WNNC_NET_BMC         = $00180000;
  103.   {$EXTERNALSYM WNNC_NET_BMC}
  104.   WNNC_NET_DCE         = $00190000;
  105.   {$EXTERNALSYM WNNC_NET_DCE}
  106.   WNNC_NET_AVID        = $001A0000;
  107.   {$EXTERNALSYM WNNC_NET_AVID}
  108.   WNNC_NET_DOCUSPACE   = $001B0000;
  109.   {$EXTERNALSYM WNNC_NET_DOCUSPACE}
  110.   WNNC_NET_MANGOSOFT   = $001C0000;
  111.   {$EXTERNALSYM WNNC_NET_MANGOSOFT}
  112.   WNNC_NET_SERNET      = $001D0000;
  113.   {$EXTERNALSYM WNNC_NET_SERNET}
  114.   WNNC_NET_RIVERFRONT1 = $001E0000;
  115.   {$EXTERNALSYM WNNC_NET_RIVERFRONT1}
  116.   WNNC_NET_RIVERFRONT2 = $001F0000;
  117.   {$EXTERNALSYM WNNC_NET_RIVERFRONT2}
  118.   WNNC_NET_DECORB      = $00200000;
  119.   {$EXTERNALSYM WNNC_NET_DECORB}
  120.   WNNC_NET_PROTSTOR    = $00210000;
  121.   {$EXTERNALSYM WNNC_NET_PROTSTOR}
  122.   WNNC_NET_FJ_REDIR    = $00220000;
  123.   {$EXTERNALSYM WNNC_NET_FJ_REDIR}
  124.   WNNC_NET_DISTINCT    = $00230000;
  125.   {$EXTERNALSYM WNNC_NET_DISTINCT}
  126.   WNNC_NET_TWINS       = $00240000;
  127.   {$EXTERNALSYM WNNC_NET_TWINS}
  128.   WNNC_NET_RDR2SAMPLE  = $00250000;
  129.   {$EXTERNALSYM WNNC_NET_RDR2SAMPLE}
  130.   WNNC_NET_CSC         = $00260000;
  131.   {$EXTERNALSYM WNNC_NET_CSC}
  132.   WNNC_NET_3IN1        = $00270000;
  133.   {$EXTERNALSYM WNNC_NET_3IN1}
  134.   WNNC_NET_EXTENDNET   = $00290000;
  135.   {$EXTERNALSYM WNNC_NET_EXTENDNET}
  136.   WNNC_NET_STAC        = $002A0000;
  137.   {$EXTERNALSYM WNNC_NET_STAC}
  138.   WNNC_NET_FOXBAT      = $002B0000;
  139.   {$EXTERNALSYM WNNC_NET_FOXBAT}
  140.   WNNC_NET_YAHOO       = $002C0000;
  141.   {$EXTERNALSYM WNNC_NET_YAHOO}
  142.   WNNC_NET_EXIFS       = $002D0000;
  143.   {$EXTERNALSYM WNNC_NET_EXIFS}
  144.   WNNC_NET_DAV         = $002E0000;
  145.   {$EXTERNALSYM WNNC_NET_DAV}
  146.   WNNC_NET_KNOWARE     = $002F0000;
  147.   {$EXTERNALSYM WNNC_NET_KNOWARE}
  148.   WNNC_NET_OBJECT_DIRE = $00300000;
  149.   {$EXTERNALSYM WNNC_NET_OBJECT_DIRE}
  150.   WNNC_NET_MASFAX      = $00310000;
  151.   {$EXTERNALSYM WNNC_NET_MASFAX}
  152.   WNNC_NET_HOB_NFS     = $00320000;
  153.   {$EXTERNALSYM WNNC_NET_HOB_NFS}
  154.   WNNC_NET_SHIVA       = $00330000;
  155.   {$EXTERNALSYM WNNC_NET_SHIVA}
  156.   WNNC_NET_IBMAL       = $00340000;
  157.   {$EXTERNALSYM WNNC_NET_IBMAL}
  158.   WNNC_NET_LOCK        = $00350000;
  159.   {$EXTERNALSYM WNNC_NET_LOCK}
  160.   WNNC_NET_TERMSRV     = $00360000;
  161.   {$EXTERNALSYM WNNC_NET_TERMSRV}
  162.   WNNC_NET_SRT         = $00370000;
  163.   {$EXTERNALSYM WNNC_NET_SRT}
  164.   WNNC_CRED_MANAGER = DWORD($FFFF0000);
  165.   {$EXTERNALSYM WNNC_CRED_MANAGER}
  166. //
  167. //  Network Resources.
  168. //
  169.   RESOURCE_CONNECTED  = $00000001;
  170.   {$EXTERNALSYM RESOURCE_CONNECTED}
  171.   RESOURCE_GLOBALNET  = $00000002;
  172.   {$EXTERNALSYM RESOURCE_GLOBALNET}
  173.   RESOURCE_REMEMBERED = $00000003;
  174.   {$EXTERNALSYM RESOURCE_REMEMBERED}
  175.   RESOURCE_RECENT     = $00000004;
  176.   {$EXTERNALSYM RESOURCE_RECENT}
  177.   RESOURCE_CONTEXT    = $00000005;
  178.   {$EXTERNALSYM RESOURCE_CONTEXT}
  179.   RESOURCETYPE_ANY      = $00000000;
  180.   {$EXTERNALSYM RESOURCETYPE_ANY}
  181.   RESOURCETYPE_DISK     = $00000001;
  182.   {$EXTERNALSYM RESOURCETYPE_DISK}
  183.   RESOURCETYPE_PRINT    = $00000002;
  184.   {$EXTERNALSYM RESOURCETYPE_PRINT}
  185.   RESOURCETYPE_RESERVED = $00000008;
  186.   {$EXTERNALSYM RESOURCETYPE_RESERVED}
  187.   RESOURCETYPE_UNKNOWN  = DWORD($FFFFFFFF);
  188.   {$EXTERNALSYM RESOURCETYPE_UNKNOWN}
  189.   RESOURCEUSAGE_CONNECTABLE   = $00000001;
  190.   {$EXTERNALSYM RESOURCEUSAGE_CONNECTABLE}
  191.   RESOURCEUSAGE_CONTAINER     = $00000002;
  192.   {$EXTERNALSYM RESOURCEUSAGE_CONTAINER}
  193.   RESOURCEUSAGE_NOLOCALDEVICE = $00000004;
  194.   {$EXTERNALSYM RESOURCEUSAGE_NOLOCALDEVICE}
  195.   RESOURCEUSAGE_SIBLING       = $00000008;
  196.   {$EXTERNALSYM RESOURCEUSAGE_SIBLING}
  197.   RESOURCEUSAGE_ATTACHED      = $00000010;
  198.   {$EXTERNALSYM RESOURCEUSAGE_ATTACHED}
  199.   RESOURCEUSAGE_ALL           = (RESOURCEUSAGE_CONNECTABLE or
  200.     RESOURCEUSAGE_CONTAINER or RESOURCEUSAGE_ATTACHED);
  201.   {$EXTERNALSYM RESOURCEUSAGE_ALL}
  202.   RESOURCEUSAGE_RESERVED      = DWORD($80000000);
  203.   {$EXTERNALSYM RESOURCEUSAGE_RESERVED}
  204.   RESOURCEDISPLAYTYPE_GENERIC      = $00000000;
  205.   {$EXTERNALSYM RESOURCEDISPLAYTYPE_GENERIC}
  206.   RESOURCEDISPLAYTYPE_DOMAIN       = $00000001;
  207.   {$EXTERNALSYM RESOURCEDISPLAYTYPE_DOMAIN}
  208.   RESOURCEDISPLAYTYPE_SERVER       = $00000002;
  209.   {$EXTERNALSYM RESOURCEDISPLAYTYPE_SERVER}
  210.   RESOURCEDISPLAYTYPE_SHARE        = $00000003;
  211.   {$EXTERNALSYM RESOURCEDISPLAYTYPE_SHARE}
  212.   RESOURCEDISPLAYTYPE_FILE         = $00000004;
  213.   {$EXTERNALSYM RESOURCEDISPLAYTYPE_FILE}
  214.   RESOURCEDISPLAYTYPE_GROUP        = $00000005;
  215.   {$EXTERNALSYM RESOURCEDISPLAYTYPE_GROUP}
  216.   RESOURCEDISPLAYTYPE_NETWORK      = $00000006;
  217.   {$EXTERNALSYM RESOURCEDISPLAYTYPE_NETWORK}
  218.   RESOURCEDISPLAYTYPE_ROOT         = $00000007;
  219.   {$EXTERNALSYM RESOURCEDISPLAYTYPE_ROOT}
  220.   RESOURCEDISPLAYTYPE_SHAREADMIN   = $00000008;
  221.   {$EXTERNALSYM RESOURCEDISPLAYTYPE_SHAREADMIN}
  222.   RESOURCEDISPLAYTYPE_DIRECTORY    = $00000009;
  223.   {$EXTERNALSYM RESOURCEDISPLAYTYPE_DIRECTORY}
  224.   RESOURCEDISPLAYTYPE_TREE         = $0000000A;
  225.   {$EXTERNALSYM RESOURCEDISPLAYTYPE_TREE}
  226.   RESOURCEDISPLAYTYPE_NDSCONTAINER = $0000000B;
  227.   {$EXTERNALSYM RESOURCEDISPLAYTYPE_NDSCONTAINER}
  228. type
  229.   LPNETRESOURCEA = ^NETRESOURCEA;
  230.   {$EXTERNALSYM LPNETRESOURCEA}
  231.   _NETRESOURCEA = record
  232.     dwScope: DWORD;
  233.     dwType: DWORD;
  234.     dwDisplayType: DWORD;
  235.     dwUsage: DWORD;
  236.     lpLocalName: LPSTR;
  237.     lpRemoteName: LPSTR;
  238.     lpComment: LPSTR;
  239.     lpProvider: LPSTR;
  240.   end;
  241.   {$EXTERNALSYM _NETRESOURCEA}
  242.   NETRESOURCEA = _NETRESOURCEA;
  243.   {$EXTERNALSYM NETRESOURCEA}
  244.   TNetResourceA = NETRESOURCEA;
  245.   PNetResourceA = LPNETRESOURCEA;
  246.   LPNETRESOURCEW = ^NETRESOURCEW;
  247.   {$EXTERNALSYM LPNETRESOURCEW}
  248.   _NETRESOURCEW = record
  249.     dwScope: DWORD;
  250.     dwType: DWORD;
  251.     dwDisplayType: DWORD;
  252.     dwUsage: DWORD;
  253.     lpLocalName: LPWSTR;
  254.     lpRemoteName: LPWSTR;
  255.     lpComment: LPWSTR;
  256.     lpProvider: LPWSTR;
  257.   end;
  258.   {$EXTERNALSYM _NETRESOURCEW}
  259.   NETRESOURCEW = _NETRESOURCEW;
  260.   {$EXTERNALSYM NETRESOURCEW}
  261.   TNetResourceW = NETRESOURCEW;
  262.   PNetResourceW = LPNETRESOURCEW;
  263. {$IFDEF UNICODE}
  264.   NETRESOURCE = NETRESOURCEW;
  265.   {$EXTERNALSYM NETRESOURCE}
  266.   LPNETRESOURCE = LPNETRESOURCEW;
  267.   {$EXTERNALSYM LPNETRESOURCE}
  268.   TNetResource = TNetResourceW;
  269.   PNetResource = PNetResourceW;
  270. {$ELSE}
  271.   NETRESOURCE = NETRESOURCEA;
  272.   {$EXTERNALSYM NETRESOURCE}
  273.   LPNETRESOURCE = LPNETRESOURCEA;
  274.   {$EXTERNALSYM LPNETRESOURCE}
  275.   TNetResource = TNetResourceA;
  276.   PNetResource = PNetResourceA;
  277. {$ENDIF}
  278. //
  279. //  Network Connections.
  280. //
  281. const
  282.   NETPROPERTY_PERSISTENT = 1;
  283.   {$EXTERNALSYM NETPROPERTY_PERSISTENT}
  284.   CONNECT_UPDATE_PROFILE = $00000001;
  285.   {$EXTERNALSYM CONNECT_UPDATE_PROFILE}
  286.   CONNECT_UPDATE_RECENT  = $00000002;
  287.   {$EXTERNALSYM CONNECT_UPDATE_RECENT}
  288.   CONNECT_TEMPORARY      = $00000004;
  289.   {$EXTERNALSYM CONNECT_TEMPORARY}
  290.   CONNECT_INTERACTIVE    = $00000008;
  291.   {$EXTERNALSYM CONNECT_INTERACTIVE}
  292.   CONNECT_PROMPT         = $00000010;
  293.   {$EXTERNALSYM CONNECT_PROMPT}
  294.   CONNECT_NEED_DRIVE     = $00000020;
  295.   {$EXTERNALSYM CONNECT_NEED_DRIVE}
  296.   CONNECT_REFCOUNT       = $00000040;
  297.   {$EXTERNALSYM CONNECT_REFCOUNT}
  298.   CONNECT_REDIRECT       = $00000080;
  299.   {$EXTERNALSYM CONNECT_REDIRECT}
  300.   CONNECT_LOCALDRIVE     = $00000100;
  301.   {$EXTERNALSYM CONNECT_LOCALDRIVE}
  302.   CONNECT_CURRENT_MEDIA  = $00000200;
  303.   {$EXTERNALSYM CONNECT_CURRENT_MEDIA}
  304.   CONNECT_DEFERRED       = $00000400;
  305.   {$EXTERNALSYM CONNECT_DEFERRED}
  306.   CONNECT_RESERVED       = DWORD($FF000000);
  307.   {$EXTERNALSYM CONNECT_RESERVED}
  308.   CONNECT_COMMANDLINE    = $00000800;
  309.   {$EXTERNALSYM CONNECT_COMMANDLINE}
  310.   CONNECT_CMD_SAVECRED   = $00001000;
  311.   {$EXTERNALSYM CONNECT_CMD_SAVECRED}
  312. function WNetAddConnectionA(lpRemoteName, lpPassword, lpLocalName: LPCSTR): DWORD; stdcall;
  313. {$EXTERNALSYM WNetAddConnectionA}
  314. function WNetAddConnectionW(lpRemoteName, lpPassword, lpLocalName: LPCWSTR): DWORD; stdcall;
  315. {$EXTERNALSYM WNetAddConnectionW}
  316. {$IFDEF UNICODE}
  317. function WNetAddConnection(lpRemoteName, lpPassword, lpLocalName: LPCWSTR): DWORD; stdcall;
  318. {$EXTERNALSYM WNetAddConnection}
  319. {$ELSE}
  320. function WNetAddConnection(lpRemoteName, lpPassword, lpLocalName: LPCSTR): DWORD; stdcall;
  321. {$EXTERNALSYM WNetAddConnection}
  322. {$ENDIF}
  323. function WNetAddConnection2A(const lpNetResource: NETRESOURCEA; lpPassword: LPCSTR;
  324.   lpUserName: LPCSTR; dwFlags: DWORD): DWORD; stdcall;
  325. {$EXTERNALSYM WNetAddConnection2A}
  326. function WNetAddConnection2W(const lpNetResource: NETRESOURCEW; lpPassword: LPCWSTR;
  327.   lpUserName: LPCWSTR; dwFlags: DWORD): DWORD; stdcall;
  328. {$EXTERNALSYM WNetAddConnection2W}
  329. {$IFDEF UNICODE}
  330. function WNetAddConnection2(const lpNetResource: NETRESOURCEW; lpPassword: LPCWSTR;
  331.   lpUserName: LPCWSTR; dwFlags: DWORD): DWORD; stdcall;
  332. {$EXTERNALSYM WNetAddConnection2}
  333. {$ELSE}
  334. function WNetAddConnection2(const lpNetResource: NETRESOURCEA; lpPassword: LPCSTR;
  335.   lpUserName: LPCSTR; dwFlags: DWORD): DWORD; stdcall;
  336. {$EXTERNALSYM WNetAddConnection2}
  337. {$ENDIF}
  338. function WNetAddConnection3A(hwndOwner: HWND; const lpNetResource: NETRESOURCEA;
  339.   lpPassword: LPCSTR; lpUserName: LPCSTR; dwFlags: DWORD): DWORD; stdcall;
  340. {$EXTERNALSYM WNetAddConnection3A}
  341. function WNetAddConnection3W(hwndOwner: HWND; const lpNetResource: NETRESOURCEW;
  342.   lpPassword: LPCWSTR; lpUserName: LPCWSTR; dwFlags: DWORD): DWORD; stdcall;
  343. {$EXTERNALSYM WNetAddConnection3W}
  344. {$IFDEF UNICODE}
  345. function WNetAddConnection3(hwndOwner: HWND; const lpNetResource: LPNETRESOURCEW;
  346.   lpPassword: LPCWSTR; lpUserName: LPCWSTR; dwFlags: DWORD): DWORD; stdcall;
  347. {$EXTERNALSYM WNetAddConnection3}
  348. {$ELSE}
  349. function WNetAddConnection3(hwndOwner: HWND; const lpNetResource: NETRESOURCEA;
  350.   lpPassword: LPCSTR; lpUserName: LPCSTR; dwFlags: DWORD): DWORD; stdcall;
  351. {$EXTERNALSYM WNetAddConnection3}
  352. {$ENDIF}
  353. function WNetCancelConnectionA(lpName: LPCSTR; fForce: BOOL): DWORD; stdcall;
  354. {$EXTERNALSYM WNetCancelConnectionA}
  355. function WNetCancelConnectionW(lpName: LPCWSTR; fForce: BOOL): DWORD; stdcall;
  356. {$EXTERNALSYM WNetCancelConnectionW}
  357. {$IFDEF UNICODE}
  358. function WNetCancelConnection(lpName: LPCWSTR; fForce: BOOL): DWORD; stdcall;
  359. {$EXTERNALSYM WNetCancelConnection}
  360. {$ELSE}
  361. function WNetCancelConnection(lpName: LPCSTR; fForce: BOOL): DWORD; stdcall;
  362. {$EXTERNALSYM WNetCancelConnection}
  363. {$ENDIF}
  364. function WNetCancelConnection2A(lpName: LPCSTR; dwFlags: DWORD; fForce: BOOL): DWORD; stdcall;
  365. {$EXTERNALSYM WNetCancelConnection2A}
  366. function WNetCancelConnection2W(lpName: LPCWSTR; dwFlags: DWORD; fForce: BOOL): DWORD; stdcall;
  367. {$EXTERNALSYM WNetCancelConnection2W}
  368. {$IFDEF UNICODE}
  369. function WNetCancelConnection2(lpName: LPCWSTR; dwFlags: DWORD; fForce: BOOL): DWORD; stdcall;
  370. {$EXTERNALSYM WNetCancelConnection2}
  371. {$ELSE}
  372. function WNetCancelConnection2(lpName: LPCSTR; dwFlags: DWORD; fForce: BOOL): DWORD; stdcall;
  373. {$EXTERNALSYM WNetCancelConnection2}
  374. {$ENDIF}
  375. function WNetGetConnectionA(lpLocalName, lpRemoteName: LPSTR; var lpnLength: DWORD): DWORD; stdcall;
  376. {$EXTERNALSYM WNetGetConnectionA}
  377. function WNetGetConnectionW(lpLocalName, lpRemoteName: LPWSTR; var lpnLength: DWORD): DWORD; stdcall;
  378. {$EXTERNALSYM WNetGetConnectionW}
  379. {$IFDEF UNICODE}
  380. function WNetGetConnection(lpLocalName, lpRemoteName: LPWSTR; var lpnLength: DWORD): DWORD; stdcall;
  381. {$EXTERNALSYM WNetGetConnection}
  382. {$ELSE}
  383. function WNetGetConnection(lpLocalName, lpRemoteName: LPSTR; var lpnLength: DWORD): DWORD; stdcall;
  384. {$EXTERNALSYM WNetGetConnection}
  385. {$ENDIF}
  386. function WNetUseConnectionA(hwndOwner: HWND; const lpNetResource: NETRESOURCEA;
  387.   lpPassword, lpUserID: LPCSTR; dwFlags: DWORD; lpAccessName: LPSTR;
  388.   var lpBufferSize, lpResult: DWORD): DWORD; stdcall;
  389. {$EXTERNALSYM WNetUseConnectionA}
  390. function WNetUseConnectionW(hwndOwner: HWND; const lpNetResource: NETRESOURCEW;
  391.   lpPassword, lpUserID: LPCWSTR; dwFlags: DWORD; lpAccessName: LPWSTR;
  392.   var lpBufferSize, lpResult: DWORD): DWORD; stdcall;
  393. {$EXTERNALSYM WNetUseConnectionW}
  394. {$IFDEF UNICODE}
  395. function WNetUseConnection(hwndOwner: HWND; const lpNetResource: NETRESOURCEW;
  396.   lpPassword, lpUserID: LPCWSTR; dwFlags: DWORD; lpAccessName: LPWSTR;
  397.   var lpBufferSize, lpResult: DWORD): DWORD; stdcall;
  398. {$EXTERNALSYM WNetUseConnection}
  399. {$ELSE}
  400. function WNetUseConnection(hwndOwner: HWND; const lpNetResource: NETRESOURCEA;
  401.   lpPassword, lpUserID: LPCSTR; dwFlags: DWORD; lpAccessName: LPSTR;
  402.   var lpBufferSize, lpResult: DWORD): DWORD; stdcall;
  403. {$EXTERNALSYM WNetUseConnection}
  404. {$ENDIF}
  405. //
  406. //  Network Connection Dialogs.
  407. //
  408. function WNetConnectionDialog(hwnd: HWND; dwType: DWORD): DWORD; stdcall;
  409. {$EXTERNALSYM WNetConnectionDialog}
  410. function WNetDisconnectDialog(hwnd: HWND; dwType: DWORD): DWORD; stdcall;
  411. {$EXTERNALSYM WNetDisconnectDialog}
  412. type
  413.   LPCONNECTDLGSTRUCTA = ^CONNECTDLGSTRUCTA;
  414.   {$EXTERNALSYM LPCONNECTDLGSTRUCTA}
  415.   _CONNECTDLGSTRUCTA = record
  416.     cbStructure: DWORD; // size of this structure in bytes
  417.     hwndOwner: HWND; // owner window for the dialog
  418.     lpConnRes: LPNETRESOURCEA; // Requested Resource info
  419.     dwFlags: DWORD; // flags (see below)
  420.     dwDevNum: DWORD; // number of devices connected to
  421.   end;
  422.   {$EXTERNALSYM _CONNECTDLGSTRUCTA}
  423.   CONNECTDLGSTRUCTA = _CONNECTDLGSTRUCTA;
  424.   {$EXTERNALSYM CONNECTDLGSTRUCTA}
  425.   TConnectDlgStructA = CONNECTDLGSTRUCTA;
  426.   PConnectDlgStructA = LPCONNECTDLGSTRUCTA;
  427.   LPCONNECTDLGSTRUCTW = ^CONNECTDLGSTRUCTW;
  428.   {$EXTERNALSYM LPCONNECTDLGSTRUCTW}
  429.   _CONNECTDLGSTRUCTW = record
  430.     cbStructure: DWORD; // size of this structure in bytes
  431.     hwndOwner: HWND; // owner window for the dialog
  432.     lpConnRes: LPNETRESOURCEW; // Requested Resource info
  433.     dwFlags: DWORD; // flags (see below)
  434.     dwDevNum: DWORD; // number of devices connected to
  435.   end;
  436.   {$EXTERNALSYM _CONNECTDLGSTRUCTW}
  437.   CONNECTDLGSTRUCTW = _CONNECTDLGSTRUCTW;
  438.   {$EXTERNALSYM CONNECTDLGSTRUCTW}
  439.   TConnectDlgStructW = CONNECTDLGSTRUCTW;
  440.   PConnectDlgStructW = LPCONNECTDLGSTRUCTW;
  441. {$IFDEF UNICODE}
  442.   CONNECTDLGSTRUCT = CONNECTDLGSTRUCTW;
  443.   {$EXTERNALSYM CONNECTDLGSTRUCT}
  444.   LPCONNECTDLGSTRUCT = LPCONNECTDLGSTRUCTW;
  445.   {$EXTERNALSYM LPCONNECTDLGSTRUCT}
  446.   TConnectDlgStruct = TConnectDlgStructW;
  447.   PConnectDlgStruct = PConnectDlgStructW;
  448. {$ELSE}
  449.   CONNECTDLGSTRUCT = CONNECTDLGSTRUCTA;
  450.   {$EXTERNALSYM CONNECTDLGSTRUCT}
  451.   LPCONNECTDLGSTRUCT = LPCONNECTDLGSTRUCTA;
  452.   {$EXTERNALSYM LPCONNECTDLGSTRUCT}
  453.   TConnectDlgStruct = TConnectDlgStructA;
  454.   PConnectDlgStruct = PConnectDlgStructA;
  455. {$ENDIF}
  456. const
  457.   CONNDLG_RO_PATH    = $00000001; // Resource path should be read-only
  458.   {$EXTERNALSYM CONNDLG_RO_PATH}
  459.   CONNDLG_CONN_POINT = $00000002; // Netware -style movable connection point enabled
  460.   {$EXTERNALSYM CONNDLG_CONN_POINT}
  461.   CONNDLG_USE_MRU    = $00000004; // Use MRU combobox
  462.   {$EXTERNALSYM CONNDLG_USE_MRU}
  463.   CONNDLG_HIDE_BOX   = $00000008; // Hide persistent connect checkbox
  464.   {$EXTERNALSYM CONNDLG_HIDE_BOX}
  465. //
  466. // NOTE:  Set at most ONE of the below flags.  If neither flag is set,
  467. //        then the persistence is set to whatever the user chose during
  468. //        a previous connection
  469. //
  470.   CONNDLG_PERSIST     = $00000010; // Force persistent connection
  471.   {$EXTERNALSYM CONNDLG_PERSIST}
  472.   CONNDLG_NOT_PERSIST = $00000020; // Force connection NOT persistent
  473.   {$EXTERNALSYM CONNDLG_NOT_PERSIST}
  474. function WNetConnectionDialog1A(var lpConnDlgStruct: CONNECTDLGSTRUCTA): DWORD; stdcall;
  475. {$EXTERNALSYM WNetConnectionDialog1A}
  476. function WNetConnectionDialog1W(var lpConnDlgStruct: CONNECTDLGSTRUCTW): DWORD; stdcall;
  477. {$EXTERNALSYM WNetConnectionDialog1W}
  478. {$IFDEF UNICODE}
  479. function WNetConnectionDialog1(var lpConnDlgStruct: CONNECTDLGSTRUCTW): DWORD; stdcall;
  480. {$EXTERNALSYM WNetConnectionDialog1}
  481. {$ELSE}
  482. function WNetConnectionDialog1(var lpConnDlgStruct: CONNECTDLGSTRUCTA): DWORD; stdcall;
  483. {$EXTERNALSYM WNetConnectionDialog1}
  484. {$ENDIF}
  485. type
  486.   LPDISCDLGSTRUCTA = ^DISCDLGSTRUCTA;
  487.   {$EXTERNALSYM LPDISCDLGSTRUCTA}
  488.   _DISCDLGSTRUCTA = record
  489.     cbStructure: DWORD; // size of this structure in bytes
  490.     hwndOwner: HWND; // owner window for the dialog
  491.     lpLocalName: LPSTR; // local device name
  492.     lpRemoteName: LPSTR; // network resource name
  493.     dwFlags: DWORD; // flags
  494.   end;
  495.   {$EXTERNALSYM _DISCDLGSTRUCTA}
  496.   DISCDLGSTRUCTA = _DISCDLGSTRUCTA;
  497.   {$EXTERNALSYM DISCDLGSTRUCTA}
  498.   TDiscDlgStructA = DISCDLGSTRUCTA;
  499.   PDiscDlgStructA = LPDISCDLGSTRUCTA;
  500.   LPDISCDLGSTRUCTW = ^DISCDLGSTRUCTW;
  501.   {$EXTERNALSYM LPDISCDLGSTRUCTW}
  502.   _DISCDLGSTRUCTW = record
  503.     cbStructure: DWORD; // size of this structure in bytes
  504.     hwndOwner: HWND; // owner window for the dialog
  505.     lpLocalName: LPWSTR; // local device name
  506.     lpRemoteName: LPWSTR; // network resource name
  507.     dwFlags: DWORD; // flags
  508.   end;
  509.   {$EXTERNALSYM _DISCDLGSTRUCTW}
  510.   DISCDLGSTRUCTW = _DISCDLGSTRUCTW;
  511.   {$EXTERNALSYM DISCDLGSTRUCTW}
  512.   TDiscDlgStructW = DISCDLGSTRUCTW;
  513.   PDiscDlgStructW = LPDISCDLGSTRUCTW;
  514. {$IFDEF UNICODE}
  515.   DISCDLGSTRUCT = DISCDLGSTRUCTW;
  516.   {$EXTERNALSYM DISCDLGSTRUCT}
  517.   LPDISCDLGSTRUCT = LPDISCDLGSTRUCTW;
  518.   {$EXTERNALSYM LPDISCDLGSTRUCT}
  519.   TDiscDlgStruct = TDiscDlgStructW;
  520.   PDiscDlgStruct = PDiscDlgStructW;
  521. {$ELSE}
  522.   DISCDLGSTRUCT = DISCDLGSTRUCTA;
  523.   {$EXTERNALSYM DISCDLGSTRUCT}
  524.   LPDISCDLGSTRUCT = LPDISCDLGSTRUCTA;
  525.   {$EXTERNALSYM LPDISCDLGSTRUCT}
  526.   TDiscDlgStruct = TDiscDlgStructA;
  527.   PDiscDlgStruct = PDiscDlgStructA;
  528. {$ENDIF}
  529. const
  530.   DISC_UPDATE_PROFILE = $00000001;
  531.   {$EXTERNALSYM DISC_UPDATE_PROFILE}
  532.   DISC_NO_FORCE       = $00000040;
  533.   {$EXTERNALSYM DISC_NO_FORCE}
  534. function WNetDisconnectDialog1A(const lpConnDlgStruct: DISCDLGSTRUCTA): DWORD; stdcall;
  535. {$EXTERNALSYM WNetDisconnectDialog1A}
  536. function WNetDisconnectDialog1W(const lpConnDlgStruct: DISCDLGSTRUCTW): DWORD; stdcall;
  537. {$EXTERNALSYM WNetDisconnectDialog1W}
  538. {$IFDEF UNICODE}
  539. function WNetDisconnectDialog1(const lpConnDlgStruct: DISCDLGSTRUCTW): DWORD; stdcall;
  540. {$EXTERNALSYM WNetDisconnectDialog1}
  541. {$ELSE}
  542. function WNetDisconnectDialog1(const lpConnDlgStruct: DISCDLGSTRUCTA): DWORD; stdcall;
  543. {$EXTERNALSYM WNetDisconnectDialog1}
  544. {$ENDIF}
  545. //
  546. //  Network Browsing.
  547. //
  548. function WNetOpenEnumA(dwScope, dwType, dwUsage: DWORD; lpNetResource: LPNETRESOURCEA;
  549.   var lphEnum: HANDLE): DWORD; stdcall;
  550. {$EXTERNALSYM WNetOpenEnumA}
  551. function WNetOpenEnumW(dwScope, dwType, dwUsage: DWORD; lpNetResource: LPNETRESOURCEW;
  552.   var lphEnum: HANDLE): DWORD; stdcall;
  553. {$EXTERNALSYM WNetOpenEnumW}
  554. {$IFDEF UNICODE}
  555. function WNetOpenEnum(dwScope, dwType, dwUsage: DWORD; lpNetResource: LPNETRESOURCEW;
  556.   var lphEnum: HANDLE): DWORD; stdcall;
  557. {$EXTERNALSYM WNetOpenEnum}
  558. {$ELSE}
  559. function WNetOpenEnum(dwScope, dwType, dwUsage: DWORD; lpNetResource: LPNETRESOURCEA;
  560.   var lphEnum: HANDLE): DWORD; stdcall;
  561. {$EXTERNALSYM WNetOpenEnum}
  562. {$ENDIF}
  563. function WNetEnumResourceA(hEnum: HANDLE; var lpcCount: DWORD; lpBuffer: LPVOID;
  564.   var lpBufferSize: DWORD): DWORD; stdcall;
  565. {$EXTERNALSYM WNetEnumResourceA}
  566. function WNetEnumResourceW(hEnum: HANDLE; var lpcCount: DWORD; lpBuffer: LPVOID;
  567.   var lpBufferSize: DWORD): DWORD; stdcall;
  568. {$EXTERNALSYM WNetEnumResourceW}
  569. {$IFDEF UNICODE}
  570. function WNetEnumResource(hEnum: HANDLE; var lpcCount: DWORD; lpBuffer: LPVOID;
  571.   var lpBufferSize: DWORD): DWORD; stdcall;
  572. {$EXTERNALSYM WNetEnumResource}
  573. {$ELSE}
  574. function WNetEnumResource(hEnum: HANDLE; var lpcCount: DWORD; lpBuffer: LPVOID;
  575.   var lpBufferSize: DWORD): DWORD; stdcall;
  576. {$EXTERNALSYM WNetEnumResource}
  577. {$ENDIF}
  578. function WNetCloseEnum(hEnum: HANDLE): DWORD; stdcall;
  579. {$EXTERNALSYM WNetCloseEnum}
  580. function WNetGetResourceParentA(const lpNetResource: NETRESOURCEA;
  581.   lpBuffer: LPVOID; var lpcbBuffer: DWORD): DWORD; stdcall;
  582. {$EXTERNALSYM WNetGetResourceParentA}
  583. function WNetGetResourceParentW(const lpNetResource: NETRESOURCEW;
  584.   lpBuffer: LPVOID; var lpcbBuffer: DWORD): DWORD; stdcall;
  585. {$EXTERNALSYM WNetGetResourceParentW}
  586. {$IFDEF UNICODE}
  587. function WNetGetResourceParent(const lpNetResource: NETRESOURCEW;
  588.   lpBuffer: LPVOID; var lpcbBuffer: DWORD): DWORD; stdcall;
  589. {$EXTERNALSYM WNetGetResourceParent}
  590. {$ELSE}
  591. function WNetGetResourceParent(const lpNetResource: NETRESOURCEA;
  592.   lpBuffer: LPVOID; var lpcbBuffer: DWORD): DWORD; stdcall;
  593. {$EXTERNALSYM WNetGetResourceParent}
  594. {$ENDIF}
  595. function WNetGetResourceInformationA(const lpNetResource: NETRESOURCEA;
  596.   lpBuffer: LPVOID; var lpcbBuffer: DWORD; var lplpSystem: LPSTR): DWORD; stdcall;
  597. {$EXTERNALSYM WNetGetResourceInformationA}
  598. function WNetGetResourceInformationW(const lpNetResource: NETRESOURCEW;
  599.   lpBuffer: LPVOID; var lpcbBuffer: DWORD; var lplpSystem: LPWSTR): DWORD; stdcall;
  600. {$EXTERNALSYM WNetGetResourceInformationW}
  601. {$IFDEF UNICODE}
  602. function WNetGetResourceInformation(const lpNetResource: NETRESOURCEW;
  603.   lpBuffer: LPVOID; var lpcbBuffer: DWORD; var lplpSystem: LPWSTR): DWORD; stdcall;
  604. {$EXTERNALSYM WNetGetResourceInformation}
  605. {$ELSE}
  606. function WNetGetResourceInformation(const lpNetResource: NETRESOURCEA;
  607.   lpBuffer: LPVOID; var lpcbBuffer: DWORD; var lplpSystem: LPSTR): DWORD; stdcall;
  608. {$EXTERNALSYM WNetGetResourceInformation}
  609. {$ENDIF}
  610. //
  611. //  Universal Naming.
  612. //
  613. const
  614.   UNIVERSAL_NAME_INFO_LEVEL = $00000001;
  615.   {$EXTERNALSYM UNIVERSAL_NAME_INFO_LEVEL}
  616.   REMOTE_NAME_INFO_LEVEL    = $00000002;
  617.   {$EXTERNALSYM REMOTE_NAME_INFO_LEVEL}
  618. type
  619.   LPUNIVERSAL_NAME_INFOA = ^UNIVERSAL_NAME_INFOA;
  620.   {$EXTERNALSYM LPUNIVERSAL_NAME_INFOA}
  621.   _UNIVERSAL_NAME_INFOA = record
  622.     lpUniversalName: LPSTR;
  623.   end;
  624.   {$EXTERNALSYM _UNIVERSAL_NAME_INFOA}
  625.   UNIVERSAL_NAME_INFOA = _UNIVERSAL_NAME_INFOA;
  626.   {$EXTERNALSYM UNIVERSAL_NAME_INFOA}
  627.   TUniversalNameInfoA = UNIVERSAL_NAME_INFOA;
  628.   PUniversalNameInfoA = LPUNIVERSAL_NAME_INFOA;
  629.   LPUNIVERSAL_NAME_INFOW = ^UNIVERSAL_NAME_INFOW;
  630.   {$EXTERNALSYM LPUNIVERSAL_NAME_INFOW}
  631.   _UNIVERSAL_NAME_INFOW = record
  632.     lpUniversalName: LPWSTR;
  633.   end;
  634.   {$EXTERNALSYM _UNIVERSAL_NAME_INFOW}
  635.   UNIVERSAL_NAME_INFOW = _UNIVERSAL_NAME_INFOW;
  636.   {$EXTERNALSYM UNIVERSAL_NAME_INFOW}
  637.   TUniversalNameInfoW = UNIVERSAL_NAME_INFOW;
  638.   PUniversalNameInfoW = LPUNIVERSAL_NAME_INFOW;
  639. {$IFDEF UNICODE}
  640.   UNIVERSAL_NAME_INFO = UNIVERSAL_NAME_INFOW;
  641.   {$EXTERNALSYM UNIVERSAL_NAME_INFO}
  642.   LPUNIVERSAL_NAME_INFO = LPUNIVERSAL_NAME_INFOW;
  643.   {$EXTERNALSYM LPUNIVERSAL_NAME_INFO}
  644.   TUniversalNameInfo = TUniversalNameInfoW;
  645.   PUniversalNameInfo = PUniversalNameInfoW;
  646. {$ELSE}
  647.   UNIVERSAL_NAME_INFO = UNIVERSAL_NAME_INFOA;
  648.   {$EXTERNALSYM UNIVERSAL_NAME_INFO}
  649.   LPUNIVERSAL_NAME_INFO = LPUNIVERSAL_NAME_INFOA;
  650.   {$EXTERNALSYM LPUNIVERSAL_NAME_INFO}
  651.   TUniversalNameInfo = TUniversalNameInfoA;
  652.   PUniversalNameInfo = PUniversalNameInfoA;
  653. {$ENDIF}
  654.   LPREMOTE_NAME_INFOA = ^REMOTE_NAME_INFOA;
  655.   {$EXTERNALSYM LPREMOTE_NAME_INFOA}
  656.   _REMOTE_NAME_INFOA = record
  657.     lpUniversalName: LPSTR;
  658.     lpConnectionName: LPSTR;
  659.     lpRemainingPath: LPSTR;
  660.   end;
  661.   {$EXTERNALSYM _REMOTE_NAME_INFOA}
  662.   REMOTE_NAME_INFOA = _REMOTE_NAME_INFOA;
  663.   {$EXTERNALSYM REMOTE_NAME_INFOA}
  664.   TRemoteNameInfoA = REMOTE_NAME_INFOA;
  665.   PRemoteNameInfoA = LPREMOTE_NAME_INFOA;
  666.   LPREMOTE_NAME_INFOW = ^REMOTE_NAME_INFOW;
  667.   {$EXTERNALSYM LPREMOTE_NAME_INFOW}
  668.   _REMOTE_NAME_INFOW = record
  669.     lpUniversalName: LPWSTR;
  670.     lpConnectionName: LPWSTR;
  671.     lpRemainingPath: LPWSTR;
  672.   end;
  673.   {$EXTERNALSYM _REMOTE_NAME_INFOW}
  674.   REMOTE_NAME_INFOW = _REMOTE_NAME_INFOW;
  675.   {$EXTERNALSYM REMOTE_NAME_INFOW}
  676.   TRemoteNameInfoW = REMOTE_NAME_INFOW;
  677.   PRemoteNameInfoW = LPREMOTE_NAME_INFOW;
  678. {$IFDEF UNICODE}
  679.   REMOTE_NAME_INFO = REMOTE_NAME_INFOW;
  680.   {$EXTERNALSYM REMOTE_NAME_INFO}
  681.   LPREMOTE_NAME_INFO = LPREMOTE_NAME_INFOW;
  682.   {$EXTERNALSYM LPREMOTE_NAME_INFO}
  683.   TRemoteNameInfo = TRemoteNameInfoW;
  684.   PRemoteNameInfo = PRemoteNameInfoW;
  685. {$ELSE}
  686.   REMOTE_NAME_INFO = REMOTE_NAME_INFOA;
  687.   {$EXTERNALSYM REMOTE_NAME_INFO}
  688.   LPREMOTE_NAME_INFO = LPREMOTE_NAME_INFOA;
  689.   {$EXTERNALSYM LPREMOTE_NAME_INFO}
  690.   TRemoteNameInfo = TRemoteNameInfoA;
  691.   PRemoteNameInfo = PRemoteNameInfoA;
  692. {$ENDIF}
  693. function WNetGetUniversalNameA(lpLocalPath: LPCSTR; dwInfoLevel: DWORD;
  694.   lpBuffer: LPVOID; var lpBufferSize: DWORD): DWORD; stdcall;
  695. {$EXTERNALSYM WNetGetUniversalNameA}
  696. function WNetGetUniversalNameW(lpLocalPath: LPCWSTR; dwInfoLevel: DWORD;
  697.   lpBuffer: LPVOID; var lpBufferSize: DWORD): DWORD; stdcall;
  698. {$EXTERNALSYM WNetGetUniversalNameW}
  699. {$IFDEF UNICODE}
  700. function WNetGetUniversalName(lpLocalPath: LPCWSTR; dwInfoLevel: DWORD;
  701.   lpBuffer: LPVOID; var lpBufferSize: DWORD): DWORD; stdcall;
  702. {$EXTERNALSYM WNetGetUniversalName}
  703. {$ELSE}
  704. function WNetGetUniversalName(lpLocalPath: LPCSTR; dwInfoLevel: DWORD;
  705.   lpBuffer: LPVOID; var lpBufferSize: DWORD): DWORD; stdcall;
  706. {$EXTERNALSYM WNetGetUniversalName}
  707. {$ENDIF}
  708. //
  709. //  Authentication and Logon/Logoff.
  710. //
  711. function WNetGetUserA(lpName: LPCSTR; lpUserName: LPSTR; var lpnLength: DWORD): DWORD; stdcall;
  712. {$EXTERNALSYM WNetGetUserA}
  713. function WNetGetUserW(lpName: LPCWSTR; lpUserName: LPWSTR; var lpnLength: DWORD): DWORD; stdcall;
  714. {$EXTERNALSYM WNetGetUserW}
  715. {$IFDEF UNICODE}
  716. function WNetGetUser(lpName: LPCWSTR; lpUserName: LPWSTR; var lpnLength: DWORD): DWORD; stdcall;
  717. {$EXTERNALSYM WNetGetUser}
  718. {$ELSE}
  719. function WNetGetUser(lpName: LPCSTR; lpUserName: LPSTR; var lpnLength: DWORD): DWORD; stdcall;
  720. {$EXTERNALSYM WNetGetUser}
  721. {$ENDIF}
  722. //
  723. // Other.
  724. //
  725. const
  726.   WNFMT_MULTILINE   = $01;
  727.   {$EXTERNALSYM WNFMT_MULTILINE}
  728.   WNFMT_ABBREVIATED = $02;
  729.   {$EXTERNALSYM WNFMT_ABBREVIATED}
  730.   WNFMT_INENUM      = $10;
  731.   {$EXTERNALSYM WNFMT_INENUM}
  732.   WNFMT_CONNECTION  = $20;
  733.   {$EXTERNALSYM WNFMT_CONNECTION}
  734. function WNetGetProviderNameA(dwNetType: DWORD; lpProviderName: LPSTR;
  735.   var lpBufferSize: DWORD): DWORD; stdcall;
  736. {$EXTERNALSYM WNetGetProviderNameA}
  737. function WNetGetProviderNameW(dwNetType: DWORD; lpProviderName: LPWSTR;
  738.   var lpBufferSize: DWORD): DWORD; stdcall;
  739. {$EXTERNALSYM WNetGetProviderNameW}
  740. {$IFDEF UNICODE}
  741. function WNetGetProviderName(dwNetType: DWORD; lpProviderName: LPWSTR;
  742.   var lpBufferSize: DWORD): DWORD; stdcall;
  743. {$EXTERNALSYM WNetGetProviderName}
  744. {$ELSE}
  745. function WNetGetProviderName(dwNetType: DWORD; lpProviderName: LPSTR;
  746.   var lpBufferSize: DWORD): DWORD; stdcall;
  747. {$EXTERNALSYM WNetGetProviderName}
  748. {$ENDIF}
  749. type
  750.   LPNETINFOSTRUCT = ^NETINFOSTRUCT;
  751.   {$EXTERNALSYM LPNETINFOSTRUCT}
  752.   _NETINFOSTRUCT = record
  753.     cbStructure: DWORD;
  754.     dwProviderVersion: DWORD;
  755.     dwStatus: DWORD;
  756.     dwCharacteristics: DWORD;
  757.     dwHandle: ULONG_PTR;
  758.     wNetType: WORD;
  759.     dwPrinters: DWORD;
  760.     dwDrives: DWORD;
  761.   end;
  762.   {$EXTERNALSYM _NETINFOSTRUCT}
  763.   NETINFOSTRUCT = _NETINFOSTRUCT;
  764.   {$EXTERNALSYM NETINFOSTRUCT}
  765.   TNetInfoStruct = NETINFOSTRUCT;
  766.   PNetInfoStruct = LPNETINFOSTRUCT;
  767. const
  768.   NETINFO_DLL16      = $00000001; // Provider running as 16 bit Winnet Driver
  769.   {$EXTERNALSYM NETINFO_DLL16}
  770.   NETINFO_DISKRED    = $00000004; // Provider requires disk redirections to connect
  771.   {$EXTERNALSYM NETINFO_DISKRED}
  772.   NETINFO_PRINTERRED = $00000008; // Provider requires printer redirections to connect
  773.   {$EXTERNALSYM NETINFO_PRINTERRED}
  774. function WNetGetNetworkInformationA(lpProvider: LPCSTR;
  775.   var lpNetInfoStruct: NETINFOSTRUCT): DWORD; stdcall;
  776. {$EXTERNALSYM WNetGetNetworkInformationA}
  777. function WNetGetNetworkInformationW(lpProvider: LPCWSTR;
  778.   var lpNetInfoStruct: NETINFOSTRUCT): DWORD; stdcall;
  779. {$EXTERNALSYM WNetGetNetworkInformationW}
  780. {$IFDEF UNICODE}
  781. function WNetGetNetworkInformation(lpProvider: LPCWSTR;
  782.   var lpNetInfoStruct: NETINFOSTRUCT): DWORD; stdcall;
  783. {$EXTERNALSYM WNetGetNetworkInformation}
  784. {$ELSE}
  785. function WNetGetNetworkInformation(lpProvider: LPCSTR;
  786.   var lpNetInfoStruct: NETINFOSTRUCT): DWORD; stdcall;
  787. {$EXTERNALSYM WNetGetNetworkInformation}
  788. {$ENDIF}
  789. //
  790. //  User Profiles.
  791. //
  792. type
  793.   PFNGETPROFILEPATHA = function (pszUsername: LPCSTR; pszBuffer: LPSTR;
  794.     cbBuffer: UINT): UINT; stdcall;
  795.   {$EXTERNALSYM PFNGETPROFILEPATHA}
  796.   PFNGETPROFILEPATHW = function (pszUsername: LPCWSTR; pszBuffer: LPWSTR;
  797.     cbBuffer: UINT): UINT; stdcall;
  798.   {$EXTERNALSYM PFNGETPROFILEPATHW}
  799. {$IFDEF UNICODE}
  800.   PFNGETPROFILEPATH = PFNGETPROFILEPATHW;
  801.   {$EXTERNALSYM PFNGETPROFILEPATH}
  802. {$ELSE}
  803.   PFNGETPROFILEPATH = PFNGETPROFILEPATHA;
  804.   {$EXTERNALSYM PFNGETPROFILEPATH}
  805. {$ENDIF}
  806.   PFNRECONCILEPROFILEA = function (pszCentralFile, pszLocalFile: LPCSTR;
  807.     dwFlags: DWORD): UINT; stdcall;
  808.   {$EXTERNALSYM PFNRECONCILEPROFILEA}
  809.   PFNRECONCILEPROFILEW = function (pszCentralFile, pszLocalFile: LPCWSTR;
  810.     dwFlags: DWORD): UINT; stdcall;
  811.   {$EXTERNALSYM PFNRECONCILEPROFILEW}
  812. {$IFDEF UNICODE}
  813.   PFNRECONCILEPROFILE = PFNRECONCILEPROFILEW;
  814.   {$EXTERNALSYM PFNRECONCILEPROFILE}
  815. {$ELSE}
  816.   PFNRECONCILEPROFILE = PFNRECONCILEPROFILEA;
  817.   {$EXTERNALSYM PFNRECONCILEPROFILE}  
  818. {$ENDIF}
  819. const
  820.   RP_LOGON   = $01; // if set, do for logon, else for logoff
  821.   {$EXTERNALSYM RP_LOGON}
  822.   RP_INIFILE = $02; // if set, reconcile .INI file, else reg. hive
  823.   {$EXTERNALSYM RP_INIFILE}
  824. //
  825. //  Policies.
  826. //
  827. type
  828.   PFNPROCESSPOLICIESA = function (hwnd: HWND; pszPath, pszUsername,
  829.     pszComputerName: LPCSTR; dwFlags: DWORD): BOOL; stdcall;
  830.   {$EXTERNALSYM PFNPROCESSPOLICIESA}
  831.   PFNPROCESSPOLICIESW = function (hwnd: HWND; pszPath, pszUsername,
  832.     pszComputerName: LPCWSTR; dwFlags: DWORD): BOOL; stdcall;
  833.   {$EXTERNALSYM PFNPROCESSPOLICIESW}
  834. {$IFDEF UNICODE}
  835.   PFNPROCESSPOLICIES = PFNPROCESSPOLICIESW;
  836.   {$EXTERNALSYM PFNPROCESSPOLICIES}
  837. {$ELSE}
  838.   PFNPROCESSPOLICIES = PFNPROCESSPOLICIESA;
  839.   {$EXTERNALSYM PFNPROCESSPOLICIES}  
  840. {$ENDIF}
  841. const
  842.   PP_DISPLAYERRORS = $01; // if set, display error messages, else fail silently if error
  843.   {$EXTERNALSYM PP_DISPLAYERRORS}
  844. //
  845. //  Error handling.
  846. //
  847. function WNetGetLastErrorA(var lpError: DWORD; lpErrorBuf: LPSTR;
  848.   nErrorBufSize: DWORD; lpNameBuf: LPSTR; nNameBufSize: DWORD): DWORD; stdcall;
  849. {$EXTERNALSYM WNetGetLastErrorA}
  850. function WNetGetLastErrorW(var lpError: DWORD; lpErrorBuf: LPWSTR;
  851.   nErrorBufSize: DWORD; lpNameBuf: LPWSTR; nNameBufSize: DWORD): DWORD; stdcall;
  852. {$EXTERNALSYM WNetGetLastErrorW}
  853. {$IFDEF UNICODE}
  854. function WNetGetLastError(var lpError: DWORD; lpErrorBuf: LPWSTR;
  855.   nErrorBufSize: DWORD; lpNameBuf: LPWSTR; nNameBufSize: DWORD): DWORD; stdcall;
  856. {$EXTERNALSYM WNetGetLastError}
  857. {$ELSE}
  858. function WNetGetLastError(var lpError: DWORD; lpErrorBuf: LPSTR;
  859.   nErrorBufSize: DWORD; lpNameBuf: LPSTR; nNameBufSize: DWORD): DWORD; stdcall;
  860. {$EXTERNALSYM WNetGetLastError}
  861. {$ENDIF}
  862. //
  863. //  STATUS CODES
  864. //
  865. // General
  866. const
  867.   WN_SUCCESS          = NO_ERROR;
  868.   {$EXTERNALSYM WN_SUCCESS}
  869.   WN_NO_ERROR         = NO_ERROR;
  870.   {$EXTERNALSYM WN_NO_ERROR}
  871.   WN_NOT_SUPPORTED    = ERROR_NOT_SUPPORTED;
  872.   {$EXTERNALSYM WN_NOT_SUPPORTED}
  873.   WN_CANCEL           = ERROR_CANCELLED;
  874.   {$EXTERNALSYM WN_CANCEL}
  875.   WN_RETRY            = ERROR_RETRY;
  876.   {$EXTERNALSYM WN_RETRY}
  877.   WN_NET_ERROR        = ERROR_UNEXP_NET_ERR;
  878.   {$EXTERNALSYM WN_NET_ERROR}
  879.   WN_MORE_DATA        = ERROR_MORE_DATA;
  880.   {$EXTERNALSYM WN_MORE_DATA}
  881.   WN_BAD_POINTER      = ERROR_INVALID_ADDRESS;
  882.   {$EXTERNALSYM WN_BAD_POINTER}
  883.   WN_BAD_VALUE        = ERROR_INVALID_PARAMETER;
  884.   {$EXTERNALSYM WN_BAD_VALUE}
  885.   WN_BAD_USER         = ERROR_BAD_USERNAME;
  886.   {$EXTERNALSYM WN_BAD_USER}
  887.   WN_BAD_PASSWORD     = ERROR_INVALID_PASSWORD;
  888.   {$EXTERNALSYM WN_BAD_PASSWORD}
  889.   WN_ACCESS_DENIED    = ERROR_ACCESS_DENIED;
  890.   {$EXTERNALSYM WN_ACCESS_DENIED}
  891.   WN_FUNCTION_BUSY    = ERROR_BUSY;
  892.   {$EXTERNALSYM WN_FUNCTION_BUSY}
  893.   WN_WINDOWS_ERROR    = ERROR_UNEXP_NET_ERR;
  894.   {$EXTERNALSYM WN_WINDOWS_ERROR}
  895.   WN_OUT_OF_MEMORY    = ERROR_NOT_ENOUGH_MEMORY;
  896.   {$EXTERNALSYM WN_OUT_OF_MEMORY}
  897.   WN_NO_NETWORK       = ERROR_NO_NETWORK;
  898.   {$EXTERNALSYM WN_NO_NETWORK}
  899.   WN_EXTENDED_ERROR   = ERROR_EXTENDED_ERROR;
  900.   {$EXTERNALSYM WN_EXTENDED_ERROR}
  901.   WN_BAD_LEVEL        = ERROR_INVALID_LEVEL;
  902.   {$EXTERNALSYM WN_BAD_LEVEL}
  903.   WN_BAD_HANDLE       = ERROR_INVALID_HANDLE;
  904.   {$EXTERNALSYM WN_BAD_HANDLE}
  905.   WN_NOT_INITIALIZING = ERROR_ALREADY_INITIALIZED;
  906.   {$EXTERNALSYM WN_NOT_INITIALIZING}
  907.   WN_NO_MORE_DEVICES  = ERROR_NO_MORE_DEVICES;
  908.   {$EXTERNALSYM WN_NO_MORE_DEVICES}
  909. // Connection
  910.   WN_NOT_CONNECTED             = ERROR_NOT_CONNECTED;
  911.   {$EXTERNALSYM WN_NOT_CONNECTED}
  912.   WN_OPEN_FILES                = ERROR_OPEN_FILES;
  913.   {$EXTERNALSYM WN_OPEN_FILES}
  914.   WN_DEVICE_IN_USE             = ERROR_DEVICE_IN_USE;
  915.   {$EXTERNALSYM WN_DEVICE_IN_USE}
  916.   WN_BAD_NETNAME               = ERROR_BAD_NET_NAME;
  917.   {$EXTERNALSYM WN_BAD_NETNAME}
  918.   WN_BAD_LOCALNAME             = ERROR_BAD_DEVICE;
  919.   {$EXTERNALSYM WN_BAD_LOCALNAME}
  920.   WN_ALREADY_CONNECTED         = ERROR_ALREADY_ASSIGNED;
  921.   {$EXTERNALSYM WN_ALREADY_CONNECTED}
  922.   WN_DEVICE_ERROR              = ERROR_GEN_FAILURE;
  923.   {$EXTERNALSYM WN_DEVICE_ERROR}
  924.   WN_CONNECTION_CLOSED         = ERROR_CONNECTION_UNAVAIL;
  925.   {$EXTERNALSYM WN_CONNECTION_CLOSED}
  926.   WN_NO_NET_OR_BAD_PATH        = ERROR_NO_NET_OR_BAD_PATH;
  927.   {$EXTERNALSYM WN_NO_NET_OR_BAD_PATH}
  928.   WN_BAD_PROVIDER              = ERROR_BAD_PROVIDER;
  929.   {$EXTERNALSYM WN_BAD_PROVIDER}
  930.   WN_CANNOT_OPEN_PROFILE       = ERROR_CANNOT_OPEN_PROFILE;
  931.   {$EXTERNALSYM WN_CANNOT_OPEN_PROFILE}
  932.   WN_BAD_PROFILE               = ERROR_BAD_PROFILE;
  933.   {$EXTERNALSYM WN_BAD_PROFILE}
  934.   WN_BAD_DEV_TYPE              = ERROR_BAD_DEV_TYPE;
  935.   {$EXTERNALSYM WN_BAD_DEV_TYPE}
  936.   WN_DEVICE_ALREADY_REMEMBERED = ERROR_DEVICE_ALREADY_REMEMBERED;
  937.   {$EXTERNALSYM WN_DEVICE_ALREADY_REMEMBERED}
  938.   WN_CONNECTED_OTHER_PASSWORD  = ERROR_CONNECTED_OTHER_PASSWORD;
  939.   {$EXTERNALSYM WN_CONNECTED_OTHER_PASSWORD}
  940.   WN_CONNECTED_OTHER_PASSWORD_DEFAULT = ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT;
  941.   {$EXTERNALSYM WN_CONNECTED_OTHER_PASSWORD_DEFAULT}
  942. // Enumeration
  943.   WN_NO_MORE_ENTRIES = ERROR_NO_MORE_ITEMS;
  944.   {$EXTERNALSYM WN_NO_MORE_ENTRIES}
  945.   WN_NOT_CONTAINER   = ERROR_NOT_CONTAINER;
  946.   {$EXTERNALSYM WN_NOT_CONTAINER}
  947. // Authentication
  948.   WN_NOT_AUTHENTICATED = ERROR_NOT_AUTHENTICATED;
  949.   {$EXTERNALSYM WN_NOT_AUTHENTICATED}
  950.   WN_NOT_LOGGED_ON     = ERROR_NOT_LOGGED_ON;
  951.   {$EXTERNALSYM WN_NOT_LOGGED_ON}
  952.   WN_NOT_VALIDATED     = ERROR_NO_LOGON_SERVERS;
  953.   {$EXTERNALSYM WN_NOT_VALIDATED}
  954. //
  955. //  For Shell
  956. //
  957. type
  958.   LPNETCONNECTINFOSTRUCT = ^NETCONNECTINFOSTRUCT;
  959.   {$EXTERNALSYM LPNETCONNECTINFOSTRUCT}
  960.   _NETCONNECTINFOSTRUCT = record
  961.     cbStructure: DWORD;
  962.     dwFlags: DWORD;
  963.     dwSpeed: DWORD;
  964.     dwDelay: DWORD;
  965.     dwOptDataSize: DWORD;
  966.   end;
  967.   {$EXTERNALSYM _NETCONNECTINFOSTRUCT}
  968.   NETCONNECTINFOSTRUCT = _NETCONNECTINFOSTRUCT;
  969.   {$EXTERNALSYM NETCONNECTINFOSTRUCT}
  970.   TNetConnectInfoStruct = NETCONNECTINFOSTRUCT;
  971.   PNetConnectInfoStruct = LPNETCONNECTINFOSTRUCT;
  972. const
  973.   WNCON_FORNETCARD = $00000001;
  974.   {$EXTERNALSYM WNCON_FORNETCARD}
  975.   WNCON_NOTROUTED  = $00000002;
  976.   {$EXTERNALSYM WNCON_NOTROUTED}
  977.   WNCON_SLOWLINK   = $00000004;
  978.   {$EXTERNALSYM WNCON_SLOWLINK}
  979.   WNCON_DYNAMIC    = $00000008;
  980.   {$EXTERNALSYM WNCON_DYNAMIC}
  981. function MultinetGetConnectionPerformanceA(const lpNetResource: NETRESOURCEA;
  982.   var lpNetConnectInfoStruct: NETCONNECTINFOSTRUCT): DWORD; stdcall;
  983. {$EXTERNALSYM MultinetGetConnectionPerformanceA}
  984. function MultinetGetConnectionPerformanceW(const lpNetResource: NETRESOURCEW;
  985.   var lpNetConnectInfoStruct: NETCONNECTINFOSTRUCT): DWORD; stdcall;
  986. {$EXTERNALSYM MultinetGetConnectionPerformanceW}
  987. {$IFDEF UNICODE}
  988. function MultinetGetConnectionPerformance(const lpNetResource: NETRESOURCEW;
  989.   var lpNetConnectInfoStruct: NETCONNECTINFOSTRUCT): DWORD; stdcall;
  990. {$EXTERNALSYM MultinetGetConnectionPerformance}
  991. {$ELSE}
  992. function MultinetGetConnectionPerformance(const lpNetResource: NETRESOURCEA;
  993.   var lpNetConnectInfoStruct: NETCONNECTINFOSTRUCT): DWORD; stdcall;
  994. {$EXTERNALSYM MultinetGetConnectionPerformance}
  995. {$ENDIF}
  996. implementation
  997. const
  998.   mpr = 'mpr.dll';
  999. {$IFDEF DYNAMIC_LINK}
  1000. var
  1001.   _WNetAddConnectionA: Pointer;
  1002. function WNetAddConnectionA;
  1003. begin
  1004.   GetProcedureAddress(_WNetAddConnectionA, mpr, 'WNetAddConnectionA');
  1005.   asm
  1006.     mov esp, ebp
  1007.     pop ebp
  1008.     jmp [_WNetAddConnectionA]
  1009.   end;
  1010. end;
  1011. {$ELSE}
  1012. function WNetAddConnectionA; external mpr name 'WNetAddConnectionA';
  1013. {$ENDIF DYNAMIC_LINK}
  1014. {$IFDEF DYNAMIC_LINK}
  1015. var
  1016.   _WNetAddConnectionW: Pointer;
  1017. function WNetAddConnectionW;
  1018. begin
  1019.   GetProcedureAddress(_WNetAddConnectionW, mpr, 'WNetAddConnectionW');
  1020.   asm
  1021.     mov esp, ebp
  1022.     pop ebp
  1023.     jmp [_WNetAddConnectionW]
  1024.   end;
  1025. end;
  1026. {$ELSE}
  1027. function WNetAddConnectionW; external mpr name 'WNetAddConnectionW';
  1028. {$ENDIF DYNAMIC_LINK}
  1029. {$IFDEF UNICODE}
  1030. {$IFDEF DYNAMIC_LINK}
  1031. var
  1032.   _WNetAddConnection: Pointer;
  1033. function WNetAddConnection;
  1034. begin
  1035.   GetProcedureAddress(_WNetAddConnection, mpr, 'WNetAddConnectionW');
  1036.   asm
  1037.     mov esp, ebp
  1038.     pop ebp
  1039.     jmp [_WNetAddConnection]
  1040.   end;
  1041. end;
  1042. {$ELSE}
  1043. function WNetAddConnection; external mpr name 'WNetAddConnectionW';
  1044. {$ENDIF DYNAMIC_LINK}
  1045. {$ELSE}
  1046. {$IFDEF DYNAMIC_LINK}
  1047. var
  1048.   _WNetAddConnection: Pointer;
  1049. function WNetAddConnection;
  1050. begin
  1051.   GetProcedureAddress(_WNetAddConnection, mpr, 'WNetAddConnectionA');
  1052.   asm
  1053.     mov esp, ebp
  1054.     pop ebp
  1055.     jmp [_WNetAddConnection]
  1056.   end;
  1057. end;
  1058. {$ELSE}
  1059. function WNetAddConnection; external mpr name 'WNetAddConnectionA';
  1060. {$ENDIF DYNAMIC_LINK}
  1061. {$ENDIF}
  1062. {$IFDEF DYNAMIC_LINK}
  1063. var
  1064.   _WNetAddConnection2A: Pointer;
  1065. function WNetAddConnection2A;
  1066. begin
  1067.   GetProcedureAddress(_WNetAddConnection2A, mpr, 'WNetAddConnection2A');
  1068.   asm
  1069.     mov esp, ebp
  1070.     pop ebp
  1071.     jmp [_WNetAddConnection2A]
  1072.   end;
  1073. end;
  1074. {$ELSE}
  1075. function WNetAddConnection2A; external mpr name 'WNetAddConnection2A';
  1076. {$ENDIF DYNAMIC_LINK}
  1077. {$IFDEF DYNAMIC_LINK}
  1078. var
  1079.   _WNetAddConnection2W: Pointer;
  1080. function WNetAddConnection2W;
  1081. begin
  1082.   GetProcedureAddress(_WNetAddConnection2W, mpr, 'WNetAddConnection2W');
  1083.   asm
  1084.     mov esp, ebp
  1085.     pop ebp
  1086.     jmp [_WNetAddConnection2W]
  1087.   end;
  1088. end;
  1089. {$ELSE}
  1090. function WNetAddConnection2W; external mpr name 'WNetAddConnection2W';
  1091. {$ENDIF DYNAMIC_LINK}
  1092. {$IFDEF UNICODE}
  1093. {$IFDEF DYNAMIC_LINK}
  1094. var
  1095.   _WNetAddConnection2: Pointer;
  1096. function WNetAddConnection2;
  1097. begin
  1098.   GetProcedureAddress(_WNetAddConnection2, mpr, 'WNetAddConnection2W');
  1099.   asm
  1100.     mov esp, ebp
  1101.     pop ebp
  1102.     jmp [_WNetAddConnection2]
  1103.   end;
  1104. end;
  1105. {$ELSE}
  1106. function WNetAddConnection2; external mpr name 'WNetAddConnection2W';
  1107. {$ENDIF DYNAMIC_LINK}
  1108. {$ELSE}
  1109. {$IFDEF DYNAMIC_LINK}
  1110. var
  1111.   _WNetAddConnection2: Pointer;
  1112. function WNetAddConnection2;
  1113. begin
  1114.   GetProcedureAddress(_WNetAddConnection2, mpr, 'WNetAddConnection2A');
  1115.   asm
  1116.     mov esp, ebp
  1117.     pop ebp
  1118.     jmp [_WNetAddConnection2]
  1119.   end;
  1120. end;
  1121. {$ELSE}
  1122. function WNetAddConnection2; external mpr name 'WNetAddConnection2A';
  1123. {$ENDIF DYNAMIC_LINK}
  1124. {$ENDIF}
  1125. {$IFDEF DYNAMIC_LINK}
  1126. var
  1127.   _WNetAddConnection3A: Pointer;
  1128. function WNetAddConnection3A;
  1129. begin
  1130.   GetProcedureAddress(_WNetAddConnection3A, mpr, 'WNetAddConnection3A');
  1131.   asm
  1132.     mov esp, ebp
  1133.     pop ebp
  1134.     jmp [_WNetAddConnection3A]
  1135.   end;
  1136. end;
  1137. {$ELSE}
  1138. function WNetAddConnection3A; external mpr name 'WNetAddConnection3A';
  1139. {$ENDIF DYNAMIC_LINK}
  1140. {$IFDEF DYNAMIC_LINK}
  1141. var
  1142.   _WNetAddConnection3W: Pointer;
  1143. function WNetAddConnection3W;
  1144. begin
  1145.   GetProcedureAddress(_WNetAddConnection3W, mpr, 'WNetAddConnection3W');
  1146.   asm
  1147.     mov esp, ebp
  1148.     pop ebp
  1149.     jmp [_WNetAddConnection3W]
  1150.   end;
  1151. end;
  1152. {$ELSE}
  1153. function WNetAddConnection3W; external mpr name 'WNetAddConnection3W';
  1154. {$ENDIF DYNAMIC_LINK}
  1155. {$IFDEF UNICODE}
  1156. {$IFDEF DYNAMIC_LINK}
  1157. var
  1158.   _WNetAddConnection3: Pointer;
  1159. function WNetAddConnection3;
  1160. begin
  1161.   GetProcedureAddress(_WNetAddConnection3, mpr, 'WNetAddConnection3W');
  1162.   asm
  1163.     mov esp, ebp
  1164.     pop ebp
  1165.     jmp [_WNetAddConnection3]
  1166.   end;
  1167. end;
  1168. {$ELSE}
  1169. function WNetAddConnection3; external mpr name 'WNetAddConnection3W';
  1170. {$ENDIF DYNAMIC_LINK}
  1171. {$ELSE}
  1172. {$IFDEF DYNAMIC_LINK}
  1173. var
  1174.   _WNetAddConnection3: Pointer;
  1175. function WNetAddConnection3;
  1176. begin
  1177.   GetProcedureAddress(_WNetAddConnection3, mpr, 'WNetAddConnection3A');
  1178.   asm
  1179.     mov esp, ebp
  1180.     pop ebp
  1181.     jmp [_WNetAddConnection3]
  1182.   end;
  1183. end;
  1184. {$ELSE}
  1185. function WNetAddConnection3; external mpr name 'WNetAddConnection3A';
  1186. {$ENDIF DYNAMIC_LINK}
  1187. {$ENDIF}
  1188. {$IFDEF DYNAMIC_LINK}
  1189. var
  1190.   _WNetCancelConnectionA: Pointer;
  1191. function WNetCancelConnectionA;
  1192. begin
  1193.   GetProcedureAddress(_WNetCancelConnectionA, mpr, 'WNetCancelConnectionA');
  1194.   asm
  1195.     mov esp, ebp
  1196.     pop ebp
  1197.     jmp [_WNetCancelConnectionA]
  1198.   end;
  1199. end;
  1200. {$ELSE}
  1201. function WNetCancelConnectionA; external mpr name 'WNetCancelConnectionA';
  1202. {$ENDIF DYNAMIC_LINK}
  1203. {$IFDEF DYNAMIC_LINK}
  1204. var
  1205.   _WNetCancelConnectionW: Pointer;
  1206. function WNetCancelConnectionW;
  1207. begin
  1208.   GetProcedureAddress(_WNetCancelConnectionW, mpr, 'WNetCancelConnectionW');
  1209.   asm
  1210.     mov esp, ebp
  1211.     pop ebp
  1212.     jmp [_WNetCancelConnectionW]
  1213.   end;
  1214. end;
  1215. {$ELSE}
  1216. function WNetCancelConnectionW; external mpr name 'WNetCancelConnectionW';
  1217. {$ENDIF DYNAMIC_LINK}
  1218. {$IFDEF UNICODE}
  1219. {$IFDEF DYNAMIC_LINK}
  1220. var
  1221.   _WNetCancelConnection: Pointer;
  1222. function WNetCancelConnection;
  1223. begin
  1224.   GetProcedureAddress(_WNetCancelConnection, mpr, 'WNetCancelConnectionW');
  1225.   asm
  1226.     mov esp, ebp
  1227.     pop ebp
  1228.     jmp [_WNetCancelConnection]
  1229.   end;
  1230. end;
  1231. {$ELSE}
  1232. function WNetCancelConnection; external mpr name 'WNetCancelConnectionW';
  1233. {$ENDIF DYNAMIC_LINK}
  1234. {$ELSE}
  1235. {$IFDEF DYNAMIC_LINK}
  1236. var
  1237.   _WNetCancelConnection: Pointer;
  1238. function WNetCancelConnection;
  1239. begin
  1240.   GetProcedureAddress(_WNetCancelConnection, mpr, 'WNetCancelConnectionA');
  1241.   asm
  1242.     mov esp, ebp
  1243.     pop ebp
  1244.     jmp [_WNetCancelConnection]
  1245.   end;
  1246. end;
  1247. {$ELSE}
  1248. function WNetCancelConnection; external mpr name 'WNetCancelConnectionA';
  1249. {$ENDIF DYNAMIC_LINK}
  1250. {$ENDIF}
  1251. {$IFDEF DYNAMIC_LINK}
  1252. var
  1253.   _WNetCancelConnection2A: Pointer;
  1254. function WNetCancelConnection2A;
  1255. begin
  1256.   GetProcedureAddress(_WNetCancelConnection2A, mpr, 'WNetCancelConnection2A');
  1257.   asm
  1258.     mov esp, ebp
  1259.     pop ebp
  1260.     jmp [_WNetCancelConnection2A]
  1261.   end;
  1262. end;
  1263. {$ELSE}
  1264. function WNetCancelConnection2A; external mpr name 'WNetCancelConnection2A';
  1265. {$ENDIF DYNAMIC_LINK}
  1266. {$IFDEF DYNAMIC_LINK}
  1267. var
  1268.   _WNetCancelConnection2W: Pointer;
  1269. function WNetCancelConnection2W;
  1270. begin
  1271.   GetProcedureAddress(_WNetCancelConnection2W, mpr, 'WNetCancelConnection2W');
  1272.   asm
  1273.     mov esp, ebp
  1274.     pop ebp
  1275.     jmp [_WNetCancelConnection2W]
  1276.   end;
  1277. end;
  1278. {$ELSE}
  1279. function WNetCancelConnection2W; external mpr name 'WNetCancelConnection2W';
  1280. {$ENDIF DYNAMIC_LINK}
  1281. {$IFDEF UNICODE}
  1282. {$IFDEF DYNAMIC_LINK}
  1283. var
  1284.   _WNetCancelConnection2: Pointer;
  1285. function WNetCancelConnection2;
  1286. begin
  1287.   GetProcedureAddress(_WNetCancelConnection2, mpr, 'WNetCancelConnection2W');
  1288.   asm
  1289.     mov esp, ebp
  1290.     pop ebp
  1291.     jmp [_WNetCancelConnection2]
  1292.   end;
  1293. end;
  1294. {$ELSE}
  1295. function WNetCancelConnection2; external mpr name 'WNetCancelConnection2W';
  1296. {$ENDIF DYNAMIC_LINK}
  1297. {$ELSE}
  1298. {$IFDEF DYNAMIC_LINK}
  1299. var
  1300.   _WNetCancelConnection2: Pointer;
  1301. function WNetCancelConnection2;
  1302. begin
  1303.   GetProcedureAddress(_WNetCancelConnection2, mpr, 'WNetCancelConnection2A');
  1304.   asm
  1305.     mov esp, ebp
  1306.     pop ebp
  1307.     jmp [_WNetCancelConnection2]
  1308.   end;
  1309. end;
  1310. {$ELSE}
  1311. function WNetCancelConnection2; external mpr name 'WNetCancelConnection2A';
  1312. {$ENDIF DYNAMIC_LINK}
  1313. {$ENDIF}
  1314. {$IFDEF DYNAMIC_LINK}
  1315. var
  1316.   _WNetGetConnectionA: Pointer;
  1317. function WNetGetConnectionA;
  1318. begin
  1319.   GetProcedureAddress(_WNetGetConnectionA, mpr, 'WNetGetConnectionA');
  1320.   asm
  1321.     mov esp, ebp
  1322.     pop ebp
  1323.     jmp [_WNetGetConnectionA]
  1324.   end;
  1325. end;
  1326. {$ELSE}
  1327. function WNetGetConnectionA; external mpr name 'WNetGetConnectionA';
  1328. {$ENDIF DYNAMIC_LINK}
  1329. {$IFDEF DYNAMIC_LINK}
  1330. var
  1331.   _WNetGetConnectionW: Pointer;
  1332. function WNetGetConnectionW;
  1333. begin
  1334.   GetProcedureAddress(_WNetGetConnectionW, mpr, 'WNetGetConnectionW');
  1335.   asm
  1336.     mov esp, ebp
  1337.     pop ebp
  1338.     jmp [_WNetGetConnectionW]
  1339.   end;
  1340. end;
  1341. {$ELSE}
  1342. function WNetGetConnectionW; external mpr name 'WNetGetConnectionW';
  1343. {$ENDIF DYNAMIC_LINK}
  1344. {$IFDEF UNICODE}
  1345. {$IFDEF DYNAMIC_LINK}
  1346. var
  1347.   _WNetGetConnection: Pointer;
  1348. function WNetGetConnection;
  1349. begin
  1350.   GetProcedureAddress(_WNetGetConnection, mpr, 'WNetGetConnectionW');
  1351.   asm
  1352.     mov esp, ebp
  1353.     pop ebp
  1354.     jmp [_WNetGetConnection]
  1355.   end;
  1356. end;
  1357. {$ELSE}
  1358. function WNetGetConnection; external mpr name 'WNetGetConnectionW';
  1359. {$ENDIF DYNAMIC_LINK}
  1360. {$ELSE}
  1361. {$IFDEF DYNAMIC_LINK}
  1362. var
  1363.   _WNetGetConnection: Pointer;
  1364. function WNetGetConnection;
  1365. begin
  1366.   GetProcedureAddress(_WNetGetConnection, mpr, 'WNetGetConnectionA');
  1367.   asm
  1368.     mov esp, ebp
  1369.     pop ebp
  1370.     jmp [_WNetGetConnection]
  1371.   end;
  1372. end;
  1373. {$ELSE}
  1374. function WNetGetConnection; external mpr name 'WNetGetConnectionA';
  1375. {$ENDIF DYNAMIC_LINK}
  1376. {$ENDIF}
  1377. {$IFDEF DYNAMIC_LINK}
  1378. var
  1379.   _WNetUseConnectionA: Pointer;
  1380. function WNetUseConnectionA;
  1381. begin
  1382.   GetProcedureAddress(_WNetUseConnectionA, mpr, 'WNetUseConnectionA');
  1383.   asm
  1384.     mov esp, ebp
  1385.     pop ebp
  1386.     jmp [_WNetUseConnectionA]
  1387.   end;
  1388. end;
  1389. {$ELSE}
  1390. function WNetUseConnectionA; external mpr name 'WNetUseConnectionA';
  1391. {$ENDIF DYNAMIC_LINK}
  1392. {$IFDEF DYNAMIC_LINK}
  1393. var
  1394.   _WNetUseConnectionW: Pointer;
  1395. function WNetUseConnectionW;
  1396. begin
  1397.   GetProcedureAddress(_WNetUseConnectionW, mpr, 'WNetUseConnectionW');
  1398.   asm
  1399.     mov esp, ebp
  1400.     pop ebp
  1401.     jmp [_WNetUseConnectionW]
  1402.   end;
  1403. end;
  1404. {$ELSE}
  1405. function WNetUseConnectionW; external mpr name 'WNetUseConnectionW';
  1406. {$ENDIF DYNAMIC_LINK}
  1407. {$IFDEF UNICODE}
  1408. {$IFDEF DYNAMIC_LINK}
  1409. var
  1410.   _WNetUseConnection: Pointer;
  1411. function WNetUseConnection;
  1412. begin
  1413.   GetProcedureAddress(_WNetUseConnection, mpr, 'WNetUseConnectionW');
  1414.   asm
  1415.     mov esp, ebp
  1416.     pop ebp
  1417.     jmp [_WNetUseConnection]
  1418.   end;
  1419. end;
  1420. {$ELSE}
  1421. function WNetUseConnection; external mpr name 'WNetUseConnectionW';
  1422. {$ENDIF DYNAMIC_LINK}
  1423. {$ELSE}
  1424. {$IFDEF DYNAMIC_LINK}
  1425. var
  1426.   _WNetUseConnection: Pointer;
  1427. function WNetUseConnection;
  1428. begin
  1429.   GetProcedureAddress(_WNetUseConnection, mpr, 'WNetUseConnectionA');
  1430.   asm
  1431.     mov esp, ebp
  1432.     pop ebp
  1433.     jmp [_WNetUseConnection]
  1434.   end;
  1435. end;
  1436. {$ELSE}
  1437. function WNetUseConnection; external mpr name 'WNetUseConnectionA';
  1438. {$ENDIF DYNAMIC_LINK}
  1439. {$ENDIF}
  1440. {$IFDEF DYNAMIC_LINK}
  1441. var
  1442.   _WNetConnectionDialog: Pointer;
  1443. function WNetConnectionDialog;
  1444. begin
  1445.   GetProcedureAddress(_WNetConnectionDialog, mpr, 'WNetConnectionDialog');
  1446.   asm
  1447.     mov esp, ebp
  1448.     pop ebp
  1449.     jmp [_WNetConnectionDialog]
  1450.   end;
  1451. end;
  1452. {$ELSE}
  1453. function WNetConnectionDialog; external mpr name 'WNetConnectionDialog';
  1454. {$ENDIF DYNAMIC_LINK}
  1455. {$IFDEF DYNAMIC_LINK}
  1456. var
  1457.   _WNetDisconnectDialog: Pointer;
  1458. function WNetDisconnectDialog;
  1459. begin
  1460.   GetProcedureAddress(_WNetDisconnectDialog, mpr, 'WNetDisconnectDialog');
  1461.   asm
  1462.     mov esp, ebp
  1463.     pop ebp
  1464.     jmp [_WNetDisconnectDialog]
  1465.   end;
  1466. end;
  1467. {$ELSE}
  1468. function WNetDisconnectDialog; external mpr name 'WNetDisconnectDialog';
  1469. {$ENDIF DYNAMIC_LINK}
  1470. {$IFDEF DYNAMIC_LINK}
  1471. var
  1472.   _WNetConnectionDialog1A: Pointer;
  1473. function WNetConnectionDialog1A;
  1474. begin
  1475.   GetProcedureAddress(_WNetConnectionDialog1A, mpr, 'WNetConnectionDialog1A');
  1476.   asm
  1477.     mov esp, ebp
  1478.     pop ebp
  1479.     jmp [_WNetConnectionDialog1A]
  1480.   end;
  1481. end;
  1482. {$ELSE}
  1483. function WNetConnectionDialog1A; external mpr name 'WNetConnectionDialog1A';
  1484. {$ENDIF DYNAMIC_LINK}
  1485. {$IFDEF DYNAMIC_LINK}
  1486. var
  1487.   _WNetConnectionDialog1W: Pointer;
  1488. function WNetConnectionDialog1W;
  1489. begin
  1490.   GetProcedureAddress(_WNetConnectionDialog1W, mpr, 'WNetConnectionDialog1W');
  1491.   asm
  1492.     mov esp, ebp
  1493.     pop ebp
  1494.     jmp [_WNetConnectionDialog1W]
  1495.   end;
  1496. end;
  1497. {$ELSE}
  1498. function WNetConnectionDialog1W; external mpr name 'WNetConnectionDialog1W';
  1499. {$ENDIF DYNAMIC_LINK}
  1500. {$IFDEF UNICODE}
  1501. {$IFDEF DYNAMIC_LINK}
  1502. var
  1503.   _WNetConnectionDialog1: Pointer;
  1504. function WNetConnectionDialog1;
  1505. begin
  1506.   GetProcedureAddress(_WNetConnectionDialog1, mpr, 'WNetConnectionDialog1W');
  1507.   asm
  1508.     mov esp, ebp
  1509.     pop ebp
  1510.     jmp [_WNetConnectionDialog1]
  1511.   end;
  1512. end;
  1513. {$ELSE}
  1514. function WNetConnectionDialog1; external mpr name 'WNetConnectionDialog1W';
  1515. {$ENDIF DYNAMIC_LINK}
  1516. {$ELSE}
  1517. {$IFDEF DYNAMIC_LINK}
  1518. var
  1519.   _WNetConnectionDialog1: Pointer;
  1520. function WNetConnectionDialog1;
  1521. begin
  1522.   GetProcedureAddress(_WNetConnectionDialog1, mpr, 'WNetConnectionDialog1A');
  1523.   asm
  1524.     mov esp, ebp
  1525.     pop ebp
  1526.     jmp [_WNetConnectionDialog1]
  1527.   end;
  1528. end;
  1529. {$ELSE}
  1530. function WNetConnectionDialog1; external mpr name 'WNetConnectionDialog1A';
  1531. {$ENDIF DYNAMIC_LINK}
  1532. {$ENDIF}
  1533. {$IFDEF DYNAMIC_LINK}
  1534. var
  1535.   _WNetDisconnectDialog1A: Pointer;
  1536. function WNetDisconnectDialog1A;
  1537. begin
  1538.   GetProcedureAddress(_WNetDisconnectDialog1A, mpr, 'WNetDisconnectDialog1A');
  1539.   asm
  1540.     mov esp, ebp
  1541.     pop ebp
  1542.     jmp [_WNetDisconnectDialog1A]
  1543.   end;
  1544. end;
  1545. {$ELSE}
  1546. function WNetDisconnectDialog1A; external mpr name 'WNetDisconnectDialog1A';
  1547. {$ENDIF DYNAMIC_LINK}
  1548. {$IFDEF DYNAMIC_LINK}
  1549. var
  1550.   _WNetDisconnectDialog1W: Pointer;
  1551. function WNetDisconnectDialog1W;
  1552. begin
  1553.   GetProcedureAddress(_WNetDisconnectDialog1W, mpr, 'WNetDisconnectDialog1W');
  1554.   asm
  1555.     mov esp, ebp
  1556.     pop ebp
  1557.     jmp [_WNetDisconnectDialog1W]
  1558.   end;
  1559. end;
  1560. {$ELSE}
  1561. function WNetDisconnectDialog1W; external mpr name 'WNetDisconnectDialog1W';
  1562. {$ENDIF DYNAMIC_LINK}
  1563. {$IFDEF UNICODE}
  1564. {$IFDEF DYNAMIC_LINK}
  1565. var
  1566.   _WNetDisconnectDialog1: Pointer;
  1567. function WNetDisconnectDialog1;
  1568. begin
  1569.   GetProcedureAddress(_WNetDisconnectDialog1, mpr, 'WNetDisconnectDialog1W');
  1570.   asm
  1571.     mov esp, ebp
  1572.     pop ebp
  1573.     jmp [_WNetDisconnectDialog1]
  1574.   end;
  1575. end;
  1576. {$ELSE}
  1577. function WNetDisconnectDialog1; external mpr name 'WNetDisconnectDialog1W';
  1578. {$ENDIF DYNAMIC_LINK}
  1579. {$ELSE}
  1580. {$IFDEF DYNAMIC_LINK}
  1581. var
  1582.   _WNetDisconnectDialog1: Pointer;
  1583. function WNetDisconnectDialog1;
  1584. begin
  1585.   GetProcedureAddress(_WNetDisconnectDialog1, mpr, 'WNetDisconnectDialog1A');
  1586.   asm
  1587.     mov esp, ebp
  1588.     pop ebp
  1589.     jmp [_WNetDisconnectDialog1]
  1590.   end;
  1591. end;
  1592. {$ELSE}
  1593. function WNetDisconnectDialog1; external mpr name 'WNetDisconnectDialog1A';
  1594. {$ENDIF DYNAMIC_LINK}
  1595. {$ENDIF}
  1596. {$IFDEF DYNAMIC_LINK}
  1597. var
  1598.   _WNetOpenEnumA: Pointer;
  1599. function WNetOpenEnumA;
  1600. begin
  1601.   GetProcedureAddress(_WNetOpenEnumA, mpr, 'WNetOpenEnumA');
  1602.   asm
  1603.     mov esp, ebp
  1604.     pop ebp
  1605.     jmp [_WNetOpenEnumA]
  1606.   end;
  1607. end;
  1608. {$ELSE}
  1609. function WNetOpenEnumA; external mpr name 'WNetOpenEnumA';
  1610. {$ENDIF DYNAMIC_LINK}
  1611. {$IFDEF DYNAMIC_LINK}
  1612. var
  1613.   _WNetOpenEnumW: Pointer;
  1614. function WNetOpenEnumW;
  1615. begin
  1616.   GetProcedureAddress(_WNetOpenEnumW, mpr, 'WNetOpenEnumW');
  1617.   asm
  1618.     mov esp, ebp
  1619.     pop ebp
  1620.     jmp [_WNetOpenEnumW]
  1621.   end;
  1622. end;
  1623. {$ELSE}
  1624. function WNetOpenEnumW; external mpr name 'WNetOpenEnumW';
  1625. {$ENDIF DYNAMIC_LINK}
  1626. {$IFDEF UNICODE}
  1627. {$IFDEF DYNAMIC_LINK}
  1628. var
  1629.   _WNetOpenEnum: Pointer;
  1630. function WNetOpenEnum;
  1631. begin
  1632.   GetProcedureAddress(_WNetOpenEnum, mpr, 'WNetOpenEnumW');
  1633.   asm
  1634.     mov esp, ebp
  1635.     pop ebp
  1636.     jmp [_WNetOpenEnum]
  1637.   end;
  1638. end;
  1639. {$ELSE}
  1640. function WNetOpenEnum; external mpr name 'WNetOpenEnumW';
  1641. {$ENDIF DYNAMIC_LINK}
  1642. {$ELSE}
  1643. {$IFDEF DYNAMIC_LINK}
  1644. var
  1645.   _WNetOpenEnum: Pointer;
  1646. function WNetOpenEnum;
  1647. begin
  1648.   GetProcedureAddress(_WNetOpenEnum, mpr, 'WNetOpenEnumA');
  1649.   asm
  1650.     mov esp, ebp
  1651.     pop ebp
  1652.     jmp [_WNetOpenEnum]
  1653.   end;
  1654. end;
  1655. {$ELSE}
  1656. function WNetOpenEnum; external mpr name 'WNetOpenEnumA';
  1657. {$ENDIF DYNAMIC_LINK}
  1658. {$ENDIF}
  1659. {$IFDEF DYNAMIC_LINK}
  1660. var
  1661.   _WNetEnumResourceA: Pointer;
  1662. function WNetEnumResourceA;
  1663. begin
  1664.   GetProcedureAddress(_WNetEnumResourceA, mpr, 'WNetEnumResourceA');
  1665.   asm
  1666.     mov esp, ebp
  1667.     pop ebp
  1668.     jmp [_WNetEnumResourceA]
  1669.   end;
  1670. end;
  1671. {$ELSE}
  1672. function WNetEnumResourceA; external mpr name 'WNetEnumResourceA';
  1673. {$ENDIF DYNAMIC_LINK}
  1674. {$IFDEF DYNAMIC_LINK}
  1675. var
  1676.   _WNetEnumResourceW: Pointer;
  1677. function WNetEnumResourceW;
  1678. begin
  1679.   GetProcedureAddress(_WNetEnumResourceW, mpr, 'WNetEnumResourceW');
  1680.   asm
  1681.     mov esp, ebp
  1682.     pop ebp
  1683.     jmp [_WNetEnumResourceW]
  1684.   end;
  1685. end;
  1686. {$ELSE}
  1687. function WNetEnumResourceW; external mpr name 'WNetEnumResourceW';
  1688. {$ENDIF DYNAMIC_LINK}
  1689. {$IFDEF UNICODE}
  1690. {$IFDEF DYNAMIC_LINK}
  1691. var
  1692.   _WNetEnumResource: Pointer;
  1693. function WNetEnumResource;
  1694. begin
  1695.   GetProcedureAddress(_WNetEnumResource, mpr, 'WNetEnumResourceW');
  1696.   asm
  1697.     mov esp, ebp
  1698.     pop ebp
  1699.     jmp [_WNetEnumResource]
  1700.   end;
  1701. end;
  1702. {$ELSE}
  1703. function WNetEnumResource; external mpr name 'WNetEnumResourceW';
  1704. {$ENDIF DYNAMIC_LINK}
  1705. {$ELSE}
  1706. {$IFDEF DYNAMIC_LINK}
  1707. var
  1708.   _WNetEnumResource: Pointer;
  1709. function WNetEnumResource;
  1710. begin
  1711.   GetProcedureAddress(_WNetEnumResource, mpr, 'WNetEnumResourceA');
  1712.   asm
  1713.     mov esp, ebp
  1714.     pop ebp
  1715.     jmp [_WNetEnumResource]
  1716.   end;
  1717. end;
  1718. {$ELSE}
  1719. function WNetEnumResource; external mpr name 'WNetEnumResourceA';
  1720. {$ENDIF DYNAMIC_LINK}
  1721. {$ENDIF}
  1722. {$IFDEF DYNAMIC_LINK}
  1723. var
  1724.   _WNetCloseEnum: Pointer;
  1725. function WNetCloseEnum;
  1726. begin
  1727.   GetProcedureAddress(_WNetCloseEnum, mpr, 'WNetCloseEnum');
  1728.   asm
  1729.     mov esp, ebp
  1730.     pop ebp
  1731.     jmp [_WNetCloseEnum]
  1732.   end;
  1733. end;
  1734. {$ELSE}
  1735. function WNetCloseEnum; external mpr name 'WNetCloseEnum';
  1736. {$ENDIF DYNAMIC_LINK}
  1737. {$IFDEF DYNAMIC_LINK}
  1738. var
  1739.   _WNetGetResourceParentA: Pointer;
  1740. function WNetGetResourceParentA;
  1741. begin
  1742.   GetProcedureAddress(_WNetGetResourceParentA, mpr, 'WNetGetResourceParentA');
  1743.   asm
  1744.     mov esp, ebp
  1745.     pop ebp
  1746.     jmp [_WNetGetResourceParentA]
  1747.   end;
  1748. end;
  1749. {$ELSE}
  1750. function WNetGetResourceParentA; external mpr name 'WNetGetResourceParentA';
  1751. {$ENDIF DYNAMIC_LINK}
  1752. {$IFDEF DYNAMIC_LINK}
  1753. var
  1754.   _WNetGetResourceParentW: Pointer;
  1755. function WNetGetResourceParentW;
  1756. begin
  1757.   GetProcedureAddress(_WNetGetResourceParentW, mpr, 'WNetGetResourceParentW');
  1758.   asm
  1759.     mov esp, ebp
  1760.     pop ebp
  1761.     jmp [_WNetGetResourceParentW]
  1762.   end;
  1763. end;
  1764. {$ELSE}
  1765. function WNetGetResourceParentW; external mpr name 'WNetGetResourceParentW';
  1766. {$ENDIF DYNAMIC_LINK}
  1767. {$IFDEF UNICODE}
  1768. {$IFDEF DYNAMIC_LINK}
  1769. var
  1770.   _WNetGetResourceParent: Pointer;
  1771. function WNetGetResourceParent;
  1772. begin
  1773.   GetProcedureAddress(_WNetGetResourceParent, mpr, 'WNetGetResourceParentW');
  1774.   asm
  1775.     mov esp, ebp
  1776.     pop ebp
  1777.     jmp [_WNetGetResourceParent]
  1778.   end;
  1779. end;
  1780. {$ELSE}
  1781. function WNetGetResourceParent; external mpr name 'WNetGetResourceParentW';
  1782. {$ENDIF DYNAMIC_LINK}
  1783. {$ELSE}
  1784. {$IFDEF DYNAMIC_LINK}
  1785. var
  1786.   _WNetGetResourceParent: Pointer;
  1787. function WNetGetResourceParent;
  1788. begin
  1789.   GetProcedureAddress(_WNetGetResourceParent, mpr, 'WNetGetResourceParentA');
  1790.   asm
  1791.     mov esp, ebp
  1792.     pop ebp
  1793.     jmp [_WNetGetResourceParent]
  1794.   end;
  1795. end;
  1796. {$ELSE}
  1797. function WNetGetResourceParent; external mpr name 'WNetGetResourceParentA';
  1798. {$ENDIF DYNAMIC_LINK}
  1799. {$ENDIF}
  1800. {$IFDEF DYNAMIC_LINK}
  1801. var
  1802.   _WNetGetResourceInformationA: Pointer;
  1803. function WNetGetResourceInformationA;
  1804. begin
  1805.   GetProcedureAddress(_WNetGetResourceInformationA, mpr, 'WNetGetResourceInformationA');
  1806.   asm
  1807.     mov esp, ebp
  1808.     pop ebp
  1809.     jmp [_WNetGetResourceInformationA]
  1810.   end;
  1811. end;
  1812. {$ELSE}
  1813. function WNetGetResourceInformationA; external mpr name 'WNetGetResourceInformationA';
  1814. {$ENDIF DYNAMIC_LINK}
  1815. {$IFDEF DYNAMIC_LINK}
  1816. var
  1817.   _WNetGetResourceInformationW: Pointer;
  1818. function WNetGetResourceInformationW;
  1819. begin
  1820.   GetProcedureAddress(_WNetGetResourceInformationW, mpr, 'WNetGetResourceInformationW');
  1821.   asm
  1822.     mov esp, ebp
  1823.     pop ebp
  1824.     jmp [_WNetGetResourceInformationW]
  1825.   end;
  1826. end;
  1827. {$ELSE}
  1828. function WNetGetResourceInformationW; external mpr name 'WNetGetResourceInformationW';
  1829. {$ENDIF DYNAMIC_LINK}
  1830. {$IFDEF UNICODE}
  1831. {$IFDEF DYNAMIC_LINK}
  1832. var
  1833.   _WNetGetResourceInformation: Pointer;
  1834. function WNetGetResourceInformation;
  1835. begin
  1836.   GetProcedureAddress(_WNetGetResourceInformation, mpr, 'WNetGetResourceInformationW');
  1837.   asm
  1838.     mov esp, ebp
  1839.     pop ebp
  1840.     jmp [_WNetGetResourceInformation]
  1841.   end;
  1842. end;
  1843. {$ELSE}
  1844. function WNetGetResourceInformation; external mpr name 'WNetGetResourceInformationW';
  1845. {$ENDIF DYNAMIC_LINK}
  1846. {$ELSE}
  1847. {$IFDEF DYNAMIC_LINK}
  1848. var
  1849.   _WNetGetResourceInformation: Pointer;
  1850. function WNetGetResourceInformation;
  1851. begin
  1852.   GetProcedureAddress(_WNetGetResourceInformation, mpr, 'WNetGetResourceInformationA');
  1853.   asm
  1854.     mov esp, ebp
  1855.     pop ebp
  1856.     jmp [_WNetGetResourceInformation]
  1857.   end;
  1858. end;
  1859. {$ELSE}
  1860. function WNetGetResourceInformation; external mpr name 'WNetGetResourceInformationA';
  1861. {$ENDIF DYNAMIC_LINK}
  1862. {$ENDIF}
  1863. {$IFDEF DYNAMIC_LINK}
  1864. var
  1865.   _WNetGetUniversalNameA: Pointer;
  1866. function WNetGetUniversalNameA;
  1867. begin
  1868.   GetProcedureAddress(_WNetGetUniversalNameA, mpr, 'WNetGetUniversalNameA');
  1869.   asm
  1870.     mov esp, ebp
  1871.     pop ebp
  1872.     jmp [_WNetGetUniversalNameA]
  1873.   end;
  1874. end;
  1875. {$ELSE}
  1876. function WNetGetUniversalNameA; external mpr name 'WNetGetUniversalNameA';
  1877. {$ENDIF DYNAMIC_LINK}
  1878. {$IFDEF DYNAMIC_LINK}
  1879. var
  1880.   _WNetGetUniversalNameW: Pointer;
  1881. function WNetGetUniversalNameW;
  1882. begin
  1883.   GetProcedureAddress(_WNetGetUniversalNameW, mpr, 'WNetGetUniversalNameW');
  1884.   asm
  1885.     mov esp, ebp
  1886.     pop ebp
  1887.     jmp [_WNetGetUniversalNameW]
  1888.   end;
  1889. end;
  1890. {$ELSE}
  1891. function WNetGetUniversalNameW; external mpr name 'WNetGetUniversalNameW';
  1892. {$ENDIF DYNAMIC_LINK}
  1893. {$IFDEF UNICODE}
  1894. {$IFDEF DYNAMIC_LINK}
  1895. var
  1896.   _WNetGetUniversalName: Pointer;
  1897. function WNetGetUniversalName;
  1898. begin
  1899.   GetProcedureAddress(_WNetGetUniversalName, mpr, 'WNetGetUniversalNameW');
  1900.   asm
  1901.     mov esp, ebp
  1902.     pop ebp
  1903.     jmp [_WNetGetUniversalName]
  1904.   end;
  1905. end;
  1906. {$ELSE}
  1907. function WNetGetUniversalName; external mpr name 'WNetGetUniversalNameW';
  1908. {$ENDIF DYNAMIC_LINK}
  1909. {$ELSE}
  1910. {$IFDEF DYNAMIC_LINK}
  1911. var
  1912.   _WNetGetUniversalName: Pointer;
  1913. function WNetGetUniversalName;
  1914. begin
  1915.   GetProcedureAddress(_WNetGetUniversalName, mpr, 'WNetGetUniversalNameA');
  1916.   asm
  1917.     mov esp, ebp
  1918.     pop ebp
  1919.     jmp [_WNetGetUniversalName]
  1920.   end;
  1921. end;
  1922. {$ELSE}
  1923. function WNetGetUniversalName; external mpr name 'WNetGetUniversalNameA';
  1924. {$ENDIF DYNAMIC_LINK}
  1925. {$ENDIF}
  1926. {$IFDEF DYNAMIC_LINK}
  1927. var
  1928.   _WNetGetUserA: Pointer;
  1929. function WNetGetUserA;
  1930. begin
  1931.   GetProcedureAddress(_WNetGetUserA, mpr, 'WNetGetUserA');
  1932.   asm
  1933.     mov esp, ebp
  1934.     pop ebp
  1935.     jmp [_WNetGetUserA]
  1936.   end;
  1937. end;
  1938. {$ELSE}
  1939. function WNetGetUserA; external mpr name 'WNetGetUserA';
  1940. {$ENDIF DYNAMIC_LINK}
  1941. {$IFDEF DYNAMIC_LINK}
  1942. var
  1943.   _WNetGetUserW: Pointer;
  1944. function WNetGetUserW;
  1945. begin
  1946.   GetProcedureAddress(_WNetGetUserW, mpr, 'WNetGetUserW');
  1947.   asm
  1948.     mov esp, ebp
  1949.     pop ebp
  1950.     jmp [_WNetGetUserW]
  1951.   end;
  1952. end;
  1953. {$ELSE}
  1954. function WNetGetUserW; external mpr name 'WNetGetUserW';
  1955. {$ENDIF DYNAMIC_LINK}
  1956. {$IFDEF UNICODE}
  1957. {$IFDEF DYNAMIC_LINK}
  1958. var
  1959.   _WNetGetUser: Pointer;
  1960. function WNetGetUser;
  1961. begin
  1962.   GetProcedureAddress(_WNetGetUser, mpr, 'WNetGetUserW');
  1963.   asm
  1964.     mov esp, ebp
  1965.     pop ebp
  1966.     jmp [_WNetGetUser]
  1967.   end;
  1968. end;
  1969. {$ELSE}
  1970. function WNetGetUser; external mpr name 'WNetGetUserW';
  1971. {$ENDIF DYNAMIC_LINK}
  1972. {$ELSE}
  1973. {$IFDEF DYNAMIC_LINK}
  1974. var
  1975.   _WNetGetUser: Pointer;
  1976. function WNetGetUser;
  1977. begin
  1978.   GetProcedureAddress(_WNetGetUser, mpr, 'WNetGetUserA');
  1979.   asm
  1980.     mov esp, ebp
  1981.     pop ebp
  1982.     jmp [_WNetGetUser]
  1983.   end;
  1984. end;
  1985. {$ELSE}
  1986. function WNetGetUser; external mpr name 'WNetGetUserA';
  1987. {$ENDIF DYNAMIC_LINK}
  1988. {$ENDIF}
  1989. {$IFDEF DYNAMIC_LINK}
  1990. var
  1991.   _WNetGetProviderNameA: Pointer;
  1992. function WNetGetProviderNameA;
  1993. begin
  1994.   GetProcedureAddress(_WNetGetProviderNameA, mpr, 'WNetGetProviderNameA');
  1995.   asm
  1996.     mov esp, ebp
  1997.     pop ebp
  1998.     jmp [_WNetGetProviderNameA]
  1999.   end;
  2000. end;
  2001. {$ELSE}
  2002. function WNetGetProviderNameA; external mpr name 'WNetGetProviderNameA';
  2003. {$ENDIF DYNAMIC_LINK}
  2004. {$IFDEF DYNAMIC_LINK}
  2005. var
  2006.   _WNetGetProviderNameW: Pointer;
  2007. function WNetGetProviderNameW;
  2008. begin
  2009.   GetProcedureAddress(_WNetGetProviderNameW, mpr, 'WNetGetProviderNameW');
  2010.   asm
  2011.     mov esp, ebp
  2012.     pop ebp
  2013.     jmp [_WNetGetProviderNameW]
  2014.   end;
  2015. end;
  2016. {$ELSE}
  2017. function WNetGetProviderNameW; external mpr name 'WNetGetProviderNameW';
  2018. {$ENDIF DYNAMIC_LINK}
  2019. {$IFDEF UNICODE}
  2020. {$IFDEF DYNAMIC_LINK}
  2021. var
  2022.   _WNetGetProviderName: Pointer;
  2023. function WNetGetProviderName;
  2024. begin
  2025.   GetProcedureAddress(_WNetGetProviderName, mpr, 'WNetGetProviderNameW');
  2026.   asm
  2027.     mov esp, ebp
  2028.     pop ebp
  2029.     jmp [_WNetGetProviderName]
  2030.   end;
  2031. end;
  2032. {$ELSE}
  2033. function WNetGetProviderName; external mpr name 'WNetGetProviderNameW';
  2034. {$ENDIF DYNAMIC_LINK}
  2035. {$ELSE}
  2036. {$IFDEF DYNAMIC_LINK}
  2037. var
  2038.   _WNetGetProviderName: Pointer;
  2039. function WNetGetProviderName;
  2040. begin
  2041.   GetProcedureAddress(_WNetGetProviderName, mpr, 'WNetGetProviderNameA');
  2042.   asm
  2043.     mov esp, ebp
  2044.     pop ebp
  2045.     jmp [_WNetGetProviderName]
  2046.   end;
  2047. end;
  2048. {$ELSE}
  2049. function WNetGetProviderName; external mpr name 'WNetGetProviderNameA';
  2050. {$ENDIF DYNAMIC_LINK}
  2051. {$ENDIF}
  2052. {$IFDEF DYNAMIC_LINK}
  2053. var
  2054.   _WNetGetNetworkInformationA: Pointer;
  2055. function WNetGetNetworkInformationA;
  2056. begin
  2057.   GetProcedureAddress(_WNetGetNetworkInformationA, mpr, 'WNetGetNetworkInformationA');
  2058.   asm
  2059.     mov esp, ebp
  2060.     pop ebp
  2061.     jmp [_WNetGetNetworkInformationA]
  2062.   end;
  2063. end;
  2064. {$ELSE}
  2065. function WNetGetNetworkInformationA; external mpr name 'WNetGetNetworkInformationA';
  2066. {$ENDIF DYNAMIC_LINK}
  2067. {$IFDEF DYNAMIC_LINK}
  2068. var
  2069.   _WNetGetNetworkInformationW: Pointer;
  2070. function WNetGetNetworkInformationW;
  2071. begin
  2072.   GetProcedureAddress(_WNetGetNetworkInformationW, mpr, 'WNetGetNetworkInformationW');
  2073.   asm
  2074.     mov esp, ebp
  2075.     pop ebp
  2076.     jmp [_WNetGetNetworkInformationW]
  2077.   end;
  2078. end;
  2079. {$ELSE}
  2080. function WNetGetNetworkInformationW; external mpr name 'WNetGetNetworkInformationW';
  2081. {$ENDIF DYNAMIC_LINK}
  2082. {$IFDEF UNICODE}
  2083. {$IFDEF DYNAMIC_LINK}
  2084. var
  2085.   _WNetGetNetworkInformation: Pointer;
  2086. function WNetGetNetworkInformation;
  2087. begin
  2088.   GetProcedureAddress(_WNetGetNetworkInformation, mpr, 'WNetGetNetworkInformationW');
  2089.   asm
  2090.     mov esp, ebp
  2091.     pop ebp
  2092.     jmp [_WNetGetNetworkInformation]
  2093.   end;
  2094. end;
  2095. {$ELSE}
  2096. function WNetGetNetworkInformation; external mpr name 'WNetGetNetworkInformationW';
  2097. {$ENDIF DYNAMIC_LINK}
  2098. {$ELSE}
  2099. {$IFDEF DYNAMIC_LINK}
  2100. var
  2101.   _WNetGetNetworkInformation: Pointer;
  2102. function WNetGetNetworkInformation;
  2103. begin
  2104.   GetProcedureAddress(_WNetGetNetworkInformation, mpr, 'WNetGetNetworkInformationA');
  2105.   asm
  2106.     mov esp, ebp
  2107.     pop ebp
  2108.     jmp [_WNetGetNetworkInformation]
  2109.   end;
  2110. end;
  2111. {$ELSE}
  2112. function WNetGetNetworkInformation; external mpr name 'WNetGetNetworkInformationA';
  2113. {$ENDIF DYNAMIC_LINK}
  2114. {$ENDIF}
  2115. {$IFDEF DYNAMIC_LINK}
  2116. var
  2117.   _WNetGetLastErrorA: Pointer;
  2118. function WNetGetLastErrorA;
  2119. begin
  2120.   GetProcedureAddress(_WNetGetLastErrorA, mpr, 'WNetGetLastErrorA');
  2121.   asm
  2122.     mov esp, ebp
  2123.     pop ebp
  2124.     jmp [_WNetGetLastErrorA]
  2125.   end;
  2126. end;
  2127. {$ELSE}
  2128. function WNetGetLastErrorA; external mpr name 'WNetGetLastErrorA';
  2129. {$ENDIF DYNAMIC_LINK}
  2130. {$IFDEF DYNAMIC_LINK}
  2131. var
  2132.   _WNetGetLastErrorW: Pointer;
  2133. function WNetGetLastErrorW;
  2134. begin
  2135.   GetProcedureAddress(_WNetGetLastErrorW, mpr, 'WNetGetLastErrorW');
  2136.   asm
  2137.     mov esp, ebp
  2138.     pop ebp
  2139.     jmp [_WNetGetLastErrorW]
  2140.   end;
  2141. end;
  2142. {$ELSE}
  2143. function WNetGetLastErrorW; external mpr name 'WNetGetLastErrorW';
  2144. {$ENDIF DYNAMIC_LINK}
  2145. {$IFDEF UNICODE}
  2146. {$IFDEF DYNAMIC_LINK}
  2147. var
  2148.   _WNetGetLastError: Pointer;
  2149. function WNetGetLastError;
  2150. begin
  2151.   GetProcedureAddress(_WNetGetLastError, mpr, 'WNetGetLastErrorW');
  2152.   asm
  2153.     mov esp, ebp
  2154.     pop ebp
  2155.     jmp [_WNetGetLastError]
  2156.   end;
  2157. end;
  2158. {$ELSE}
  2159. function WNetGetLastError; external mpr name 'WNetGetLastErrorW';
  2160. {$ENDIF DYNAMIC_LINK}
  2161. {$ELSE}
  2162. {$IFDEF DYNAMIC_LINK}
  2163. var
  2164.   _WNetGetLastError: Pointer;
  2165. function WNetGetLastError;
  2166. begin
  2167.   GetProcedureAddress(_WNetGetLastError, mpr, 'WNetGetLastErrorA');
  2168.   asm
  2169.     mov esp, ebp
  2170.     pop ebp
  2171.     jmp [_WNetGetLastError]
  2172.   end;
  2173. end;
  2174. {$ELSE}
  2175. function WNetGetLastError; external mpr name 'WNetGetLastErrorA';
  2176. {$ENDIF DYNAMIC_LINK}
  2177. {$ENDIF}
  2178. {$IFDEF DYNAMIC_LINK}
  2179. var
  2180.   _MultinetGetConnectionPerfA: Pointer;
  2181. function MultinetGetConnectionPerformanceA;
  2182. begin
  2183.   GetProcedureAddress(_MultinetGetConnectionPerfA, mpr, 'MultinetGetConnectionPerformanceA');
  2184.   asm
  2185.     mov esp, ebp
  2186.     pop ebp
  2187.     jmp [_MultinetGetConnectionPerfA]
  2188.   end;
  2189. end;
  2190. {$ELSE}
  2191. function MultinetGetConnectionPerformanceA; external mpr name 'MultinetGetConnectionPerformanceA';
  2192. {$ENDIF DYNAMIC_LINK}
  2193. {$IFDEF DYNAMIC_LINK}
  2194. var
  2195.   _MultinetGetConnectionPerfW: Pointer;
  2196. function MultinetGetConnectionPerformanceW;
  2197. begin
  2198.   GetProcedureAddress(_MultinetGetConnectionPerfW, mpr, 'MultinetGetConnectionPerformanceW');
  2199.   asm
  2200.     mov esp, ebp
  2201.     pop ebp
  2202.     jmp [_MultinetGetConnectionPerfW]
  2203.   end;
  2204. end;
  2205. {$ELSE}
  2206. function MultinetGetConnectionPerformanceW; external mpr name 'MultinetGetConnectionPerformanceW';
  2207. {$ENDIF DYNAMIC_LINK}
  2208. {$IFDEF UNICODE}
  2209. {$IFDEF DYNAMIC_LINK}
  2210. var
  2211.   _MultinetGetConnectionPerf: Pointer;
  2212. function MultinetGetConnectionPerformance;
  2213. begin
  2214.   GetProcedureAddress(_MultinetGetConnectionPerf, mpr, 'MultinetGetConnectionPerformanceW');
  2215.   asm
  2216.     mov esp, ebp
  2217.     pop ebp
  2218.     jmp [_MultinetGetConnectionPerf]
  2219.   end;
  2220. end;
  2221. {$ELSE}
  2222. function MultinetGetConnectionPerformance; external mpr name 'MultinetGetConnectionPerformanceW';
  2223. {$ENDIF DYNAMIC_LINK}
  2224. {$ELSE}
  2225. {$IFDEF DYNAMIC_LINK}
  2226. var
  2227.   _MultinetGetConnectionPerf: Pointer;
  2228. function MultinetGetConnectionPerformance;
  2229. begin
  2230.   GetProcedureAddress(_MultinetGetConnectionPerf, mpr, 'MultinetGetConnectionPerformanceA');
  2231.   asm
  2232.     mov esp, ebp
  2233.     pop ebp
  2234.     jmp [_MultinetGetConnectionPerf]
  2235.   end;
  2236. end;
  2237. {$ELSE}
  2238. function MultinetGetConnectionPerformance; external mpr name 'MultinetGetConnectionPerformanceA';
  2239. {$ENDIF DYNAMIC_LINK}
  2240. {$ENDIF}
  2241. end.