自定义作类型 1
此自定义作调用用 C 或C++编写的动态链接库(DLL)。
源
DLL 是从临时二进制流生成的。 CustomAction 表的源字段 包含 二进制表的键。
Binary 表中的“数据”列包含流数据。 为每个行分配单独的流。 可以使用 MsiRecordSetStream 后跟 MsiViewModify 将记录插入表中,从文件中插入新的二进制数据。 调用自定义作时,流数据将复制到临时文件,然后根据自定义作的类型进行处理。
类型值
在 customAction 表 的 Type 列中包括以下标志位, 指定基本数值类型。
常数 | 十六进制 | 十进制 |
---|---|---|
msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData | 0x001 | 1 |
目标
该 DLL 通过 CustomAction 表的目标字段中命名的入口点调用,并传递一个参数,该参数是当前安装会话的句柄。 表中指定的入口点名称必须与从 DLL 导出的入口点名称匹配。 请注意,如果条目函数未由 a .DEF 文件或 /EXPORT:链接器规范,名称可能有前导下划线和“@4”后缀。 调用的函数必须指定__stdcall调用约定。
返回处理选项
在 CustomAction 表的 Type 列中包括可选标志位, 指定返回处理选项。 有关选项和值的说明,请参阅 自定义作返回处理选项。
执行计划选项
在 CustomAction 表的 Type 列中包括可选标志位 以指定执行计划选项。 这些选项控制自定义作的多次执行。 有关选项的说明,请参阅 自定义作执行计划选项。
In-Script 执行选项
在 CustomAction 表的 Type 列中包括可选标志位 以指定脚本内执行选项。 这些选项将作代码复制到执行、回滚或提交脚本中。 有关选项的说明,请参阅 自定义作 In-Script 执行选项。
返回值
请参阅 自定义作返回值。
言论
调用动态链接库(DLL)的自定义作需要安装会话的句柄。 如果这也是延迟执行自定义作,则执行安装脚本期间会话可能不再存在。 有关此类型的自定义作如何获取上下文信息的信息,请参阅 获取延迟执行的自定义作的上下文信息。
导出数据库表时,每个流将作为以表命名的子文件夹中的单独文件写入,使用主键作为文件名(二进制表的名称列),默认扩展名为“.ibd”。 如果文件系统或版本控制系统不支持长文件名,则名称应使用 8.3 格式。 永久性存档文件将流数据替换为使用的文件名,以便可以在导入表时找到数据。
相关主题