На этом шаге мы рассмотрим назначение и содержимое сценария реестра.
При загрузке клиентом СОМ-объекта библиотека СОМ обращается к реестру за сведениями, находящимися в разделе HKEY_CLASSES_ ROOT (HKCR). Мастера ATL создают для СОМ-компонента сценарий реестра, в котором и содержится эта информация.
Сценарий реестра включается в проект в качестве ресурса. Файл сценария имеет расширение .rgs и хранится в папке проекта. Вот как он выглядит:
HKCR { EncodeServer.Encoder.1 = s 'Encoder Class' { CLSID = s '{9DBB482D-4600-43F4-A96E-AEF8F600574E}' } EncodeServer.Encoder = s 'Encoder Class' { CLSID = s '{9DBB482D-4600-43F4-A96E-AEF8F600574E}' CurVer = s 'EncodeServer.Encoder.1' } NoRemove CLSID { ForceRemove {9DBB482D-4600-43F4-A96E-AEF8F600574E} = s 'Encoder Class' { ProgID = s 'EncodeServer.Encoder.1' VersionIndependentProgID = s 'EncodeServer.Encoder' InprocServer32 = s '%MODULE%' { } 'TypeLib' = s '{EECD8638-CFC3-43F8-A10C-D4C9573E26DD}' } } }
Этот сценарий вносит в раздел реестра HKEY_CLASSES_ROOT следующие записи: CLSID, ProgID (обе формы - зависимую и незасимую от версии) и библиотеку типов. Поскольку объект Encoder находится в DLL-сервере, то дополнительно создается раздел InprocServer32, содержащий переменную %MODULE%. Обрабатывая сценарий системного реестра, Visual Studio подставит вместо нее имя исполняемого файла.
На следующем шаге мы рассмотрим IDL-файл.