将Windows XP主题应用于Office COM加载项 [英] Applying Windows XP themes to Office COM add-ins

查看:85
本文介绍了将Windows XP主题应用于Office COM加载项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的Office COM加载项使用带有ATL的C ++.但是我的对话框看起来很老套

带有方形角且没有颜色的按钮.

我已阅读知识库文章如何将Windows XP主题应用于Office COM加载项".

仅提供有关VC6的说明,而且我运气不佳,无法在Vista上的VC 2008中使用它.我

在包含Windows.h之前添加了#define ISOLATION_AWARE_ENABLED.

我尝试将自己的清单文件与此指令一起包含在.rc文件中

ISOLATIONAWARE_MANIFEST_RESOURCE_ID RT_MANIFEST"MyWordAddin.dll.manifest"

如果我将该行放在.rc文件的顶部,则没有错误,但输出不包含

我的通用控件依赖项部分.如果将那行放在.rc文件的底部,我会得到

错误致命错误CVT1100:资源重复.类型:清单,名称:2,语言:0x0409

我还尝试使用此标准实用程序来使链接器执行此操作:
#pragma comment(linker,"/manifestdependency:\" type ='win32'

name ='Microsoft.Windows.Common-Controls'version ='6.0.0.0'processorArchitecture ='x86'

publicKeyToken ='6595b64144ccf1df'language ='*'\''')

这确实使信息显示在输出... embed.manifest文件中,但我的插件仍显示

只是老式的按钮.

解决方案

编译指示是正确的方法.您的DLL应该具有ID为2的清单.

在构建时需要将ISOLATION_AWARE_ENABLED定义为1.

在资源编辑器中打开您构建的DLL,然后查看是否资源2在那里.如果丢失,说明您做错了什么.从头开始重新生成您的项目,然后重新添加所有文件.

此处的更多信息:

解决方案

The pragma is the correct way.  your DLL should have the manifest with ID 2 embedded 

ISOLATION_AWARE_ENABLED needs to be defined as 1 when you build.

Open up your built DLL in a resource editor and see if the resource 2 is there.  If it's missing you've done something wrong.  Regenerate your project from scratch and re-add all the files.

more info here:

http://msdn.microsoft.com/en-us/library/bb773175(VS.85).aspx


这篇关于将Windows XP主题应用于Office COM加载项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆