开发安全标记的MFCActiveX控件及在IIS网页中使用和发布问题引入:在VC6
0使用MFCActiveXControlWizard开发ActiveX控件时,默认情况下MFCActiveX控件未标记为安全的脚本和初始化的安全
所以导致在控件在IIS中发布时,造成可以加载但是不能正常构造和初始化(即在网页中调用时显示一个红色叉,但其实通过调试发现控件实际是加载了的)
这个问题得解决涉及两方面的问题即1、实现IObjectSafety接口的控件使得在Internet浏览器的上下文中运行“安全”
2、修改该控件的DllRegisterServer函数来标记该控件在注册表中"安全"
本文将以一个CCircleCtrl控件实例来说明实现方法,下面分别说明具体实现方法
1、生成默认ActiveX控件及控件的调试(老鸟跳过)
新建工程选择类型选择MFCActiveXContronWizard在Projectname中输入”Circle”点击”OK”,其余均按默认完成向导
将工程编译、连接后,你就已经实现了一个ActiveX控件,并且已经注册到你的计算机
你可以通过在注册表的中找到HKEY_CLASSES_ROOT\CIRCLE
CircleCtrl
1,CLSID中得默认值就是Circle控件的注册号(唯一标志ID),形如04D9986E-E2D7-4827-A8F6-BFE003E64D54但是注意不同计算机生成的这个值是不一样的,下面使用这个值时请将它替换为你的注册号
调试:ActiveX可以使用ActiveXControlTestContainer和浏览器来或其他使用此控件的应用程序来调试
如下图:(1)使用ActiveXControlTestContainer调试:F5,在ActiveXControlTestContainer启动后,右键选择“插入新控件”,选择我们刚刚生成的