\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
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
\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
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
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
{\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