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


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

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

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