Это идентификатор программы, по которому можно получить CLSID. В реестре он находится по пути:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ =
Например, по этому пути находится описание CLSID excel:
HKEY_LOCAL_MACHINE\Software\CLASSES\Excel.Application
Соответственно на этой машине я могу создать объект Excel. Например, в Visual Basic:
Set xl=CreateObject("Excel.Application")
Если Вы посмотрите у себя этот раздел в реестре, то увидите, что классов там намного больше чем программ. Это естественно, так как одна программа, скажем excelVC. Для получения CLSID на основе ProgID используется функция CLSIDFromProgID(). Можно и наоборот - зная CLSID получить ProgID - функция ProgIDFromCLSID(). Посмотрите на рисунок ниже:
Чем удобно использование ProgID это тем, что Вы можете избавиться от проблем с версиями для пользователя. Если Вы будете использовать один ProgID для всех версий, то у пользователя не будет проблем при выходе новой версии. Ведь в новой версии должен быть новый CLSID. Кроме того использование подобных строковых параметров намного удобнее, чем сам CLSID. Честное слово.