jwawinnetwk.pas 56 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878
  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 att chello dott 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 }
  18. { APILIB home page, located at http://jedi-apilib.sourceforge.net }
  19. { }
  20. { The contents of this file are used with permission, subject to the Mozilla }
  21. { Public License Version 1.1 (the "License"); you may not use this file except }
  22. { in compliance with the License. You may obtain a copy of the License at }
  23. { http://www.mozilla.org/MPL/MPL-1.1.html }
  24. { }
  25. { Software distributed under the License is distributed on an "AS IS" basis, }
  26. { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
  27. { the specific language governing rights and limitations under the License. }
  28. { }
  29. { Alternatively, the contents of this file may be used under the terms of the }
  30. { GNU Lesser General Public License (the "LGPL License"), in which case the }
  31. { provisions of the LGPL License are applicable instead of those above. }
  32. { If you wish to allow use of your version of this file only under the terms }
  33. { of the LGPL License and not to allow others to use your version of this file }
  34. { under the MPL, indicate your decision by deleting the provisions above and }
  35. { replace them with the notice and other provisions required by the LGPL }
  36. { License. If you do not delete the provisions above, a recipient may use }
  37. { your version of this file under either the MPL or the LGPL License. }
  38. { }
  39. { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
  40. { }
  41. {******************************************************************************}
  42. unit JwaWinNetWk;
  43. {$WEAKPACKAGEUNIT}
  44. {$HPPEMIT ''}
  45. {$HPPEMIT '#include "WinNetWk.h"'}
  46. {$HPPEMIT ''}
  47. {$I jediapilib.inc}
  48. interface
  49. uses
  50. JwaWinError, JwaWinType;
  51. //
  52. // Network types
  53. //
  54. const
  55. WNNC_NET_MSNET = $00010000;
  56. {$EXTERNALSYM WNNC_NET_MSNET}
  57. WNNC_NET_LANMAN = $00020000;
  58. {$EXTERNALSYM WNNC_NET_LANMAN}
  59. WNNC_NET_NETWARE = $00030000;
  60. {$EXTERNALSYM WNNC_NET_NETWARE}
  61. WNNC_NET_VINES = $00040000;
  62. {$EXTERNALSYM WNNC_NET_VINES}
  63. WNNC_NET_10NET = $00050000;
  64. {$EXTERNALSYM WNNC_NET_10NET}
  65. WNNC_NET_LOCUS = $00060000;
  66. {$EXTERNALSYM WNNC_NET_LOCUS}
  67. WNNC_NET_SUN_PC_NFS = $00070000;
  68. {$EXTERNALSYM WNNC_NET_SUN_PC_NFS}
  69. WNNC_NET_LANSTEP = $00080000;
  70. {$EXTERNALSYM WNNC_NET_LANSTEP}
  71. WNNC_NET_9TILES = $00090000;
  72. {$EXTERNALSYM WNNC_NET_9TILES}
  73. WNNC_NET_LANTASTIC = $000A0000;
  74. {$EXTERNALSYM WNNC_NET_LANTASTIC}
  75. WNNC_NET_AS400 = $000B0000;
  76. {$EXTERNALSYM WNNC_NET_AS400}
  77. WNNC_NET_FTP_NFS = $000C0000;
  78. {$EXTERNALSYM WNNC_NET_FTP_NFS}
  79. WNNC_NET_PATHWORKS = $000D0000;
  80. {$EXTERNALSYM WNNC_NET_PATHWORKS}
  81. WNNC_NET_LIFENET = $000E0000;
  82. {$EXTERNALSYM WNNC_NET_LIFENET}
  83. WNNC_NET_POWERLAN = $000F0000;
  84. {$EXTERNALSYM WNNC_NET_POWERLAN}
  85. WNNC_NET_BWNFS = $00100000;
  86. {$EXTERNALSYM WNNC_NET_BWNFS}
  87. WNNC_NET_COGENT = $00110000;
  88. {$EXTERNALSYM WNNC_NET_COGENT}
  89. WNNC_NET_FARALLON = $00120000;
  90. {$EXTERNALSYM WNNC_NET_FARALLON}
  91. WNNC_NET_APPLETALK = $00130000;
  92. {$EXTERNALSYM WNNC_NET_APPLETALK}
  93. WNNC_NET_INTERGRAPH = $00140000;
  94. {$EXTERNALSYM WNNC_NET_INTERGRAPH}
  95. WNNC_NET_SYMFONET = $00150000;
  96. {$EXTERNALSYM WNNC_NET_SYMFONET}
  97. WNNC_NET_CLEARCASE = $00160000;
  98. {$EXTERNALSYM WNNC_NET_CLEARCASE}
  99. WNNC_NET_FRONTIER = $00170000;
  100. {$EXTERNALSYM WNNC_NET_FRONTIER}
  101. WNNC_NET_BMC = $00180000;
  102. {$EXTERNALSYM WNNC_NET_BMC}
  103. WNNC_NET_DCE = $00190000;
  104. {$EXTERNALSYM WNNC_NET_DCE}
  105. WNNC_NET_AVID = $001A0000;
  106. {$EXTERNALSYM WNNC_NET_AVID}
  107. WNNC_NET_DOCUSPACE = $001B0000;
  108. {$EXTERNALSYM WNNC_NET_DOCUSPACE}
  109. WNNC_NET_MANGOSOFT = $001C0000;
  110. {$EXTERNALSYM WNNC_NET_MANGOSOFT}
  111. WNNC_NET_SERNET = $001D0000;
  112. {$EXTERNALSYM WNNC_NET_SERNET}
  113. WNNC_NET_RIVERFRONT1 = $001E0000;
  114. {$EXTERNALSYM WNNC_NET_RIVERFRONT1}
  115. WNNC_NET_RIVERFRONT2 = $001F0000;
  116. {$EXTERNALSYM WNNC_NET_RIVERFRONT2}
  117. WNNC_NET_DECORB = $00200000;
  118. {$EXTERNALSYM WNNC_NET_DECORB}
  119. WNNC_NET_PROTSTOR = $00210000;
  120. {$EXTERNALSYM WNNC_NET_PROTSTOR}
  121. WNNC_NET_FJ_REDIR = $00220000;
  122. {$EXTERNALSYM WNNC_NET_FJ_REDIR}
  123. WNNC_NET_DISTINCT = $00230000;
  124. {$EXTERNALSYM WNNC_NET_DISTINCT}
  125. WNNC_NET_TWINS = $00240000;
  126. {$EXTERNALSYM WNNC_NET_TWINS}
  127. WNNC_NET_RDR2SAMPLE = $00250000;
  128. {$EXTERNALSYM WNNC_NET_RDR2SAMPLE}
  129. WNNC_NET_CSC = $00260000;
  130. {$EXTERNALSYM WNNC_NET_CSC}
  131. WNNC_NET_3IN1 = $00270000;
  132. {$EXTERNALSYM WNNC_NET_3IN1}
  133. WNNC_NET_EXTENDNET = $00290000;
  134. {$EXTERNALSYM WNNC_NET_EXTENDNET}
  135. WNNC_NET_STAC = $002A0000;
  136. {$EXTERNALSYM WNNC_NET_STAC}
  137. WNNC_NET_FOXBAT = $002B0000;
  138. {$EXTERNALSYM WNNC_NET_FOXBAT}
  139. WNNC_NET_YAHOO = $002C0000;
  140. {$EXTERNALSYM WNNC_NET_YAHOO}
  141. WNNC_NET_EXIFS = $002D0000;
  142. {$EXTERNALSYM WNNC_NET_EXIFS}
  143. WNNC_NET_DAV = $002E0000;
  144. {$EXTERNALSYM WNNC_NET_DAV}
  145. WNNC_NET_KNOWARE = $002F0000;
  146. {$EXTERNALSYM WNNC_NET_KNOWARE}
  147. WNNC_NET_OBJECT_DIRE = $00300000;
  148. {$EXTERNALSYM WNNC_NET_OBJECT_DIRE}
  149. WNNC_NET_MASFAX = $00310000;
  150. {$EXTERNALSYM WNNC_NET_MASFAX}
  151. WNNC_NET_HOB_NFS = $00320000;
  152. {$EXTERNALSYM WNNC_NET_HOB_NFS}
  153. WNNC_NET_SHIVA = $00330000;
  154. {$EXTERNALSYM WNNC_NET_SHIVA}
  155. WNNC_NET_IBMAL = $00340000;
  156. {$EXTERNALSYM WNNC_NET_IBMAL}
  157. WNNC_NET_LOCK = $00350000;
  158. {$EXTERNALSYM WNNC_NET_LOCK}
  159. WNNC_NET_TERMSRV = $00360000;
  160. {$EXTERNALSYM WNNC_NET_TERMSRV}
  161. WNNC_NET_SRT = $00370000;
  162. {$EXTERNALSYM WNNC_NET_SRT}
  163. WNNC_NET_QUINCY = $00380000;
  164. {$EXTERNALSYM WNNC_NET_QUINCY}
  165. WNNC_CRED_MANAGER = DWORD($FFFF0000);
  166. {$EXTERNALSYM WNNC_CRED_MANAGER}
  167. //
  168. // Network Resources.
  169. //
  170. RESOURCE_CONNECTED = $00000001;
  171. {$EXTERNALSYM RESOURCE_CONNECTED}
  172. RESOURCE_GLOBALNET = $00000002;
  173. {$EXTERNALSYM RESOURCE_GLOBALNET}
  174. RESOURCE_REMEMBERED = $00000003;
  175. {$EXTERNALSYM RESOURCE_REMEMBERED}
  176. RESOURCE_RECENT = $00000004;
  177. {$EXTERNALSYM RESOURCE_RECENT}
  178. RESOURCE_CONTEXT = $00000005;
  179. {$EXTERNALSYM RESOURCE_CONTEXT}
  180. RESOURCETYPE_ANY = $00000000;
  181. {$EXTERNALSYM RESOURCETYPE_ANY}
  182. RESOURCETYPE_DISK = $00000001;
  183. {$EXTERNALSYM RESOURCETYPE_DISK}
  184. RESOURCETYPE_PRINT = $00000002;
  185. {$EXTERNALSYM RESOURCETYPE_PRINT}
  186. RESOURCETYPE_RESERVED = $00000008;
  187. {$EXTERNALSYM RESOURCETYPE_RESERVED}
  188. RESOURCETYPE_UNKNOWN = DWORD($FFFFFFFF);
  189. {$EXTERNALSYM RESOURCETYPE_UNKNOWN}
  190. RESOURCEUSAGE_CONNECTABLE = $00000001;
  191. {$EXTERNALSYM RESOURCEUSAGE_CONNECTABLE}
  192. RESOURCEUSAGE_CONTAINER = $00000002;
  193. {$EXTERNALSYM RESOURCEUSAGE_CONTAINER}
  194. RESOURCEUSAGE_NOLOCALDEVICE = $00000004;
  195. {$EXTERNALSYM RESOURCEUSAGE_NOLOCALDEVICE}
  196. RESOURCEUSAGE_SIBLING = $00000008;
  197. {$EXTERNALSYM RESOURCEUSAGE_SIBLING}
  198. RESOURCEUSAGE_ATTACHED = $00000010;
  199. {$EXTERNALSYM RESOURCEUSAGE_ATTACHED}
  200. RESOURCEUSAGE_ALL = (RESOURCEUSAGE_CONNECTABLE or
  201. RESOURCEUSAGE_CONTAINER or RESOURCEUSAGE_ATTACHED);
  202. {$EXTERNALSYM RESOURCEUSAGE_ALL}
  203. RESOURCEUSAGE_RESERVED = DWORD($80000000);
  204. {$EXTERNALSYM RESOURCEUSAGE_RESERVED}
  205. RESOURCEDISPLAYTYPE_GENERIC = $00000000;
  206. {$EXTERNALSYM RESOURCEDISPLAYTYPE_GENERIC}
  207. RESOURCEDISPLAYTYPE_DOMAIN = $00000001;
  208. {$EXTERNALSYM RESOURCEDISPLAYTYPE_DOMAIN}
  209. RESOURCEDISPLAYTYPE_SERVER = $00000002;
  210. {$EXTERNALSYM RESOURCEDISPLAYTYPE_SERVER}
  211. RESOURCEDISPLAYTYPE_SHARE = $00000003;
  212. {$EXTERNALSYM RESOURCEDISPLAYTYPE_SHARE}
  213. RESOURCEDISPLAYTYPE_FILE = $00000004;
  214. {$EXTERNALSYM RESOURCEDISPLAYTYPE_FILE}
  215. RESOURCEDISPLAYTYPE_GROUP = $00000005;
  216. {$EXTERNALSYM RESOURCEDISPLAYTYPE_GROUP}
  217. RESOURCEDISPLAYTYPE_NETWORK = $00000006;
  218. {$EXTERNALSYM RESOURCEDISPLAYTYPE_NETWORK}
  219. RESOURCEDISPLAYTYPE_ROOT = $00000007;
  220. {$EXTERNALSYM RESOURCEDISPLAYTYPE_ROOT}
  221. RESOURCEDISPLAYTYPE_SHAREADMIN = $00000008;
  222. {$EXTERNALSYM RESOURCEDISPLAYTYPE_SHAREADMIN}
  223. RESOURCEDISPLAYTYPE_DIRECTORY = $00000009;
  224. {$EXTERNALSYM RESOURCEDISPLAYTYPE_DIRECTORY}
  225. RESOURCEDISPLAYTYPE_TREE = $0000000A;
  226. {$EXTERNALSYM RESOURCEDISPLAYTYPE_TREE}
  227. RESOURCEDISPLAYTYPE_NDSCONTAINER = $0000000B;
  228. {$EXTERNALSYM RESOURCEDISPLAYTYPE_NDSCONTAINER}
  229. type
  230. LPNETRESOURCEA = ^NETRESOURCEA;
  231. {$EXTERNALSYM LPNETRESOURCEA}
  232. _NETRESOURCEA = record
  233. dwScope: DWORD;
  234. dwType: DWORD;
  235. dwDisplayType: DWORD;
  236. dwUsage: DWORD;
  237. lpLocalName: LPSTR;
  238. lpRemoteName: LPSTR;
  239. lpComment: LPSTR;
  240. lpProvider: LPSTR;
  241. end;
  242. {$EXTERNALSYM _NETRESOURCEA}
  243. NETRESOURCEA = _NETRESOURCEA;
  244. {$EXTERNALSYM NETRESOURCEA}
  245. TNetResourceA = NETRESOURCEA;
  246. PNetResourceA = LPNETRESOURCEA;
  247. LPNETRESOURCEW = ^NETRESOURCEW;
  248. {$EXTERNALSYM LPNETRESOURCEW}
  249. _NETRESOURCEW = record
  250. dwScope: DWORD;
  251. dwType: DWORD;
  252. dwDisplayType: DWORD;
  253. dwUsage: DWORD;
  254. lpLocalName: LPWSTR;
  255. lpRemoteName: LPWSTR;
  256. lpComment: LPWSTR;
  257. lpProvider: LPWSTR;
  258. end;
  259. {$EXTERNALSYM _NETRESOURCEW}
  260. NETRESOURCEW = _NETRESOURCEW;
  261. {$EXTERNALSYM NETRESOURCEW}
  262. TNetResourceW = NETRESOURCEW;
  263. PNetResourceW = LPNETRESOURCEW;
  264. {$IFDEF UNICODE}
  265. NETRESOURCE = NETRESOURCEW;
  266. {$EXTERNALSYM NETRESOURCE}
  267. LPNETRESOURCE = LPNETRESOURCEW;
  268. {$EXTERNALSYM LPNETRESOURCE}
  269. TNetResource = TNetResourceW;
  270. PNetResource = PNetResourceW;
  271. {$ELSE}
  272. NETRESOURCE = NETRESOURCEA;
  273. {$EXTERNALSYM NETRESOURCE}
  274. LPNETRESOURCE = LPNETRESOURCEA;
  275. {$EXTERNALSYM LPNETRESOURCE}
  276. TNetResource = TNetResourceA;
  277. PNetResource = PNetResourceA;
  278. {$ENDIF UNICODE}
  279. //
  280. // Network Connections.
  281. //
  282. const
  283. NETPROPERTY_PERSISTENT = 1;
  284. {$EXTERNALSYM NETPROPERTY_PERSISTENT}
  285. CONNECT_UPDATE_PROFILE = $00000001;
  286. {$EXTERNALSYM CONNECT_UPDATE_PROFILE}
  287. CONNECT_UPDATE_RECENT = $00000002;
  288. {$EXTERNALSYM CONNECT_UPDATE_RECENT}
  289. CONNECT_TEMPORARY = $00000004;
  290. {$EXTERNALSYM CONNECT_TEMPORARY}
  291. CONNECT_INTERACTIVE = $00000008;
  292. {$EXTERNALSYM CONNECT_INTERACTIVE}
  293. CONNECT_PROMPT = $00000010;
  294. {$EXTERNALSYM CONNECT_PROMPT}
  295. CONNECT_NEED_DRIVE = $00000020;
  296. {$EXTERNALSYM CONNECT_NEED_DRIVE}
  297. CONNECT_REFCOUNT = $00000040;
  298. {$EXTERNALSYM CONNECT_REFCOUNT}
  299. CONNECT_REDIRECT = $00000080;
  300. {$EXTERNALSYM CONNECT_REDIRECT}
  301. CONNECT_LOCALDRIVE = $00000100;
  302. {$EXTERNALSYM CONNECT_LOCALDRIVE}
  303. CONNECT_CURRENT_MEDIA = $00000200;
  304. {$EXTERNALSYM CONNECT_CURRENT_MEDIA}
  305. CONNECT_DEFERRED = $00000400;
  306. {$EXTERNALSYM CONNECT_DEFERRED}
  307. CONNECT_RESERVED = DWORD($FF000000);
  308. {$EXTERNALSYM CONNECT_RESERVED}
  309. CONNECT_COMMANDLINE = $00000800;
  310. {$EXTERNALSYM CONNECT_COMMANDLINE}
  311. CONNECT_CMD_SAVECRED = $00001000;
  312. {$EXTERNALSYM CONNECT_CMD_SAVECRED}
  313. function WNetAddConnectionA(lpRemoteName, lpPassword, lpLocalName: LPCSTR): DWORD; stdcall;
  314. {$EXTERNALSYM WNetAddConnectionA}
  315. function WNetAddConnectionW(lpRemoteName, lpPassword, lpLocalName: LPCWSTR): DWORD; stdcall;
  316. {$EXTERNALSYM WNetAddConnectionW}
  317. function WNetAddConnection(lpRemoteName, lpPassword, lpLocalName: LPCTSTR): DWORD; stdcall;
  318. {$EXTERNALSYM WNetAddConnection}
  319. function WNetAddConnection2A(const lpNetResource: NETRESOURCEA; lpPassword: LPCSTR;
  320. lpUserName: LPCSTR; dwFlags: DWORD): DWORD; stdcall;
  321. {$EXTERNALSYM WNetAddConnection2A}
  322. function WNetAddConnection2W(const lpNetResource: NETRESOURCEW; lpPassword: LPCWSTR;
  323. lpUserName: LPCWSTR; dwFlags: DWORD): DWORD; stdcall;
  324. {$EXTERNALSYM WNetAddConnection2W}
  325. function WNetAddConnection2(const lpNetResource: NETRESOURCE; lpPassword: LPCTSTR;
  326. lpUserName: LPCTSTR; dwFlags: DWORD): DWORD; stdcall;
  327. {$EXTERNALSYM WNetAddConnection2}
  328. function WNetAddConnection3A(hwndOwner: HWND; const lpNetResource: NETRESOURCEA;
  329. lpPassword: LPCSTR; lpUserName: LPCSTR; dwFlags: DWORD): DWORD; stdcall;
  330. {$EXTERNALSYM WNetAddConnection3A}
  331. function WNetAddConnection3W(hwndOwner: HWND; const lpNetResource: NETRESOURCEW;
  332. lpPassword: LPCWSTR; lpUserName: LPCWSTR; dwFlags: DWORD): DWORD; stdcall;
  333. {$EXTERNALSYM WNetAddConnection3W}
  334. function WNetAddConnection3(hwndOwner: HWND; const lpNetResource: LPNETRESOURCE;
  335. lpPassword: LPCTSTR; lpUserName: LPCTSTR; dwFlags: DWORD): DWORD; stdcall;
  336. {$EXTERNALSYM WNetAddConnection3}
  337. function WNetCancelConnectionA(lpName: LPCSTR; fForce: BOOL): DWORD; stdcall;
  338. {$EXTERNALSYM WNetCancelConnectionA}
  339. function WNetCancelConnectionW(lpName: LPCWSTR; fForce: BOOL): DWORD; stdcall;
  340. {$EXTERNALSYM WNetCancelConnectionW}
  341. function WNetCancelConnection(lpName: LPCTSTR; fForce: BOOL): DWORD; stdcall;
  342. {$EXTERNALSYM WNetCancelConnection}
  343. function WNetCancelConnection2A(lpName: LPCSTR; dwFlags: DWORD; fForce: BOOL): DWORD; stdcall;
  344. {$EXTERNALSYM WNetCancelConnection2A}
  345. function WNetCancelConnection2W(lpName: LPCWSTR; dwFlags: DWORD; fForce: BOOL): DWORD; stdcall;
  346. {$EXTERNALSYM WNetCancelConnection2W}
  347. function WNetCancelConnection2(lpName: LPCTSTR; dwFlags: DWORD; fForce: BOOL): DWORD; stdcall;
  348. {$EXTERNALSYM WNetCancelConnection2}
  349. function WNetGetConnectionA(lpLocalName, lpRemoteName: LPSTR; var lpnLength: DWORD): DWORD; stdcall;
  350. {$EXTERNALSYM WNetGetConnectionA}
  351. function WNetGetConnectionW(lpLocalName, lpRemoteName: LPWSTR; var lpnLength: DWORD): DWORD; stdcall;
  352. {$EXTERNALSYM WNetGetConnectionW}
  353. function WNetGetConnection(lpLocalName, lpRemoteName: LPTSTR; var lpnLength: DWORD): DWORD; stdcall;
  354. {$EXTERNALSYM WNetGetConnection}
  355. function WNetRestoreConnectionA(hwndParent: HWND; lpDevice: LPCSTR): DWORD; stdcall;
  356. {$EXTERNALSYM WNetRestoreConnectionA}
  357. function WNetRestoreConnectionW(hwndParent: HWND; lpDevice: LPCWSTR): DWORD; stdcall;
  358. {$EXTERNALSYM WNetRestoreConnectionW}
  359. function WNetRestoreConnection(hwndParent: HWND; lpDevice: LPCTSTR): DWORD; stdcall;
  360. {$EXTERNALSYM WNetRestoreConnection}
  361. function WNetUseConnectionA(hwndOwner: HWND; const lpNetResource: NETRESOURCEA;
  362. lpPassword, lpUserID: LPCSTR; dwFlags: DWORD; lpAccessName: LPSTR;
  363. var lpBufferSize, lpResult: DWORD): DWORD; stdcall;
  364. {$EXTERNALSYM WNetUseConnectionA}
  365. function WNetUseConnectionW(hwndOwner: HWND; const lpNetResource: NETRESOURCEW;
  366. lpPassword, lpUserID: LPCWSTR; dwFlags: DWORD; lpAccessName: LPWSTR;
  367. var lpBufferSize, lpResult: DWORD): DWORD; stdcall;
  368. {$EXTERNALSYM WNetUseConnectionW}
  369. function WNetUseConnection(hwndOwner: HWND; const lpNetResource: NETRESOURCE;
  370. lpPassword, lpUserID: LPCTSTR; dwFlags: DWORD; lpAccessName: LPTSTR;
  371. var lpBufferSize, lpResult: DWORD): DWORD; stdcall;
  372. {$EXTERNALSYM WNetUseConnection}
  373. //
  374. // Network Connection Dialogs.
  375. //
  376. function WNetConnectionDialog(hwnd: HWND; dwType: DWORD): DWORD; stdcall;
  377. {$EXTERNALSYM WNetConnectionDialog}
  378. function WNetDisconnectDialog(hwnd: HWND; dwType: DWORD): DWORD; stdcall;
  379. {$EXTERNALSYM WNetDisconnectDialog}
  380. type
  381. LPCONNECTDLGSTRUCTA = ^CONNECTDLGSTRUCTA;
  382. {$EXTERNALSYM LPCONNECTDLGSTRUCTA}
  383. _CONNECTDLGSTRUCTA = record
  384. cbStructure: DWORD; // size of this structure in bytes
  385. hwndOwner: HWND; // owner window for the dialog
  386. lpConnRes: LPNETRESOURCEA; // Requested Resource info
  387. dwFlags: DWORD; // flags (see below)
  388. dwDevNum: DWORD; // number of devices connected to
  389. end;
  390. {$EXTERNALSYM _CONNECTDLGSTRUCTA}
  391. CONNECTDLGSTRUCTA = _CONNECTDLGSTRUCTA;
  392. {$EXTERNALSYM CONNECTDLGSTRUCTA}
  393. TConnectDlgStructA = CONNECTDLGSTRUCTA;
  394. PConnectDlgStructA = LPCONNECTDLGSTRUCTA;
  395. LPCONNECTDLGSTRUCTW = ^CONNECTDLGSTRUCTW;
  396. {$EXTERNALSYM LPCONNECTDLGSTRUCTW}
  397. _CONNECTDLGSTRUCTW = record
  398. cbStructure: DWORD; // size of this structure in bytes
  399. hwndOwner: HWND; // owner window for the dialog
  400. lpConnRes: LPNETRESOURCEW; // Requested Resource info
  401. dwFlags: DWORD; // flags (see below)
  402. dwDevNum: DWORD; // number of devices connected to
  403. end;
  404. {$EXTERNALSYM _CONNECTDLGSTRUCTW}
  405. CONNECTDLGSTRUCTW = _CONNECTDLGSTRUCTW;
  406. {$EXTERNALSYM CONNECTDLGSTRUCTW}
  407. TConnectDlgStructW = CONNECTDLGSTRUCTW;
  408. PConnectDlgStructW = LPCONNECTDLGSTRUCTW;
  409. {$IFDEF UNICODE}
  410. CONNECTDLGSTRUCT = CONNECTDLGSTRUCTW;
  411. {$EXTERNALSYM CONNECTDLGSTRUCT}
  412. LPCONNECTDLGSTRUCT = LPCONNECTDLGSTRUCTW;
  413. {$EXTERNALSYM LPCONNECTDLGSTRUCT}
  414. TConnectDlgStruct = TConnectDlgStructW;
  415. PConnectDlgStruct = PConnectDlgStructW;
  416. {$ELSE}
  417. CONNECTDLGSTRUCT = CONNECTDLGSTRUCTA;
  418. {$EXTERNALSYM CONNECTDLGSTRUCT}
  419. LPCONNECTDLGSTRUCT = LPCONNECTDLGSTRUCTA;
  420. {$EXTERNALSYM LPCONNECTDLGSTRUCT}
  421. TConnectDlgStruct = TConnectDlgStructA;
  422. PConnectDlgStruct = PConnectDlgStructA;
  423. {$ENDIF UNICODE}
  424. const
  425. CONNDLG_RO_PATH = $00000001; // Resource path should be read-only
  426. {$EXTERNALSYM CONNDLG_RO_PATH}
  427. CONNDLG_CONN_POINT = $00000002; // Netware -style movable connection point enabled
  428. {$EXTERNALSYM CONNDLG_CONN_POINT}
  429. CONNDLG_USE_MRU = $00000004; // Use MRU combobox
  430. {$EXTERNALSYM CONNDLG_USE_MRU}
  431. CONNDLG_HIDE_BOX = $00000008; // Hide persistent connect checkbox
  432. {$EXTERNALSYM CONNDLG_HIDE_BOX}
  433. //
  434. // NOTE: Set at most ONE of the below flags. If neither flag is set,
  435. // then the persistence is set to whatever the user chose during
  436. // a previous connection
  437. //
  438. CONNDLG_PERSIST = $00000010; // Force persistent connection
  439. {$EXTERNALSYM CONNDLG_PERSIST}
  440. CONNDLG_NOT_PERSIST = $00000020; // Force connection NOT persistent
  441. {$EXTERNALSYM CONNDLG_NOT_PERSIST}
  442. function WNetConnectionDialog1A(var lpConnDlgStruct: CONNECTDLGSTRUCTA): DWORD; stdcall;
  443. {$EXTERNALSYM WNetConnectionDialog1A}
  444. function WNetConnectionDialog1W(var lpConnDlgStruct: CONNECTDLGSTRUCTW): DWORD; stdcall;
  445. {$EXTERNALSYM WNetConnectionDialog1W}
  446. function WNetConnectionDialog1(var lpConnDlgStruct: CONNECTDLGSTRUCT): DWORD; stdcall;
  447. {$EXTERNALSYM WNetConnectionDialog1}
  448. type
  449. LPDISCDLGSTRUCTA = ^DISCDLGSTRUCTA;
  450. {$EXTERNALSYM LPDISCDLGSTRUCTA}
  451. _DISCDLGSTRUCTA = record
  452. cbStructure: DWORD; // size of this structure in bytes
  453. hwndOwner: HWND; // owner window for the dialog
  454. lpLocalName: LPSTR; // local device name
  455. lpRemoteName: LPSTR; // network resource name
  456. dwFlags: DWORD; // flags
  457. end;
  458. {$EXTERNALSYM _DISCDLGSTRUCTA}
  459. DISCDLGSTRUCTA = _DISCDLGSTRUCTA;
  460. {$EXTERNALSYM DISCDLGSTRUCTA}
  461. TDiscDlgStructA = DISCDLGSTRUCTA;
  462. PDiscDlgStructA = LPDISCDLGSTRUCTA;
  463. LPDISCDLGSTRUCTW = ^DISCDLGSTRUCTW;
  464. {$EXTERNALSYM LPDISCDLGSTRUCTW}
  465. _DISCDLGSTRUCTW = record
  466. cbStructure: DWORD; // size of this structure in bytes
  467. hwndOwner: HWND; // owner window for the dialog
  468. lpLocalName: LPWSTR; // local device name
  469. lpRemoteName: LPWSTR; // network resource name
  470. dwFlags: DWORD; // flags
  471. end;
  472. {$EXTERNALSYM _DISCDLGSTRUCTW}
  473. DISCDLGSTRUCTW = _DISCDLGSTRUCTW;
  474. {$EXTERNALSYM DISCDLGSTRUCTW}
  475. TDiscDlgStructW = DISCDLGSTRUCTW;
  476. PDiscDlgStructW = LPDISCDLGSTRUCTW;
  477. {$IFDEF UNICODE}
  478. DISCDLGSTRUCT = DISCDLGSTRUCTW;
  479. {$EXTERNALSYM DISCDLGSTRUCT}
  480. LPDISCDLGSTRUCT = LPDISCDLGSTRUCTW;
  481. {$EXTERNALSYM LPDISCDLGSTRUCT}
  482. TDiscDlgStruct = TDiscDlgStructW;
  483. PDiscDlgStruct = PDiscDlgStructW;
  484. {$ELSE}
  485. DISCDLGSTRUCT = DISCDLGSTRUCTA;
  486. {$EXTERNALSYM DISCDLGSTRUCT}
  487. LPDISCDLGSTRUCT = LPDISCDLGSTRUCTA;
  488. {$EXTERNALSYM LPDISCDLGSTRUCT}
  489. TDiscDlgStruct = TDiscDlgStructA;
  490. PDiscDlgStruct = PDiscDlgStructA;
  491. {$ENDIF UNICODE}
  492. const
  493. DISC_UPDATE_PROFILE = $00000001;
  494. {$EXTERNALSYM DISC_UPDATE_PROFILE}
  495. DISC_NO_FORCE = $00000040;
  496. {$EXTERNALSYM DISC_NO_FORCE}
  497. function WNetDisconnectDialog1A(const lpConnDlgStruct: DISCDLGSTRUCTA): DWORD; stdcall;
  498. {$EXTERNALSYM WNetDisconnectDialog1A}
  499. function WNetDisconnectDialog1W(const lpConnDlgStruct: DISCDLGSTRUCTW): DWORD; stdcall;
  500. {$EXTERNALSYM WNetDisconnectDialog1W}
  501. function WNetDisconnectDialog1(const lpConnDlgStruct: DISCDLGSTRUCT): DWORD; stdcall;
  502. {$EXTERNALSYM WNetDisconnectDialog1}
  503. //
  504. // Network Browsing.
  505. //
  506. function WNetOpenEnumA(dwScope, dwType, dwUsage: DWORD; lpNetResource: LPNETRESOURCEA;
  507. var lphEnum: HANDLE): DWORD; stdcall;
  508. {$EXTERNALSYM WNetOpenEnumA}
  509. function WNetOpenEnumW(dwScope, dwType, dwUsage: DWORD; lpNetResource: LPNETRESOURCEW;
  510. var lphEnum: HANDLE): DWORD; stdcall;
  511. {$EXTERNALSYM WNetOpenEnumW}
  512. function WNetOpenEnum(dwScope, dwType, dwUsage: DWORD; lpNetResource: LPNETRESOURCE;
  513. var lphEnum: HANDLE): DWORD; stdcall;
  514. {$EXTERNALSYM WNetOpenEnum}
  515. function WNetEnumResourceA(hEnum: HANDLE; var lpcCount: DWORD; lpBuffer: LPVOID;
  516. var lpBufferSize: DWORD): DWORD; stdcall;
  517. {$EXTERNALSYM WNetEnumResourceA}
  518. function WNetEnumResourceW(hEnum: HANDLE; var lpcCount: DWORD; lpBuffer: LPVOID;
  519. var lpBufferSize: DWORD): DWORD; stdcall;
  520. {$EXTERNALSYM WNetEnumResourceW}
  521. function WNetEnumResource(hEnum: HANDLE; var lpcCount: DWORD; lpBuffer: LPVOID;
  522. var lpBufferSize: DWORD): DWORD; stdcall;
  523. {$EXTERNALSYM WNetEnumResource}
  524. function WNetCloseEnum(hEnum: HANDLE): DWORD; stdcall;
  525. {$EXTERNALSYM WNetCloseEnum}
  526. function WNetGetResourceParentA(const lpNetResource: NETRESOURCEA;
  527. lpBuffer: LPVOID; var lpcbBuffer: DWORD): DWORD; stdcall;
  528. {$EXTERNALSYM WNetGetResourceParentA}
  529. function WNetGetResourceParentW(const lpNetResource: NETRESOURCEW;
  530. lpBuffer: LPVOID; var lpcbBuffer: DWORD): DWORD; stdcall;
  531. {$EXTERNALSYM WNetGetResourceParentW}
  532. function WNetGetResourceParent(const lpNetResource: NETRESOURCE;
  533. lpBuffer: LPVOID; var lpcbBuffer: DWORD): DWORD; stdcall;
  534. {$EXTERNALSYM WNetGetResourceParent}
  535. function WNetGetResourceInformationA(const lpNetResource: NETRESOURCEA;
  536. lpBuffer: LPVOID; var lpcbBuffer: DWORD; var lplpSystem: LPSTR): DWORD; stdcall;
  537. {$EXTERNALSYM WNetGetResourceInformationA}
  538. function WNetGetResourceInformationW(const lpNetResource: NETRESOURCEW;
  539. lpBuffer: LPVOID; var lpcbBuffer: DWORD; var lplpSystem: LPWSTR): DWORD; stdcall;
  540. {$EXTERNALSYM WNetGetResourceInformationW}
  541. function WNetGetResourceInformation(const lpNetResource: NETRESOURCE;
  542. lpBuffer: LPVOID; var lpcbBuffer: DWORD; var lplpSystem: LPTSTR): DWORD; stdcall;
  543. {$EXTERNALSYM WNetGetResourceInformation}
  544. //
  545. // Universal Naming.
  546. //
  547. const
  548. UNIVERSAL_NAME_INFO_LEVEL = $00000001;
  549. {$EXTERNALSYM UNIVERSAL_NAME_INFO_LEVEL}
  550. REMOTE_NAME_INFO_LEVEL = $00000002;
  551. {$EXTERNALSYM REMOTE_NAME_INFO_LEVEL}
  552. type
  553. LPUNIVERSAL_NAME_INFOA = ^UNIVERSAL_NAME_INFOA;
  554. {$EXTERNALSYM LPUNIVERSAL_NAME_INFOA}
  555. _UNIVERSAL_NAME_INFOA = record
  556. lpUniversalName: LPSTR;
  557. end;
  558. {$EXTERNALSYM _UNIVERSAL_NAME_INFOA}
  559. UNIVERSAL_NAME_INFOA = _UNIVERSAL_NAME_INFOA;
  560. {$EXTERNALSYM UNIVERSAL_NAME_INFOA}
  561. TUniversalNameInfoA = UNIVERSAL_NAME_INFOA;
  562. PUniversalNameInfoA = LPUNIVERSAL_NAME_INFOA;
  563. LPUNIVERSAL_NAME_INFOW = ^UNIVERSAL_NAME_INFOW;
  564. {$EXTERNALSYM LPUNIVERSAL_NAME_INFOW}
  565. _UNIVERSAL_NAME_INFOW = record
  566. lpUniversalName: LPWSTR;
  567. end;
  568. {$EXTERNALSYM _UNIVERSAL_NAME_INFOW}
  569. UNIVERSAL_NAME_INFOW = _UNIVERSAL_NAME_INFOW;
  570. {$EXTERNALSYM UNIVERSAL_NAME_INFOW}
  571. TUniversalNameInfoW = UNIVERSAL_NAME_INFOW;
  572. PUniversalNameInfoW = LPUNIVERSAL_NAME_INFOW;
  573. {$IFDEF UNICODE}
  574. UNIVERSAL_NAME_INFO = UNIVERSAL_NAME_INFOW;
  575. {$EXTERNALSYM UNIVERSAL_NAME_INFO}
  576. LPUNIVERSAL_NAME_INFO = LPUNIVERSAL_NAME_INFOW;
  577. {$EXTERNALSYM LPUNIVERSAL_NAME_INFO}
  578. TUniversalNameInfo = TUniversalNameInfoW;
  579. PUniversalNameInfo = PUniversalNameInfoW;
  580. {$ELSE}
  581. UNIVERSAL_NAME_INFO = UNIVERSAL_NAME_INFOA;
  582. {$EXTERNALSYM UNIVERSAL_NAME_INFO}
  583. LPUNIVERSAL_NAME_INFO = LPUNIVERSAL_NAME_INFOA;
  584. {$EXTERNALSYM LPUNIVERSAL_NAME_INFO}
  585. TUniversalNameInfo = TUniversalNameInfoA;
  586. PUniversalNameInfo = PUniversalNameInfoA;
  587. {$ENDIF UNICODE}
  588. LPREMOTE_NAME_INFOA = ^REMOTE_NAME_INFOA;
  589. {$EXTERNALSYM LPREMOTE_NAME_INFOA}
  590. _REMOTE_NAME_INFOA = record
  591. lpUniversalName: LPSTR;
  592. lpConnectionName: LPSTR;
  593. lpRemainingPath: LPSTR;
  594. end;
  595. {$EXTERNALSYM _REMOTE_NAME_INFOA}
  596. REMOTE_NAME_INFOA = _REMOTE_NAME_INFOA;
  597. {$EXTERNALSYM REMOTE_NAME_INFOA}
  598. TRemoteNameInfoA = REMOTE_NAME_INFOA;
  599. PRemoteNameInfoA = LPREMOTE_NAME_INFOA;
  600. LPREMOTE_NAME_INFOW = ^REMOTE_NAME_INFOW;
  601. {$EXTERNALSYM LPREMOTE_NAME_INFOW}
  602. _REMOTE_NAME_INFOW = record
  603. lpUniversalName: LPWSTR;
  604. lpConnectionName: LPWSTR;
  605. lpRemainingPath: LPWSTR;
  606. end;
  607. {$EXTERNALSYM _REMOTE_NAME_INFOW}
  608. REMOTE_NAME_INFOW = _REMOTE_NAME_INFOW;
  609. {$EXTERNALSYM REMOTE_NAME_INFOW}
  610. TRemoteNameInfoW = REMOTE_NAME_INFOW;
  611. PRemoteNameInfoW = LPREMOTE_NAME_INFOW;
  612. {$IFDEF UNICODE}
  613. REMOTE_NAME_INFO = REMOTE_NAME_INFOW;
  614. {$EXTERNALSYM REMOTE_NAME_INFO}
  615. LPREMOTE_NAME_INFO = LPREMOTE_NAME_INFOW;
  616. {$EXTERNALSYM LPREMOTE_NAME_INFO}
  617. TRemoteNameInfo = TRemoteNameInfoW;
  618. PRemoteNameInfo = PRemoteNameInfoW;
  619. {$ELSE}
  620. REMOTE_NAME_INFO = REMOTE_NAME_INFOA;
  621. {$EXTERNALSYM REMOTE_NAME_INFO}
  622. LPREMOTE_NAME_INFO = LPREMOTE_NAME_INFOA;
  623. {$EXTERNALSYM LPREMOTE_NAME_INFO}
  624. TRemoteNameInfo = TRemoteNameInfoA;
  625. PRemoteNameInfo = PRemoteNameInfoA;
  626. {$ENDIF UNICODE}
  627. function WNetGetUniversalNameA(lpLocalPath: LPCSTR; dwInfoLevel: DWORD;
  628. lpBuffer: LPVOID; var lpBufferSize: DWORD): DWORD; stdcall;
  629. {$EXTERNALSYM WNetGetUniversalNameA}
  630. function WNetGetUniversalNameW(lpLocalPath: LPCWSTR; dwInfoLevel: DWORD;
  631. lpBuffer: LPVOID; var lpBufferSize: DWORD): DWORD; stdcall;
  632. {$EXTERNALSYM WNetGetUniversalNameW}
  633. function WNetGetUniversalName(lpLocalPath: LPCTSTR; dwInfoLevel: DWORD;
  634. lpBuffer: LPVOID; var lpBufferSize: DWORD): DWORD; stdcall;
  635. {$EXTERNALSYM WNetGetUniversalName}
  636. //
  637. // Authentication and Logon/Logoff.
  638. //
  639. function WNetGetUserA(lpName: LPCSTR; lpUserName: LPSTR; var lpnLength: DWORD): DWORD; stdcall;
  640. {$EXTERNALSYM WNetGetUserA}
  641. function WNetGetUserW(lpName: LPCWSTR; lpUserName: LPWSTR; var lpnLength: DWORD): DWORD; stdcall;
  642. {$EXTERNALSYM WNetGetUserW}
  643. function WNetGetUser(lpName: LPCTSTR; lpUserName: LPTSTR; var lpnLength: DWORD): DWORD; stdcall;
  644. {$EXTERNALSYM WNetGetUser}
  645. //
  646. // Other.
  647. //
  648. const
  649. WNFMT_MULTILINE = $01;
  650. {$EXTERNALSYM WNFMT_MULTILINE}
  651. WNFMT_ABBREVIATED = $02;
  652. {$EXTERNALSYM WNFMT_ABBREVIATED}
  653. WNFMT_INENUM = $10;
  654. {$EXTERNALSYM WNFMT_INENUM}
  655. WNFMT_CONNECTION = $20;
  656. {$EXTERNALSYM WNFMT_CONNECTION}
  657. function WNetGetProviderNameA(dwNetType: DWORD; lpProviderName: LPSTR;
  658. var lpBufferSize: DWORD): DWORD; stdcall;
  659. {$EXTERNALSYM WNetGetProviderNameA}
  660. function WNetGetProviderNameW(dwNetType: DWORD; lpProviderName: LPWSTR;
  661. var lpBufferSize: DWORD): DWORD; stdcall;
  662. {$EXTERNALSYM WNetGetProviderNameW}
  663. function WNetGetProviderName(dwNetType: DWORD; lpProviderName: LPTSTR;
  664. var lpBufferSize: DWORD): DWORD; stdcall;
  665. {$EXTERNALSYM WNetGetProviderName}
  666. type
  667. LPNETINFOSTRUCT = ^NETINFOSTRUCT;
  668. {$EXTERNALSYM LPNETINFOSTRUCT}
  669. _NETINFOSTRUCT = record
  670. cbStructure: DWORD;
  671. dwProviderVersion: DWORD;
  672. dwStatus: DWORD;
  673. dwCharacteristics: DWORD;
  674. dwHandle: ULONG_PTR;
  675. wNetType: WORD;
  676. dwPrinters: DWORD;
  677. dwDrives: DWORD;
  678. end;
  679. {$EXTERNALSYM _NETINFOSTRUCT}
  680. NETINFOSTRUCT = _NETINFOSTRUCT;
  681. {$EXTERNALSYM NETINFOSTRUCT}
  682. TNetInfoStruct = NETINFOSTRUCT;
  683. PNetInfoStruct = LPNETINFOSTRUCT;
  684. const
  685. NETINFO_DLL16 = $00000001; // Provider running as 16 bit Winnet Driver
  686. {$EXTERNALSYM NETINFO_DLL16}
  687. NETINFO_DISKRED = $00000004; // Provider requires disk redirections to connect
  688. {$EXTERNALSYM NETINFO_DISKRED}
  689. NETINFO_PRINTERRED = $00000008; // Provider requires printer redirections to connect
  690. {$EXTERNALSYM NETINFO_PRINTERRED}
  691. function WNetGetNetworkInformationA(lpProvider: LPCSTR;
  692. var lpNetInfoStruct: NETINFOSTRUCT): DWORD; stdcall;
  693. {$EXTERNALSYM WNetGetNetworkInformationA}
  694. function WNetGetNetworkInformationW(lpProvider: LPCWSTR;
  695. var lpNetInfoStruct: NETINFOSTRUCT): DWORD; stdcall;
  696. {$EXTERNALSYM WNetGetNetworkInformationW}
  697. function WNetGetNetworkInformation(lpProvider: LPCTSTR;
  698. var lpNetInfoStruct: NETINFOSTRUCT): DWORD; stdcall;
  699. {$EXTERNALSYM WNetGetNetworkInformation}
  700. //
  701. // User Profiles.
  702. //
  703. type
  704. PFNGETPROFILEPATHA = function(pszUsername: LPCSTR; pszBuffer: LPSTR;
  705. cbBuffer: UINT): UINT; stdcall;
  706. {$EXTERNALSYM PFNGETPROFILEPATHA}
  707. PFNGETPROFILEPATHW = function(pszUsername: LPCWSTR; pszBuffer: LPWSTR;
  708. cbBuffer: UINT): UINT; stdcall;
  709. {$EXTERNALSYM PFNGETPROFILEPATHW}
  710. {$IFDEF UNICODE}
  711. PFNGETPROFILEPATH = PFNGETPROFILEPATHW;
  712. {$EXTERNALSYM PFNGETPROFILEPATH}
  713. {$ELSE}
  714. PFNGETPROFILEPATH = PFNGETPROFILEPATHA;
  715. {$EXTERNALSYM PFNGETPROFILEPATH}
  716. {$ENDIF UNICODE}
  717. PFNRECONCILEPROFILEA = function(pszCentralFile, pszLocalFile: LPCSTR;
  718. dwFlags: DWORD): UINT; stdcall;
  719. {$EXTERNALSYM PFNRECONCILEPROFILEA}
  720. PFNRECONCILEPROFILEW = function(pszCentralFile, pszLocalFile: LPCWSTR;
  721. dwFlags: DWORD): UINT; stdcall;
  722. {$EXTERNALSYM PFNRECONCILEPROFILEW}
  723. PFNRECONCILEPROFILE = function(pszCentralFile, pszLocalFile: LPCTSTR;
  724. dwFlags: DWORD): UINT; stdcall;
  725. {$EXTERNALSYM PFNRECONCILEPROFILE}
  726. const
  727. RP_LOGON = $01; // if set, do for logon, else for logoff
  728. {$EXTERNALSYM RP_LOGON}
  729. RP_INIFILE = $02; // if set, reconcile .INI file, else reg. hive
  730. {$EXTERNALSYM RP_INIFILE}
  731. //
  732. // Policies.
  733. //
  734. type
  735. PFNPROCESSPOLICIESA = function(hwnd: HWND; pszPath, pszUsername,
  736. pszComputerName: LPCSTR; dwFlags: DWORD): BOOL; stdcall;
  737. {$EXTERNALSYM PFNPROCESSPOLICIESA}
  738. PFNPROCESSPOLICIESW = function(hwnd: HWND; pszPath, pszUsername,
  739. pszComputerName: LPCWSTR; dwFlags: DWORD): BOOL; stdcall;
  740. {$EXTERNALSYM PFNPROCESSPOLICIESW}
  741. PFNPROCESSPOLICIES = function(hwnd: HWND; pszPath, pszUsername,
  742. pszComputerName: LPCTSTR; dwFlags: DWORD): BOOL; stdcall;
  743. {$EXTERNALSYM PFNPROCESSPOLICIES}
  744. const
  745. PP_DISPLAYERRORS = $01; // if set, display error messages, else fail silently if error
  746. {$EXTERNALSYM PP_DISPLAYERRORS}
  747. //
  748. // Error handling.
  749. //
  750. function WNetGetLastErrorA(var lpError: DWORD; lpErrorBuf: LPSTR;
  751. nErrorBufSize: DWORD; lpNameBuf: LPSTR; nNameBufSize: DWORD): DWORD; stdcall;
  752. {$EXTERNALSYM WNetGetLastErrorA}
  753. function WNetGetLastErrorW(var lpError: DWORD; lpErrorBuf: LPWSTR;
  754. nErrorBufSize: DWORD; lpNameBuf: LPWSTR; nNameBufSize: DWORD): DWORD; stdcall;
  755. {$EXTERNALSYM WNetGetLastErrorW}
  756. function WNetGetLastError(var lpError: DWORD; lpErrorBuf: LPTSTR;
  757. nErrorBufSize: DWORD; lpNameBuf: LPTSTR; nNameBufSize: DWORD): DWORD; stdcall;
  758. {$EXTERNALSYM WNetGetLastError}
  759. //
  760. // STATUS CODES
  761. //
  762. // General
  763. const
  764. WN_SUCCESS = NO_ERROR;
  765. {$EXTERNALSYM WN_SUCCESS}
  766. WN_NO_ERROR = NO_ERROR;
  767. {$EXTERNALSYM WN_NO_ERROR}
  768. WN_NOT_SUPPORTED = ERROR_NOT_SUPPORTED;
  769. {$EXTERNALSYM WN_NOT_SUPPORTED}
  770. WN_CANCEL = ERROR_CANCELLED;
  771. {$EXTERNALSYM WN_CANCEL}
  772. WN_RETRY = ERROR_RETRY;
  773. {$EXTERNALSYM WN_RETRY}
  774. WN_NET_ERROR = ERROR_UNEXP_NET_ERR;
  775. {$EXTERNALSYM WN_NET_ERROR}
  776. WN_MORE_DATA = ERROR_MORE_DATA;
  777. {$EXTERNALSYM WN_MORE_DATA}
  778. WN_BAD_POINTER = ERROR_INVALID_ADDRESS;
  779. {$EXTERNALSYM WN_BAD_POINTER}
  780. WN_BAD_VALUE = ERROR_INVALID_PARAMETER;
  781. {$EXTERNALSYM WN_BAD_VALUE}
  782. WN_BAD_USER = ERROR_BAD_USERNAME;
  783. {$EXTERNALSYM WN_BAD_USER}
  784. WN_BAD_PASSWORD = ERROR_INVALID_PASSWORD;
  785. {$EXTERNALSYM WN_BAD_PASSWORD}
  786. WN_ACCESS_DENIED = ERROR_ACCESS_DENIED;
  787. {$EXTERNALSYM WN_ACCESS_DENIED}
  788. WN_FUNCTION_BUSY = ERROR_BUSY;
  789. {$EXTERNALSYM WN_FUNCTION_BUSY}
  790. WN_WINDOWS_ERROR = ERROR_UNEXP_NET_ERR;
  791. {$EXTERNALSYM WN_WINDOWS_ERROR}
  792. WN_OUT_OF_MEMORY = ERROR_NOT_ENOUGH_MEMORY;
  793. {$EXTERNALSYM WN_OUT_OF_MEMORY}
  794. WN_NO_NETWORK = ERROR_NO_NETWORK;
  795. {$EXTERNALSYM WN_NO_NETWORK}
  796. WN_EXTENDED_ERROR = ERROR_EXTENDED_ERROR;
  797. {$EXTERNALSYM WN_EXTENDED_ERROR}
  798. WN_BAD_LEVEL = ERROR_INVALID_LEVEL;
  799. {$EXTERNALSYM WN_BAD_LEVEL}
  800. WN_BAD_HANDLE = ERROR_INVALID_HANDLE;
  801. {$EXTERNALSYM WN_BAD_HANDLE}
  802. WN_NOT_INITIALIZING = ERROR_ALREADY_INITIALIZED;
  803. {$EXTERNALSYM WN_NOT_INITIALIZING}
  804. WN_NO_MORE_DEVICES = ERROR_NO_MORE_DEVICES;
  805. {$EXTERNALSYM WN_NO_MORE_DEVICES}
  806. // Connection
  807. WN_NOT_CONNECTED = ERROR_NOT_CONNECTED;
  808. {$EXTERNALSYM WN_NOT_CONNECTED}
  809. WN_OPEN_FILES = ERROR_OPEN_FILES;
  810. {$EXTERNALSYM WN_OPEN_FILES}
  811. WN_DEVICE_IN_USE = ERROR_DEVICE_IN_USE;
  812. {$EXTERNALSYM WN_DEVICE_IN_USE}
  813. WN_BAD_NETNAME = ERROR_BAD_NET_NAME;
  814. {$EXTERNALSYM WN_BAD_NETNAME}
  815. WN_BAD_LOCALNAME = ERROR_BAD_DEVICE;
  816. {$EXTERNALSYM WN_BAD_LOCALNAME}
  817. WN_ALREADY_CONNECTED = ERROR_ALREADY_ASSIGNED;
  818. {$EXTERNALSYM WN_ALREADY_CONNECTED}
  819. WN_DEVICE_ERROR = ERROR_GEN_FAILURE;
  820. {$EXTERNALSYM WN_DEVICE_ERROR}
  821. WN_CONNECTION_CLOSED = ERROR_CONNECTION_UNAVAIL;
  822. {$EXTERNALSYM WN_CONNECTION_CLOSED}
  823. WN_NO_NET_OR_BAD_PATH = ERROR_NO_NET_OR_BAD_PATH;
  824. {$EXTERNALSYM WN_NO_NET_OR_BAD_PATH}
  825. WN_BAD_PROVIDER = ERROR_BAD_PROVIDER;
  826. {$EXTERNALSYM WN_BAD_PROVIDER}
  827. WN_CANNOT_OPEN_PROFILE = ERROR_CANNOT_OPEN_PROFILE;
  828. {$EXTERNALSYM WN_CANNOT_OPEN_PROFILE}
  829. WN_BAD_PROFILE = ERROR_BAD_PROFILE;
  830. {$EXTERNALSYM WN_BAD_PROFILE}
  831. WN_BAD_DEV_TYPE = ERROR_BAD_DEV_TYPE;
  832. {$EXTERNALSYM WN_BAD_DEV_TYPE}
  833. WN_DEVICE_ALREADY_REMEMBERED = ERROR_DEVICE_ALREADY_REMEMBERED;
  834. {$EXTERNALSYM WN_DEVICE_ALREADY_REMEMBERED}
  835. WN_CONNECTED_OTHER_PASSWORD = ERROR_CONNECTED_OTHER_PASSWORD;
  836. {$EXTERNALSYM WN_CONNECTED_OTHER_PASSWORD}
  837. WN_CONNECTED_OTHER_PASSWORD_DEFAULT = ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT;
  838. {$EXTERNALSYM WN_CONNECTED_OTHER_PASSWORD_DEFAULT}
  839. // Enumeration
  840. WN_NO_MORE_ENTRIES = ERROR_NO_MORE_ITEMS;
  841. {$EXTERNALSYM WN_NO_MORE_ENTRIES}
  842. WN_NOT_CONTAINER = ERROR_NOT_CONTAINER;
  843. {$EXTERNALSYM WN_NOT_CONTAINER}
  844. // Authentication
  845. WN_NOT_AUTHENTICATED = ERROR_NOT_AUTHENTICATED;
  846. {$EXTERNALSYM WN_NOT_AUTHENTICATED}
  847. WN_NOT_LOGGED_ON = ERROR_NOT_LOGGED_ON;
  848. {$EXTERNALSYM WN_NOT_LOGGED_ON}
  849. WN_NOT_VALIDATED = ERROR_NO_LOGON_SERVERS;
  850. {$EXTERNALSYM WN_NOT_VALIDATED}
  851. //
  852. // For Shell
  853. //
  854. type
  855. LPNETCONNECTINFOSTRUCT = ^NETCONNECTINFOSTRUCT;
  856. {$EXTERNALSYM LPNETCONNECTINFOSTRUCT}
  857. _NETCONNECTINFOSTRUCT = record
  858. cbStructure: DWORD;
  859. dwFlags: DWORD;
  860. dwSpeed: DWORD;
  861. dwDelay: DWORD;
  862. dwOptDataSize: DWORD;
  863. end;
  864. {$EXTERNALSYM _NETCONNECTINFOSTRUCT}
  865. NETCONNECTINFOSTRUCT = _NETCONNECTINFOSTRUCT;
  866. {$EXTERNALSYM NETCONNECTINFOSTRUCT}
  867. TNetConnectInfoStruct = NETCONNECTINFOSTRUCT;
  868. PNetConnectInfoStruct = LPNETCONNECTINFOSTRUCT;
  869. const
  870. WNCON_FORNETCARD = $00000001;
  871. {$EXTERNALSYM WNCON_FORNETCARD}
  872. WNCON_NOTROUTED = $00000002;
  873. {$EXTERNALSYM WNCON_NOTROUTED}
  874. WNCON_SLOWLINK = $00000004;
  875. {$EXTERNALSYM WNCON_SLOWLINK}
  876. WNCON_DYNAMIC = $00000008;
  877. {$EXTERNALSYM WNCON_DYNAMIC}
  878. function MultinetGetConnectionPerformanceA(const lpNetResource: NETRESOURCEA;
  879. var lpNetConnectInfoStruct: NETCONNECTINFOSTRUCT): DWORD; stdcall;
  880. {$EXTERNALSYM MultinetGetConnectionPerformanceA}
  881. function MultinetGetConnectionPerformanceW(const lpNetResource: NETRESOURCEW;
  882. var lpNetConnectInfoStruct: NETCONNECTINFOSTRUCT): DWORD; stdcall;
  883. {$EXTERNALSYM MultinetGetConnectionPerformanceW}
  884. function MultinetGetConnectionPerformance(const lpNetResource: NETRESOURCE;
  885. var lpNetConnectInfoStruct: NETCONNECTINFOSTRUCT): DWORD; stdcall;
  886. {$EXTERNALSYM MultinetGetConnectionPerformance}
  887. implementation
  888. const
  889. mpr = 'mpr.dll';
  890. {$IFDEF UNICODE}
  891. AWSuffix = 'W';
  892. {$ELSE}
  893. AWSuffix = 'A';
  894. {$ENDIF UNICODE}
  895. {$IFDEF DYNAMIC_LINK}
  896. var
  897. _WNetAddConnectionA: Pointer;
  898. function WNetAddConnectionA;
  899. begin
  900. GetProcedureAddress(_WNetAddConnectionA, mpr, 'WNetAddConnectionA');
  901. asm
  902. MOV ESP, EBP
  903. POP EBP
  904. JMP [_WNetAddConnectionA]
  905. end;
  906. end;
  907. var
  908. _WNetAddConnectionW: Pointer;
  909. function WNetAddConnectionW;
  910. begin
  911. GetProcedureAddress(_WNetAddConnectionW, mpr, 'WNetAddConnectionW');
  912. asm
  913. MOV ESP, EBP
  914. POP EBP
  915. JMP [_WNetAddConnectionW]
  916. end;
  917. end;
  918. var
  919. _WNetAddConnection: Pointer;
  920. function WNetAddConnection;
  921. begin
  922. GetProcedureAddress(_WNetAddConnection, mpr, 'WNetAddConnection' + AWSuffix);
  923. asm
  924. MOV ESP, EBP
  925. POP EBP
  926. JMP [_WNetAddConnection]
  927. end;
  928. end;
  929. var
  930. _WNetAddConnection2A: Pointer;
  931. function WNetAddConnection2A;
  932. begin
  933. GetProcedureAddress(_WNetAddConnection2A, mpr, 'WNetAddConnection2A');
  934. asm
  935. MOV ESP, EBP
  936. POP EBP
  937. JMP [_WNetAddConnection2A]
  938. end;
  939. end;
  940. var
  941. _WNetAddConnection2W: Pointer;
  942. function WNetAddConnection2W;
  943. begin
  944. GetProcedureAddress(_WNetAddConnection2W, mpr, 'WNetAddConnection2W');
  945. asm
  946. MOV ESP, EBP
  947. POP EBP
  948. JMP [_WNetAddConnection2W]
  949. end;
  950. end;
  951. var
  952. _WNetAddConnection2: Pointer;
  953. function WNetAddConnection2;
  954. begin
  955. GetProcedureAddress(_WNetAddConnection2, mpr, 'WNetAddConnection2' + AWSuffix);
  956. asm
  957. MOV ESP, EBP
  958. POP EBP
  959. JMP [_WNetAddConnection2]
  960. end;
  961. end;
  962. var
  963. _WNetAddConnection3A: Pointer;
  964. function WNetAddConnection3A;
  965. begin
  966. GetProcedureAddress(_WNetAddConnection3A, mpr, 'WNetAddConnection3A');
  967. asm
  968. MOV ESP, EBP
  969. POP EBP
  970. JMP [_WNetAddConnection3A]
  971. end;
  972. end;
  973. var
  974. _WNetAddConnection3W: Pointer;
  975. function WNetAddConnection3W;
  976. begin
  977. GetProcedureAddress(_WNetAddConnection3W, mpr, 'WNetAddConnection3W');
  978. asm
  979. MOV ESP, EBP
  980. POP EBP
  981. JMP [_WNetAddConnection3W]
  982. end;
  983. end;
  984. var
  985. _WNetAddConnection3: Pointer;
  986. function WNetAddConnection3;
  987. begin
  988. GetProcedureAddress(_WNetAddConnection3, mpr, 'WNetAddConnection3' + AWSuffix);
  989. asm
  990. MOV ESP, EBP
  991. POP EBP
  992. JMP [_WNetAddConnection3]
  993. end;
  994. end;
  995. var
  996. _WNetCancelConnectionA: Pointer;
  997. function WNetCancelConnectionA;
  998. begin
  999. GetProcedureAddress(_WNetCancelConnectionA, mpr, 'WNetCancelConnectionA');
  1000. asm
  1001. MOV ESP, EBP
  1002. POP EBP
  1003. JMP [_WNetCancelConnectionA]
  1004. end;
  1005. end;
  1006. var
  1007. _WNetCancelConnectionW: Pointer;
  1008. function WNetCancelConnectionW;
  1009. begin
  1010. GetProcedureAddress(_WNetCancelConnectionW, mpr, 'WNetCancelConnectionW');
  1011. asm
  1012. MOV ESP, EBP
  1013. POP EBP
  1014. JMP [_WNetCancelConnectionW]
  1015. end;
  1016. end;
  1017. var
  1018. _WNetCancelConnection: Pointer;
  1019. function WNetCancelConnection;
  1020. begin
  1021. GetProcedureAddress(_WNetCancelConnection, mpr, 'WNetCancelConnection' + AWSuffix);
  1022. asm
  1023. MOV ESP, EBP
  1024. POP EBP
  1025. JMP [_WNetCancelConnection]
  1026. end;
  1027. end;
  1028. var
  1029. _WNetCancelConnection2A: Pointer;
  1030. function WNetCancelConnection2A;
  1031. begin
  1032. GetProcedureAddress(_WNetCancelConnection2A, mpr, 'WNetCancelConnection2A');
  1033. asm
  1034. MOV ESP, EBP
  1035. POP EBP
  1036. JMP [_WNetCancelConnection2A]
  1037. end;
  1038. end;
  1039. var
  1040. _WNetCancelConnection2W: Pointer;
  1041. function WNetCancelConnection2W;
  1042. begin
  1043. GetProcedureAddress(_WNetCancelConnection2W, mpr, 'WNetCancelConnection2W');
  1044. asm
  1045. MOV ESP, EBP
  1046. POP EBP
  1047. JMP [_WNetCancelConnection2W]
  1048. end;
  1049. end;
  1050. var
  1051. _WNetCancelConnection2: Pointer;
  1052. function WNetCancelConnection2;
  1053. begin
  1054. GetProcedureAddress(_WNetCancelConnection2, mpr, 'WNetCancelConnection2' + AWSuffix);
  1055. asm
  1056. MOV ESP, EBP
  1057. POP EBP
  1058. JMP [_WNetCancelConnection2]
  1059. end;
  1060. end;
  1061. var
  1062. _WNetGetConnectionA: Pointer;
  1063. function WNetGetConnectionA;
  1064. begin
  1065. GetProcedureAddress(_WNetGetConnectionA, mpr, 'WNetGetConnectionA');
  1066. asm
  1067. MOV ESP, EBP
  1068. POP EBP
  1069. JMP [_WNetGetConnectionA]
  1070. end;
  1071. end;
  1072. var
  1073. _WNetGetConnectionW: Pointer;
  1074. function WNetGetConnectionW;
  1075. begin
  1076. GetProcedureAddress(_WNetGetConnectionW, mpr, 'WNetGetConnectionW');
  1077. asm
  1078. MOV ESP, EBP
  1079. POP EBP
  1080. JMP [_WNetGetConnectionW]
  1081. end;
  1082. end;
  1083. var
  1084. _WNetGetConnection: Pointer;
  1085. function WNetGetConnection;
  1086. begin
  1087. GetProcedureAddress(_WNetGetConnection, mpr, 'WNetGetConnection' + AWSuffix);
  1088. asm
  1089. MOV ESP, EBP
  1090. POP EBP
  1091. JMP [_WNetGetConnection]
  1092. end;
  1093. end;
  1094. var
  1095. _WNetRestoreConnectionA: Pointer;
  1096. function WNetRestoreConnectionA;
  1097. begin
  1098. GetProcedureAddress(_WNetRestoreConnectionA, mpr, 'WNetRestoreConnectionA');
  1099. asm
  1100. MOV ESP, EBP
  1101. POP EBP
  1102. JMP [_WNetRestoreConnectionA]
  1103. end;
  1104. end;
  1105. var
  1106. _WNetRestoreConnectionW: Pointer;
  1107. function WNetRestoreConnectionW;
  1108. begin
  1109. GetProcedureAddress(_WNetRestoreConnectionW, mpr, 'WNetRestoreConnectionW');
  1110. asm
  1111. MOV ESP, EBP
  1112. POP EBP
  1113. JMP [_WNetRestoreConnectionW]
  1114. end;
  1115. end;
  1116. var
  1117. _WNetRestoreConnection: Pointer;
  1118. function WNetRestoreConnection;
  1119. begin
  1120. GetProcedureAddress(_WNetRestoreConnection, mpr, 'WNetRestoreConnection' + AWSuffix);
  1121. asm
  1122. MOV ESP, EBP
  1123. POP EBP
  1124. JMP [_WNetRestoreConnection]
  1125. end;
  1126. end;
  1127. var
  1128. _WNetUseConnectionA: Pointer;
  1129. function WNetUseConnectionA;
  1130. begin
  1131. GetProcedureAddress(_WNetUseConnectionA, mpr, 'WNetUseConnectionA');
  1132. asm
  1133. MOV ESP, EBP
  1134. POP EBP
  1135. JMP [_WNetUseConnectionA]
  1136. end;
  1137. end;
  1138. var
  1139. _WNetUseConnectionW: Pointer;
  1140. function WNetUseConnectionW;
  1141. begin
  1142. GetProcedureAddress(_WNetUseConnectionW, mpr, 'WNetUseConnectionW');
  1143. asm
  1144. MOV ESP, EBP
  1145. POP EBP
  1146. JMP [_WNetUseConnectionW]
  1147. end;
  1148. end;
  1149. var
  1150. _WNetUseConnection: Pointer;
  1151. function WNetUseConnection;
  1152. begin
  1153. GetProcedureAddress(_WNetUseConnection, mpr, 'WNetUseConnection' + AWSuffix);
  1154. asm
  1155. MOV ESP, EBP
  1156. POP EBP
  1157. JMP [_WNetUseConnection]
  1158. end;
  1159. end;
  1160. var
  1161. _WNetConnectionDialog: Pointer;
  1162. function WNetConnectionDialog;
  1163. begin
  1164. GetProcedureAddress(_WNetConnectionDialog, mpr, 'WNetConnectionDialog');
  1165. asm
  1166. MOV ESP, EBP
  1167. POP EBP
  1168. JMP [_WNetConnectionDialog]
  1169. end;
  1170. end;
  1171. var
  1172. _WNetDisconnectDialog: Pointer;
  1173. function WNetDisconnectDialog;
  1174. begin
  1175. GetProcedureAddress(_WNetDisconnectDialog, mpr, 'WNetDisconnectDialog');
  1176. asm
  1177. MOV ESP, EBP
  1178. POP EBP
  1179. JMP [_WNetDisconnectDialog]
  1180. end;
  1181. end;
  1182. var
  1183. _WNetConnectionDialog1A: Pointer;
  1184. function WNetConnectionDialog1A;
  1185. begin
  1186. GetProcedureAddress(_WNetConnectionDialog1A, mpr, 'WNetConnectionDialog1A');
  1187. asm
  1188. MOV ESP, EBP
  1189. POP EBP
  1190. JMP [_WNetConnectionDialog1A]
  1191. end;
  1192. end;
  1193. var
  1194. _WNetConnectionDialog1W: Pointer;
  1195. function WNetConnectionDialog1W;
  1196. begin
  1197. GetProcedureAddress(_WNetConnectionDialog1W, mpr, 'WNetConnectionDialog1W');
  1198. asm
  1199. MOV ESP, EBP
  1200. POP EBP
  1201. JMP [_WNetConnectionDialog1W]
  1202. end;
  1203. end;
  1204. var
  1205. _WNetConnectionDialog1: Pointer;
  1206. function WNetConnectionDialog1;
  1207. begin
  1208. GetProcedureAddress(_WNetConnectionDialog1, mpr, 'WNetConnectionDialog1' + AWSuffix);
  1209. asm
  1210. MOV ESP, EBP
  1211. POP EBP
  1212. JMP [_WNetConnectionDialog1]
  1213. end;
  1214. end;
  1215. var
  1216. _WNetDisconnectDialog1A: Pointer;
  1217. function WNetDisconnectDialog1A;
  1218. begin
  1219. GetProcedureAddress(_WNetDisconnectDialog1A, mpr, 'WNetDisconnectDialog1A');
  1220. asm
  1221. MOV ESP, EBP
  1222. POP EBP
  1223. JMP [_WNetDisconnectDialog1A]
  1224. end;
  1225. end;
  1226. var
  1227. _WNetDisconnectDialog1W: Pointer;
  1228. function WNetDisconnectDialog1W;
  1229. begin
  1230. GetProcedureAddress(_WNetDisconnectDialog1W, mpr, 'WNetDisconnectDialog1W');
  1231. asm
  1232. MOV ESP, EBP
  1233. POP EBP
  1234. JMP [_WNetDisconnectDialog1W]
  1235. end;
  1236. end;
  1237. var
  1238. _WNetDisconnectDialog1: Pointer;
  1239. function WNetDisconnectDialog1;
  1240. begin
  1241. GetProcedureAddress(_WNetDisconnectDialog1, mpr, 'WNetDisconnectDialog1' + AWSuffix);
  1242. asm
  1243. MOV ESP, EBP
  1244. POP EBP
  1245. JMP [_WNetDisconnectDialog1]
  1246. end;
  1247. end;
  1248. var
  1249. _WNetOpenEnumA: Pointer;
  1250. function WNetOpenEnumA;
  1251. begin
  1252. GetProcedureAddress(_WNetOpenEnumA, mpr, 'WNetOpenEnumA');
  1253. asm
  1254. MOV ESP, EBP
  1255. POP EBP
  1256. JMP [_WNetOpenEnumA]
  1257. end;
  1258. end;
  1259. var
  1260. _WNetOpenEnumW: Pointer;
  1261. function WNetOpenEnumW;
  1262. begin
  1263. GetProcedureAddress(_WNetOpenEnumW, mpr, 'WNetOpenEnumW');
  1264. asm
  1265. MOV ESP, EBP
  1266. POP EBP
  1267. JMP [_WNetOpenEnumW]
  1268. end;
  1269. end;
  1270. var
  1271. _WNetOpenEnum: Pointer;
  1272. function WNetOpenEnum;
  1273. begin
  1274. GetProcedureAddress(_WNetOpenEnum, mpr, 'WNetOpenEnum' + AWSuffix);
  1275. asm
  1276. MOV ESP, EBP
  1277. POP EBP
  1278. JMP [_WNetOpenEnum]
  1279. end;
  1280. end;
  1281. var
  1282. _WNetEnumResourceA: Pointer;
  1283. function WNetEnumResourceA;
  1284. begin
  1285. GetProcedureAddress(_WNetEnumResourceA, mpr, 'WNetEnumResourceA');
  1286. asm
  1287. MOV ESP, EBP
  1288. POP EBP
  1289. JMP [_WNetEnumResourceA]
  1290. end;
  1291. end;
  1292. var
  1293. _WNetEnumResourceW: Pointer;
  1294. function WNetEnumResourceW;
  1295. begin
  1296. GetProcedureAddress(_WNetEnumResourceW, mpr, 'WNetEnumResourceW');
  1297. asm
  1298. MOV ESP, EBP
  1299. POP EBP
  1300. JMP [_WNetEnumResourceW]
  1301. end;
  1302. end;
  1303. var
  1304. _WNetEnumResource: Pointer;
  1305. function WNetEnumResource;
  1306. begin
  1307. GetProcedureAddress(_WNetEnumResource, mpr, 'WNetEnumResource' + AWSuffix);
  1308. asm
  1309. MOV ESP, EBP
  1310. POP EBP
  1311. JMP [_WNetEnumResource]
  1312. end;
  1313. end;
  1314. var
  1315. _WNetCloseEnum: Pointer;
  1316. function WNetCloseEnum;
  1317. begin
  1318. GetProcedureAddress(_WNetCloseEnum, mpr, 'WNetCloseEnum');
  1319. asm
  1320. MOV ESP, EBP
  1321. POP EBP
  1322. JMP [_WNetCloseEnum]
  1323. end;
  1324. end;
  1325. var
  1326. _WNetGetResourceParentA: Pointer;
  1327. function WNetGetResourceParentA;
  1328. begin
  1329. GetProcedureAddress(_WNetGetResourceParentA, mpr, 'WNetGetResourceParentA');
  1330. asm
  1331. MOV ESP, EBP
  1332. POP EBP
  1333. JMP [_WNetGetResourceParentA]
  1334. end;
  1335. end;
  1336. var
  1337. _WNetGetResourceParentW: Pointer;
  1338. function WNetGetResourceParentW;
  1339. begin
  1340. GetProcedureAddress(_WNetGetResourceParentW, mpr, 'WNetGetResourceParentW');
  1341. asm
  1342. MOV ESP, EBP
  1343. POP EBP
  1344. JMP [_WNetGetResourceParentW]
  1345. end;
  1346. end;
  1347. var
  1348. _WNetGetResourceParent: Pointer;
  1349. function WNetGetResourceParent;
  1350. begin
  1351. GetProcedureAddress(_WNetGetResourceParent, mpr, 'WNetGetResourceParent' + AWSuffix);
  1352. asm
  1353. MOV ESP, EBP
  1354. POP EBP
  1355. JMP [_WNetGetResourceParent]
  1356. end;
  1357. end;
  1358. var
  1359. _WNetGetResourceInformationA: Pointer;
  1360. function WNetGetResourceInformationA;
  1361. begin
  1362. GetProcedureAddress(_WNetGetResourceInformationA, mpr, 'WNetGetResourceInformationA');
  1363. asm
  1364. MOV ESP, EBP
  1365. POP EBP
  1366. JMP [_WNetGetResourceInformationA]
  1367. end;
  1368. end;
  1369. var
  1370. _WNetGetResourceInformationW: Pointer;
  1371. function WNetGetResourceInformationW;
  1372. begin
  1373. GetProcedureAddress(_WNetGetResourceInformationW, mpr, 'WNetGetResourceInformationW');
  1374. asm
  1375. MOV ESP, EBP
  1376. POP EBP
  1377. JMP [_WNetGetResourceInformationW]
  1378. end;
  1379. end;
  1380. var
  1381. _WNetGetResourceInformation: Pointer;
  1382. function WNetGetResourceInformation;
  1383. begin
  1384. GetProcedureAddress(_WNetGetResourceInformation, mpr, 'WNetGetResourceInformation' + AWSuffix);
  1385. asm
  1386. MOV ESP, EBP
  1387. POP EBP
  1388. JMP [_WNetGetResourceInformation]
  1389. end;
  1390. end;
  1391. var
  1392. _WNetGetUniversalNameA: Pointer;
  1393. function WNetGetUniversalNameA;
  1394. begin
  1395. GetProcedureAddress(_WNetGetUniversalNameA, mpr, 'WNetGetUniversalNameA');
  1396. asm
  1397. MOV ESP, EBP
  1398. POP EBP
  1399. JMP [_WNetGetUniversalNameA]
  1400. end;
  1401. end;
  1402. var
  1403. _WNetGetUniversalNameW: Pointer;
  1404. function WNetGetUniversalNameW;
  1405. begin
  1406. GetProcedureAddress(_WNetGetUniversalNameW, mpr, 'WNetGetUniversalNameW');
  1407. asm
  1408. MOV ESP, EBP
  1409. POP EBP
  1410. JMP [_WNetGetUniversalNameW]
  1411. end;
  1412. end;
  1413. var
  1414. _WNetGetUniversalName: Pointer;
  1415. function WNetGetUniversalName;
  1416. begin
  1417. GetProcedureAddress(_WNetGetUniversalName, mpr, 'WNetGetUniversalName' + AWSuffix);
  1418. asm
  1419. MOV ESP, EBP
  1420. POP EBP
  1421. JMP [_WNetGetUniversalName]
  1422. end;
  1423. end;
  1424. var
  1425. _WNetGetUserA: Pointer;
  1426. function WNetGetUserA;
  1427. begin
  1428. GetProcedureAddress(_WNetGetUserA, mpr, 'WNetGetUserA');
  1429. asm
  1430. MOV ESP, EBP
  1431. POP EBP
  1432. JMP [_WNetGetUserA]
  1433. end;
  1434. end;
  1435. var
  1436. _WNetGetUserW: Pointer;
  1437. function WNetGetUserW;
  1438. begin
  1439. GetProcedureAddress(_WNetGetUserW, mpr, 'WNetGetUserW');
  1440. asm
  1441. MOV ESP, EBP
  1442. POP EBP
  1443. JMP [_WNetGetUserW]
  1444. end;
  1445. end;
  1446. var
  1447. _WNetGetUser: Pointer;
  1448. function WNetGetUser;
  1449. begin
  1450. GetProcedureAddress(_WNetGetUser, mpr, 'WNetGetUser' + AWSuffix);
  1451. asm
  1452. MOV ESP, EBP
  1453. POP EBP
  1454. JMP [_WNetGetUser]
  1455. end;
  1456. end;
  1457. var
  1458. _WNetGetProviderNameA: Pointer;
  1459. function WNetGetProviderNameA;
  1460. begin
  1461. GetProcedureAddress(_WNetGetProviderNameA, mpr, 'WNetGetProviderNameA');
  1462. asm
  1463. MOV ESP, EBP
  1464. POP EBP
  1465. JMP [_WNetGetProviderNameA]
  1466. end;
  1467. end;
  1468. var
  1469. _WNetGetProviderNameW: Pointer;
  1470. function WNetGetProviderNameW;
  1471. begin
  1472. GetProcedureAddress(_WNetGetProviderNameW, mpr, 'WNetGetProviderNameW');
  1473. asm
  1474. MOV ESP, EBP
  1475. POP EBP
  1476. JMP [_WNetGetProviderNameW]
  1477. end;
  1478. end;
  1479. var
  1480. _WNetGetProviderName: Pointer;
  1481. function WNetGetProviderName;
  1482. begin
  1483. GetProcedureAddress(_WNetGetProviderName, mpr, 'WNetGetProviderName' + AWSuffix);
  1484. asm
  1485. MOV ESP, EBP
  1486. POP EBP
  1487. JMP [_WNetGetProviderName]
  1488. end;
  1489. end;
  1490. var
  1491. _WNetGetNetworkInformationA: Pointer;
  1492. function WNetGetNetworkInformationA;
  1493. begin
  1494. GetProcedureAddress(_WNetGetNetworkInformationA, mpr, 'WNetGetNetworkInformationA');
  1495. asm
  1496. MOV ESP, EBP
  1497. POP EBP
  1498. JMP [_WNetGetNetworkInformationA]
  1499. end;
  1500. end;
  1501. var
  1502. _WNetGetNetworkInformationW: Pointer;
  1503. function WNetGetNetworkInformationW;
  1504. begin
  1505. GetProcedureAddress(_WNetGetNetworkInformationW, mpr, 'WNetGetNetworkInformationW');
  1506. asm
  1507. MOV ESP, EBP
  1508. POP EBP
  1509. JMP [_WNetGetNetworkInformationW]
  1510. end;
  1511. end;
  1512. var
  1513. _WNetGetNetworkInformation: Pointer;
  1514. function WNetGetNetworkInformation;
  1515. begin
  1516. GetProcedureAddress(_WNetGetNetworkInformation, mpr, 'WNetGetNetworkInformation' + AWSuffix);
  1517. asm
  1518. MOV ESP, EBP
  1519. POP EBP
  1520. JMP [_WNetGetNetworkInformation]
  1521. end;
  1522. end;
  1523. var
  1524. _WNetGetLastErrorA: Pointer;
  1525. function WNetGetLastErrorA;
  1526. begin
  1527. GetProcedureAddress(_WNetGetLastErrorA, mpr, 'WNetGetLastErrorA');
  1528. asm
  1529. MOV ESP, EBP
  1530. POP EBP
  1531. JMP [_WNetGetLastErrorA]
  1532. end;
  1533. end;
  1534. var
  1535. _WNetGetLastErrorW: Pointer;
  1536. function WNetGetLastErrorW;
  1537. begin
  1538. GetProcedureAddress(_WNetGetLastErrorW, mpr, 'WNetGetLastErrorW');
  1539. asm
  1540. MOV ESP, EBP
  1541. POP EBP
  1542. JMP [_WNetGetLastErrorW]
  1543. end;
  1544. end;
  1545. var
  1546. _WNetGetLastError: Pointer;
  1547. function WNetGetLastError;
  1548. begin
  1549. GetProcedureAddress(_WNetGetLastError, mpr, 'WNetGetLastError' + AWSuffix);
  1550. asm
  1551. MOV ESP, EBP
  1552. POP EBP
  1553. JMP [_WNetGetLastError]
  1554. end;
  1555. end;
  1556. var
  1557. _MultinetGetConnectionPerfA: Pointer;
  1558. function MultinetGetConnectionPerformanceA;
  1559. begin
  1560. GetProcedureAddress(_MultinetGetConnectionPerfA, mpr, 'MultinetGetConnectionPerformanceA');
  1561. asm
  1562. MOV ESP, EBP
  1563. POP EBP
  1564. JMP [_MultinetGetConnectionPerfA]
  1565. end;
  1566. end;
  1567. var
  1568. _MultinetGetConnectionPerfW: Pointer;
  1569. function MultinetGetConnectionPerformanceW;
  1570. begin
  1571. GetProcedureAddress(_MultinetGetConnectionPerfW, mpr, 'MultinetGetConnectionPerformanceW');
  1572. asm
  1573. MOV ESP, EBP
  1574. POP EBP
  1575. JMP [_MultinetGetConnectionPerfW]
  1576. end;
  1577. end;
  1578. var
  1579. _MultinetGetConnectionPerf: Pointer;
  1580. function MultinetGetConnectionPerformance;
  1581. begin
  1582. GetProcedureAddress(_MultinetGetConnectionPerf, mpr, 'MultinetGetConnectionPerformance' + AWSuffix);
  1583. asm
  1584. MOV ESP, EBP
  1585. POP EBP
  1586. JMP [_MultinetGetConnectionPerf]
  1587. end;
  1588. end;
  1589. {$ELSE}
  1590. function WNetAddConnectionA; external mpr name 'WNetAddConnectionA';
  1591. function WNetAddConnectionW; external mpr name 'WNetAddConnectionW';
  1592. function WNetAddConnection; external mpr name 'WNetAddConnection' + AWSuffix;
  1593. function WNetAddConnection2A; external mpr name 'WNetAddConnection2A';
  1594. function WNetAddConnection2W; external mpr name 'WNetAddConnection2W';
  1595. function WNetAddConnection2; external mpr name 'WNetAddConnection2' + AWSuffix;
  1596. function WNetAddConnection3A; external mpr name 'WNetAddConnection3A';
  1597. function WNetAddConnection3W; external mpr name 'WNetAddConnection3W';
  1598. function WNetAddConnection3; external mpr name 'WNetAddConnection3' + AWSuffix;
  1599. function WNetCancelConnectionA; external mpr name 'WNetCancelConnectionA';
  1600. function WNetCancelConnectionW; external mpr name 'WNetCancelConnectionW';
  1601. function WNetCancelConnection; external mpr name 'WNetCancelConnection' + AWSuffix;
  1602. function WNetCancelConnection2A; external mpr name 'WNetCancelConnection2A';
  1603. function WNetCancelConnection2W; external mpr name 'WNetCancelConnection2W';
  1604. function WNetCancelConnection2; external mpr name 'WNetCancelConnection2' + AWSuffix;
  1605. function WNetGetConnectionA; external mpr name 'WNetGetConnectionA';
  1606. function WNetGetConnectionW; external mpr name 'WNetGetConnectionW';
  1607. function WNetGetConnection; external mpr name 'WNetGetConnection' + AWSuffix;
  1608. function WNetRestoreConnectionA; external mpr name 'WNetRestoreConnectionA';
  1609. function WNetRestoreConnectionW; external mpr name 'WNetRestoreConnectionW';
  1610. function WNetRestoreConnection; external mpr name 'WNetRestoreConnection' + AWSuffix;
  1611. function WNetUseConnectionA; external mpr name 'WNetUseConnectionA';
  1612. function WNetUseConnectionW; external mpr name 'WNetUseConnectionW';
  1613. function WNetUseConnection; external mpr name 'WNetUseConnection' + AWSuffix;
  1614. function WNetConnectionDialog; external mpr name 'WNetConnectionDialog';
  1615. function WNetDisconnectDialog; external mpr name 'WNetDisconnectDialog';
  1616. function WNetConnectionDialog1A; external mpr name 'WNetConnectionDialog1A';
  1617. function WNetConnectionDialog1W; external mpr name 'WNetConnectionDialog1W';
  1618. function WNetConnectionDialog1; external mpr name 'WNetConnectionDialog1' + AWSuffix;
  1619. function WNetDisconnectDialog1A; external mpr name 'WNetDisconnectDialog1A';
  1620. function WNetDisconnectDialog1W; external mpr name 'WNetDisconnectDialog1W';
  1621. function WNetDisconnectDialog1; external mpr name 'WNetDisconnectDialog1' + AWSuffix;
  1622. function WNetOpenEnumA; external mpr name 'WNetOpenEnumA';
  1623. function WNetOpenEnumW; external mpr name 'WNetOpenEnumW';
  1624. function WNetOpenEnum; external mpr name 'WNetOpenEnum' + AWSuffix;
  1625. function WNetEnumResourceA; external mpr name 'WNetEnumResourceA';
  1626. function WNetEnumResourceW; external mpr name 'WNetEnumResourceW';
  1627. function WNetEnumResource; external mpr name 'WNetEnumResource' + AWSuffix;
  1628. function WNetCloseEnum; external mpr name 'WNetCloseEnum';
  1629. function WNetGetResourceParentA; external mpr name 'WNetGetResourceParentA';
  1630. function WNetGetResourceParentW; external mpr name 'WNetGetResourceParentW';
  1631. function WNetGetResourceParent; external mpr name 'WNetGetResourceParent' + AWSuffix;
  1632. function WNetGetResourceInformationA; external mpr name 'WNetGetResourceInformationA';
  1633. function WNetGetResourceInformationW; external mpr name 'WNetGetResourceInformationW';
  1634. function WNetGetResourceInformation; external mpr name 'WNetGetResourceInformation' + AWSuffix;
  1635. function WNetGetUniversalNameA; external mpr name 'WNetGetUniversalNameA';
  1636. function WNetGetUniversalNameW; external mpr name 'WNetGetUniversalNameW';
  1637. function WNetGetUniversalName; external mpr name 'WNetGetUniversalName' + AWSuffix;
  1638. function WNetGetUserA; external mpr name 'WNetGetUserA';
  1639. function WNetGetUserW; external mpr name 'WNetGetUserW';
  1640. function WNetGetUser; external mpr name 'WNetGetUser' + AWSuffix;
  1641. function WNetGetProviderNameA; external mpr name 'WNetGetProviderNameA';
  1642. function WNetGetProviderNameW; external mpr name 'WNetGetProviderNameW';
  1643. function WNetGetProviderName; external mpr name 'WNetGetProviderName' + AWSuffix;
  1644. function WNetGetNetworkInformationA; external mpr name 'WNetGetNetworkInformationA';
  1645. function WNetGetNetworkInformationW; external mpr name 'WNetGetNetworkInformationW';
  1646. function WNetGetNetworkInformation; external mpr name 'WNetGetNetworkInformation' + AWSuffix;
  1647. function WNetGetLastErrorA; external mpr name 'WNetGetLastErrorA';
  1648. function WNetGetLastErrorW; external mpr name 'WNetGetLastErrorW';
  1649. function WNetGetLastError; external mpr name 'WNetGetLastError' + AWSuffix;
  1650. function MultinetGetConnectionPerformanceA; external mpr name 'MultinetGetConnectionPerformanceA';
  1651. function MultinetGetConnectionPerformanceW; external mpr name 'MultinetGetConnectionPerformanceW';
  1652. function MultinetGetConnectionPerformance; external mpr name 'MultinetGetConnectionPerformance' + AWSuffix;
  1653. {$ENDIF DYNAMIC_LINK}
  1654. end.