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