Maison  >  Article  >  interface Web  >  Trois façons d'utiliser les composants com en javascript

Trois façons d'utiliser les composants com en javascript

怪我咯
怪我咯original
2017-03-30 09:45:581745parcourir

Créez d'abord un composant COM, insérez une double interface Itest, et implémentez les trois méthodes suivantes sur cette 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; 
}

COM Les trois méthodes ci-dessus démontrent respectivement trois situations : aucun paramètre d'entrée et de sortie, un paramètre d'entrée et un paramètre de sortie. Une fois le programme compilé, utilisez regsvr32 pour enregistrer le composant dans le système, puis vous pouvez utiliser javascript pour appeler la méthode du composant com

dans IE. Elle peut être utilisée dans deux situations. . Les exemples sont les suivants :

1. Appelez directement la méthode com

pour créer un texte html et saisissez le contenu suivant :

<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. Appelez la méthode com dans la fonction javascript
pour créer un texte html et saisissez le contenu suivant :


<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>
Notez que le composant COM est écrit pour d'autres appels système, les chaînes de paramètres d'entrée et de sortie doivent donc être de type BSTR.



3. Méthode de définition de l'attribut du composant com
Définissez d'abord l'attribut dans le composant com. Ajouter des attributs à la classe d'interface
Variable
BSTR m_bstr;

Cliquez avec le bouton droit sur l'interface et sélectionnez "Ajouter" -> "Ajouter un attribut" dans "Assistant d'ajout d'attribut " Entrez le type de paramètre "BSTR" dans "Type d'attribut d'entrée" et "bstr" dans "Nom de l'attribut". L'assistant génère automatiquement les fonctions d'attribut put_bstr et get_bstr, comme suit :


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; 
}
ci-dessous Le code montre la définition et l'obtention de propriétés dans le script javascript d'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>




Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn