這是我們需要解決的N個問題(從簡單到難)
1. 如何從服務端獲取數據,傳遞到ActiveX控件中。
1) 初始化時使用參數綁定
2) 運行時得到數據
2. ActiveX控件得到客戶端的信息,如何傳遞到服務端。
3. 安全性
1) 數字簽名
2) 使用IOBJSAFE接口
好了,我們開始實例學習。
這個功能演示了如何制作壹個簡單的控件,並嵌入網頁中執行。
工作環境:WINXP+VB6+IE6
我的IE安全設置為安全級別-中。所有的Activex選項設為啟用。
打開vb6,新建ActiveX控件工程。
工程名:fOcx,用戶控件名:UC1
為了方便,我們使用ActiveX控件接口向導…,菜單->外接程序->外接程序管理器->VB 6 ActiveX控件接口向導。確定即可。
打開ActiveX控件接口向導,下壹步,對於可用名稱和選定名稱我們默認下壹步,新建自定義成員,GetInfo類型:屬性,下壹步,***有方法中選擇我們剛才添加的GetInfo,映射到控件選擇TxtInfo,成員選擇Text,下壹步直到完成。代碼窗口中會生成壹些我們不需要的,刪除,剩下的代碼如下:
Option Explicit
'註意!不要刪除或修改下列被註釋的行!
'MappingInfo=txtinfo,txtinfo,-1,Text
Public Property Get GetInfo() As String
GetInfo = txtinfo.Text
End Property
Public Property Let GetInfo(ByVal New_GetInfo As String)
txtinfo.Text() = New_GetInfo
PropertyChanged GetInfo
End Property
'從存貯器中加載屬性值
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
txtinfo.Text = PropBag.ReadProperty(GetInfo, Text1)
End Sub
'將屬性值寫到存儲器
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Call PropBag.WriteProperty(GetInfo, txtinfo.Text, Text1)
End Sub
OK,好了,我們編譯成fOcx.ocx文件,然後F5直接運行,VB會打開壹個測試頁。如下:
E:\Program Files\Microsoft Visual Studio\VB98\UC1.html
同時,打開妳的IE瀏覽器,看到了吧,妳做的控件出現在了這個測試頁中。
妳可以打開測試頁,可以看到ClsID,比如:890D1028-298B-45CF-9A64-6ED5A5BACBC9
因為VB編譯的時候已經完成註冊.所以無法模擬客戶端沒有安裝該控件時出現的提示.
我們繼續
使用regsvr32 F:\csdn_vb\com+_activeX\sample1\fOcx.ocx –u卸載
或者
打開註冊表,在HKEY_CLASSES_ROOT\CLSID下面找到
890D1028-298B-45CF-9A64-6ED5A5BACBC9項,刪除之,當然這種方式還有項存在而沒有刪除幹凈.
由於IE中ActiveX設置為啟動,所以,控件會顯示出來。