InternetGetCookie (wininet)
Last changed: -24.196.238.245

.
Summary
The InternetGetCookie API gets a cookie from the cache for the specified URL.

C# Signature:

[DllImport("wininet.dll", CharSet=CharSet.Auto, SetLastError=true)]
static extern bool InternetGetCookie(string lpszUrlName, string lpszCookieName,
     [Out] string lpszCookieData, [MarshalAs(UnmanagedType.U4)] out int lpdwSize);

VB Signature:

Declare Auto Function InternetGetCookie Lib "wininet.dll" ( _
     ByVal lpszUrlName As String, ByVal lpszCookieName As String, _
     ByVal lpszCookieData As String, ByRef lpdwSize As Integer) As Boolean

User-Defined Types:

None.

Notes:

You can pass null (Nothing in Visual Basic) to the lpszCookieData parameter to get the require buffer size from the lpdwSize parameter.

Tips & Tricks:

Please add some!

Sample Code:

private static CookieContainer GetUriCookieContainer(Uri uri)

{

    CookieContainer cookies = null;
    int datasize = 256;
    StringBuilder cookieData = new StringBuilder(datasize);

    if (!InternetGetCookie(uri.ToString(), null, cookieData, ref datasize))
    {
    if (datasize < 0)
    {
        return null;
    }

    cookieData = new StringBuilder(datasize);

    if (!InternetGetCookie(uri.ToString(), null, cookieData, ref datasize))
        return null;
    }

    if (cookieData.Length > 0)
    {
    cookies = new CookieContainer();
    cookies.SetCookies(uri, cookieData.ToString().Replace(';', ','));
    }

    return cookies;

}

Alternative Managed API:

Do you know one? Please contribute it!

Documentation