okie Functions

Cookies are a means by which, under HTTP protocol, a server or a script can maintain state information on the client workstation. The Win32 Internet functions have implemented a persistent cookie database for this purpose.

Cookie functions are provided for users of Win32 Internet functions in order to set cookies into, and access them from, the cookie database. The caller of these functions should be familiar with cookies as outlined in ftp://ds.internic.net/internet-drafts/draft-ietf-http-state-mgmt-*.txt.

Please note that the implementation of these functions is evolving; be cautious when using them.

InternetGetCookie

BOOL InternetGetCookie(

IN LPCSTR lpszUrlName,

IN LPCSTR lpszCookieName, OUT LPSTR lpszCookieData, IN OUT LPDWORD lpdwSize

);

Returns cookies for the specified URL and all its parent URLs.

  • Returns TRUE if successful, or FALSE otherwise. To get the specific error value, call GetLastError . The following error values apply to InternetGetCookie :
Value Description

ERROR_NO_MORE_ITEMS There is no cookie for the specified URL and all its parents.

ERROR_INSUFFICIENT_BUFFER The value passed in lpdwSize is insufficient to copy all the cookie data. The value returned in lpdwSize is the size of the buffer necessary to get all the data.

lpszUrlName

Address of a string that contains the URL to get cookies for.

lpszCookieName

Address of the name of the cookie to get for the specified URL. This has not been implemented in this release.

lpszCookieData

Address of the buffer that receives the cookie data. This value can be NULL.

lpdwSize

Address of a variable that specifies the size of the lpszCookieData buffer. If the function succeeds, the buffer receives the amount of data copied to the lpszCookieData buffer. If lpCookieData is NULL, this parameter receives a value that specifies the size of the buffer necessary to copy all the cookie data.

No call to InternetOpen is required to use this function. InternetGetCookie checks in the windows\cookies directory for cookies and searches memory for any cookies that do not have an expiration date, since these cookies are not written to any files. Rules for creating cookie files are internal to Win32 Internet functions and may change in the future.

InternetSetCookie

BOOL InternetSetCookie(

IN LPCSTR lpszUrlName,

IN LPCSTR lpszCookieName, IN LPCSTR lpszCookieData

);

Sets a cookie on the specified URL.

  • Returns TRUE if successful, or FALSE otherwise. To get the specific error code, call GetLastError .
lpszUrlname

Address of a null-terminated string that specifies the URL for which the cookie should be set.

lpszCookieName

Address of a string that contains the name to associate with the cookie. If this parameter is NULL, no name is associated with the cookie. This parameter is not implemented in this release and should be set to NULL.

lpszCookieData

Address of the actual data to associate with the URL.

Creating a new cookie may cause a dialog box to appear on the screen if the appropriate registry value is set. There is no way to change the registry value from a Win32 Internet function.