Uninformed: Informative Information for the Uninformed

Vol 9» 2008.Jan


Besides the long and rather hard to memorize CLSID there is often a second way of instantiating a certain control. This can be accomplished through the use of a control's program ID (progID). Quite similar to IP addresses and the domain name system(DNS), progIDs can be looked up to determine the matching CLSID. Once the right one has been determined, Internet Explorer goes on as if the CLSID had been provided in the first place.

For this technique to work for a given control, two requirements must be met. First, a control must have a ProgID subkey under their CLSID key in the register. ProgIDs are usually in the form Program.Component.Version such as SafeWia.Script.1. Second, as there is no point for Windows to walk through up to 2700 CLSIDs(in my example) to find the specified ProgID, the program ID itself must have a key in HKEY_CLASSES_ROOT with a subkey named CLSID which describes makes the association.