自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺析C#編寫ActiveX控件

開發(fā) 后端
本文介紹為完成C#編寫ActiveX控件,首先,我們先嘗試實現(xiàn)和JS的交互能力。我們在Demo中加入ShowMessage方法。

為完成C#編寫ActiveX控件,首先,我們先嘗試實現(xiàn)和JS的交互能力。

我們在Demo中加入ShowMessage方法:

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

我們重新編譯。在重新訪問頁面之前,我們先來修改html代碼:

  1. <body bgcolor='#223344'> 
  2. <object id="helloworld"classid=
    "clsid:9551B223-6188-4387-B293-C7D9D8173E3A" 
    Width="184" Height="96"> 
  3. </object> 
  4. <br> 
  5. <input type='button' onclick=
    'helloworld.ShowMessage(“Hello World!”)' value='Click'> 
  6. </body>  

現(xiàn)在,重新訪問http://localhost/helloworld.htm,單擊Click按鈕,應(yīng)該可以實現(xiàn)交互了。

但是結(jié)果卻很遺憾,我們發(fā)現(xiàn)IE跳出了對話框,如圖所示:

IE跳出了對話框

單擊確定之后,我們發(fā)現(xiàn)JS報錯。根據(jù)提示,我們判斷可以通過修改IE的設(shè)置使控件運行。打開IE的 工具——〉Internet選項——〉安全——〉本地Intranet——〉自定義級別——〉對沒有標記為安全的ActiveX控件進行初始化和運行,將其值設(shè)為啟用。我們刷新頁面,現(xiàn)在終于可以正確運行了。

當(dāng)然,我們不能指望我們的客戶和我們一樣修改這個值。畢竟,一是操作麻煩,二是給電腦帶來了很大的安全風(fēng)險。在互聯(lián)網(wǎng)上搜索之后,發(fā)現(xiàn)必須要實現(xiàn)IObjectSafety接口,把ActiveX控件標記為安全的ActiveX控件。在搜索MSDN之后,我找到了IObjectSafety接口的定義。這就好辦了。首先我們自己用C#實現(xiàn)這個接口:

  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類里面實現(xiàn)這個接口。增加一下代碼:

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

重新編譯,然后將IE里面的設(shè)置改回來?,F(xiàn)在,我們發(fā)現(xiàn),和JS的交互已經(jīng)沒有問題了。

這樣,一個最基本的C#編寫ActiveX控件已經(jīng)寫好了。你可以在這個控件的基礎(chǔ)上增加任何你需要的功能。到這里,C#編寫ActiveX控件的任務(wù)已經(jīng)完成了.

【編輯推薦】

  1. 分析C#不安全代碼
  2. 淺析C#調(diào)用ImageAnimator
  3. C#連接Access、SQL Server數(shù)據(jù)庫
  4. 淺談C#固定的和活動的變量
  5. 介紹C#中的值類型
責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2009-08-12 10:35:50

C#調(diào)用ActiveX

2009-08-27 14:32:15

C#編寫ActiveX

2009-08-28 15:05:35

C#編寫Calenda

2009-09-16 10:56:22

C#開發(fā)ActiveX

2009-08-11 10:12:21

2009-08-11 14:45:41

C# DataGrid

2009-09-04 17:58:38

C# Web Brow

2009-08-12 18:04:44

編寫C#多線程

2009-08-18 16:31:19

Visual C#編寫

2009-09-11 09:10:30

C#編寫游戲

2009-08-14 10:35:25

C#最小化編寫

2015-05-12 14:16:15

C#ActiveX控件web調(diào)用

2009-09-11 10:41:20

C# WinForm控

2009-08-26 13:36:33

C#打印控件

2009-09-09 10:47:29

C# CheckBox

2009-08-14 09:43:59

C#復(fù)制構(gòu)造函數(shù)

2009-08-03 13:34:06

自定義C#控件

2009-09-08 14:54:40

C# listBox控

2009-08-28 16:31:21

C# treeview

2009-09-15 15:14:27

C# 綁定
點贊
收藏

51CTO技術(shù)棧公眾號