首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IWebBrowser2块IFileDialog

IWebBrowser2块IFileDialog
EN

Stack Overflow用户
提问于 2017-10-27 13:52:25
回答 1查看 149关注 0票数 0

在我们的32位Windows应用程序中,我们使用IWebBrowser2显示HTML .我们还使用新的IFileDialog COM接口来打开公共文件对话框(因为MFC是为我们做的,并且我们运行在Windows 10上)。

当我们在应用程序中看到一个web浏览器窗口时,文件对话框将不会打开,除非您再次运行应用程序并备份,否则将不会打开一次,但永远不会再次打开。通常情况是这个MFC调用:-

代码语言:javascript
复制
 HRESULT hr = (static_cast<IFileDialog*>(m_pIFileDialog))->Show(m_ofn.hwndOwner);

只需返回"0x800704c7操作被用户取消“,甚至不显示对话框。

关闭HTML /窗口允许IFileDialog按预期工作,因此这两个组件似乎在某种程度上相互干扰。

现在我们的软件已经几个月没有改变了,而且似乎只限于Windows 10,但是我们在网上找不到任何关于原因的线索。

大卫。

EN

回答 1

Stack Overflow用户

发布于 2021-12-08 23:30:49

我有这个答案。( a)调用->Show()的语法都是错误的。( b)包含文件'shobjidl.h'中有嵌套的保护程序阻止对IFileDialog COM类定义的处理,因此许多人都收到编译错误,无法生成难以捉摸的输出.exe。

基本上,在调用->Show方法时所需的全部内容是以下loc:

代码语言:javascript
复制
HRESULT hr = pFileDialog->Show(NULL);

请参见以下说明和示例程序:

https://github.com/InventorDave/IFileDialog-gcc-Fix

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46976702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档