WNetAddConnection2 (mpr)
Last changed: -78.237.25.102

.
Summary
The WNetAddConnection2 function makes a connection to a network resource. The function can redirect a local device to the network resource.

The WNetAddConnection2 function supersedes the WNetAddConnection function. If you can pass a handle to a window that the provider of network resources can use as an owner window for dialog boxes, call the WNetAddConnection3 function instead.

C# Signatures:

// This must be used if NETRESOURCE is defined as a struct
[DllImport("mpr.dll")]    
public static extern int WNetAddConnection2(ref NETRESOURCE netResource,
   string password, string username, int flags);

// This must be used if NETRESOURCE is defined as a class
// [DllImport("mpr.dll")]    
// public static extern int WNetAddConnection2(NETRESOURCE netResource,
//  string password, string username, int flags);

[DllImport("mpr.dll")]    
public static extern int WNetAddConnection2( [In] NETRESOURCE netResource, // by cozmo, it only worked for me this way; .NET 1.1, 11.01.2006
   string password, string username, int flags);

VB Signatures:

' This must be used if NETRESOURCE is defined as a struct
Declare Function WNetAddConnection2 Lib "mpr.dll" (ByRef netResource As _
   NETRESOURCE, password As String, Username As String, Flag As Integer) As Integer

' This must be used if NETRESOURCE is defined as a class
Declare Function WNetAddConnection2 Lib "mpr.dll" (netResource As _
   NETRESOURCE, password As String, Username As String, Flag As Integer) As Integer

User-Defined Types:

NETRESOURCE

Notes:

C# Import by Ducky.

C# Sample by Ducky

C# Sample Modified by honglinlee

Tips & Tricks:

Don't forget to add a using for the namespace before referencing the DllImport attribute:

  using System.Runtime.InteropServices;

Sample Code:

C# Sample

NETRESOURCE myNetResource = new NETRESOURCE();        
myNetResource.dwScope = 2;                    
myNetResource.dwType = 1 ;                    
myNetResource.dwDisplayType = 3;            
myNetResource.dwUsage = 1;            
myNetResource.LocalName = "z:";        
myNetResource.RemoteName = @"\servername\sharename";        
myNetResource.Provider = null;        

// int ret = WNetAddConnection2( myNetResource, "username", "password", 0);

int ret = WNetAddConnection2( myNetResource, "password", "username", 0); //by honglinlee

/*
  * if username = null the function uses the default user name
  *    (The user context for the process provides the default user name)
  * if password = null the function uses the current default password
  *    associated with the user specified by the username parameter
  * if password = "" the function does not use a password
  */

Alternative Managed API:

TODO

Documentation