前一段时间因项目需要,要把C#开发的Winfrom应用程序做成一个ActiveX控件,以便在IE中运行。网上关于C#ActiveX控件的文章也不少,尽管用C#开发ActiveX控件有不少弊端,但项目的改写势在必行,也没有什么好的方法可以取代,用C#来改写还可以减少工作量,所以只好老老实实做下去。经过几天总算是完成任务了,中间也走了不少弯路,我把在项目改写过程中出现的问题记录下来,以供参考。
    用C#开发ActiveX控件我主要参考红马的三篇文章,入门都是按照其文章上的步骤来的,几乎没有什么问题。但是要注意的是文章中的实现IObjectSafety接口有些问题,实现其接口后还是弹出窗口说ActiveX控件不是安全的。网上有正确的实现方法,我将其整理如下如下:
Code

    然后让你的ActiveX控件实现其接口,代码如下:
Code
    另外需要注意的是,项目属性中,在“程序集信息”对话框中将“使程序集COM可见”复选框选上。属性“生成”卡中选中“为COM interop 注册”。
   
到此为止,用C#开发ActiveX控件基本上算是完成了,通过IE查看,可以看到效果。细节部分我没有写全,如有需要,可以参考红马文章:
    http://www.cnblogs.com/homer/archive/2005/01/04/86473.html
    http://www.cnblogs.com/homer/archive/2005/01/08/88780.html
       http://www.cnblogs.com/homer/archive/2005/01/26/97822.html

posted on 2008-04-28 13:45  清水无痕  阅读(6049)  评论(3编辑  收藏  举报