vygooglil som toto ale prd tomu rozumiem
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/com/htm/reg_24hl.asp
ProgID Key
A ProgID, or programmatic identifier, is a registry entry that can be associated with a CLSID. The format of a ProgID is <Program>.<Component>.<Version>, separated by periods and with no spaces, as in Word.Document.6. Like the CLSID, the ProgID identifies a class but with less precision because it is not guaranteed to be globally unique.
Registry Entry
HKEY_LOCAL_MACHINESOFTWAREClasses
<ProgID><Subkey>
<Subkey> Description
CLSID The CLSID that maps to this ProgID.
Insertable Indicates that class is insertable in OLE 2 containers.
Protocol Indicates class is insertable in OLE 1 container.
Shell Windows 3.1 File Manager information.
Remarks
You can use a ProgID in programming situations where it is not possible to use a CLSID. ProgIDs should not appear in the user interface. ProgIDs are not guaranteed to be unique, so they can be used only where name collisions are manageable.
The format of <ProgID> is <Program>.<Component>.<Version>, separated by periods and with no spaces. The ProgID must comply with the following requirements:
* Have no more than 39 characters.
* Contain no punctuation (including underscores) except one or more periods.
* Not start with a digit.
* Be different from the class name of any OLE 1 application, including the OLE 1 version of the same application, if there is one.
Because the ProgID should not appear in the user interface, you can obtain a displayable name by calling IOleObject::GetUserType. Also, see OleRegGetUserType
The HKEY_LOCAL_MACHINESOFTWAREClasses key corresponds to the HKEY_CLASSES_ROOT key, which was retained for compatibility with earlier versions of COM.