Чего вы на самом деле пытаетесь достичь?
Вообще говоря, вам не следует пытаться установить INTERNET_OPTION_CONNECTED_STATE, поскольку он устанавливается системой автоматически и позволяет вам собирать информацию о состоянии сетевого подключения системы.
Обычно вы используете API InternetSetOption таким образом:
// Announce to the world that we've changed the proxy
InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY_SETTINGS_CHANGED, IntPtr.Zero, 0);
// ISSUE: We're using ANSI here because calling functions marshal in ANSI. MSDN suggests that W-versions might not work in older IE versions.
[DllImport("wininet.dll", SetLastError=true, CharSet=CharSet.Ansi)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool InternetSetOption(IntPtr hInternet, int Option, [In] IntPtr buffer, Int32 BufferLength);
Но если вы делаете что-то более сложное, например, настраиваете прокси с помощью INTERNET_PER_CONN_OPTION, вы можете использовать другую сигнатуру, чтобы легче передать требуемую структуру.