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