JavaScript で com コンポーネントを使用する 3 つの方法

怪我咯
リリース: 2017-03-30 09:45:58
オリジナル
1751 人が閲覧しました

まず COM コンポーネントを作成し、二重の インターフェイス Itest を挿入し、このインターフェイスに次の 3 つのメソッドを実装します:

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 の上記 3 つのメソッドはそれぞれ、入力パラメータと出力パラメータがないこと、入力パラメータが 1 つであることを示しています。出力パラメータには 3 つの状況があります。プログラムがコンパイルされたら、regsvr32 を使用してコンポーネントをシステムに登録し、javascript を使用して IE で com

コンポーネントを呼び出すことができます。例は次の 2 つの状況で使用できます。

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コンポーネントに属性を設定します。インターフェースクラスに属性を追加VariableBSTR 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 コンポーネントを使用する 3 つの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート