Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wix 使用DTF的MessageBox_Wix_Windows Installer_Dtf - Fatal编程技术网

Wix 使用DTF的MessageBox

Wix 使用DTF的MessageBox,wix,windows-installer,dtf,Wix,Windows Installer,Dtf,MSDN上的MsiProcessMessage函数doco显示了以下示例: PMSIHANDLE hInstall; PMSIHANDLE hRec; MsiProcessMessage(hInstall, INSTALLMESSAGE(INSTALLMESSAGE_ERROR|MB_ABORTRETRYIGNORE|MB_ICONWARNING), hRec); 如何在DTF中使用Session.Message来实现这

MSDN上的MsiProcessMessage函数doco显示了以下示例:

PMSIHANDLE hInstall;
PMSIHANDLE hRec;
MsiProcessMessage(hInstall, 
                  INSTALLMESSAGE(INSTALLMESSAGE_ERROR|MB_ABORTRETRYIGNORE|MB_ICONWARNING),
                  hRec);
如何在DTF中使用Session.Message来实现这一点?唯一的重载将Session.InstallMessage作为参数。我看到MessageBoxButtons枚举,我将这两种类型转换为In32并执行逻辑or,但我不确定如何将其返回到API中


我是缺少了什么还是DTF缺少了什么?

我对DTF做得不多,但我的理解是,您可能需要类似于:

Session.Message(InstallMessage.Error | 
                (InstallMessage)((int)MessageButtons.AbortRetryIgnore |
                                 (int)MessageIcon.Warning), 
                record);

不太漂亮。我已经设置了
messageType
agment的格式,以便更好地放在这里的文本框中。按照您的编码准则在代码中设置格式。:)

谢谢Rob,它很好用,只是我确信你指的是MessageButtons和MessageIcon,而不是MessageBoxButtons和MessageBoxIcon。我似乎无法将这些类型转换回InstallMessage类型。我看不到任何地方定义为枚举的
MessageButtons
MessageIcon
。当包含
System.Windows.Forms
命名空间时,上面的代码应该可以工作。消息按钮和消息图标在Microsoft.Deployment.WindowsInstaller中定义。它在DTF帮助文件中。帮助主题说它可以转换为MessageBoxButtons。它可能还应该说它可以转换为InstallMessage。啊,是的,它们在那里是重复的。这一切都是重复的,也会起到同样的作用。但是,我会更新答案,因为它们是更好的选项,所以您不必拉入
System.Windows.Forms