InternetSetOption (wininet)
Last changed: -207.236.135.112

.
Summary
TODO - a short description

C# Signature:

[DllImport("wininet.dll", SetLastError = true, CharSet=CharSet.Auto)]
public static extern bool InternetSetOption(IntPtr hInternet, int
dwOption, IntPtr lpBuffer, int dwBufferLength);

VB Signature:

<DllImport("wininet.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Public Shared Function InternetSetOption(hInternet As IntPtr, dwOption As Integer, lpBuffer As IntPtr, dwBufferLength As Integer) As Boolean
End Function

User-Defined Types:

None.

Alternative Managed API:

Do you know one? Please contribute it!

Notes:

For querying current settings use InternetQueryOption.

Tips & Tricks:

Please add some!

Sample Code:

public struct Struct_INTERNET_PROXY_INFO
{
     public int dwAccessType;
     public IntPtr proxy;
     public IntPtr proxyBypass;
};

[DllImport("wininet.dll", SetLastError = true)]
     private static extern bool InternetSetOption(IntPtr hInternet,
     int dwOption,
     IntPtr lpBuffer,
     int lpdwBufferLength);

private void RefreshIESettings(string strProxy)
{
     const int INTERNET_OPTION_PROXY = 38;
     const int INTERNET_OPEN_TYPE_PROXY = 3;  

     Struct_INTERNET_PROXY_INFO struct_IPI;

     // Filling in structure
     struct_IPI.dwAccessType = INTERNET_OPEN_TYPE_PROXY;
     struct_IPI.proxy = Marshal.StringToHGlobalAnsi(strProxy);
     struct_IPI.proxyBypass = Marshal.StringToHGlobalAnsi("local");

     // Allocating memory
     IntPtr intptrStruct = Marshal.AllocCoTaskMem(Marshal.SizeOf(struct_IPI));

     // Converting structure to IntPtr
     Marshal.StructureToPtr(struct_IPI, intptrStruct, true);

     bool iReturn = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY, intptrStruct, Marshal.SizeOf(struct_IPI));
}  

private void SomeFunc()
{
     RefreshIESettings("1.2.3.4:8080");
     //or RefreshIESettings("http://1.2.3.4:8080"); //both worked
     //or RefreshIESettings("http=1.2.3.4:8080"); //both worked

     System.Object nullObject = 0;
     string strTemp = "";
     System.Object nullObjStr = strTemp;
     axWebBrowser1.Navigate("http://willstay.tripod.com", ref nullObject, ref nullObjStr, ref nullObjStr, ref nullObjStr);
}

Documentation