Heim  >  Artikel  >  Web-Frontend  >  Drei Möglichkeiten, COM-Komponenten in Javascript zu verwenden

Drei Möglichkeiten, COM-Komponenten in Javascript zu verwenden

怪我咯
怪我咯Original
2017-03-30 09:45:581745Durchsuche

Erstellen Sie zunächst eine COM-Komponente, fügen Sie eine doppelte -Schnittstelle Itest ein und implementieren Sie die folgenden drei Methoden auf dieser Schnittstelle:

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 Die oben genannten drei Methoden veranschaulichen jeweils drei Situationen: keine Eingabe- und Ausgabeparameter, ein Eingabeparameter und ein Ausgabeparameter. Nachdem das Programm kompiliert wurde, registrieren Sie die Komponente mit regsvr32 im System. Anschließend können Sie mit javascript die com-Komponentenmethode

im IE aufrufen. Sie kann in zwei Situationen verwendet werden . Beispiele sind wie folgt:

1. Rufen Sie direkt die com-Methode

auf, um einen HTML-Text zu erstellen und den folgenden Inhalt einzugeben:

<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. Rufen Sie die com-Methode in der Javascript-
-Funktion
auf, um einen HTML-Text zu erstellen und geben Sie den folgenden Inhalt ein:

<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>

Beachten Sie, dass die COM-Komponente für andere Systemaufrufe geschrieben ist, daher sollten die Eingabe- und Ausgabeparameterzeichenfolgen vom Typ BSTR sein.

3. Methode zum Festlegen des -Attributs der COM-Komponente

Legen Sie zunächst das Attribut in der COM-Komponente fest. Fügen Sie der Schnittstellenklasse Attribute hinzuVariable

BSTR m_bstr;

Klicken Sie mit der rechten Maustaste auf die Schnittstelle und wählen Sie „Hinzufügen“ -> „Attribut hinzufügen“ im „Assistent zum Hinzufügen von Attributen“. " Geben Sie den Parametertyp „BSTR“ in „Eingabeattributtyp“ und „bstr“ in „Attributname“ ein. Der Assistent generiert automatisch die Attributfunktionen put_bstr und get_bstr wie folgt:

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; 
}

unten Der Code demonstriert das Setzen und Abrufen von Attributen im Javascript-Skript des IE

<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>




Das obige ist der detaillierte Inhalt vonDrei Möglichkeiten, COM-Komponenten in Javascript zu verwenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn