На этом шаге мы рассмотрим элементы реестра, которые используются при работе с COM-объектами.
Устанавливая СОМ-объект на компьютере, Вы обязаны зарегистрировать его в системном реестре. На рисунке 1 показаны записи, создаваемые при такой регистрации.
Записи при регистрации размещаются в HKEY_CLASSES_ROOT в подразделе CLSID. Именно сюда обращаются библиотеки при попытке найти и загрузить СОМ-объект. В разделе CLSID создается подраздел с именем, являющимся строковой формой CLSID объекта, который также в свою очередь должен содержать подраздел, предоставляющий сведения о сервере компонентов. Все это проиллюстрировано ниже:
HKEY_CLASSES_ROOT\CLSID\{64CE33A0-6B03-11D3-9352-0080C7FA0C3E}\ InprocServer32 = c:\Encoder\debug\Encoder.dll
Имя подраздела, InprocServer32, информирует, что серверный компонент - это библиотека DLL, находящаяся на локальной машине.
Рис.1. Регистрация СОМ-объекта
На один уровень ниже HKEY_CLASSES_ROOT Вы можете поместить раздел со строковым именем своего СОМ-объекта, которое не будет зависеть от версии программным идентификатором (ProgID). Создайте в нем подраздел CLSID с параметром, содержащим значение GUID Вашего объекта в строковом формате. Путь такой записи выглядит примерно так:
HKEY_CLASSES_ROOT\Encoder\CLSID = {64CE33A0-6B03-11D3-9352-0080C7FA0C3E}
На следующем шаге мы рассмотрим создание объектов с помощью CoCreateInstance().