我是Win32 C++编程的新手。 现在,我想创建一个应用程序,它能够托管一个地铁(AppContainer)应用程序。似乎有可能使用这些COM接口:在桌面应用程序中托管地铁应用程序
- IApplicationDesignModeSettings(MSDN link)
- IApplicationActivationManager(用于启动Metro应用)
我能够启动正常使用IApplicationActivationManager的应用程序,但要能够在窗口内托管应用程序,应用程序需要在设计模式下启动。为了能够在设计模式下启动应用程序,我需要设置IApplicationDesignModeSettings,它需要初始化IInitializeWithWindow(MSDN link)。 IInitializeWithWindow的Initialize()方法需要一个“代理窗口”hwnd。这是我的问题所在。我使用标准CreateWindow()和空回调创建了一个窗口,使用该窗口HWND作为IInitializeWithWindow-> Initialize()参数。但是不是返回S_OK,而是返回E_ACCESSDENIED错误。这是为什么发生? “代理窗口”是什么意思?可能的解决方案是什么?
我不确定这是可能的。 – Andy
为什么:)我提到的接口是Visual Studio和Blend用于构建Windows应用商店应用程序的目的,因此设计模式 - 您是否在构建某种类型的附加/测试框架? –
这个项目的主要目的是为了满足我的好奇心:D。 我知道这是可能的,因为有些已经实现了这个,比如stardock的start8和RetroUI pro。 – jamestut