2010-05-01 7 views
0

C# .NET에서 Windows 응용 프로그램을 개발 중입니다. 내 winform 중 하나에서 WebBrowser 컨트롤을 추가했습니다. 이 웹 브라우저 컨트롤에서 내 로컬 웹 사이트에서 ASP 페이지를 열었습니다. 이제이 웹 페이지에는 swf 파일을 재생하는 데 사용되는 하나의 플래시 객체가 있습니다. 이제 내 질문은 내 winform에서이 컨트롤에 액세스 할 수 있습니까? 그렇다면 어떻게? 해당 플래시 개체에 대한 처리기를 만들 수 있습니까?플래시 플레이어가 웹 브라우저 컨트롤에서 열리는 ASP 페이지에 임베드되었습니다.

답변

2

IHTMLObjectElement :: object 메서드를 통해 요소에서 ActiveX 스크립팅 인터페이스에 액세스 할 수 있습니다. 자세한 내용은 microsoft.public.inetsdk.programming.webbrowser_ctl 뉴스 그룹에서 IShockwaveFlash를 검색하십시오.

Windows Forms를 사용하는 경우 html 요소의 인터페이스는 HtmlElement.DomElement을 통해 노출됩니다. microsoft.mshtml에 대한 참조를 추가하고 DomElement를 IHTMLObjectElement에 캐스팅 한 다음 개체 속성을 가져 와서 IShockwaveFlash로 캐스팅 할 수 있습니다.

는 ATL의 코드는 회신이

#import "flash.dll" raw_interfaces_only 

CComPtr<IDispatch> htmlElement; 
CComPtr<IDispatch> activeXObject;  
hr = GetElement(elementIdString, &htmlElement); 
if (htmlElement!= NULL) 
{ 
    CComQIPtr<IHTMLObjectElement> htmlObjectElement(htmlElement); 
    if (htmlObjectElement!= NULL) 
    {  
     htmlObjectElement->get_object(&activeXObject); 
     CComQIPtr<ShockwaveFlashObjects::IShockwaveFlash, &IID_IUnknown> flashViewer(spdispActiveXObject);  
     if(flashViewer!=NULL) 
     { 
      //do something on the flash 
      CComBSTR movie; 
      flashViewer->get_Movie(&movie); 
     } 
    } 
} 
+0

헤이 감사 쉥 것 같습니다. 몇 가지 코드 또는 유용한 링크를 설명해 주실 수 있습니까? 나는 그것에 대해 생각 해보지 않고 C# .NET에서 어떻게하는지 모른다. 미리 감사드립니다 ... – Prit

+0

고마워요. Sheng. 내게 도움이 될 것 같아 ... – Prit

관련 문제