在我们的32位Windows应用程序中,我们使用IWebBrowser2显示HTML .我们还使用新的IFileDialog COM接口来打开公共文件对话框(因为MFC是为我们做的,并且我们运行在Windows 10上)。
当我们在应用程序中看到一个web浏览器窗口时,文件对话框将不会打开,除非您再次运行应用程序并备份,否则将不会打开一次,但永远不会再次打开。通常情况是这个MFC调用:-
HRESULT hr = (static_cast<IFileDialog*>(m_pIFileDialog))->Show(m_ofn.hwndOwner);只需返回"0x800704c7操作被用户取消“,甚至不显示对话框。
关闭HTML /窗口允许IFileDialog按预期工作,因此这两个组件似乎在某种程度上相互干扰。
现在我们的软件已经几个月没有改变了,而且似乎只限于Windows 10,但是我们在网上找不到任何关于原因的线索。
大卫。
发布于 2021-12-08 23:30:49
我有这个答案。( a)调用->Show()的语法都是错误的。( b)包含文件'shobjidl.h'中有嵌套的保护程序阻止对IFileDialog COM类定义的处理,因此许多人都收到编译错误,无法生成难以捉摸的输出.exe。
基本上,在调用->Show方法时所需的全部内容是以下loc:
HRESULT hr = pFileDialog->Show(NULL);请参见以下说明和示例程序:
https://stackoverflow.com/questions/46976702
复制相似问题