我从阅读Arik Poznanski's blog了解到,Windows Ribbon UI Framework是Windows 7中的COM对象,WindowsRibbon wrapper只是一个.NET贴面,允许Ribbon UI成为用于Windows窗体应用程序。
我成功实现了使用此包装器的Hello World Windows窗体应用程序:
它在我的开发机器上运行,即Windows7。
问题:
这个“hello,world”应用程序会在Vista上运行吗? XP?我是否需要将内容下载到这些机器上以实现这一目标?
有没有办法在MSI安装程序中将Windows功能区UI组件指定为先决条件?
由于
浏览我发现the documentation for UIRibbon.dll,这是Windows7上提供功能区UI的DLL。它将这些列为最低支持客户端:
Windows 7,带有SP2的Windows Vista和适用于Windows Vista的平台更新
我如何在MSI中检查?
答案 0 :(得分:1)
最好的我可以告诉你,你正在接受一种无法在Windows XP上运行的依赖。这似乎不是一个可再发行的组件(虽然我会承认黑客攻击虚拟机试图看看我是否可以将它移植到XP机器中。)
由于它不可再发行,我不确定在MSI中进行搜索是否有任何意义,因为您可以依靠检查操作系统主要版本(Win7)。
答案 1 :(得分:1)
您可以随意使用功能区UI(受the Ribbon license agreement约束;这基本上要求您不要制作半版本的版本。)
有些公司创建了自己的功能区控件。其中一些实现(即Microsoft的Windows功能区框架)仅适用于Windows 7或Windows Vista(首先安装了下载)。
如果要检查客户端计算机上的Windows功能区框架是否可用,请尝试创建UIRibbonFramework
对象:
IUIFramework* pFramework = NULL;
HRESULT hr = ::CoCreateInstance(
CLSID_UIRibbonFramework,
NULL,
CLSCTX_INPROC_SERVER,
IID_PPV_ARGS(&pFramework));
if (FAILED(hr))
{
//Ribbon not available - fallback to something else
return;
}