コード例 #1
0
        unsafe void SetProxy(string rpProxy)
        {
            var rInfo = new NativeStructs.INTERNET_PROXY_INFO()
            {
                dwAccessType = NativeConstants.INTERNET_OPEN_TYPE.INTERNET_OPEN_TYPE_PROXY,
                lpszProxy = Marshal.StringToHGlobalAnsi(rpProxy),
                lpszProxyBypass = Marshal.StringToHGlobalAnsi("<local>")
            };

            NativeMethods.WinINet.InternetSetOptionW(IntPtr.Zero, NativeConstants.INTERNET_OPTION.INTERNET_OPTION_PROXY, &rInfo, Marshal.SizeOf(typeof(NativeStructs.INTERNET_PROXY_INFO)));

            Marshal.FreeHGlobal(rInfo.lpszProxy);
            Marshal.FreeHGlobal(rInfo.lpszProxyBypass);
        }
コード例 #2
0
        static void SetProxy(string rpProxy)
        {
            var rInfo = new NativeStructs.INTERNET_PROXY_INFO()
            {
                dwAccessType = 3,
                proxy        = Marshal.StringToHGlobalAnsi(rpProxy),
                proxyBypass  = Marshal.StringToHGlobalAnsi("<local>")
            };
            var rSize   = Marshal.SizeOf(rInfo);
            var rBuffer = Marshal.AllocCoTaskMem(rSize);

            Marshal.StructureToPtr(rInfo, rBuffer, true);
            NativeMethods.WinINet.InternetSetOption(IntPtr.Zero, 38, rBuffer, rSize);

            if (rBuffer != IntPtr.Zero)
            {
                Marshal.FreeCoTaskMem(rBuffer);
            }
        }