Обновление сведений о реестре
После успешной фиксации очереди необходимо обновить сведения о реестре для устанавливаемого продукта. Рекомендуется дождаться завершения всех необходимых операций копирования файлов перед изменением сведений реестра.
Одним из способов обновления реестра является вызов SetupInstallFromInfSection с указанными флагами SPINST_INIFILES, SPINST_REGISTRY или SPINST_INI2REG. Эти флаги можно объединить в одном вызове SetupInstallFromInfSection.
В следующем примере используется SPINST_ALL^SPINST_FILES, чтобы указать, что функция должна обрабатывать все перечисленные операции, кроме операций с файлами. Так как в разделе Install перечислены только операции 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, Контекст, DeviceInfoSetи DeviceInfoData не указаны.