Rediger

version-independent ProgID Key

Associates a ProgID with a CLSID. This key is used to determine the latest version of an object application.

Registry Entry

HKEY_LOCAL_MACHINE\SOFTWARE\Classes
   <version-independent ProgID>
      CurVer = ProgID

Remarks

The HKEY_LOCAL_MACHINE\SOFTWARE\Classes key corresponds to the HKEY_CLASSES_ROOT key, which was retained for compatibility with earlier versions of COM.

The format for <version-independent ProgID> is <program>.<component>, separated by periods, no spaces, and no version number. The version-independent ProgID, like the ProgID, can be registered with a human-readable name.

ProgID is the ProgID of the latest installed version of the class.

Applications must register a version-independent programmatic identifier under the version-independent ProgID key. The version-independent ProgID refers to the application's class and does not change from version to version, instead remaining constant across all versions--for example, Microsoft Word Document. It is used with macro languages and refers to the currently installed version of the application's class. The version-independent ProgID must correspond to the name of the latest version of the object application.

For example, the version-independent ProgID is used when a container application creates a chart or table with a toolbar button. In this situation, the application can use the version-independent ProgID to determine the latest version of the needed object application.

The version-independent ProgID is stored and maintained solely by application code. When given the version-independent ProgID, the CLSIDFromProgID function returns the CLSID of the current version.

You can use CLSIDFromProgID and ProgIDFromCLSID to convert between these two representations.

You can use IOleObject::GetUserType or OleRegGetUserType to change the identifier to a displayable string.

If a custom handler is not used, the entry should be set to OLE32.DLL, as shown in the following example:

HKEY_CLASSES_ROOT\CLSID\{00000402-0000-0000-C000-000000000046}
   InprocHandler = ole32.dll

CLSIDFromProgID

ProgIDFromCLSID

<ProgID> Key