<s:String x:Key="/Default/CodeStyle/CodeCleanup/SilentCleanupProfile/@EntryValue">Default: Reformat Code</s:String>
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_AFTER_TYPECAST_PARENTHESES/@EntryValue">False</s:Boolean>
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_AROUND_MULTIPLICATIVE_OP/@EntryValue">True</s:Boolean>
+ <s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_SIZEOF_PARENTHESES/@EntryValue">False</s:Boolean>
+ <s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_TYPEOF_PARENTHESES/@EntryValue">False</s:Boolean>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=API/@EntryIndexedValue">API</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=FLASHWINFO/@EntryIndexedValue">FLASHWINFO</s:String>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateBlankLinesAroundFieldToBlankLinesAroundProperty/@EntryIndexedValue">True</s:Boolean>
public class SystemProxy\r
{\r
private InternetPerConnOptionList orgList;\r
+ private string currentUrl;\r
+ private int currentFlags;\r
\r
private void SaveSettings()\r
{\r
{\r
SaveSettings();\r
var flagsOpt =\r
- (InternetPerConnOption)Marshal.PtrToStructure(orgList.pOptions, typeof (InternetPerConnOption));\r
- var flagValue = new InternetPerConnOptionValue\r
- {\r
- dwValue = flagsOpt.Value.dwValue | (int)PerConnFlags.PROXY_TYPE_AUTO_PROXY_URL\r
- };\r
+ (InternetPerConnOption)Marshal.PtrToStructure(orgList.pOptions, typeof(InternetPerConnOption));\r
+ currentFlags = flagsOpt.Value.dwValue | (int)PerConnFlags.PROXY_TYPE_AUTO_PROXY_URL;\r
+ var flagValue = new InternetPerConnOptionValue {dwValue = currentFlags};\r
+ currentUrl = url;\r
var urlValue = new InternetPerConnOptionValue {pszValue = Marshal.StringToHGlobalAuto(url)};\r
var opts = new[]\r
{\r
{\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
+ if (orgUrl == currentUrl) // The restoration was skipped or failed at last time.\r
+ {\r
+ // Simply unselect the Use automatic configuration script check box.\r
+ var flagsOpt = new InternetPerConnOption\r
+ {\r
+ dwOption = PerConnOption.INTERNET_PER_CONN_FLAGS,\r
+ Value = new InternetPerConnOptionValue\r
+ {\r
+ dwValue = currentFlags & ~(int)PerConnFlags.PROXY_TYPE_AUTO_PROXY_URL\r
+ }\r
+ };\r
+ Marshal.StructureToPtr(flagsOpt, orgList.pOptions, false);\r
+ }\r
var listSize = orgList.dwSize;\r
var listBuff = Marshal.AllocCoTaskMem(listSize);\r
Marshal.StructureToPtr(orgList, listBuff, false);\r
Refresh();\r
\r
Marshal.FreeCoTaskMem(listBuff);\r
- var size = Marshal.SizeOf(typeof (InternetPerConnOption));\r
- var urlOpt = (InternetPerConnOption)\r
- Marshal.PtrToStructure((IntPtr)((long)orgList.pOptions + size), typeof (InternetPerConnOption));\r
Marshal.FreeHGlobal(urlOpt.Value.pszValue);\r
Marshal.FreeCoTaskMem(orgList.pOptions);\r
orgList.dwSize = 0;\r
\r
private IntPtr MarshalOptions(InternetPerConnOption[] opts)\r
{\r
- var buff = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof (InternetPerConnOption)) * opts.Length);\r
- var size = Marshal.SizeOf(typeof (InternetPerConnOption));\r
+ var buff = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(InternetPerConnOption)) * opts.Length);\r
+ var size = Marshal.SizeOf(typeof(InternetPerConnOption));\r
for (var i = 0; i < opts.Length; i++)\r
{\r
var ptr = (IntPtr)((long)buff + (i * size));\r