通知 (安装 API)

通知是安装程序函数发送到回调例程以指定状态或事件的值。 两个参数 Param1Param2 随通知一起发送,并包含与通知相关的其他信息。

回调例程处理通知,并将无符号整数返回给安装程序函数。 根据设置函数,可以使用此值来指定操作或用户选择,也可以忽略它。

设置函数使用以下语法将通知发送到回调例程。

MsgHandler(          //the specified callback routine
    Context,         //context used by the callback routine
    Notification,    //notification code
    Param1,          //additional notification information
    Param2           //additional notification information
);

Context 参数是指向上下文变量或结构的 void 指针,回调例程可以使用该变量或结构来存储在对回调例程的后续调用之间必须保留的信息。

由于回调例程指定上下文的实现,并且设置函数永远不会引用或更改它,因此不会在后面的通知消息的参考资料中记录该上下文。

Notification 参数为导致安装程序函数调用回调例程的事件或状态指定无符号整数值。

Param1Param2 是可选参数,可以包含与通知相关的其他信息。 这些参数是无符号整数。 如果 Param1Param2 返回的信息不是无符号整数,则它将转换为无符号整数,并且必须重新转换为其原始数据类型,然后回调例程才能使用它。

注意

以下通知表示设置函数使用的每个通知。 单个函数使用这些通知的子集。 换句话说,并非每个函数都使用每个通知。

 

设置函数使用以下通知。

通知 说明
SPFILENOTIFY_COPYERROR 在文件复制操作期间出错。
SPFILENOTIFY_DELETEERROR 文件删除操作期间发生错误。
SPFILENOTIFY_ENDCOPY 文件复制操作已结束。
SPFILENOTIFY_ENDDELETE 文件删除操作已结束。
SPFILENOTIFY_ENDQUEUE 队列已完成提交。
SPFILENOTIFY_ENDREGISTRATION 文件的注册或注销已完成。
SPFILENOTIFY_ENDRENAME 文件重命名操作已结束。
SPFILENOTIFY_ENDSUBQUEUE 子队列 (复制、重命名或删除) 已结束。
SPFILENOTIFY_FILEEXTRACTED 文件已从文件柜中提取。
SPFILENOTIFY_FILEINCABINET 在文件柜中遇到文件。
SPFILENOTIFY_FILEOPDELAYED 文件正在使用中,当前操作已延迟,直到系统重新启动。
SPFILENOTIFY_LANGMISMATCH 当前操作的语言与系统语言不匹配。
SPFILENOTIFY_NEEDMEDIA 需要新的源媒体。
SPFILENOTIFY_NEEDNEWCABINET 当前文件在下一个文件柜中继续。
SPFILENOTIFY_QUEUESCAN 已扫描文件队列中的节点。
SPFILENOTIFY_QUEUESCAN_EX 已扫描文件队列中的节点。
SPFILENOTIFY_QUEUESCAN_SIGNERINFO 已扫描文件队列中的节点。
SPFILENOTIFY_RENAMEERROR 文件重命名操作期间发生错误。
SPFILENOTIFY_STARTCOPY 文件复制操作已启动。
SPFILENOTIFY_STARTDELETE 文件删除操作已启动。
SPFILENOTIFY_STARTQUEUE 队列已开始提交。
SPFILENOTIFY_STARTREGISTRATION 文件注册或注销已开始。
SPFILENOTIFY_STARTRENAME 文件重命名操作已启动。
SPFILENOTIFY_STARTSUBQUEUE 子队列 (已启动) 复制、重命名或删除。
SPFILENOTIFY_TARGETEXISTS 目标上已存在指定文件的副本。
SPFILENOTIFY_TARGETNEWER 目标上存在较新版本的指定文件。