В соответствии с описанием функции в "http://msdn.microsoft.com/en-us/library/cc196998%28v=VS.85%29.aspx", я написал следующий код, чтобы попытаться получить куки, защищенные IE:
public static string GetProtectedModeCookie(string lpszURL, string lpszCookieName, uint dwFlags)
{
var size = 255;
var sb = new System.Text.StringBuilder(size);
var acturalSize = sb.Capacity;
var code = IEGetProtectedModeCookie(lpszURL, lpszCookieName, sb, ref acturalSize, dwFlags);
if ((code & 0x80000000) > 0) return string.Empty;
if (acturalSize > size)
{
sb.EnsureCapacity(acturalSize);
IEGetProtectedModeCookie(lpszURL, lpszCookieName, sb, ref acturalSize, dwFlags);
}
return sb.ToString();
}
[DllImport("ieframe.dll", SetLastError = true)]
public static extern uint IEGetProtectedModeCookie(string lpszURL, string lpszCookieName, System.Text.StringBuilder pszCookieData, ref int pcchCookieData, int dwFlags);
для проверки этой функции:
var cookies = GetProtectedModeCookie("http://bbs.pcbeta.com/", null, 0);
Но API IEGetProtectedModeCookie всегда возвращает 0x80070057 , что указывает на недопустимость одного или нескольких аргументов.
Я был смущен, после многих попыток, наконец, не удалось, только получить этот результат. Кто-нибудь может мне помочь?