RegLocator Table

The RegLocator table holds the information needed to search for a file or directory using the registry, or to search for a particular registry entry itself. This table has the following columns.

Column Type Key Nullable
Signature_ Identifier Y N
Root Integer N N
Key RegPath N N
Name Formatted N Y
Type Integer N Y

 

Columns

Signature_

The value in the Signature_ field represents a unique signature that is an external key into column one of the Signature table. If this signature is present in the Signature table, the search is for a file. If this signature is absent from the Signature table, and the value of the Type column is msidbLocatorTypeRawValue, the search is for the registry key name pointed to by the RegLocator table. Otherwise the search is for a directory pointed to by the RegLocator table.

Root

The predefined root key for the registry value.

Constant Hexadecimal Decimal Root key
msidbRegistryRootClassesRoot 0x000 0 HKEY_CLASSES_ROOT
msidbRegistryRootCurrentUser 0x001 1 HKEY_CURRENT_USER
msidbRegistryRootLocalMachine 0x002 2 HKEY_LOCAL_MACHINE
msidbRegistryRootUsers 0x003 3 HKEY_USERS

 

Key

The key for the registry value.

Name

The registry value name. If this value is null, then the value from the key's unnamed or default value, if any, is retrieved.

Type

A value that determines if the registry value is a file name, a directory location, or raw registry value.

The following table lists valid values. Set one of the first three values and msidbLocatorType64bit if necessary. If the entry in this field is absent, Type is set to be 1.

Constant Hexadecimal Decimal Description
msidbLocatorTypeDirectory 0x000 0 Key path is a directory.
msidbLocatorTypeFileName 0x001 1 Key path is a file name.
msidbLocatorTypeRawValue 0x002 2 Key path is a registry value.
msidbLocatorType64bit 0x010 16 Set this bit to have the installer search the 64-bit portion of the registry. Do not set this bit to have the installer search the 32-bit portion of the registry.

 

Remarks

Note that if the value in the Type field is msidbLocatorTypeRawValue, the installer sets the value of the property specified in the Property field of the AppSearch table to the registry value. The installer adds a prefix to the registry value that identifies the type of registry value. For more information about types of registry values, see Registry Value Types.

Registry type Prefix added by Installer
REG_SZ None, but if the first character of the registry value is #, the installer escapes the character by prefixing a another #.
DWORD "#" optionally followed by '+' or '-'
REG_EXPAND_SZ "#%"
REG_MULTI_SZ Null. The installer sets the property to a value beginning with a null and ending with a null.
REG_BINARY "#x" In case of REG_BINARY, the installer converts and saves each hexadecimal digit (nibble) as an ASCII character prefixed by "#x".

 

Typically, the columns in this table are not localized. If an author decides to search for products in multiple languages, then there must be a separate entry included in the table for each language.

Note that it is not possible to use the RegLocator table to check only for the presence of the key. However, you can search for the default value of a key and retrieve its value if it is not empty.

For more information, see Searching for Existing Applications, Files, Registry Entries or .ini File Entries.

Validation

ICE03
ICE06
ICE46
ICE80