Attribute VB_Name = "GetCookie" Private Declare Function InternetGetCookie Lib "wininet.dll" Alias _ "InternetGetCookieA" (ByVal lpszUrlName As String, _ ByVal lpszCookieName As String, ByVal lpszCookieData As String, _ lpdwSize As Long) As Boolean ' Get locally-stored cookies for a specified URL ' ' If CookieName is omitted, returns all the cookies as ' as semicolon-delimited list of NAME=VALUE pairs Function GetCookies(ByVal URL As String, Optional CookieName As String) As _ String Dim buffer As String Dim length As Long ' prepare the receiving buffer length = 10240 buffer = Space$(length) ' query WinInet for cookies from this URL ' a zero value means failure If InternetGetCookie(URL, vbNullString, buffer, _ length) = 0 Then Exit Function ' LENGHT has received the size of returned data buffer = Left$(buffer, length) If Len(CookieName) = 0 Then ' the entire cookie string was requested GetCookies = buffer Else ' extract one single cookie Dim cookies() As String Dim i As Long, tmp As String ' get the individual cookies cookies = Split(buffer, ";") ' search for the right one For i = 0 To UBound(cookies) ' trim the leading space, if any tmp = LTrim$(cookies(i)) If InStr(1, tmp, CookieName & "=", vbTextCompare) = 1 Then ' we've got it GetCookies = Mid$(tmp, Len(CookieName) + 2) Exit For End If Next End If End Function