美图齐众专注资阳网站设计 资阳网站制作 资阳网站建设
资阳网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

浅析C#编写ActiveX控件

为完成C#编写ActiveX控件,首先,我们先尝试实现和JS的交互能力。

我们在Demo中加入ShowMessage方法:

 
 
 
 
  1. publicvoidShowMessage(stringmsg)  
  2. {  
  3. if(msg!=null)  
  4. {  
  5. MessageBox.Show(msg);  
  6. }  

我们重新编译。在重新访问页面之前,我们先来修改html代码:

 
 
 
 
  1.  bgcolor='#223344'> 
  2.  id="helloworld"classid=
    "clsid:9551B223-6188-4387-B293-C7D9D8173E3A" Width="184" Height="96"> 
  3.  

  4.  
  5.  type='button' onclick=
    'helloworld.ShowMessage(“Hello World!”)' value='Click'> 
  6.   

现在,重新访问http://localhost/helloworld.htm,单击Click按钮,应该可以实现交互了。

但是结果却很遗憾,我们发现IE跳出了对话框,如图所示:

单击确定之后,我们发现JS报错。根据提示,我们判断可以通过修改IE的设置使控件运行。打开IE的 工具——〉Internet选项——〉安全——〉本地Intranet——〉自定义级别——〉对没有标记为安全的ActiveX控件进行初始化和运行,将其值设为启用。我们刷新页面,现在终于可以正确运行了。

当然,我们不能指望我们的客户和我们一样修改这个值。毕竟,一是操作麻烦,二是给电脑带来了很大的安全风险。在互联网上搜索之后,发现必须要实现IObjectSafety接口,把ActiveX控件标记为安全的ActiveX控件。在搜索MSDN之后,我找到了IObjectSafety接口的定义。这就好办了。首先我们自己用C#实现这个接口:

 
 
 
 
  1. [Guid("CB5BDC81-93C1-11CF-8F20-00805F2CD064"),
    InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]  
  2. publicinterfaceIObjectSafety  
  3. {  
  4. //methods  
  5. voidGetInterfacceSafyOptions(  
  6. System.Int32riid,  
  7. outSystem.Int32pdwSupportedOptions,  
  8. outSystem.Int32pdwEnabledOptions);  
  9. voidSetInterfaceSafetyOptions(  
  10. System.Int32riid,  
  11. System.Int32dwOptionsSetMask,  
  12. System.Int32dwEnabledOptions);  

注意,这个GUID是不能改的。然后,我们在Demo类里面实现这个接口。增加一下代码:

 
 
 
 
  1. publicvoidGetInterfacceSafyOptions(Int32riid,
    outInt32pdwSupportedOptions,outInt32pdwEnabledOptions)  
  2. {  
  3. //TODO:添加WebCamControl.GetInterfacceSafyOptions实现  
  4. pdwSupportedOptions=1;  
  5. pdwEnabledOptions=2;  
  6. }  
  7.  
  8. publicvoidSetInterfaceSafetyOptions(Int32riid,
    Int32dwOptionsSetMask,Int32dwEnabledOptions)  
  9. {  
  10. //TODO:添加WebCamControl.SetInterfaceSafetyOptions实现  

重新编译,然后将IE里面的设置改回来。现在,我们发现,和JS的交互已经没有问题了。

这样,一个最基本的C#编写ActiveX控件已经写好了。你可以在这个控件的基础上增加任何你需要的功能。到这里,C#编写ActiveX控件的任务已经完成了.


当前标题:浅析C#编写ActiveX控件
分享路径:http://zsjierui.cn/article/dpgpsdd.html

免费获取网站建设与品牌策划方案报价

*主要业务范围包括:高端网站建设, 集团网站建设(网站建设网站制作)找网站建设公司就上美图齐众。
提交需求

    联系我们

    028-86922220
  • 手机:13518219792
  • 地址:成都市太升南路288号锦天国际A幢1002号
  • 24小时服务热线:028-86922220

    网站建设服务

  • 网页设计
  • 网站制作
  • 网站开发

    网站推广服务

  • 营销网站建设
  • 百度快速排名
  • 整站网站推广

    网站运维服务

  • 基础维护
  • 网站改版
  • 网站维护

    FOLLOW US

  • 微信二维码

    微信二维码

Copyright © 2025 资阳站青羊区美图齐众设计工作室(个体工商户) 资阳网站建设公司-选网站建设公司美图齐众!专业的网站制作公司!
All Rights Reserved 版权所有 蜀ICP备2025119604号-1