更新注册表信息

成功提交队列后,需要更新要安装的产品的注册表信息。 建议等待,直到所有必需的文件复制操作都成功完成,然后才能更改注册表信息。

更新注册表的一种方法是使用指定的SPINST_INIFILES、SPINST_REGISTRY或SPINST_INI2REG标志调用 SetupInstallFromInfSection 。 这些标志可以在一次调用 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
);

在此示例中, OwnerWindowNULL ,因为只有文件操作会生成对话框,因此不需要父窗口。 “MyInf”是包含要处理的节的 INF 文件。 参数“MySection”指定要安装的节。 组合标志SPINST_ALL ^ SPINST_FILES,指定要处理哪些安装操作,在本例中,除文件操作之外的所有操作。 源根路径指定为“A:\”。

由于未处理任何复制操作,因此未指定 CopyFlagsMsgHandlerContextDeviceInfoSetDeviceInfoData 参数。