Шаг 94 - RGS-файл

При создании COM объекта в папке проекта Вы можете найти RGS файл. Этот файл автоматически генерируется VC++.

94_1.gif (2431 b)

Создается в момент создания COM класса для того, что бы в последствии прикомпилироваться к проекту и использоваться для регистрации компонента, и отмены регистрации кстати то же. Вы можете открыть его в блокноте для просмотра вот его содержание

HKCR
{
	NoRemove AppID
	{
		{3A3C4EA2-96DC-11D5-B617-0010B5DAD65E} = s 'NetRunning'
		'NetRunning.EXE'
		{
			val AppID = s {3A3C4EA2-96DC-11D5-B617-0010B5DAD65E}
		}
	}
}

В него можно вносить изменения которые будут сохранены. HKCR это HKEY_CLASSES_ROOT. Именно сюда будут заноситься записи. А дальше каждая скобка это как ведь в дереве. Странное слово NoRemove означает нечего не удалять при занесении новых записей. При создании COM DLL структура его более сложная:

HKCR
{
	TestDll.CCC.1 = s 'CCC Class'
	{
		CLSID = s '{CE24192E-97D8-11D5-B617-0010B5DAD65E}'
	}
	TestDll.CCC = s 'CCC Class'
	{
		CLSID = s '{CE24192E-97D8-11D5-B617-0010B5DAD65E}'
		CurVer = s 'TestDll.CCC.1'
	}
	NoRemove CLSID
	{
		ForceRemove {CE24192E-97D8-11D5-B617-0010B5DAD65E} = s 'CCC Class'
		{
			ProgID = s 'TestDll.CCC.1'
			VersionIndependentProgID = s 'TestDll.CCC'
			ForceRemove 'Programmable'
			InprocServer32 = s '%MODULE%'
			{
				val ThreadingModel = s 'Apartment'
			}
			'TypeLib' = s '{CE241921-97D8-11D5-B617-0010B5DAD65E}'
		}
	}
}

ForceRemove означает все удалять.

Вообщем этот файл с информацией для регистрации. Именно с его помощью Regsvr для DLL или ключ /regserver извлекают информацию в реестр. И вы можете менять этот файл для занесения специфической информации в реестр. Например если DLL будeт использоваться для DCOM.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.