我可以在Windows XP上使用Windows功能区UI吗?怎么样?

时间:2011-04-23 23:26:37

标签: windows-7 windows-installer ribbon windows-ribbon-framework

我从阅读Arik Poznanski's blog了解到,Windows Ribbon UI Framework是Windows 7中的COM对象,WindowsRibbon wrapper只是一个.NET贴面,允许Ribbon UI成为用于Windows窗体应用程序。

我成功实现了使用此包装器的Hello World Windows窗体应用程序:

Windows Ribbon HEllo World

它在我的开发机器上运行,即Windows7。


问题:

  • 这个“hello,world”应用程序会在Vista上运行吗? XP?我是否需要将内容下载到这些机器上以实现这一目标?

  • 有没有办法在MSI安装程序中将Windows功能区UI组件指定为先决条件?

由于


浏览我发现the documentation for UIRibbon.dll,这是Windows7上提供功能区UI的DLL。它将这些列为最低支持客户端:

  

Windows 7,带有SP2的Windows Vista和适用于Windows Vista的平台更新

我如何在MSI中检查?

2 个答案:

答案 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;
}