[This is preliminary documentation and subject to change]

## Browscap.ini File

You can declare property definitions for any number of browsers in the Browscap.ini file. You can also set default values to use if the client's browser is not one of the listed definitions.

For each browser definition, you provide an HTTP User Agent header and the properties and values you wish to associate with that header. For more information on the format of the HTTP User Agent header, refer to the HTTP specification available at the World Wide Web Consortium Web site.

After you change the Browscap.ini File, the IIS Services may need to be restarted to pick up the change

###### Syntax

[; comments]

[HTTPUserAgentHeader]

[parent = browserDefinition]

[property1 = value1]

...

[propertyN = valueN]

[Default Browser Capability Settings]

[defaultProperty1 = defaultValue1]

...

[defaultPropertyN = defaultValueN]

###### Parameters

comments
  Any line that starts with a semicolon (;). Comments, which are ignored by the BrowserType object, can occur anywhere in the Browscap.ini file.
HTTPUserAgentHeader
  Specifies the HTTP User Agent header to associate with the browser-property value statements specified in propertyN. The Browscap.ini file may contain multiple browser definitions, each one starting with a unique HTTPUserAgentHeader value.

  You can use the asterisk (*) character as a wildcard character in HTTPUserAgentHeader to replace zero or more characters and the (?) character as a wildcard to replace a single character.

  For example, if you specified the following string for HTTPUserAgentHeader:

`[Mozilla/4.0 (compatible; MSIE 5.0;* Windows NT)]`

``

It would match all of the following User Agent headers:

`[Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)]`

`[Mozilla/4.0 (compatible; MSIE 5.0; AK; Windows NT)]`

`[Mozilla/4.0 (compatible; MSIE 5.0; SK; Windows NT)]`

Note The BrowserType object first attempts to match the HTTP User Agent header to a value of HTTPUserAgentHeader exactly. If that fails, it attempts to make a match that uses wildcard characters.

If more than one browser definition containing wildcard characters matches the User Agent header, the BrowserType object returns the properties of the definition which most closely matches the User Agent header. The closest match is the match which replaces the fewest characters.

browserDefinition
  An optional parameter specifying the HTTP User Agent header-string of a browser to use as the parent browser. The current browser's definition will inherit all of the property values declared in the parent browser's definition. This helps define properties for a new version of a browser, because new versions usually retain most of the properties of the previous release. These inherited property values can be overwritten by explicitly setting a new value for the property by using the syntax propertyN = valueN.
propertyN
  An optional parameter specifying the name of the browser property to set. It must start with an alphabetic character and cannot be longer than 255 characters. Each browser definition in the Browscap.ini file can contain as many statements of property values as needed. For example, if your application only needed to know whether or not a user's browser supported VBScript, you would only need one property statement for each browser definition.

  The following table lists some possible properties:

  Property | Description
  ActiveXControls | Specifies whether the browser supports ActiveX® controls.
  Backgroundsounds | Specifies whether the browser supports background sounds.
  Beta | Specifies whether the browser is beta software.
  Browser | Specifies the name of the browser.
  Cdf | Specifies whether the browser supports the Channel Definition Format for Webcasting.
  Cookies | Specifies whether the browser supports cookies.
  Frames | Specifies whether the browser supports frames.
  Javaapplets | Specifies whether the browser supports Java applets.
  Javascript | Specifies whether the browser supports JScript.
  Platform | Specifies the platform that the browser runs on.
  Tables | Specifies whether the browser supports tables.
  Vbscript | Specifies whether the browser supports VBScript.
  Version | Specifies the version number of the browser.

valueN
  An optional parameter specifying the value of propertyN. This value is a string by default. To specify an integer, prefix the value with a number sign (#). To specify a Boolean value, use TRUE or FALSE.
defaultPropertyN
  An optional parameter specifying the name of the browser property to which to assign a default value if none of the defined HTTPUserAgentHeader values match the HTTP User Agent header sent by the browser.
defaultValueN
  An optional parameter specifying the value of defaultPropertyN. This value is a string by default. To specify an integer, prefix the value with a number sign (#). To specify a Boolean value, use TRUE or FALSE.

###### Example

In the following example, the parent tag allows the second browser definition to inherit from the first, so that the Microsoft® Internet Explorer 5.x definition inherits all the properties of Microsoft® Internet Explorer 5.0 definition (for example, `frames=TRUE`, `tables=TRUE`, and `cookies=TRUE`). It adds platform-specific information by adding the line, `platform=WinNT`.

--- BrowsCap.ini ---

    ;;ie 5.0
    [IE 5.0]
    browser=IE
    Version=5.0
    majorver=#5
    minorver=#0
    frames=TRUE
    tables=TRUE
    cookies=TRUE
    backgroundsounds=TRUE
    vbscript=TRUE
    javascript=TRUE
    javaapplets=True
    ActiveXControls=TRUE
    Win16=False
    beta=False
    AK=False
    SK=False
    AOL=False

    ;;ie 5.x
    [Mozilla/4.0 (compatible; MSIE 5.*; Windows NT)]
    parent=IE 5.0
    version=5.0
    minorver=0
    platform=WinNT

    ; Default Browser
    [*]
    browser=Default
    frames=FALSE
    tables=TRUE
    cookies=FALSE
    backgroundsounds=FALSE
    vbscript=FALSE
    javascript=FALSE

© 1997-2001 Microsoft Corporation. All rights reserved.