Существует тип самоустанавливающихся библиотечных файлов, которые в своих ресурсах содержат INF-скрипт для передачи системе нужных настроек для корректной работы библиотеки. Такие библиотеки имеют аббревиатуру OCX. Что это значит - неизвестно. Запуск INF-скрипта на выполнение из ресурсов библиотеки называется регистрацией библиотеки. Как правило, все INF-скрипты подобного рода содержат выполняемую секцию для удаления настроек библиотеки и выполнение этой секции называется отменой регистрации библиотеки. Для выполнения секций внедрённого в ресурсы скрипта в библиотеке должна существовать стандартная функция с внешней точкой входа, которая при вызове её извне регистрировала бы библиотеку. Имя точки входа должно быть известно программе, инициализирующей регистрацию. Стандартные названия точек входа для регистрации и отмены регистрации библиотеки таковы:DllRegisterServer, DllUnregisterServer. Существует стандартная системная программа regsvr32.exe, которая выполняет INF-скрипт, предоставляемый библиотекой по этим точкам входа. Для регистрации библиотеки необходимо запустить эту утилиту, передав путь и имя библиотеки параметром командной строки. Формат параметров командной строки утилиты RegSvr32:
regsvr32.exe [/u] [/s] [/n] [/i[:строка]] библиотека
/u - Вызов функции DllUnregisterServer, отмена регистрации библиотеки
/s - Тихий режим, отсутствие диалоговых и информационных окон (полезно в пакетном режиме)
/i - Вызов функции DllRegisterServer, регистрация библиотеки. опциональная строка - другое имя точки входа для выполнения пакета процедур
/n - Не вызывать функцию DllRegisterServer. Требует параметра /i:строка
Полный путь к файлу библиотеки необходим в случае, если библиотека находится не в системном каталоге Windows. Также, при запуске без ключей, лишь с указанием библиотеки, regsvr32 по умолчанию пытается зарегистрировать библиотеку. Чтобы запустить регистрацию библиотеки из скрипта, обратитесь к разделу "Последовательное выполнение списка команд (AdvancedINF)"
Интерпретатор AdvancedINF умеет самостоятельно выполнять регистрацию и отмену регистрации библиотек, используя параметры RegisterOCXs и UnregisterOCXs в выполняемой секции. Пример:
[DefaultInstall]
RegisterOCXs=rocx.section
UnregisterOCXs=uocx.section
[rocx.section]
filename.dll
[uocx.section]
filename2.dll