2011-10-02 4 views
0

나는 hyrid 유형 응용 프로그램 (웹 및 양식)이 있습니다. 그것은 .net 소형 프레임 워크 응용 프로그램입니다. 양식 중 하나에는 WebBrowser 컨트롤이 있습니다.브라우저 외부로 전달할 수있는 JavaScript의 객체 (COM)에 대한 참조를 얻는 방법

WebBrowser 컨트롤과 WebBrowser 컨트롤을 호스팅하는 양식간에 통신하고 싶습니다.

Windows Mobile 장치 용으로 컴파일 된 C++에서 Activex (COM) 개체를 만들 계획입니다.

JavaScript를 사용하여 WebBrowser 컨트롤에 표시되는 웹 페이지에서 ActiveX 컨트롤의 인스턴스를 만들 계획입니다.

폼에 보낼 수있는이 ActiveX 컨트롤에 대한 참조를 어떻게 얻을 수 있습니까?


내 목표는 웹 페이지와 형태 모두가 사용할 수있는/ActiveX 컨트롤의 동일한 인스턴스를 액세스 할 수 있도록 웹 브라우저 컨트롤이 들어있는 창에 ActiveX 컨트롤 인스턴스의 참조 모바일 양식을 보낼 수 있습니다.

ActiveX 컨트롤에서 폼으로 문자열을 보내는 방법을 만들었습니다. ActiveX 컨트롤의 참조를 문자열로 변환 한 다음 문자열을 양식에 전달하고 양식 측면의 개체 인스턴스에 대한 참조를 다시 작성하는 방법이 있습니까?

나는 이것이 의미가 있기를 바랍니다.

답변

0

할 수 있습니다 창에 IDispatch를 참조 같은 것을 사용하여 얻을 :

CComPtr<IWebBrowser2> m_webBrowser(/* create, assign, whatever to get the pointer */ 
CComQIPtr<IHTMLWindow2> m_htmlWin; 
CComPtr<IDispatch> m_htmlDocDisp; 
CComQIPtr<IDispatch> m_htmlWindDisp; 

m_webBrowser->get_Document(&m_htmlDocDisp); 
CComQIPtr<IHTMLDocument2> doc(m_htmlDocDisp); 
assert(doc); 
doc->get_parentWindow(&m_htmlWin); 
assert(m_htmlWin); 

m_htmlWindDisp = m_htmlWin; 
assert(m_htmlWin); 

당신은, 당신은 윈도우 객체에 속성 값을 조회하는 중 IDispatch 메서드를 사용하거나 당신이 할 수있는 것을 일단 그러한 속성의 값을 설정하십시오. 예를 들어 메서드와 속성을 표시하는 IDispatch 객체를 만든 경우 m_htmlWindDisp 객체를 사용하여 PROPERTYPUTREF 객체를 "foo"로 호출하면 "window.foo"를 사용하여 javascript에서 해당 객체에 액세스 할 수 있습니다. Alternatley, PROPERTYGET을 사용하여 Invoke를 사용하면 window에 설정 한 객체 (예 : "window.foo = someFooBaredObject")에 대한 IDispatch 핸들을 얻을 수 있습니다.

희망적입니다.

관련 문제