在HTML網頁中插入ActiveX控制元件
ActiveX控制元件為XXXX.ocx
<HTML>
<HEAD>
<TITLE>New Page</TITLE>
</HEAD>
<BODY>
<OBJECT ID="ActiveXControlTest11" WIDTH=100 HEIGHT=51
CLASSID="CLSID:96908503-3BEB-4E2B-AA87-F44DC492BC0E">
<PARAM NAME="_Version" VALUE="65536">
<PARAM NAME="_ExtentX" VALUE="2646">
<PARAM NAME="_ExtentY" VALUE="1323">
<PARAM NAME="_StockProps" VALUE="0">
</OBJECT>
</BODY>
</HTML>
每一個ActiveX Control都會有一個對應的CLSID,該ID是唯一的。通過OBJECT的CLASSID屬性指定ActiveX Contorl的ID,就可以找到相應的ActiveX Control。每一個ActiveX Control都必須先註冊,再使用。上述例項可以正常執行是因為在編譯ActiveX工程的時候,VS2005會自動完成對ActiveX Control的註冊。ActiveX Contorl的註冊和反註冊也可以通過實用工具regsvr32完成。
如HTML中對OBJECT加入CODEBASE屬性,就可以讓IE自動完成對ActiveX Control的註冊。修改後的HTML指令碼如下:
<HTML>
<HEAD>
<TITLE>New Page</TITLE>
</HEAD>
<BODY>
<OBJECT ID="ActiveXControlTest11" WIDTH=100 HEIGHT=51
CLASSID="CLSID:96908503-3BEB-4E2B-AA87-F44DC492BC0E"
CODEBASE="release/ActiveXControlTest1.ocx">
<PARAM NAME="_Version" VALUE="65536">
<PARAM NAME="_ExtentX" VALUE="2646">
<PARAM NAME="_ExtentY" VALUE="1323">
<PARAM NAME="_StockProps" VALUE="0">
</OBJECT>
</BODY>
</HTML>
通過JS呼叫如下:
var obj_activex = document.createElement('Object');
obj_activex.classid = 'CLSID:9737E206-C8E5-49F3-B3BB-E4FD3C77ACA4';
obj_activex.WebOnLine(10000,window.location.hostname,window.location.port || 443,path);
其中WebOnLine為ActiveX控制元件中的介面。