@msdn=http://search.microsoft.com/search/results.aspx?qu=$$$ @pinvoke=http://pinvoke.net/$$$.htm Summary: The RasSetEntryProperties function changes the connection information for an entry in the phone book or creates a new phone-book entry. !!!!C# Signature: /// <summary> /// Changes the connection information for an entry in the phone book or creates a new phone-book entry. /// </summary> /// <param name="lpszPhonebook">Pointer to a null-terminated string that specifies the full path and file name of a phone-book (PBK) file. /// If this parameter is NULL, the function uses the current default phone-book file.</param> /// <param name="lpszEntry">Pointer to a null-terminated string that specifies an entry name. /// If the entry name matches an existing entry, RasSetEntryProperties modifies the properties of that entry. /// If the entry name does not match an existing entry, RasSetEntryProperties creates a new phone-book entry.</param> /// <param name="lpRasEntry">Pointer to the RASENTRY structure that specifies the connection data to associate with the phone-book entry.</param> /// <param name="dwEntryInfoSize">Specifies the size, in bytes, of the buffer identified by the lpRasEntry parameter.</param> /// <param name="lpbDeviceInfo">This parameter is unused. The calling function should set this parameter to NULL.</param> /// <param name="dwDeviceInfoSize">This parameter is unused. The calling function should set this parameter to zero.</param> /// <returns></returns> [DllImport("rasapi32.dll", SetLastError = true, CharSet = CharSet.Auto)] private static extern Uint RasSetEntryProperties( string lpszPhonebook, string lpszEntry, ref RASENTRY lpRasEntry, int dwEntryInfoSize, IntPtr lpbDeviceInfo, int dwDeviceInfoSize); !!!!VB Signature: Declare Function RasSetEntryProperties Lib "rasapi32.dll" (TODO) As TODO !!!!User-Defined Types: [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode, Pack = 4)] public struct RASENTRY { public int dwSize; public int dwfOptions; public int dwCountryID; public int dwCountryCode; [MarshalAs(UnmanagedType.ByValTStr,SizeConst = (int) RasFieldSizeConstants.RAS_MaxAreaCode+1)] public string szAreaCode; [MarshalAs(UnmanagedType.ByValTStr,SizeConst = (int) RasFieldSizeConstants.RAS_MaxPhoneNumber+1)] public string szLocalPhoneNumber; public int dwAlternateOffset; public RASIPADDR ipaddr; public RASIPADDR ipaddrDns; public RASIPADDR ipaddrDnsAlt; public RASIPADDR ipaddrWins; public RASIPADDR ipaddrWinsAlt; public int dwFrameSize; public int dwfNetProtocols; public int dwFramingProtocol; [MarshalAs(UnmanagedType.ByValTStr,SizeConst = (int) MAX_PATH)] public string szScript; [MarshalAs(UnmanagedType.ByValTStr,SizeConst = (int) MAX_PATH)] public string szAutodialDll; [MarshalAs(UnmanagedType.ByValTStr,SizeConst = (int) MAX_PATH)] public string szAutodialFunc; [MarshalAs(UnmanagedType.ByValTStr,SizeConst = (int) RasFieldSizeConstants.RAS_MaxDeviceType + 1)] public string szDeviceType; [MarshalAs(UnmanagedType.ByValTStr,SizeConst = (int) RasFieldSizeConstants.RAS_MaxDeviceName + 1)] public string szDeviceName; [MarshalAs(UnmanagedType.ByValTStr,SizeConst = (int) RasFieldSizeConstants.RAS_MaxPadType + 1)] public string szX25PadType; [MarshalAs(UnmanagedType.ByValTStr,SizeConst = (int) RasFieldSizeConstants.RAS_MaxX25Address + 1)] public string szX25Address; [MarshalAs(UnmanagedType.ByValTStr,SizeConst = (int) RasFieldSizeConstants.RAS_MaxFacilities + 1)] public string szX25Facilities; [MarshalAs(UnmanagedType.ByValTStr,SizeConst = (int) RasFieldSizeConstants.RAS_MaxUserData + 1)] public string szX25UserData; public int dwChannels; public int dwReserved1; public int dwReserved2; public int dwSubEntries; public int dwDialMode; public int dwDialExtraPercent; public int dwDialExtraSampleSeconds; public int dwHangUpExtraPercent; public int dwHangUpExtraSampleSeconds; public int dwIdleDisconnectSeconds; public int dwType; public int dwEncryptionType; public int dwCustomAuthKey; public Guid guidId; [MarshalAs(UnmanagedType.ByValTStr,SizeConst = (int) MAX_PATH)] public string szCustomDialDll; public int dwVpnStrategy; public int dwfOptions2; public int dwfOptions3; [MarshalAs(UnmanagedType.ByValTStr,SizeConst = (int) RasFieldSizeConstants.RAS_MaxDnsSuffix)] public string szDnsSuffix; public int dwTcpWindowSize; [MarshalAs(UnmanagedType.ByValTStr,SizeConst = (int) MAX_PATH)] public string szPrerequisitePbk; [MarshalAs(UnmanagedType.ByValTStr,SizeConst = (int) RasFieldSizeConstants.RAS_MaxEntryName)] public string szPrerequisiteEntry; public int dwRedialCount; public int dwRedialPause; RASIPV6ADDR ipv6addrDns; RASIPV6ADDR ipv6addrDnsAlt; public int dwIPv4InterfaceMetric; public int dwIPv6InterfaceMetric; RASIPV6ADDR ipv6addr; public int dwIPv6PrefixLength; public int dwNetworkOutageTime; } public struct RASIPADDR { byte a; byte b; byte c; byte d; } public struct RASIPV6ADDR { byte a; byte b; byte c; byte d; byte e; byte f; } public enum RasEntryOptions { RASEO_UseCountrAndAreaCodes = 0x00000001, RASEO_SpecificIpAddr = 0x00000002, RASEO_SpecificNameServers = 0x00000004, RASEO_IpHeaderCompression = 0x00000008, RASEO_RemoteDefaultGateway = 0x00000010, RASEO_DisableLcpExtensions = 0x00000020, RASEO_TerminalBeforeDial = 0x00000040, RASEO_TerminalAfterDial = 0x00000080, RASEO_ModemLights = 0x00000100, RASEO_SwCompression = 0x00000200, RASEO_RequireEncrptedPw = 0x00000400, RASEO_RequireMsEncrptedPw = 0x00000800, RASEO_RequireDataEncrption = 0x00001000, RASEO_NetworkLogon = 0x00002000, RASEO_UseLogonCredentials = 0x00004000, RASEO_PromoteAlternates = 0x00008000, RASEO_SecureLocalFiles = 0x00010000, RASEO_RequireEAP = 0x00020000, RASEO_RequirePAP = 0x00040000, RASEO_RequireSPAP = 0x00080000, RASEO_Custom = 0x00100000, RASEO_PreviewPhoneNumber = 0x00200000, RASEO_SharedPhoneNumbers = 0x00800000, RASEO_PreviewUserPw = 0x01000000, RASEO_PreviewDomain = 0x02000000, RASEO_ShowDialingProgress = 0x04000000, RASEO_RequireCHAP = 0x08000000, RASEO_RequireMsCHAP = 0x10000000, RASEO_RequireMsCHAP2 = 0x20000000, RASEO_RequireW95MSCHAP = 0x40000000 } public enum RasEntryOptions2 { None = 0x0, SecureFileAndPrint = 0x1, SecureClientForMSNet = 0x2, DoNotNegotiateMultilink = 0x4, DoNotUseRasCredentials = 0x8, UsePreSharedKey = 0x10, Internet = 0x20, DisableNbtOverIP = 0x40, UseGlobalDeviceSettings = 0x80, ReconnectIfDropped = 0x100, SharePhoneNumbers = 0x200, SecureRoutingCompartment = 0x400, UseTypicalSettings = 0x800, IPv6SpecificNameServer = 0x1000, IPv6RemoteDefaultGateway = 0x2000, RegisterIPWithDns = 0x4000, UseDnsSuffixForRegistration = 0x8000, IPv4ExplicitMetric = 0x10000, IPv6ExplicitMetric = 0x20000, DisableIkeNameEkuCheck = 0x40000, DisableClassBasedStaticRoute = 0x80000, IPv6SpecificAddress = 0x100000, DisableMobility = 0x200000, RequireMachineCertificates = 0x400000 } public enum RasEntryTypes { RASET_Phone = 1, RASET_Vpn = 2, RASET_Direct = 3, RASET_Internet = 4 } public enum RasEntryEncryption { ET_None = 0, ET_Require = 1, ET_RequireMax = 2, ET_Optional = 3 } public enum RasNetProtocols { RASNP_NetBEUI = 0x00000001, RASNP_Ipx = 0x00000002, RASNP_Ip = 0x00000004, RASNP_Ipv6 = 0x00000008 } public enum RasFramingProtocol { RASFP_Ppp = 0x00000001, RASFP_Slip = 0x00000002, RASFP_Ras = 0x00000004 } !!!!Alternative Managed API: http://www.codeplex.com/DotRas !!!!Notes: None. !!!!Tips & Tricks: Call RasGetEntryProperties beforehand, passing to it a null RASENTRY to get the correct buffer size (dwEntryInfoSize below). uint dwEntryInfoSize = 0; uint i = RasGetEntryProperties(null, "", IntPtr.Zero, ref dwEntryInfoSize, IntPtr.Zero, IntPtr.Zero); !!!!Sample Code: /// <summary> /// Create or modify network connection. /// </summary> /// <param name="connectionName">Name of the network connection to create or modify.</param> /// <param name="rasEntryStructure">RASENTRY structure containing connection settings.</param> /// <returns>Enumerated RASERROR</returns> public static RasError SetEntryProperties(string connectionName, RASENTRY rasEntryStructure) { return (RasError)RasSetEntryProperties(null, connectionName, ref rasEntryStructure, Marshal.SizeOf(rasEntryStructure), IntPtr.Zero, 0); } Documentation: http://msdn.microsoft.com/en-us/library/aa377827(VS.85).aspx
Edit rasapi32.rasseten...
You do not have permission to change this page. If you feel this is in error, please send feedback with the contact link on the main page.