Поделиться через


Обновление сведений о реестре

После успешной фиксации очереди необходимо обновить сведения о реестре для устанавливаемого продукта. Рекомендуется дождаться завершения всех необходимых операций копирования файлов перед изменением сведений реестра.

Одним из способов обновления реестра является вызов 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 не указаны.