## Structures

This list identifies the Win32 Internet function data structures and their uses.

### GOPHER_ATTRIBUTE_TYPE

    typedef struct {
        DWORD CategoryId
        DWORD AttributeId
        union {
            GOPHER_ADMIN_ATTRIBUTE Admin;
            GOPHER_MOD_DATE_ATTRIBUTE ModDate;
            GOPHER_SCORE_ATTRIBUTE Score;
            GOPHER_SCORE_RANGE_ATTRIBUTE ScoreRange;
            GOPHER_SITE_ATTRIBUTE Site;
            GOPHER_ORGANIZATION_ATTRIBUTE Organization;
            GOPHER_LOCATION_ATTRIBUTE Location;
            GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE GeographicalLocation;
            GOPHER_TIMEZONE_ATTRIBUTE TimeZone;
            GOPHER_PROVIDER_ATTRIBUTE Provider;
            GOPHER_VERSION_ATTRIBUTE Version;
            GOPHER_ABSTRACT_ATTRIBUTE Abstract;
            GOPHER_VIEW_ATTRIBUTE View;
            GOPHER_VERONICA_ATTRIBUTE Veronica;
            GOPHER_ASK_ATTRIBUTE_TYPE Ask;
            GOPHER_UNKNOWN_ATTRIBUTE Unknown;
        } AttributeType;
    } GOPHER_ATTRIBUTE_TYPE, *LPGOPHER_ATTRIBUTE_TYPE;

Contains the relevant information of a single Gopher attribute for an object.

CategoryId
  Gopher name for the attribute. The possible values include:

  GOPHER_CATEGORY_ID_ALL
  GOPHER_CATEGORY_ID_INFO
  GOPHER_CATEGORY_ID_ADMIN
  GOPHER_CATEGORY_ID_VIEWS
  GOPHER_CATEGORY_ID_ABSTRACT
  GOPHER_CATEGORY_ID_VERONICA
  GOPHER_CATEGORY_ID_UNKNOWN

AttributeId
  Identifier of the structure contained in the AttributeType member. The possible values include:

  GOPHER_ATTRIBUTE_ID_ADMIN
  GOPHER_ATTRIBUTE_ID_MOD_DATE
  GOPHER_ATTRIBUTE_ID_TTL
  GOPHER_ATTRIBUTE_ID_SCORE
  GOPHER_ATTRIBUTE_ID_RANGE
  GOPHER_ATTRIBUTE_ID_SITE
  GOPHER_ATTRIBUTE_ID_ORG
  GOPHER_ATTRIBUTE_ID_LOCATION
  GOPHER_ATTRIBUTE_ID_GEOG
  GOPHER_ATTRIBUTE_ID_TIMEZONE
  GOPHER_ATTRIBUTE_ID_PROVIDER
  GOPHER_ATTRIBUTE_ID_VERSION
  GOPHER_ATTRIBUTE_ID_ABSTRACT
  GOPHER_ATTRIBUTE_ID_VIEW
  GOPHER_ATTRIBUTE_ID_TREEWALK
  GOPHER_ATTRIBUTE_ID_UNKNOWN

AttributeType
  Actual setting for the Gopher attribute. The specific value of AttributeType depends on the AttributeId member. The definitions of the various attribute structures is available in Wininet.h.

See also GopherGetAttribute

### GOPHER_FIND_DATA

    typedef struct {
        TCHAR DisplayString[MAX_GOPHER_DISPLAY_TEXT + 1];
        DWORD GopherType;
        DWORD SizeLow;
        DWORD SizeHigh;
        FILETIME LastModificationTime;
        TCHAR Locator[MAX_GOPHER_LOCATOR_LENGTH + 1];
    } GOPHER_FIND_DATA, FAR *LPGOPHER_FIND_DATA;

Contains information retrieved by the GopherFindFirstFile and InternetFindNextFile functions.

DisplayString
  String that contains the friendly name of an object. An application can display this string to allow the user to select the object.
GopherType
  Mask of flags that describe the item returned.
FileSizeLow
  Low 32 bits of the file size.
FileSizeHigh
  High 32 bits of the file size.
LastModificationTime
  Time when the file was last modified.
Locator
  String that identifies the file. An application can pass the locator string to GopherOpenFile or GopherFindFirstFile.

See also GopherFindFirstFile

### INTERNET_ASYNC_RESULT

    typedef struct {
        DWORD dwResult;
        DWORD dwError;
    } INTERNET_ASYNC_RESULT, * LPINTERNET_ASYNC_RESULT;

Contains the result of a call to an asynchronous function. This structure is used with the InternetStatusCallback function.

dwResult
  HINTERNET, DWORD, or BOOL return code from an asynchronous function.
dwError
  Error code if dwResult indicates that the function failed. If the operation succeeded, this member usually contains ERROR_SUCCESS.

See also InternetStatusCallback

### INTERNET_CACHE_ENTRY_INFO

    typedef struct _CACHE_ENTRY_INFO {
        DWORD dwStructSize;
        LPSTR lpszSourceUrlName;
        LPTSTR lpszLocalFileName;
        DWORD CacheEntryType;
        DWORD dwUseCount;
        DWORD dwHitRate;
        DWORD dwSizeLow;
        DWORD dwSizeHigh;
        FILETIME LastModifiedTime;
        FILETIME ExpireTime;
        FILETIME LastAccessTime;
        FILETIME LastSyncTime;
        LPBYTE lpHeaderInfo;
        DWORD dwHeaderInfoSize;
        LPTSTR lpszFileExtension;
        DWORD dwReserved;
    } INTERNET_CACHE_ENTRY_INFO, *LPINTERNET_CACHE_ENTRY_INFO;

Contains information about an entry in the cache.

dwStructSize
  Size, in bytes, of this structure.
lpszSourceUrlName
  Address of a string that contains the URL name. The string occupies memory area at the end of this structure.
lpszLocalFileName
  Address of a string that contains the local file name. The string occupies memory area at the end of this structure.
CacheEntryType
  Cache type bit mask. Can be one of these values:

  Value | Meaning
  NORMAL_CACHE_ENTRY | Normal cache entry; may be deleted to recover space for new entries.
  STABLE_CACHE_ENTRY | Stable cache entry such as graphic and audio/video files; may be deleted to recover space for the new entries only when there is no more NORMAL_CACHE_ENTRY.
  STICKY_CACHE_ENTRY | Entries that will never be removed automatically by the cache management system.
  SPARSE_CACHE_ENTRY | This cache entry is incomplete.
  OCX_CACHE_ENTRY | Special OCX type cache entry.

dwUseCount
  Current user count of the cache entry.
dwHitRate
  Number of times the cache entry was retrieved.
dwSizeLow
  Low-order double word of the file size.
dwSizeHigh
  High-order double word of the file size.
LastModifiedTime
  Last modified time of this URL in GMT format.
ExpireTime
  Expiration time of this file in GMT format.
LastAccessTime
  Last accessed time in GMT format.
LastSyncTime
  Last time the cache was synchronized.
lpHeaderInfo
  Address of a buffer that contains the header information. The buffer occupies memory at the end of this structure.
dwHeaderInfoSize
  Size of the lpHeaderInfo buffer.
lpszFileExtension
  Address of a string that contains the file extension used to retrieve the data as a file. The string occupies memory area at the end of this structure.
dwReserved
  Reserved; must be zero.

The MAX_CACHE_ENTRY_INFO_SIZE value defines the maximum size of the INTERNET_CACHE_ENTRY_INFO structure that could be returned by the implementation of the cache functions. Thus passing in a buffer of this size in functions returning INTERNET_CACHE_ENTRY_INFO guarantees that the function does not fail because of an insufficient buffer.

### INTERNET_CERTIFICATE_INFO

    typedef struct {
        FILETIME ftExpiry;
        FILETIME ftStart;
        LPTSTR lpszSubjectInfo;
        LPTSTR lpszIssuerInfo;
        LPTSTR lpszProtocolName;
        LPTSTR lpszSignatureAlgName;
        LPTSTR lpszEncryptionAlgName;
        DWORD dwKeySize;
    } INTERNET_CERTIFICATE_INFO, * LPINTERNET_CERTIFICATE_INFO;

Contains certificate information returned from the server. This structure is used by the InternetQueryOption function.

ftExpiry
  FILETIME structure that contains the date the certificate expires.
ftStart
  FILETIME structure that contains the date the certificate becomes valid.
lpszSubjectInfo
  Address of a buffer that contains the name of the organization, site, and server for which the certificate was issued.
lpszIssuerInfo
  Address of a buffer that contains the name of the organization, site, and server that issued the certificate.
lpszProtocolName
  Address of a buffer that contains the name of the protocol used to provide the secure connection.
lpszSignatureAlgName
  Address of a buffer that contains the name of the algorithm used for signing the certificate.
lpszEncryptionAlgName
  Address of a buffer that contains the name of the algorithm used for doing encryption over the secure channel (SSL/PCT) connection.
dwKeySize
  Size, in bytes, of the key.

Applications requesting this information must free pointers that are allocated and placed in the returned structure.

See also InternetQueryOption

### INTERNET_PREFETCH_STATUS

    typedef struct {
        DWORD dwStatus;
        DWORD dwSize;
    } INTERNET_PREFETCH_STATUS, * LPINTERNET_PREFETCH_STATUS;

Contains the status of a prefetch download operation.

dwStatus
  Status of the download. Can be one of these values:

  INTERNET_PREFETCH_PROGRESS | The operation is in progress.
  INTERNET_PREFETCH_COMPLETE | The operation has completed.
  INTERNET_PREFETCH_ABORTED | The operation was aborted.

dwSize
  Size, in bytes, of data downloaded so far.

### INTERNET_PROXY_INFO

    typedef struct {
        DWORD dwAccessType;
        LPCTSTR lpszProxy;
        LPCTSTR lpszProxyBypass;
    } INTERNET_PROXY_INFO, * LPINTERNET_PROXY_INFO;

Contains information that is supplied with the INTERNET_OPTION_PROXY value to get or set proxy information on a handle obtained from a call to the InternetOpen function.

dwAccessType
  Access type. Can be one of these values:

  Value | Meaning
  INTERNET_OPEN_TYPE_DIRECT | Internet accessed through a direct connection.
  INTERNET_OPEN_TYPE_PROXY | Internet accessed using a proxy.
  INTERNET_OPEN_TYPE_PRECONFIG | Applies only when setting proxy information.

lpszProxy
  Proxy server list.
lpszProxyBypass
  Proxy bypass list.

### INTERNET_SCHEME

    typedef enum {
        INTERNET_SCHEME_PARTIAL = -2,
        INTERNET_SCHEME_UNKNOWN = -1,
        INTERNET_SCHEME_DEFAULT = 0,
        INTERNET_SCHEME_FTP,
        INTERNET_SCHEME_GOPHER,
        INTERNET_SCHEME_HTTP,
        INTERNET_SCHEME_HTTPS,
        INTERNET_SCHEME_FILE,
        INTERNET_SCHEME_NEWS,
        INTERNET_SCHEME_MAILTO,
        INTERNET_SCHEME_FIRST = INTERNET_SCHEME_FTP,
        INTERNET_SCHEME_LAST = INTERNET_SCHEME_MAILTO
    } INTERNET_SCHEME, * LPINTERNET_SCHEME;

Defines the flags used with the nScheme member of the URL_COMPONENTS structure.

### INTERNET_VERSION_INFO

    typedef struct {
        DWORD dwMajorVersion;
        DWORD dwMinorVersion;
    } INTERNET_VERSION_INFO, * LPINTERNET_VERSION_INFO;

Contains the version number of the DLL that contains the Windows Internet functions (Wininet.dll). This structure is used when passing the INTERNET_OPTION_VERSION flag to the InternetQueryOption function.

dwMajorVersion
  Major version number.
dwMinorVersion
  Minor version number.

### URL_COMPONENTS

    typedef struct {
        DWORD dwStructSize;
        LPSTR lpszScheme;
        DWORD dwSchemeLength;
        INTERNET_SCHEME nScheme;
        LPSTR lpszHostName;
        DWORD dwHostNameLength;
        INTERNET_PORT nPort;
        LPSTR lpszUserName;
        DWORD dwUserNameLength;
        LPSTR lpszPassword;
        DWORD dwPasswordLength'
        LPSTR lpszUrlPath;
        DWORD dwUrlPathLength;
        LPTSTR lpszExtraInfo;
        DWORD dwExtraInfoLength;
    } URL_COMPONENTS;

Contains the constituent parts of a URL. This structure is used with the InternetCrackUrl and InternetCreateUrl functions.

dwStructSize
  Size, in bytes, of this structure. Used for version checking.
lpszScheme
  Address of a buffer that contains the scheme name.
dwSchemeLength
  Length of the scheme name.
nScheme
  Enumerated scheme type (if known). For a list of scheme types, see INTERNET_SCHEME.
lpszHostName
  Address of a buffer that contains the host name.
dwHostNameLength
  Length of the host name.
nPort
  Converted port number.
lpszUserName
  Address of a buffer that contains the user name.
dwUserNameLength
  Length of the user name.
lpszPassword
  Address of a buffer that contains the password.
dwPasswordLength
  Length of the password.
lpszUrlPath
  Address of a buffer that contains the URL path.
dwUrlPathLength
  Length of the URL path.
lpszExtraInfo
  Address of a buffer that contains the extra information (for example, ?foo or #foo).
dwExtraInfoLength
  Length of the extra information.

For InternetCrackUrl, if a pointer member and its corresponding length member are both zero, that component is not returned. If the pointer member is NULL but the length member is not zero, both the pointer and length members are returned. If both pointer and corresponding length members are non-zero, the pointer member points to a buffer where the component is copied. The component may be un-escaped, depending on the dwFlags parameter of InternetCrackUrl.

For InternetCreateUrl, the pointer members should be NULL if the component is not required. If the corresponding length member is zero, the pointer member is the address of a zero-terminated string. If the length member is not zero, it is the string length of the corresponding pointer member

© 1996 Microsoft Corporation