>웹 프론트엔드 >JS 튜토리얼 >자바스크립트에서 com 구성 요소를 사용하는 세 가지 방법

자바스크립트에서 com 구성 요소를 사용하는 세 가지 방법

怪我咯
怪我咯원래의
2017-03-30 09:45:581786검색

먼저 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 위 세 가지 메소드는 각각 입력 및 출력 매개변수 없음, 입력 매개변수 1개, 출력 매개변수 1개의 세 가지 상황을 보여줍니다. 프로그램이 컴파일된 후 regsvr32를 사용하여 시스템에 구성 요소를 등록한 다음 javascript를 사용하여 IE에서 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>




위 내용은 자바스크립트에서 com 구성 요소를 사용하는 세 가지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.