web調用winform控件的實現-ActiveX控件


ActiveX控件以前也叫做OLE控件或OCX控件,它是一些軟件組件或對象,可以將其插入到WEB網頁或其它應用程序中。使用ActiveX插件,可以輕松方便的在 Web頁中插入多媒體效果、交互式對象以及復雜程序等等。
在Visual Studio 2008開發環境中,可以使用Windows控件庫項目實現ActiveX控件的開發,但是需要對項目做一些必要的設置。下面就來看看如何使用Windows控件庫項目開發一個ActiveX控件。首先創建一個應用程序解決方案,並添加一個Windows控件庫項目:
更改“項目屬性-應用程序-程序集信息”設置,勾選“使程序集 COM 可見”:

更改“項目屬性-生成”設置,勾選“為 COM Interop 注冊”(注意,此處如果實在debug狀態下修改的,那在調到release狀態下還需要再設置一次):
http://images.cnblogs.com/cnblogs_com/yilin/WindowsLiveWriter/CActiveX_13F30/clip_image006_2.jpg
修改AssemblyInfo.cs文件,添加[assembly: AllowPartiallyTrustedCallers()]項(需要引用System.Security名稱空間): 

C# code

編碼實現

按照開發Windows用戶控件一樣的思路完成該控件的開發,本例中主要實現了兩個業務功能,一個是提供一個公共方法,用於讀取USBKey中保存的簽名證書,保存到本地C盤根目錄下,並返回操作信息;另一個業務功能提供UI界面,包括一個Button控件和一個Label控件,Button控件的Click事件調用前面提供的那個方法,並將返回信息顯示到Label控件上。這樣做可以達到兩個目的,其一,ActiveX控件提供公共方法供B/S程序直接調用,從后實現業務功能;其二,ActiveX控件可以提供B/S程序UI界面,通過響應B/S程序中對UI的操作事件實現業務功能。
      完成控件開發后,為了使該用戶控件作為一個ActiveX控件進行使用,還需要做以下修改:
      首先,為控件類添加GUID,這個編號將用於B/S系統的客戶端調用時使用(可以使用 工具-創建GUID 菜單創建一個GUID): 

C# code

Guid("4A44CF4E-F859-4328-AA22-3E9D7AFFF1AB")]

public partial class Hello : UserControl

{

其次,為了讓ActiveX控件獲得客戶端的信任,控件類還需要實現一個名為“IObjectSafety”的接口。先創建該接口(注意,不能修改該接口的GUID值): 

C# code

編碼實現

  然后在控件類中繼承並實現該接口:

C# code

編碼實現

然后怎么部署的我想你應該知道的!!

我們使用 工具—〉OLE/COM對象查看器 查看,如圖:

可以看到,我們寫的控件已經被正確識別為COM組件。現在,我們已經可以像使用其它ActiveX控件一樣在網頁中顯示了。在HelloWorld.Demo點擊鼠標右鍵,如圖:

選擇Copy HTML <object> Tag to Clipboard,可以將代碼拷入剪貼板。


<body bgcolor=’#223344’>
<object id="helloworld" 
   classid="clsid:9551B223-6188-4387-B293-C7D9D8173E3A" Width="184" Height="96">
</object>
</body>

http://www.iwms.net/upload/2006_05/06053012333489.zip


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM