ИНФОРМАЦИЯ: Доступ К объектной модели из элемента управления ActiveX

Переводы статьи Переводы статьи
Код статьи: 172763 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

При создании элемента управления ActiveX для Интернета, часто бывает для доступа к объектной модели HTML-страницы. Доступ к объектной модели к различным элементам на странице HTML.

В данной статье, доступ к объектной модели из Visual C++ и Visual Basic и охватывает обозревателя Internet Explorer (IE) 3.x и 4.0.

Дополнительная информация

ОБЪЕКТНАЯ МОДЕЛЬ

В программное обеспечение ActiveX можно найти документацию по объектной модели Пакет средств разработки (SDK) и Интернет-клиентом SDK для обозревателя Internet Explorer 3.x и 4.0, соответственно. Объектная модель описана следующим образом:
   window
      - location
      - frames
      - ...
      - document
         - links
         - forms
            - elements
				
Объект окна находится на верхнем уровне иерархии. У окна Свойства документа, которое в свою очередь имеет собственный набор свойств. Пожалуйста для получения дополнительной информации обратитесь к соответствующим пакетом SDK.

ПОЧЕМУ СЛЕДУЕТ ЭЛЕМЕНТ УПРАВЛЕНИЯ ТРЕБУЕТСЯ ДОСТУП К ОБЪЕКТНОЙ МОДЕЛИ?

Элемент управления можно получить доступ к (и в некоторых случаях изменения) сведения о странице что он внедряется в. Для этого элемента управления необходимо получить доступ к объектной модели. Например элемент управления может перечислить все элементы на странице. В регистр динамического HTML, элемент управления можно получить доступ к практически любой HTML-элемент в страницы.

ДОСТУП К ОБЪЕКТНОЙ МОДЕЛИ

Объектная модель реализуется с помощью автоматизации и COM-интерфейсов. Один раз элемент управления верхнего уровня модели объектов, затем его доступ к можно получить подробные объектной модели автоматизации или COM-интерфейсов. Это в статье рассматриваются оба действия.
  1. Знакомство с верхнего уровня модели объектов.
  2. Углубленная детализация модели объектов.

ЗНАКОМСТВО С ВЕРХНЕГО УРОВНЯ МОДЕЛИ ОБЪЕКТОВ (VISUAL C++)

С помощью IWebBrowserApp (для обозревателя Internet Explorer 3.x и 4.x)

IWebBrowserApp является интерфейсом, которая раскрывается элементом управления веб-обозревателя. Он имеет свойство документа (или метода get_document при помощи vtable интерфейс), разрешает доступ на объект автоматизации активный документ. Если документ является HTML-документа, а затем объект автоматизации имеет свойство сценария, которое предоставляет объект window объекта сценария модель. Таким образом для элемента управления для доступа к объектной модели, должны быть сделано:

  • Получите IWebBrowserApp из содержащей его страницы HTML.
  • Получите свойство документа IWebBrowserApp.
  • Получение свойств сценария документа.
Это будет помещено на верхнем уровне (объект window) в объектной модели. Затем автоматизации на нижние уровни дальнейшего использования.

Получение IWebBrowserApp

Получение IWebBrowserApp является в два этапа:
  1. С помощью указателя IOleClientSite получить IServiceProvider. В ATL элемент управления, этот указатель может быть получен путем обращения к m_spClientSite элемент управления. Получить этот указатель элемента управления MFC путем вызова COleControl::GetClientSite(). Элемент управления имеет доступ к Интерфейс IOleClientSite его контейнера. Он может использовать этот указатель на Элемент для IServiceProvider:
    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));
				
QueryService отличается от QueryInterface в том, что оно не нужно Выполните правила удостоверения в COM. Поэтому, если сам объект не поддерживает реализовать IWebBrowserApp, ее можно делегировать содержащего объекта и QueryService его для IWebBrowserApp.

Получите свойство документа IWebBrowserApp

IWebBrowserApp является сдвоенный интерфейс. Он имеет свойства документа, а также метод get_Document. Либо можно использовать для получения интерфейса IDispatch активный документ. После IDispatch, свойство сценария может быть. получить.

Получите сценарий свойства документа

С помощью интерфейса IDispatch, полученный выше, получите свойство сценария с помощью автоматизации. Это даст верхнего уровня в модели объектов сценария или объект окна.

НАЧАЛО ВЕРХНЕГО УРОВНЯ МОДЕЛИ ОБЪЕКТОВ (VISUAL C++)

(Только для Internet Explorer 4.0)

Internet Explorer 4.0 упрощает доступ к объектной модели гораздо проще. Это задачей:
  1. Получите IHTMLDocument2 из IClientSite.

Получение IHTMLDocument2 из IOleClientSite

Каждый элемент управления имеет доступ к 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 интерфейсов для перехода к модели объектов.

НАЧАЛО ВЕРХНЕГО УРОВНЯ МОДЕЛИ ОБЪЕКТОВ (VISUAL BASIC)

Родительское свойство пользовательского элемента управления можно использовать для доступа к автоматизации объект. В документации Visual Basic для свойства родительского Internet Explorer возвращает объект, свойство возвращает сценарий Объект IOmWindow.

В качестве примера описывается в документации Visual Basic выглядит следующим образом:
Parent.Script.get_document.bgColor = "Blue"
				
Свойство Parent возвращает объект автоматизации. Затем свойство сценария Предоставляет объект window моделью объектов сценария. Затем как и любой другой может осуществляться различные свойства и методы объект автоматизации.

Выше строки кода будет выглядеть следующим образом:
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 - Последний отзыв: 4 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Internet Client Software Development Kit 4.01
Ключевые слова: 
kbDSupport kbFAQ kbinfo kbmt KB172763 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:172763

Отправить отзыв

 

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