在桌面应用程序中托管城域应用程序
Hosting a metro apps inside desktop app
我是Win32 C++编程的新手。现在,我想创建一个能够托管metro(AppContainer)应用程序的应用程序。使用以下COM接口似乎是可能的:
- IApplicationDesignModeSettings(MSDN链接)
- IApplicationActivationManager(用于启动metro应用程序)
我可以使用IApplicationActivationManager正常启动应用程序,但要在窗口内托管应用程序,需要在设计模式下启动该应用程序。为了能够在设计模式下启动应用程序,我需要设置IApplicationDesignModeSettings,它需要初始化IInitializeWithWindow(MSDN链接)。IInitializeWithWindow的Initialize()方法需要一个"代理窗口"hwnd。这就是我的问题所在。我使用标准的CreateWindow()和一个空回调创建了一个窗口,使用该窗口HWND作为IInitializeWithWindow->Initialize()参数。但是,此方法没有返回S_OK,而是返回E_ACCESSDENIED错误。为什么会发生这种情况?"代理窗口"是什么意思?可能的解决方案是什么?
由于Windows 8沙箱模型,您无法在桌面应用程序中托管Metro应用程序。Metro应用程序由一个特殊进程(wwahost.exe)托管,该进程利用代理访问系统级资源。通过任何其他进程托管Metro应用程序意味着有人可以扮演"中间人",嗅探/操纵系统请求,这是一种不可接受的风险。另一方面,您可以通过单独的虚拟机托管Metro应用程序。
相关文章:
- 试图在visual studio上用C++创建一个桌面应用程序
- Qt QML桌面应用程序自动化测试
- 需要有关使用 Visual Studio 17 将 QT 桌面应用程序打包为 AppX 格式的指导
- 我可以用C++/WinRT编写一个DLL,供windows桌面应用程序(而不是UWP)或Unity插件使用吗
- 在跨平台桌面/移动应用程序套件中使用 ZeroMQ 来解决架构问题
- Electron应用程序和Win32本机桌面应用程序之间的进程间通信
- QWebView 用于在桌面应用程序中运行 javascript (D3) - 当 HTML 更改时重新加载速度很慢
- 如何从桌面应用程序访问嵌入式ArangoDB
- 应用程序最小化时单击显示桌面/最小化全部
- 如何从 Windows 上的服务在未登录用户的桌面上启动应用程序
- 如何在桌面应用程序中使用WEBRTC进行语音聊天
- 如何防止从浏览器查看图像,但允许在桌面应用程序上
- 我想将使用 VTK、C++ 和 QT 开发的桌面应用程序移植到 Web 应用程序
- 如何为 QT Windows 应用程序设置不同的桌面快捷方式图标和任务栏图标不同
- 编写 Windows 桌面应用程序时,我应该在哪里跟踪我的窗口句柄?
- 在我关闭刚开始的孩子对话框并进入父母对话框之后,我的QT桌面应用程序不断崩溃
- 有没有一种方法可以测量桌面应用程序 UI 响应时间
- 在桌面应用程序中嵌入Elasticsearch
- 带有桌面应用程序的C 微服务
- Windows 10 UWP桌面桥应用程序(C ):调试构建中的VCLIBS依赖关系