Using Replaceable Parameters (The Registrar's Preprocessor)
Подстановочные параметры, позволяющие клиенту регистратора, чтобы определить данные времени выполнения. Для этого выберите регистратор поддерживает сопоставление замены, в котором он вставляет значения, связанные с параметрами меняемыми в создаваемом скрипте. Регистратор выполняет эти записи во время выполнения.
Использование %MODULE%
Мастер элементов управления библиотеки ATL автоматически формирует скрипт, который использует %MODULE%. Библиотеки ATL используется этот параметр меняемый для фактического расположение библиотеки DLL или EXE сервера.
Сцепить данные времени выполнения с данными скрипта
Другая использование препроцессора сцепления данные времени выполнения с данными скрипта. Например, предположим, что запись необходима, содержащее полный путь к модулю , 1" со строкой ", добавляемым в конце. Во-первых, укажите следующее расширение:
'MySampleKey' = s '%MODULE%, 1'
Затем, прежде чем вызывать один из методов, перечисленных в Вызов скрипты обработки сценария добавьте замена в сопоставление:
TCHAR szModule[_MAX_PATH];
::GetModuleFileName(_AtlBaseModule.GetModuleInstance(), szModule, _MAX_PATH);
p->AddReplacement(OLESTR("Module"), T2OLE(szModule));
При синтаксическом анализе скрипта, регистратор разверните '%MODULE%, 1' к c:\mycode\mydll.dll, 1.
Примечание
В скрипте регистратора, 4K максимальный размер токена.Токен любой элемент (a узнаваемый в синтаксисе). Это включает в себя токены, которые были созданы или были развернуты препроцессором.
Примечание
Чтобы заменить значения замены во время выполнения, удалите вызов в скрипте к макросу DECLARE_REGISTRY_RESOURCE или DECLARE_REGISTRY_RESOURCEID.Вместо этого замените его собственным методом UpdateRegistry, который вызывает CAtlModule::UpdateRegistryFromResourceD или CAtlModule::UpdateRegistryFromResourceS и передайте этот массив структур _ATL_REGMAP_ENTRY.Этот массив _ATL_REGMAP_ENTRY должен иметь по крайней мере одну запись, которая устанавливает в NULL} {NULL, и эта запись всегда должна быть последней записью.В противном случае будет сформирована ошибка Нарушения доступа при UpdateRegistryFromResource будет вызываются.
Примечание
При построении проекта, выводящий исполняемый файл библиотеки ATL автоматически добавляют кавычки вокруг имени пути создать во время выполнения с параметром скрипта %MODULE% регистратора.Если не требуется, чтобы имя пути включить кавычки, используйте новый параметр %MODULE_RAW%.
При построении проекта, выводящий библиотеки DLL библиотеки ATL не добавляют к имени пути в кавычки, если %MODULE% или %MODULE_RAW% используются.