Introduction to Internet Component Download

Note  Open Software Description (OSD) and Channel Definition Format (CDF) are obsolete as of Windows Internet Explorer 7 and should not be used. A signed .cab file and information (INF) file or .exe is still the preferred method of downloading components from the Internet.


Internet Component Download is a system service for downloading and installing software from Web sites on the Internet and intranets. This service also provides certificate checking. Internet Component Download is supported by Microsoft Internet Explorer 3.0 and later.

You, the software provider or Web master, can "package" components and place them on your Web servers for download. When users visit your Web site, Internet Component Download enables their browsers to pull down and install the programs.

  • Key Terms and Concepts
  • Requirements
  • Benefits
  • Sample Uses
  • How It's Done
  • Other Considerations
  • Related topics

Key Terms and Concepts

"Internet" and "download" are widely recognized terms, but there has been some confusion over what exactly is meant by the word "component" in this context. So first of all, what is a component?

  • Component

    A Web-bound software distribution package usually describes the smallest installable component: a Microsoft ActiveX Control (.ocx), a .dll, an .exe, a Java class file, or an applet.

  • Packaging

    Code authors need to package their software components for automatic download. The packaging mechanism is usually a cabinet file addressed by the CODEBASE attribute of an OBJECT element on a Web page.

  • Cabinet File

    The cabinet format provides an efficient way to package multiple files. The key features of the cabinet format are that multiple files may be stored in a single cabinet file (.cab) and that data compression is performed across file boundaries, significantly improving the compression ratio.

    Cabinet files are used to reduce file size and therefore the associated download time for Web content. This is essentially the same technology that has been used for years to compress software distributed on disks.

    Microsoft supplies the Cabinet Software Development Kit containing tools a developer can use to build .cab files.

    Cabinet files should be digitally signed.

  • Signing

    Code received through the Internet lacks shrink-wrapped packaging and store clerks to vouch for its reliability. Users are understandably wary when they're asked to download software from the Internet.

    Digital signatures associate a software vendor's name with a given file, providing accountability for software developers. A signature reassures your users by creating a path from them to you if your software harms their systems.

    When a user's security level is set at the default level, any object identified by the OBJECT tag on a Web page must be digitally signed. Windows Internet Explorer's default security setting won't install a component that doesn't have a digital signature.

    For additional information about signing, see Signing and Checking Code with Authenticode.

    You can purchase digital signatures from a certificate authority, a company that validates your identity and issues a certificate for you.

  • Certificate

    A certificate is a set of data that identifies a software distributor. Certificates are issued (and renewed) by a third party certification authority that verifies the software distributor's identity. The certification authority may also provide the tools you need to digitally sign your components. Your digital certificate is included with all components you digitally sign.

  • INF File

    An information file (.inf) provides installation instructions that Internet Explorer uses to install and register your software, as well as any files required by your software.

    An INF file consists of any number of named sections, each containing one or more items. Each section has a particular purpose—for example, to copy files or add entries to the registry. Each of the items in a section contributes to the purpose of the section.

    For more information about INF files, see Using INF Files.

  • OSD File

    OSD is an XML vocabulary that uses text markup to describe software components and their relationships to other components—their versions, their underlying structures, and their dependence on other components.

    For more information about OSD files, see the Introduction to Open Software Description.


Several significant advances have been made since Internet Component Download was first introduced with Internet Explorer 3.0. Internet software distributors should keep in mind that users browsing distribution sites with Internet Explorer 3.0 are only able to use distribution combinations that include .cab, .exe, and INF files. OSD support began in Microsoft Internet Explorer 4.0.

Catalog files are used to avoid multiple trust dialog boxes when users download software components from the Internet. They are supported by Microsoft Internet Explorer 5 and later.

To better understand how differences between versions of Internet Explorer impact your software packaging decision, see Choosing a Packaging and Distribution Method.


Users and developers benefit from Internet Component Download. Internet Component Download provides easier setup and maintenance, improving the overall user experience. With Internet Component Download, developers get fast, worldwide distribution of their software for a fraction of the cost associated with distributing shrink-wrapped software.

  • Easy Installation

    Component Download services enable users to easily download and deploy software from the Internet and intranets. Users no longer need to install new software manually.

  • Faster Distribution

    Users want access to the newest software versions. Developers want to reduce time-to-market. By taking advantage of Internet Component Download services, users get instantaneous access to software and updates. For developers, Internet Component download provides a considerably faster alternative to shipping shrink-wrapped software in trucks.

    Compress your software in a cabinet file for faster download. Add a Software Update Channel and you can instantly notify users when new versions of your software are available.

  • Global Distribution

    Publish your software to a local Web server and distribute it internationally. With an OSD file, you can set language dependencies for your distribution units. The OSD vocabulary allows you to deliver only the localized versions of components and controls. For example, if the German language version the user wants is not available yet, the OSD vocabulary provides a way to enable the user to download and preview a version that is available.

  • Total Cost of Ownership

    Internet Component Download is an integral part of Microsoft's goal of reducing the total cost of PC ownership. Automatic, hands-free software installation saves users valuable time and improves their overall experience.

    Using existing networks for software distribution eliminates the costs associated with producing, packaging, and distributing CD-ROMs and floppies. You can pass these savings on to end users.

Sample Uses

Internet Component Download services work equally well for worldwide Internet and corporate intranet distribution.

  • Internet

    Software vendors can use Internet Component Download to enable visitors to their Web sites to download and install software. Internet Component Download is an economical alternative to shrink-wrapped software distribution for fast, worldwide software distribution.

  • Intranet

    Corporate entities can use Internet Component Download services to distribute software over intranets. Software and updates can be efficiently deployed on all the computers in a company using existing intranet hardware and cabling.

    You can add the functionality of a Software Update Channel to automate the process even more. When a new version of the software is available, the information systems manager or network administrator can advertise the update.

How It's Done

Making your software component available for Internet download is essentially a three-step process:

  1. Create the software.

  2. Decide how you want to package and distribute your software.

    Internet Component Download provides four primary distribution methods. You can choose from a single executable file (.exe), a distribution unit, a stand-alone INF file, and an OSD file. You may also choose to sign, mark as safe, and/or license your component. The criteria for choosing which distribution option is most appropriate for your component are discussed in Choosing a Packaging and Distribution Method.

  3. Reference the software distribution package from a page on your Web site.

    Your component is usually addressed by the CODEBASE attribute of an OBJECT tag on a Web page.

Other Considerations

There are just a few more things for you to be aware of:

  • Security First

    Another way to assure users of the reliability of your downloadable components is to mark them safe for scripting and initialization. Digital signing attaches your name to your component but does not ensure that your code is hazard-free.

    Marking your control safe for scripting tells users that you deliberately designed the control so that there's no way a script on an HTML page can cause harm to their computers. It also tells users that scripts on an HTML page won't be able to obtain information that the users haven't supplied willingly. Marking your control safe for initialization lets users know there's no way an HTML author can harm their computers by feeding your control invalid data when the page initializes it.

    The following articles provide more information about control security.

  • Licensing

    Licensed components can be used on the World Wide Web. Licensing protects your development investment. When you add licensing support to your components, a license key is compiled into it. This key covers the entire component.

    When a developer purchases your ActiveX control component, for example, and runs your setup program, the license transfers the license key to another computer's registry, allowing your control to be used for development. Simply copying your file to another computer and registering it does not transfer the license key, so the control cannot be used.

  • Software Update Channels

    Software Update Channels provide you with a utility for distributing updates automatically. CDF and OSD are the two XML vocabularies that combine to make software update channels possible. Software Update Channels provide developers with a utility for automatically distributing updates over the Internet and intranets. For more information about Software Update Channels, see Introduction to Software Update Channels.

  • Install on Demand

    The Install on Demand feature of Internet Explorer 5 was created to reduce the size of the Internet Explorer download package. It is not related to Internet Component Download. Install on Demand is used internally by Internet Explorer 5 and later to add features that aren't included with the minimum installation. Neither Install on Demand nor Active Setup can be used to add custom components.


Introduction to Software Update Channels

About Version Changes

Using INF Files

About OSD File Architecture

Microsoft Internet Component Download Reference

Open Software Description Element Reference

About URL Monikers

How to Package Components for Internet Distribution

How to Automatically Update an ActiveX Control

Publishing Application Updates on the Web