最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

用C#編寫ActiveX控件(二)

 更新時間:2007年03月09日 00:00:00   作者:  

C#編寫ActiveX控件(二)

                            Homer

 

 
       在我的上一篇blog中,已經(jīng)實現(xiàn)了一個最基本的ActiveX控件。當然,我們編寫的任務(wù)還沒有完成。首先,我們先嘗試實現(xiàn)和JS的交互能力。

 
       我們在Demo中加入ShowMessage方法:
public void ShowMessage(string msg)
        {
            if(msg != null)
            {
                MessageBox.Show(msg);
            }
        }
我們重新編譯。在重新訪問頁面之前,我們先來修改html代碼:
<body bgcolor='#223344'>
<object id="helloworld"
   classid="clsid:9551B223-6188-4387-B293-C7D9D8173E3A" Width="184" Height="96"
>
</object>
<br>
<input type='button' onclick='helloworld.ShowMessage(“Hello World!”)' value='Click'>
</body>

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

 

 

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


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

    當然,我們不能指望我們的客戶和我們一樣修改這個值。畢竟,一是操作麻煩,二是給電腦帶來了很大的安全風險。在互聯(lián)網(wǎng)上搜索之后,發(fā)現(xiàn)必須要實現(xiàn)IObjectSafety接口,把ActiveX控件標記為安全的ActiveX控件。在搜索MSDN之后,我找到了IObjectSafety接口的定義。這就好辦了。首先我們自己用C#實現(xiàn)這個接口:
[Guid("CB5BDC81-93C1-11CF-8F20-00805F2CD064"),InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    public interface IObjectSafety
    {
        // methods
        void GetInterfacceSafyOptions(
            System.Int32 riid,
            out System.Int32 pdwSupportedOptions,
            out System.Int32 pdwEnabledOptions);
        void SetInterfaceSafetyOptions(
            System.Int32 riid,
            System.Int32 dwOptionsSetMask,
            System.Int32 dwEnabledOptions);        
    }
 

注意,這個GUID是不能改的。然后,我們在Demo類里面實現(xiàn)這個接口。增加一下代碼:

IObjectSafety 成員#region IObjectSafety 成員

        public void GetInterfacceSafyOptions(Int32 riid, out Int32 pdwSupportedOptions, out Int32 pdwEnabledOptions)
        {
            // TODO:  添加 WebCamControl.GetInterfacceSafyOptions 實現(xiàn)
            pdwSupportedOptions = 1;
            pdwEnabledOptions = 2;
        }

        public void SetInterfaceSafetyOptions(Int32 riid, Int32 dwOptionsSetMask, Int32 dwEnabledOptions)
        {
            // TODO:  添加 WebCamControl.SetInterfaceSafetyOptions 實現(xiàn)            
        }

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

    這樣,一個最基本的ActiveX控件已經(jīng)寫好了。你可以在這個控件的基礎(chǔ)上增加任何你需要的功能。到這里,編寫控件的任務(wù)已經(jīng)完成了,我們的下一個目標就是發(fā)布它。

相關(guān)文章

  • Unity 使用TexturePacker打包圖集的操作方法

    Unity 使用TexturePacker打包圖集的操作方法

    這篇文章主要介紹了Unity 使用TexturePacker打包圖集的操作方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • 深入理解.NET中的異步

    深入理解.NET中的異步

    異步編程是程序設(shè)計的重點,在實際的項目,在大量的數(shù)據(jù)入庫以及查詢數(shù)據(jù)并進行計算的時候,程序的UI界面往往卡死在那里,這時候就需要對計算時間限制的過程進行異步處理,同時正確的使用異步編程去處理計算限制的操作和耗時IO操作還能提升的應(yīng)用程序的吞吐量及性能
    2021-06-06
  • C#中字符串的一般性和特殊性

    C#中字符串的一般性和特殊性

    本篇文章主要介紹了C#中字符串的一般性和特殊性的相關(guān)知識,具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • C#中DataTable的創(chuàng)建與遍歷實現(xiàn)

    C#中DataTable的創(chuàng)建與遍歷實現(xiàn)

    這篇文章主要介紹了C#中DataTable的創(chuàng)建與遍歷實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • 淺拷貝和深拷貝深入理解(shallow copy VS deep copy)

    淺拷貝和深拷貝深入理解(shallow copy VS deep copy)

    淺拷貝和深拷貝深入理解(shallow copy VS deep copy) 本文重點討論引用類型變量的拷貝機制和實現(xiàn)
    2014-01-01
  • C#實現(xiàn)的上傳圖片、保存圖片、加水印、生成縮略圖功能示例

    C#實現(xiàn)的上傳圖片、保存圖片、加水印、生成縮略圖功能示例

    這篇文章主要介紹了C#實現(xiàn)的上傳圖片、保存圖片、加水印、生成縮略圖功能,結(jié)合實例形式較為詳細的分析了C#圖片上傳、保存、水印、縮略圖等相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02
  • C# 組件的使用方法示例詳解

    C# 組件的使用方法示例詳解

    這篇文章主要介紹了C# 組件的使用方法示例詳解,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2025-04-04
  • C#修改圖片尺寸以及不改變原有圖片比例

    C#修改圖片尺寸以及不改變原有圖片比例

    文章介紹了如何使用C#中的Bitmap類來修改圖片尺寸,同時保持原有的圖片比例,作者分享了自己的經(jīng)驗,并鼓勵讀者參考和使用
    2025-01-01
  • unity通過Mesh網(wǎng)格繪制圖形(三角形、正方體、圓柱)

    unity通過Mesh網(wǎng)格繪制圖形(三角形、正方體、圓柱)

    這篇文章主要為大家詳細介紹了unity通過Mesh網(wǎng)格繪制圖形:三角形、正方體、圓柱,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • C#中Winfrom默認輸入法的設(shè)置方法

    C#中Winfrom默認輸入法的設(shè)置方法

    這篇文章主要介紹了C#中Winfrom默認輸入法的設(shè)置方法,以實例形式較為詳細的分析了C#中輸入法設(shè)置的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05

最新評論

天镇县| 巨野县| 璧山县| 绍兴县| 黄陵县| 平武县| 拉孜县| 本溪| 武邑县| 资溪县| 宜昌市| 连州市| 韩城市| 肇州县| 乐平市| 龙南县| 浦东新区| 农安县| 屯留县| 台湾省| 曲水县| 九龙县| 通山县| 内黄县| 股票| 灵台县| 金乡县| 郎溪县| 南宫市| 苍梧县| 东丽区| 湖南省| 花莲市| 弥勒县| 松滋市| 五家渠市| 射洪县| 石景山区| 壤塘县| 中宁县| 延吉市|