OSDN Git Service

プロキシの自動設定をバージョン9の方法に戻す
[kancollesniffer/KancolleSniffer.git] / KancolleSniffer / SystemProxy.cs
index aeeb032..bcc47d3 100644 (file)
 \r
 using System;\r
 using System.Runtime.InteropServices;\r
-\r
-// ReSharper disable UnusedMember.Local\r
-\r
-// ReSharper disable InconsistentNaming\r
+using FILETIME = System.Runtime.InteropServices.ComTypes.FILETIME;\r
 \r
 namespace KancolleSniffer\r
 {\r
     public class SystemProxy\r
     {\r
-        private InternetPerConnOptionList orgList;\r
+        private InternetPerConnOptionList _orgList;\r
         private string _currentUrl;\r
 \r
         private void SaveSettings()\r
         {\r
-            if (orgList.dwSize != 0)\r
+            if (_orgList.dwSize != 0)\r
                 return;\r
             var opts = new[]\r
             {\r
@@ -46,11 +43,11 @@ namespace KancolleSniffer
             if (InternetQueryOption(IntPtr.Zero, InternetOption.INTERNET_OPTION_PER_CONNECTION_OPTION,\r
                 ref list, ref listSize))\r
             {\r
-                orgList = list;\r
+                _orgList = list;\r
             }\r
         }\r
 \r
-        public void SetAutoProxyUrl(string url)\r
+        public void SetAutoConfigUrl(string url)\r
         {\r
             SaveSettings();\r
             var flagValue = new InternetPerConnOptionValue {dwValue = (int)PerConnFlags.PROXY_TYPE_AUTO_PROXY_URL};\r
@@ -81,30 +78,30 @@ namespace KancolleSniffer
 \r
         public void RestoreSettings()\r
         {\r
-            if (orgList.dwSize == 0)\r
+            if (_orgList.dwSize == 0)\r
                 return;\r
             var size = Marshal.SizeOf(typeof(InternetPerConnOption));\r
             var urlOpt = (InternetPerConnOption)\r
-                Marshal.PtrToStructure((IntPtr)((long)orgList.pOptions + size), typeof(InternetPerConnOption));\r
-            var orgUrl = Marshal.PtrToStringAuto(urlOpt.Value.pszValue);\r
+                Marshal.PtrToStructure((IntPtr)((long)_orgList.pOptions + size), typeof(InternetPerConnOption));\r
+            var orgUrl = Marshal.PtrToStringUni(urlOpt.Value.pszValue);\r
             if (orgUrl == _currentUrl) // The restoration was sikipped or failed at last time.\r
             {\r
                 // Unselect the Use automatic configration script check box.\r
                 var flagsOpt =\r
-                    (InternetPerConnOption)Marshal.PtrToStructure(orgList.pOptions, typeof(InternetPerConnOption));\r
+                    (InternetPerConnOption)Marshal.PtrToStructure(_orgList.pOptions, typeof(InternetPerConnOption));\r
                 flagsOpt.Value.dwValue &= ~(int)PerConnFlags.PROXY_TYPE_AUTO_PROXY_URL;\r
-                Marshal.StructureToPtr(flagsOpt, orgList.pOptions, false);\r
+                Marshal.StructureToPtr(flagsOpt, _orgList.pOptions, false);\r
             }\r
-            var listSize = orgList.dwSize;\r
+            var listSize = _orgList.dwSize;\r
             var listBuff = Marshal.AllocCoTaskMem(listSize);\r
-            Marshal.StructureToPtr(orgList, listBuff, false);\r
+            Marshal.StructureToPtr(_orgList, listBuff, false);\r
             InternetSetOption(IntPtr.Zero, InternetOption.INTERNET_OPTION_PER_CONNECTION_OPTION, listBuff, listSize);\r
             Refresh();\r
 \r
             Marshal.FreeCoTaskMem(listBuff);\r
             Marshal.FreeHGlobal(urlOpt.Value.pszValue);\r
-            Marshal.FreeCoTaskMem(orgList.pOptions);\r
-            orgList.dwSize = 0;\r
+            Marshal.FreeCoTaskMem(_orgList.pOptions);\r
+            _orgList.dwSize = 0;\r
         }\r
 \r
         private IntPtr MarshalOptions(InternetPerConnOption[] opts)\r
@@ -124,15 +121,15 @@ namespace KancolleSniffer
             InternetSetOption(IntPtr.Zero, InternetOption.INTERNET_OPTION_PROXY_SETTINGS_CHANGED, IntPtr.Zero, 0);\r
         }\r
 \r
-        [DllImport("WinInet.dll", SetLastError = true, CharSet = CharSet.Auto)]\r
+        [DllImport("WinInet.dll", CharSet = CharSet.Unicode)]\r
         private static extern bool InternetQueryOption(IntPtr hInternet, InternetOption dwOption,\r
             ref InternetPerConnOptionList optionList, ref int lpdwBufferLength);\r
 \r
-        [DllImport("WinInet.dll", SetLastError = true, CharSet = CharSet.Auto)]\r
+        [DllImport("WinInet.dll", CharSet = CharSet.Unicode)]\r
         private static extern bool InternetSetOption(IntPtr hInternet, InternetOption dwOption,\r
             IntPtr lpBuffer, int dwBufferLength);\r
 \r
-        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]\r
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]\r
         private struct InternetPerConnOptionList\r
         {\r
             public int dwSize;\r
@@ -140,9 +137,9 @@ namespace KancolleSniffer
             public int dwOptionCount;\r
             public int dwOptionError;\r
             public IntPtr pOptions;\r
-        };\r
+        }\r
 \r
-        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]\r
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]\r
         private struct InternetPerConnOption\r
         {\r
             public PerConnOption dwOption;\r
@@ -154,9 +151,12 @@ namespace KancolleSniffer
         {\r
             [FieldOffset(0)] public int dwValue;\r
             [FieldOffset(0)] public IntPtr pszValue;\r
-            [FieldOffset(0)] public System.Runtime.InteropServices.ComTypes.FILETIME ftValue;\r
+            [FieldOffset(0)] public FILETIME ftValue;\r
         }\r
 \r
+// ReSharper disable UnusedMember.Local\r
+// ReSharper disable InconsistentNaming\r
+\r
         private enum InternetOption : uint\r
         {\r
             INTERNET_OPTION_REFRESH = 0x00000025,\r