private static INTERNET_PER_CONN_OPTION QueryOption(INTERNET_PER_CONN_OptionEnum optionValue) { INTERNET_PER_CONN_OPTION[] options = new INTERNET_PER_CONN_OPTION[1]; options[0].dwOption = (int)optionValue; ExecuteAction(options, (optionList, size) => { bool result = InternetQueryOption(IntPtr.Zero, INTERNET_OPTION.INTERNET_OPTION_PER_CONNECTION_OPTION, ref optionList, ref size); if (result) { IntPtr current = optionList.pOptions; for (int i = 0; i < options.Length; i++) { options[i] = (INTERNET_PER_CONN_OPTION)Marshal.PtrToStructure(current, typeof(INTERNET_PER_CONN_OPTION)); current = (IntPtr)((int)current + Marshal.SizeOf(options[i])); } } return(result); }); INTERNET_PER_CONN_OPTION option = options[0]; return(option); }
private static INTERNET_PER_CONN_OPTION QueryOption(INTERNET_PER_CONN_OptionEnum optionValue) { INTERNET_PER_CONN_OPTION[] options = new INTERNET_PER_CONN_OPTION[1]; options[0].dwOption = (int)optionValue; ExecuteAction(options, (optionList, size) => { bool result = InternetQueryOption(IntPtr.Zero, INTERNET_OPTION.INTERNET_OPTION_PER_CONNECTION_OPTION, ref optionList, ref size); if (result) { IntPtr current = optionList.pOptions; for (int i = 0; i < options.Length; i++) { options[i] = (INTERNET_PER_CONN_OPTION)Marshal.PtrToStructure(current, typeof(INTERNET_PER_CONN_OPTION)); current = (IntPtr)((int)current + Marshal.SizeOf(options[i])); } } return result; }); INTERNET_PER_CONN_OPTION option = options[0]; return option; }