DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 在javascript中使用com組件的簡單實現方法
在javascript中使用com組件的簡單實現方法
編輯:關於JavaScript     

首先創建一個COM組件,插入一個雙接口Itest,在此接口上實現以下三個方法:

STDMETHODIMP Ctest::test(void) //無輸入輸出參數 
{ 
// TODO: 在此添加實現代碼 
MessageBox(NULL,L"test",L"test",MB_OK); 

return S_OK; 
} 

STDMETHODIMP Ctest::test1(BSTR a1) //有一個字符串輸入參數 
{ 
// TODO: 在此添加實現代碼 
MessageBox(NULL,a1,L"test",MB_OK); 
return S_OK; 
} 
STDMETHODIMP Ctest::test3(BSTR* a1) //有一個BSTR* 輸出參數 
{ 
// TODO: 在此添加實現代碼 

MessageBox(NULL,L"test3",L"test",MB_OK); 
*a1=::SysAllocString (L"烽火連三月家書抵萬金"); 
return S_OK; 
} 

COM 中的上述三個方法分別演示無輸入輸出參數、有一個輸入參數、有一個輸出參數三種情況。程序編制好後,用regsvr32在系統中注冊組件,然後就可以在IE中用javascript調用com 組件的方法了,分兩種情況掉用,示例如下:

1、直接調用com方法

建立一個html文本,並輸入以下內容:

<html> 
 
<head> 
 
<title> 調用com組件的方法示例 </title> 
 
<script language="javascript"> 
 
document.write("<hr>") 
 
var xml=new ActiveXObject("atldll.test.1") 
 
xml.test() 
 
xml.test1("向com方法中傳遞參數並調用com方法")        
 
var str=xml.test3() //從com方法中返回參數 
document.write("str"+str) 
 
document.write(“<hr>”) 
 
</script> 
 
</head> 
 
<body> 

演示IE腳本程序中調用com組件的方法 
</body> 
 
</html> 

2、在javascript函數中調用com方法

建立一個html文本,並輸入以下內容:

<html> 
 
<head> 
 
<title> donghailin active object </title> 
 
<script type="text/javascript"> 
 
function displaymessage() 
 
{ 
 
document.write("<hr>") 
 
var xml=new ActiveXObject("atldll.test.1") 
 
xml.test() 
 
xml.test1("向com組件傳遞字符串")        
 
var str=xml.test3() //從com組件返回字符串 
document.write("str"+str) 
 
document.write(“<hr>”) 
 
} 
 
</script> 
 
</head> 
 
<body> 
 
<form> 
 
<input type="button" value="Click me!" onclick="displaymessage()" > 
 
</form> 
 
</body> 
 
</html> 

注意編寫的com組件供其他系統調用,因此輸入輸出參數字符串應是BSTR類型。

3、設置com組件的屬性的方法

首先在com組件中設置屬性。在接口類中贈加屬性變量

BSTR m_bstr;

右鍵單擊接口,選擇“贈加”-〉“添加屬性”在”添加屬性向導中“輸入屬性類型” 中輸入參數類型“BSTR” ,“屬性名”輸入“bstr",向導自動生成屬性函數put_bstr和get_bstr,如下:

STDMETHODIMP Ctest::get_bstr(BSTR* pVal) 
{ 
 // TODO: 在此添加實現代碼 
 *pVal=m_bstr; 
 return S_OK; 
} 
 
STDMETHODIMP Ctest::put_bstr(BSTR newVal) 
{ 
 // TODO: 在此添加實現代碼 
 m_bstr=newVal; 
 
 MessageBox(NULL,m_bstr,L"屬性測試",MB_OK); 
 return S_OK; 
} 

下面的代碼演示在IE的javascript腳本中設置和獲得屬性

<html> 
<head> 
<title> donghailin active object </title> 
 
<script type="text/javascript"> 
function displaymessage() 
{ 
document.write("<hr>") 
var xml=new ActiveXObject("atldll.test.1") 
xml.bstr="滿園春色鎖不住一枝紅杏出牆來" //屬性是bstr,C++ 中屬性設置是put_bstr(...) 
document.write("屬性返回值是:"+xml.bstr) //c++中獲得屬性值get_bstr(變量指針) 
document.write("<hr>") 
} 
</script> 
 
</head> 
<body> 
<table  align=center  width=50>  
<form> 
<input type="button" value="Click me!" onclick="displaymessage()" > 
</form> 
</table> 
 
</body> 
</html> 

以上這篇在javascript中使用com組件的簡單實現方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved