The File types page defines the file types (shell associations) and MIME types that must be registered for your product. It is organized in a Windows Explorer-like fashion: on the left is a tree that represents the file and MIME types and on the right the contents of the currently selected file or MIME type are shown in a list.
The Windows shell uses the various items on the File types page as follows:
File extension -> File type (ProgID, unversioned) -> File type (ProgID, versioned) -> Display name, Icon, Shell verbs, etc.
File type #1 File extension #1 File extension #2 ...more file extensions... Shell verb #1 Shell verb #2 ...more shell verbs... File type #2 File extension #1 File extension #2 ...more file extensions... Shell verb #1 Shell verb #2 ...more shell verbs...
Installation and removal of file types
Installation and removal of file types and their associated file extensions and shell verbs is controlled by components. However, in contrast to most other component-controlled installation items, file types, file extensions, and shell verbs are interrelated. To ensure correct installation and removal, InstallMate therefore applies some additional rules as summarised in the following table.
|Item||Not linked to component||Linked to component|
|Installed if any of its extensions or shell verbs are installed.||Installed if its component is installed, or if any of its extensions or shell verbs are installed. This allows installation of a file type either independently or in conjunction with its dependents.|
|File extension||Installed if its file type is installed.||Installed if its component is installed.|
|Shell verb||Installed if its executable is installed.||Installed if its component is installed.|
Taken together, these rules allow great flexibility during file type registration. For example, you can:
- Make file extension or shell verb installation optional (by specifying separate components for each);
- Install different executables to handle different shell verbs (e.g., one executable to view and another to edit);
- Associate multiple file extensions with a file type and allow each extension's installation to be controlled by a different component.
In the simplest case you do not link any of the file types, extensions, or shell verbs to a component. In that case, the shell verbs will be installed if their executables are installed; as a side effect all associated file types and their file extensions are also installed automatically.
For more fine-grained control you link one or more shell verbs or file extensions to their own components (and through that, to features), which allows installation-time control over the file extensions and shell verbs that are installed. This is useful if you want to make file extension or shell verb associations subject to the customer's preferences.
File type, file extension, and shell verb removal is the opposite of installation; it follows the removal of the components that caused installation in the first place, either directly or indirectly.