Example #1
0
        static string[] GetBindStringList(NativeMethods.IInternetBindInfo bind, NativeMethods.BINDSTRING kind, int count)
        {
            IntPtr pArray = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(IntPtr)) * count);

            try
            {
                int resultCount = count;

                bind.GetBindString(
                    NativeMethods.BINDSTRING.BINDSTRING_USERAGENT,
                    pArray,
                    count,
                    ref resultCount);

                string[] result = new string[resultCount];
                for (int i = 0; i < resultCount; i++)
                {
                    result[i] = Marshal.PtrToStringUni(
                        Marshal.ReadIntPtr(new IntPtr(pArray.ToInt64() + i)));
                }

                return(result);
            }
            finally
            {
                Marshal.FreeCoTaskMem(pArray);
            }
        }
Example #2
0
 static string GetBindString(NativeMethods.IInternetBindInfo bind, NativeMethods.BINDSTRING kind)
 {
     string[] result = GetBindStringList(bind, kind, 1);
     if (result.Length == 0)
     {
         return(null);
     }
     else
     {
         return(result[0]);
     }
 }
Example #3
0
 static string[] GetBindStringList(NativeMethods.IInternetBindInfo bind, NativeMethods.BINDSTRING kind)
 {
     return(GetBindStringList(bind, kind, 500));
 }