动态链接库 (Windows Installer)
自定义操作可以调用动态链接库 (DLL) 中定义的用 C 或 C++ 编写的函数。 DLL 可以作为当前安装期间安装的文件存在,也可以作为源自安装数据库的 Binary 表的临时二进制流存在。
请注意,任何调用的函数(包括 DLL 中的自定义操作)都必须指定 __stdcall 调用约定。 例如,若要调用 CustomAction,请使用以下命令。
#include <windows.h>
#include <msi.h>
#include <Msiquery.h>
#pragma comment(lib, "msi.lib")
UINT __stdcall CustomAction(MSIHANDLE hInstall)
有关详细信息,请参阅从自定义操作内部访问当前安装程序会话
以下类型的自定义操作调用动态链接库。
自定义操作类型 | 说明 |
---|---|
自定义操作类型 1 | 存储在 Binary 表流中的 DLL 文件。 |
自定义操作类型 17 | 随产品一起安装的 DLL 文件。 |
注意
若要使用 COM,需要在自定义操作中调用 CoInitializeEx。 如果发现线程已初始化,请不要退出。 例如,线程在按计算机安装中已初始化,但在按用户安装中未初始化。
请参阅所有自定义操作类型的总结列表,获取所有类型的自定义操作的汇总,并了解它们如何编码到 CustomAction 表中。