2011-02-17 5 views
0

누구든지 C++에서 Javascript의 프로토 타입 메소드를 호출하는 방법을 알고 있습니까?어떻게 프로토 타입 멤버 함수 (C++ -> 자바 스크립트)를 얻을 수

스크립트 IDispatch에 대한 포인터가 있는데 프로토 타입에 대한 IDsOfNames를 얻을 수 있지만 그 멤버 함수의 IDispatch를 가져 오는 방법을 찾을 수 없습니다.

말 (의사 코드) :

JSprototype foo 
{ 
    method bar(baz); 
} 

나는 foo는 유효한 DISPID를 얻을 수 있습니다,하지만 난 bar(baz)를 호출하는 방법을 모르겠어요. 누구나 아이디어가 있습니까?

+0

나는 당신이'IDispatch'를 가지고 있다고 생각하는 MSHTML을 가정하고 있습니까? – MSalters

답변

0

그게 바로 IDispatch::Invoke입니다. 모든 기능에 대해 별도의 IDispatch이 필요하지 않습니다. 그러나 을 수행하려면bar의 DISPID가 필요하므로 IDispatchfoo입니다. 즉, iFoo->Invoke(DISPID_bar)QueryInterface(IDispatch)으로 전화해야합니다.

+0

예, MSHTML. 하지만 나는 IDispatch foo가 없으므로 Invoke0 (Bar, Baz)을 사용할 수 없습니다. 내가 가지고있는 것은 전체 스크립트 객체의 IDispatch이며, 나는 foo의 DISPID를 얻을 수있다. DISPID를 IDispatch로 어떻게 변환합니까? – Coder

+0

일반적으로 foo에 대한 IDispatch를 얻으려면 DISPID가 foo 인 PROPERTYGET을 수행하면됩니다. – taxilian