用C#編寫ActiveX控件(二)
用C#編寫ActiveX控件(二)
Homer





















現(xiàn)在,重新訪問http://localhost/helloworld.htm,單擊Click按鈕,應該可以實現(xiàn)交互了。
但是結果卻很遺憾,我們發(fā)現(xiàn)IE跳出了對話框,如圖所示:
單擊確定之后,我們發(fā)現(xiàn)JS報錯。根據(jù)提示,我們判斷可以通過修改IE的設置使控件運行。打開IE的 工具——〉Internet選項——〉安全——〉本地Intranet——〉自定義級別——〉對沒有標記為安全的ActiveX控件進行初始化和運行,將其值設為啟用。我們刷新頁面,現(xiàn)在終于可以正確運行了。
當然,我們不能指望我們的客戶和我們一樣修改這個值。畢竟,一是操作麻煩,二是給電腦帶來了很大的安全風險。在互聯(lián)網(wǎng)上搜索之后,發(fā)現(xiàn)必須要實現(xiàn)IObjectSafety接口,把ActiveX控件標記為安全的ActiveX控件。在搜索MSDN之后,我找到了IObjectSafety接口的定義。這就好辦了。首先我們自己用C#實現(xiàn)這個接口:
















注意,這個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
這樣,一個最基本的ActiveX控件已經(jīng)寫好了。你可以在這個控件的基礎上增加任何你需要的功能。到這里,編寫控件的任務已經(jīng)完成了,我們的下一個目標就是發(fā)布它。
相關文章
C# 中 System.Index 結構體和 Hat 運算符(^)的使用示例
這篇文章主要介紹了C# 中 System.Index 結構體和 Hat 運算符(^)的使用示例,幫助大家更好的理解和使用C#,感興趣的朋友可以了解下2020-09-09C#抓取網(wǎng)絡圖片保存到本地的實現(xiàn)方法
下面小編就為大家分享一篇C#抓取網(wǎng)絡圖片保存到本地的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01C# Csv實現(xiàn)基本的讀寫和轉換DataTable
本文主要介紹了C# Csv實現(xiàn)基本的讀寫和轉換DataTable,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-02-02