C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[56273] Re:엑티브X 컨트롤에서 IE의 DOC얻기
civilian [civilian] 1376 읽음    2009-02-26 01:01
얼마전 델파이로 만들었던 코드입니다. 참고하세요.

function GetBrowserInterface(AXForm: TActiveForm): IWebBrowserApp;
var
  pvSvcProvider: IServiceProvider;
  pvBrowserApp: IWebBrowserApp;

  function GetBrowser(punk: IUnknown; out pvBrowser: IWebBrowserApp): HResult;
  begin
    if   Assigned(punk)   then
    begin
      Result := punk.QueryInterface(IServiceProvider, pvSvcProvider);
      if (Result = S_OK)   then
      begin
        try
          Result := pvSvcProvider.QueryService(IWebBrowserApp, IWebBrowserApp, pvBrowser);
        finally
          pvSvcProvider := nil;
        end;
      end;
    end
    else
      Result := E_NOINTERFACE;
  end;
begin
  if Assigned(AXForm.ActiveFormControl) and (GetBrowser(AXForm.ActiveFormControl.ClientSite, pvBrowserApp) = S_OK) then
  begin
    try
      Result := pvBrowserApp;
    finally
      pvBrowserApp := nil;
    end;
  end
  else
    Result := nil;
end;



강대민 님이 쓰신 글 :
: 웹페이지에 들어가는 엑티브엑스를 만들고있습니다
:
: 자신이 포함된 페이지의 자바스크립트를 호출하여 웹페이지와 상호 작용을하고싶은대
:
: 부모 IE의 객채를 구할수없어서 난감합니다 여기 저기 자료도보고
:
: execScript 팁도보고했는대  하나는 자기자신이 가지고있는 웹프라우저를 실행시키는것이고
:
: 하나는 TShellWindows  클레스를 사용해 모든 IE컨트롤 을 대상으로하여 주소로 필터링해서
:
: 스크립터를 실행하는 팁이더군요..  저같은경우에는 자신을 실행시킨 부모가 누군지 몰라서
:
: 주소로 필터링할수도없고.. 난감합니다   GetParent 를통해 얻은 핸들을
:
: ShellWindows->Item(i)->HWND 와 매치시켜도 실수를한건지 매치가 안되내요..
:
: GetParent 를통해 얻은 핸들을 GetClassName함수로 얻어서 출력해보면
:           
: "Internet Explorer_Server" 이렇게 나옵니다..  핸들은 바로 얻는것이 맞는듯도 하구요
:
: 고수님들의 답변두탁드립니다..   프로그래밍은 나름오래했는대 어느덧 변한 프로그래밍 스타일에
:
: 적응이 안됩니다 ^^;;
:
: 요점은  - >   엑티브엑스 컨트롤에서 자기 자신을 표시하고있는 IE의 도큐먼트를 얻고 싶습니다
:
:
:
:
: //-- 
:
: 질문드리고 조금후에  Internet Explorer_Server 의 페런트를 또얻고  그 페런트를 또얻고하는방식으로
:
: IEFrame(클레스명) 의 핸들을 취득하고 ShellWindows->Item(i)->HWND 와 비교해서
:
: 매치시킨후 팁에서 나온것처럼해서 자바스크립터 호출하는 처리를 완성했습니다..
:
: 이런방법은 다소 무리가 따르는느낌이고.. 객채를 잘이용해서 호출할수있는 방법이 있을터인대
:
: 고수님들의 조언부탁드립니다 ^^

+ -

관련 글 리스트
56267 엑티브X 컨트롤에서 IE의 DOC얻기 강대민 1528 2009/02/25
56273     Re:엑티브X 컨트롤에서 IE의 DOC얻기 civilian 1376 2009/02/26
56284         Re:Re:엑티브X 컨트롤에서 IE의 DOC얻기 강대민 1685 2009/02/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.