정보: ActiveX 컨트롤 내의 개체 모델에서 액세스

기술 자료 번역 기술 자료 번역
기술 자료: 172763 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

요약

인터넷에서 ActiveX 컨트롤을 작성할 때 이를 종종 HTML 페이지의 개체 모델에 액세스하는 데 필요할 수 있습니다. 개체 모델이 HTML 페이지 내의 다양한 요소 액세스할 수 있습니다.

이 문서에서는 Visual C++ 및 Visual Basic 개체 모델에 액세스하는 설명하며 Internet Explorer (IE) 3.x 및 4.0 다룹니다.

추가 정보

개체 모델

개체 모델 설명서는 ActiveX 소프트웨어 개발 키트 (SDK) 및 Internet Explorer 3.x 및 4.0, 인터넷 클라이언트 SDK를 각각 찾을 수 있습니다. 개체 모델에 다음과 같은 문서화된:
   window
      - location
      - frames
      - ...
      - document
         - links
         - forms
            - elements
				
창 개체를 이 계층 구조의 최상위 수준에 있습니다. 창을 차례로 고유한 속성 집합이 문서 속성이 있습니다. 자세한 내용은 적절한 SDK를 참조하십시오.

이유는 컨트롤 개체 모델에 액세스할 필요가 있습니까?

컨트롤을 액세스할 수 (있으며 경우에 따라서는 수정) 에 포함된 페이지에 대한 정보를 있습니다. 이렇게 하려면 컨트롤의 개체 모델에 액세스해야 합니다. 예를 들어, 컨트롤 모두 페이지의 요소에 열거할 수 있습니다. 동적 HTML의 거의 모든 HTML 요소를 페이지의 컨트롤에 액세스할 수 있습니다.

개체 모델 액세스

개체 모델은 자동화 및 COM 인터페이스를 사용하여 구현됩니다. 다음 컨트롤이 최상위 수준의 개체 모델에 액세스할 수 있게 되면 자동화 또는 COM 인터페이스를 사용하여 개체 모델을 아래로 드릴다운하여 수 있습니다. 이 문서에서는 두 단계를 설명합니다.
  1. 개체 모델의 최상위 수준 가져오기.
  2. 개체 모델로 드릴다운.

(시각적 C++) 개체 모델의 최상위 수준 가져오기

IWebBrowserApp (Internet Explorer 3.x 및 4.x) 사용

IWebBrowserApp 웹 브라우저 컨트롤에 의해 노출되는 인터페이스입니다. 이를 문서 속성 또는 get_document 메서드는 vtable 인터페이스를 사용하는 경우 현재 문서의 자동화 개체에 액세스할 수 있습니다. 다음 문서가 HTML 문서인 경우 자동화 개체를 스크립팅 개체 모델 창 개체를 제공하는 스크립트 속성이 있습니다. 따라서 컨트롤의 개체 모델은 도달하기 위해 다음을 수행해야 합니다.

  • IWebBrowserApp을 포함하는 HTML 페이지에서 얻습니다.
  • IWebBrowserApp 문서 속성을 볼 수 있습니다.
  • 문서의 스크립트 속성을 가져옵니다.
이 개체 모델에서 최상위 수준 (창 개체) 배치됩니다. 다음 자동화를 드릴다운하려면 추가로 사용하십시오.

해당 IWebBrowserApp 얻기

해당 IWebBrowserApp 가져오는 2단계 과정은 다음과 같습니다.
  1. IOleClientSite 포인터를 IServiceProvider 가져올 수 있습니다. ATL의 컨트롤, 컨트롤의 m_spClientSite 구성원 액세스하여 이 포인터를 얻을 수 있습니다. COleControl::GetClientSite() 호출하여 MFC 컨트롤에서 이 포인터를 얻을 수 있습니다. 컨트롤이 해당 컨테이너의 IOleClientSite 인터페이스는 액세스합니다. IServiceProvider에 대한 QI 해당 포인터를 사용할 수 있습니다:
    pClientSite->QueryInterface(IID_IServiceProvider,
                              (void **)&pISP);
    						
  2. 해당 IServiceProvider를 IWebBrowserApp 얻을 수 있습니다. 해당 IServiceProvider 사용하여 한 QueryService 있는 IWebBrowserApp 가져오려면 수행할 수 있습니다:
          pISP->QueryService(SID_SWebBrowserApp, IID_IWebBrowserApp,
                            (void **)&pIWebBrowserApp));
    						
또한 Internet Explorer 4 프로그래밍 이상이 있는 경우 이 코드 사용하여 컨테이너의 IWebBrowser2 인터페이스에 대한 포인터를 얻을 수 있습니다:
   pISP->QueryService(IID_IWebBrowserApp, IID_IWebBrowser2,
     (void **)&pIWebBrowser2));
				
COM ID를 규칙을 따라야 할 필요는 없다는 QueryService에서 QueryInterface 다릅니다. 개체 자체를 IWebBrowserApp 구현할 경우, 이를 포함하는 개체와 QueryService 이를 IWebBrowserApp에 대한 위임할 수 있습니다.

IWebBrowserApp 문서 속성 가져오기

이중 인터페이스를 IWebBrowserApp이 있습니다. 문서 속성 및 get_Document 메서드가 있습니다. 하나를 현재 문서의 IDispatch 가져올 수 있습니다. 다음 스크립트를 속성이 있는 IDispatch 일단 얻을 수 있습니다.

문서의 스크립트 속성 가져오기

위의 얻은 IDispatch 사용하여 자동화를 사용하여 스크립트 속성을 가져옵니다. 이 최상위 수준 스크립팅 개체 모델 또는 창 개체를 제공합니다.

최상위 수준 (시각적 C++) 개체 모델의 가져오는 중

(Internet Explorer 4.0 전용)

Internet Explorer 4.0 훨씬 쉽게 개체 모델에 액세스할 수 있습니다. 1단계 프로세스는 다음과 같습니다.
  1. 해당 IHTMLDocument2 IClientSite에서 볼 수 있습니다.

IOleClientSite에서 IHTMLDocument2 얻기

모든 컨트롤을 해당 컨테이너의 IClientSite 액세스합니다. QI-ing 클라이언트 사이트에서 IHTMLDocument2에 대한 스크립팅 개체 모델을 제공해야 합니다.
   IOleContainer* pContainer = NULL;
   IHTMLDocument2* pDoc = NULL;

   pClientSite->GetContainer( &pContainer );
   if ( pContainer != NULL )
      pContainer->QueryInterface( &IID_IHTMLDocument2, &pDoc );
				
위의 호출의 반환 값을 검사합니다. 다음 컨트롤을 HTML 페이지 내에 포함된 경우 또는 Internet Explorer 4.0 컨테이너인 경우 위의 호출은 실패합니다.

문서 개체를 IHTMLDocument2 가져오는 스크립팅 개체 모델을 제공합니다. 다음 개체 모델을 아래로 드릴다운합니다 자동화 인터페이스를 또는 vtable 인터페이스를 사용할 수 있습니다.

최상위 수준 (시각적 기본) 개체 모델의 가져오는 중

자동화 개체에 액세스할 수 있는 UserControl 부모 속성을 사용할 수 있습니다. 부모 속성에 대한 Visual Basic 문서에서 Internet Explorer에서 스크립트 속성이 IOmWindow 개체를 반환합니다 개체를 반환합니다.

Visual Basic 설명서에서 제공된 예제는 다음과 같습니다:
Parent.Script.get_document.bgColor = "Blue"
				
있는 Parent 속성은 자동화 개체를 가져옵니다. 다음 스크립트 속성 우리를 창 개체를 스크립팅 개체 모델을 제공합니다. 다음 바로 다른 자동화 개체와 같은 다른 속성과 메서드를 액세스할 수 있습니다.

위의 코드 줄은 다음과 같이 읽어야 합니다:
Parent.Script.document.bgColor = "Blue"
				
get_document 사용하여 Internet Explorer 3.x 올바른지 해도 있지만 Internet Explorer 4.0 작동하지 것입니다. 문서 속성을 사용하려면 올바른 방법입니다. Internet Explorer 3.x 및 4.0 모두 작동하지 것입니다.

개체 모델을 아래로 드릴

개체 모델을 아래로 드릴 속성 및 자동화를 사용하여 메서드를 호출하는 같이 간단합니다. Internet Explorer 3.x, 자동화를 경우에만 사용하십시오. Internet Explorer 4.0은 위한 vtable 인터페이스는 사용할 수 있습니다. 자세한 내용은 driller 샘플에서 인터넷 클라이언트 SDK를 참조하십시오.

속성

기술 자료: 172763 - 마지막 검토: 2001년 7월 18일 수요일 - 수정: 1.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Internet Explorer 3.01
  • Microsoft Internet Explorer 3.02
  • Microsoft Internet Explorer 4.0 128-Bit Edition
  • Microsoft Internet Client Software Development Kit
키워드:?
kbmt kbfaq kbinfo KB172763 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com