HOWTO: Set and Get Cookies for a URL Using WinInet APIs

ID: Q196062


The information in this article applies to:
  • Microsoft Visual Basic Professional and Enterprise Editions for Windows, versions 5.0, 6.0


SUMMARY

From a Visual Basic application, you can set and get cookies on a client that corresponds to a given URL by using the InternetSetCookie and InternetGetCookie APIs from the WinInet.dll.


MORE INFORMATION

  1. Create a new standard .exe project in Visual Basic. Form1 is created by default.


  2. Add the following controls to Form1:
    
          Control           Name           Caption
          --------------------------------------------------
          Command Button    Command1       InternetSetCookie
          Command Button    Command2       InternetGetCookie
     


  3. In Form1, add the following code in the code window:
    
          Option Explicit
    
          ' No more data is available.
          Const ERROR_NO_MORE_ITEMS = 259
    
          ' The data area passed to a system call is too small.
          Const ERROR_INSUFFICIENT_BUFFER = 122
    
          Private Declare Function InternetSetCookie Lib "wininet.dll" _
           Alias "InternetSetCookieA" _
           (ByVal lpszUrlName As String, _
           ByVal lpszCookieName As String, _
           ByVal lpszCookieData As String) As Boolean
    
          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
    
          Private Sub Command1_Click()
           Dim bRet As Boolean
           bRet = InternetSetCookie("http://xxxx/xxxx.htm", _
            "Test", "Sent as Test via VB")
           If bRet = False Then
               MsgBox "Failed"
           End If
          End Sub
    
          Private Sub Command2_Click()
            Dim sCookieVal As String * 256
            Dim bRet As Boolean
            bRet = InternetGetCookie("http://xxxx/xxxx.htm", _
             "Test", sCookieVal, 255)
            If bRet = False Then
              MsgBox "Failed"
            Else
              MsgBox sCookieVal
            End If
          End Sub 



REFERENCES

For more information on the WinInet APIs (and specifically the InternetSetCookie and InternetGetCookie functions), please see the WinInet documentation in the MSDN library and the following Web sites:

WinInet.dll:

http://www.microsoft.com/workshop/networking/wininet/wininet.asp

Cookie APIs:
http://www.microsoft.com/workshop/networking/wininet/overview/cookie.asp

Keywords : kbAPI kbInternet kbVBp500 kbVBp600 kbWinInet kbInetDev
Version : WINDOWS:5.0,6.0;
Platform :
Issue type : kbhowto


Last Reviewed: May 25, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.