Home > Article > Web Front-end > Three ways to use com components in javascript
First create a COM component, insert a double interface Itest, and implement the following three methods on this interface:
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; }
in COM The above three methods respectively demonstrate three situations: no input and output parameters, one input parameter, and one output parameter. After the program is compiled, use regsvr32 to register the component in the system, and then you can use javascript to call the com
component method in IE. It can be used in two situations. Examples are as follows:
1. Directly call the com method
to create an html text and enter the following content:
<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. Call the com method in the javascript
function
to create an html text, and enter the following content:
<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>
Pay attention to the written The com component is called by other systems, so the input and output parameter strings should be of BSTR type.
3. Method of setting the attributes of the com component
First set the attributes in the com component. Add attributes to the interface classVariable
BSTR m_bstr;
Right-click the interface and select "Add"->"Add Attribute" in the "Add Attribute Wizard" In the "Input attribute type", enter the parameter type "BSTR", and in the "Attribute name" enter "bstr", the wizard automatically generates the attribute functions put_bstr and get_bstr, as follows:
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; }
The following code Demonstrates setting and getting attributes in IE's javascript script
<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>
The above is the detailed content of Three ways to use com components in javascript. For more information, please follow other related articles on the PHP Chinese website!