日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
淺析C#編寫ActiveX控件

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

我們?cè)贒emo中加入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.   

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

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

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

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

 
 
 
 
  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);  

注意,這個(gè)GUID是不能改的。然后,我們?cè)贒emo類里面實(shí)現(xiàn)這個(gè)接口。增加一下代碼:

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

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

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


當(dāng)前標(biāo)題:淺析C#編寫ActiveX控件
本文地址:http://www.dlmjj.cn/article/dpgpsdd.html