На этом шаге мы рассмотрим назначение и содержимое сценария реестра.
При загрузке клиентом СОМ-объекта библиотека СОМ обращается к реестру за сведениями, находящимися в разделе 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-файл.