먼저 답변감사드립니다.. 소스를보면
TActiveForm 의 ActiveFormControl 를 이용해 정보를 얻어오는대
빌더 6과 빌더 2009 에서 TActiveForm 내에 ActiveFormControl 이 없네요..
델파이만 가능한 것입니까?
빌더보니까 델파이소스도 컴파일가능하던대 델파이 소스를 만들어서 컴파일하라고 답변주신것인지요?
모르는것이 많습니다 ^^;;;
civilian 님이 쓰신 글 :
: 얼마전 델파이로 만들었던 코드입니다. 참고하세요.
:
:
: 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 와 비교해서
: :
: : 매치시킨후 팁에서 나온것처럼해서 자바스크립터 호출하는 처리를 완성했습니다..
: :
: : 이런방법은 다소 무리가 따르는느낌이고.. 객채를 잘이용해서 호출할수있는 방법이 있을터인대
: :
: : 고수님들의 조언부탁드립니다 ^^