What Is a Cabinet (.cab) File?
A cabinet (.cab) file is a library of compressed files stored as a single file. Cabinet files are used to organize installation files that are copied to the user's system. A large compressed file can be spread over several .cab files.
For a number of years, Microsoft has used .cab files to compress software that was distributed on disks. Originally, these files were used to minimize the number of floppy disks shipped with a product. Today, .cab files are used to reduce the file size and the associated download time for Web content that is found on the Internet or on corporate intranet servers.
One file in the cabinet is typically an information (.inf) file, which provides further installation information. The .inf file may refer to files in the .cab as well as to files at other URLs.
The IEAK contains a set of tools that help you build cabinet files and work with IExpress technology.
The Cabinet Format
Each file compressed in a .cab file is stored completely within a single folder. A .cab file may contain one or more folders or portions of a folder. So, even if a compressed file does not fit in one .cab file, it is placed in one folder that spans multiple .cab files. Such a series of .cab files form a set. Each .cab file contains name information for the logically adjacent .cab files.
The .cab format used for downloading Internet Explorer components from the Internet is a non-proprietary format based on Lempel-Ziv compression.
A .cab file can be digitally signed like an ActiveX control. A digital signature provides accountability for software developers. The signature associates a software vendor's name with a given file. A signature can be applied to a .cab file using Authenticode technology.
You can use .cab files to create a better end-user experience, because multiple files are downloaded and then a single certificate is presented to the user. Information about this technology is available from the MSDN Online Web Workshop.
When you mark your control "safe for scripting," users know that a script on an HTML page cannot use your control to cause harm to their computers or to obtain information they have not supplied willingly.
When you mark your control "safe for initialization," users know that there is no way an HTML author can harm their computers by feeding your control invalid data when the page initializes it.
It is possible to use the code-signing tools to sign entire .cab files using a digital certificate.