真正彻底 实现vc6下 activex dll 的xp风格(theme) 的方法。

本文详细介绍了如何在VC6环境下,针对MFC的ActiveX控件和DLL项目,通过特定的关键代码修改,实现XP风格。在定义ISOLATION_AWARE_ENABLED后,MFC的默认实现并未转换,需要在调用控件创建函数前激活适当的上下文。提供了一段关键代码示例和封装类CXP,以帮助开发者成功实现这一功能。
摘要由CSDN通过智能技术生成

网上基于vc6.0的activex增加 xp 风格(theme)都不起作用(其实已经实现了,只是大多数程序都是用mfc的创建用户控件函数所以还是不起作用),

如何定义XP风格的文章很多,可参见http://blog.csdn.net/greenerycn/article/details/3150247,但是纯粹采用这个办法采用MFC的Activex或者DLL项目根本就没有反应。原因如下:

原来是因为定义了#define ISOLATION_AWARE_ENABLED 1关键字后,所有的创建函数转到WinBase.Inl中,

通过 application and hosted component来实现,但是mfc中的实现并没有转

,所以只要在调用前稍作修改就能真正实现vc6的 activex控件xp风格了。

所以通过这个方法,用vc6编写的activex IE插件 动态库等应该都能实现xp风格了。

 

关键代码:

 

BOOL fResult = FALSE;

    ULONG_PTR  ulpCookie = 0;

    const BOOL fActivateActCtxSuccess = IsolationAwarePrivateG_FqbjaLEiEL || IsolationAwarePrivatenCgIiAgEzlnCgpgk(&ulpCookie);

    if (!fActivateActCtxSuccess)

        return fResult;

    __try

    {

   

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值