队列承诺顺序
当 SetupCommitFileQueue 函数提交文件队列时,它会按以下顺序处理文件操作:文件删除操作、文件重命名操作以及文件复制操作。 以下大纲演示了队列承诺过程的生命周期。
- 启动删除子队列
- 启动文件删除操作 <-- 对每个操作重复
- 完成文件删除操作 <-- 排队文件删除
- 完成删除子队列
- 启动重命名子队列
- 启动文件重命名操作 <-- 对每个操作重复
- 完成文件删除操作 <-- 排队文件重命名
- 完成重命名子队列
- 启动复制子项
- 启动文件复制操作 <-- 对每个操作重复
- 完成文件复制操作 <-- 排队文件复制
- 完成复制子队列
- 完成队列
在每个步骤中,或者如果发生错误, SetupCommitFileQueue 函数会向回调例程发送通知。 回调例程可以使用队列发送的信息来跟踪安装进度,并在必要时与用户交互。
例如,如果文件复制操作需要当前路径中不可用的源文件, 则 SetupCommitFileQueue 会向回调例程发送SPFILENOTIFY_NEEDMEDIA通知,以及有关所需文件和媒体的信息。 回调例程可以使用此信息生成对话框,提示用户通过调用 SetupPromptForDisk 插入下一个磁盘
默认队列回调例程 SetupDefaultQueueCallback 包含在安装 API 中。 此例程处理队列通知,并为安装生成错误对话框和进度栏。 可以按原样使用默认队列回调例程,也可以编写筛选器回调例程来处理通知的子集,并将其他通知传递给默认队列回调例程。
如果回调例程的功能都不符合你的需求,则可以编写不调用默认队列回调例程的自包含自定义回调例程。
有关队列回调例程的详细信息,请参阅 默认队列回调例程和 创建自定义队列回调例程。