Click to return to the Content     
OSD File Architecture     INF File Architecture     Internet Component Downlo...    
Web Workshop  |  Content & Component Delivery

Using INF Files


An information file (.inf) provides installation instructions that the Internet Component Download service provided in Microsoft® Internet Explorer version 3.0 and later uses to install and register software components downloaded from the Internet, as well as any files required by the components. The INF file is a text file that specifies the files that need to be present or downloaded for your component to run.

Internet software distribution units are "packages" consisting of a cabinet file (.cab) that contains an INF file or an OSD file (or both). Distribution units may also contain a software component, such as an ActiveX® Control (.ocx), a .dll, an .exe, a Java class file, or an applet.

When a cabinet file containing an INF file is referenced by the CODEBASE attribute of an OBJECT element, Internet Explorer 3.0 and later automatically treats the cabinet file as a software distribution unit.

Benefits of INF Files

INF files provide the ability to create customized software installation instructions, which include registry entries and destination directories. By pointing to the URLs of files to download, an INF file provides instructions that Internet Explorer uses to install your software components.

The INF file specifies the files that need to be downloaded and set up for the component to run. INF files can provide limited platform independence and specify limited software dependencies.

INF files are compatible with Internet Explorer 3.0 and later. Support for OSD files began with Internet Explorer 4.0.

Complex Setup Instructions

Complex setup instructions, such as for adding/modifying registry entries, creating advanced setup functionality in custom destination directories, and so on, are not possible using OSD syntax alone. An INF file is required for such complex setup functionality.

What is a Hook?

A hook is a way to override or customize the installation process of one or more pieces required for a component. There are two types of hooks—unconditional and conditional. Unconditional hooks are hooks that always get executed. Conditional hooks are run only when a certain condition evaluates as TRUE.

For more information about using hooks in INF files, see When and How to Use Hooks.

Platform Independence and HTTP

When code to be downloaded is on an HTTP server, the HTTP Accept header information can be used to specify which platform the code is to run on, thus allowing platform independence of the CODEBASE URL.

The following MIME types are used to describe portable executable (PE) files (.exe, .dll, .ocx), cabinet files (.cab), and setup scripts (.inf).

File description MIME type
PE files - .exe, .dll, .ocx application/x-pe-%opersys%-%cpu%
Cabinet files - .cab application/x-cabinet-%opersys%-%cpu%
Setup scripts - .inf (platform independent) application/x-setupscript
Macintosh® Binhex files application/mac-binhex-40

%opersys% and %cpu% specify the operating system and CPU for the platform on which downloaded components will be executed. For example, the MIME type for a Win32® cabinet file running on an Intel® x86-architecture processor would be:

application/x-cabinet-win32-x86

The following are valid values for %opersys% and %cpu%.

Valid values for %opersys% Meaning
win32 32-bit Windows® operating systems (like Windows 95 or Windows NT 4.0)
mac Macintosh operating system
<other> Will be defined as necessary
Valid values for %cpu% Meaning
x86 Intel® x86 family of processors
ppc Motorola® PowerPC architecture
mips MIPS® architecture processors
alpha DEC® Alpha architecture
68k Motorola 68k CPU

When the code is on a non-HTTP server (for example, at a local LAN location), an INF file can be used to achieve platform independence by specifying different URLs for files to be downloaded for different platforms.

Platform Independence in INF Files

It is possible to create platform-independent setup scripts that pull files from different locations depending on the desired platform. Internet Component Download INF files use a scheme similar to the one described above in Platform Independence and HTTP. Specifically, a sample platform-independent INF file would include text such as the following:

[circ3.ocx]
; Lines below specify that the specified circ3.ocx (clsid, version) needs to be
; installed on the system. If it doesn't exist already, can be downloaded from
; the given location (a .CAB).
file-win32-x86=file://products/release/circ3/x86/circ3.cab
file-win32-mips=file://products/release/circ3/mips/circ3.cab
file-mac-ppc=ignore
; The 'ignore' keyword means that this file is not needed for this platform. 

clsid={9DBAFCCF-592F-101B-85CE-00608CEC297B}
FileVersion=1,0,0,143

Thus the "file=" syntax used in the INF file is expanded to "file-%opersys%-%cpu =", allowing the INF file to specify multiple locations where various platform-dependent modules can be found and downloaded. See the previous section for valid values for %opersys% and %cpu%.

Related Topics

The following lists contain links to topics related to INF files:

Overviews

References

Tutorials



Back to topBack to top

Did you find this topic useful? Suggestions for other topics? Write us!

© 1999 Microsoft Corporation. All rights reserved. Terms of use.