Обновление сведений о реестре
После успешной фиксации очереди необходимо обновить сведения о реестре устанавливаемого продукта. Перед изменением сведений реестра рекомендуется подождать, пока не будут успешно завершены все необходимые операции копирования файлов.
Один из способов обновления реестра — вызвать SetupInstallFromInfSection с указанными флагами SPINST_INIFILES, SPINST_REGISTRY или SPINST_INI2REG. Эти флаги можно объединить в одном вызове SetupInstallFromInfSection.
В следующем примере используется SPINST_ALL^SPINST_FILES, чтобы указать, что функция должна обрабатывать все перечисленные операции, кроме операций с файлами. Так как в разделе Установка перечислены только операции INI, реестра и файлов, это сокращенный метод указания функции должен обрабатывать все операции INI и реестра.
В следующем примере показано, как установить сведения о реестре с помощью функции SetupInstallFromINFSection .
Test = SetupInstallFromINFSection (
NULL, //Window to own any dialog boxes
//created
MyInf, //INF file containing the section
MySection, //the section to install
SPINST_ALL ^ SPINST_FILES,//which installation operations
//to process
NULL, //the relative root key
NULL, //the source root path
0, //copy style
NULL, //Message handler routine
NULL, //Context
NULL, //Device info set
NULL //device info data
);
В этом примере OwnerWindow имеет значение NULL , так как диалоговые окна создаются только в операциях с файлами, поэтому родительское окно не требуется. MyInf — это INF-файл, содержащий раздел для обработки. Параметр MySection указывает устанавливаемый раздел. Объединенные флаги, SPINST_ALL ^ SPINST_FILES, указывают, какие операции установки следует обрабатывать, в данном случае все операции, кроме операций с файлами. Исходный корневой путь указывается как "A:\".
Так как операции копирования не обрабатываются, параметры CopyFlags, MsgHandler, Context, DeviceInfoSet и DeviceInfoData не указаны.