Structure of Registry Entries

The following registry structure is required for Quick View to associate a class identifier or filename extension with the class identifier of a file viewer.

HKEY_CLASSES_ROOT

\QuickView

\<extension> = <human-readable document type>

\{<CLSID>} = <human-readable viewer name>

\{<CLSID>} = <human-readable viewer name>

\{<CLSID>} = <human-readable viewer name>

...[More extension entries for additional file types]

...

\CLSID

\{<CLSID>} = <human-readable viewer name>

\InprocServer32 = <full path to file viewer DLL>

= ThreadingModel = "Apartment"

...[More class IDs for file viewers and other object servers]

A description of the registry entries follows.

Entry Description
HKEY_CLASSES_ROOT Root of the registry.
QuickView Top-level key under which associations are stored.
CLSID 16-byte OLE class identifier spelled out in hexadecimal digits in the form of 12345678-1234-1234-1234-1234567890AB with the hyphens included. All class identifiers are surrounded by curly braces when stored in the registry.
human-readable document type String describing the file type associated with the class identifier or filename extension that can be displayed to the user. A file viewer can change the type when it is installed so that the name always reflects the preferred viewer. For example, this string might be "Windows Write Document."
human-readable viewer name String that describes the vendor of the file viewer, as it might be displayed in an About box, such as "Company ABC Write Document Viewer."
<extension> Three-character filename extension with the period, as is consistent with the standard 8.3 filename format ¾ for example, .WRI.

CLSID and InprocServer32 are standard OLE (32-bit) subkey names. The "ThreadingModel = Apartment" entry is required for file viewers. The apartment threading model, which is new for OLE in Windows 95 and Microsoft® Windows NT® version 3.51, allows the OleInitialize and CoInitialize functions to be called from multiple threads.

The QuickView key can have any number of filename extension subkeys, each representing a registered file type. Each filename extension subkey can have one or more class identifier subkeys, each representing a registered file viewer object. The most recently registered file viewer appears first in the list of class identifier subkeys, and it is the first one found when Quick View enumerates the registered file viewers.

Note The file viewer class identifier should always differ from the file type class identifier because the application that created the file may already be using the class identifier to identify the application as a compound document server.

Each class identifier stored under the filename extension subkeys must correspond to an entry of the same class identifier stored under the top-level key called CLSID. This is the standard location for storing information for OLE object servers. For file viewers, there must be an InprocServer32 subkey under the file viewer's class identifier key. The value of the InprocServer32 subkey is the full path to the file viewer DLL. You should store the full path and not depend on the DLL being in the path of the Windows 95 environment. InprocServer32 is a standard OLE subkey where the path to a component object server is stored. Using this subkey allows the Quick View program to use standard OLE member functions to access and create objects from file viewer servers.