INFORMACE: K objektovému modelu z v prvku ActiveX

Překlady článku Překlady článku
ID článku: 172763 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Při psaní ovládací prvek ActiveX pro Internet pravděpodobně často bude nutné pro přístup k modelu objektu stránky HTML. Objektový model umožňuje přístup k různé prvky v rámci stránky HTML.

Tento článek pojednává o přístupu k objektovému modelu z Visual C++ a Visual Basic a pokrývá Internet Explorer (IE) 3.x a 4.0.

Další informace

MODEL OBJEKTU

Dokumentace objektového modelu lze nalézt v ActiveX Software Development Kit (SDK) a Internet Client SDK pro Internet Explorer 3.x a 4.0, respektive. Model objektu je popsána takto:
   window
      - location
      - frames
      - ...
      - document
         - links
         - forms
            - elements
				
objekt okno je na nejvyšší úrovni této hierarchie. Okno má vlastnost dokumentu zase má vlastní sadu vlastností. Další podrobnosti naleznete v příslušné SDK.

PROČ BY MĚL OVLÁDACÍ PRVEK POTŘEBUJETE PŘÍSTUP K OBJEKTOVÉMU MODELU?

Ovládací prvek lze přistupovat (a v některých případech upravovat) informace o stránce je vložený. Chcete-li to provést, musí ovládací prvek přístup k objektovému modelu. Ovládací prvek můžete například výčet všech prvků na stránce. Z dynamického HTML ovládací prvek přístup téměř jakýkoli prvek HTML na stránce.

PŘÍSTUP K MODELU OBJEKTU

Model objektu je implementováno pomocí rozhraní COM a automatizaci. Jakmile ovládací prvek je možné získat přístup k nejvyšší úrovně modelu objektu, pak jej můžete nižší pomocí Automatizace nebo rozhraní COM. objektového modelu. Tento článek popisuje oba kroky:
  1. Získávání nejvyšší úrovně modelu objektu.
  2. Rozbalování do modelu objektu.

ZÍSKÁVÁNÍ NEJVYŠŠÍ ÚROVNĚ MODELU OBJEKTU (VISUAL C++)

Pomocí IWebBrowserApp (pro Internet Explorer 3.x a 4.x)

IWebBrowserApp je rozhraní, které je vystavena ovládacího prvku webového prohlížeče. Má vlastnost dokumentu (nebo metoda get_document) Pokud pomocí vtable rozhraní, která umožňuje přístup k objektu automatizace aktivního dokumentu. Pokud je dokument dokument HTML, objekt automatizace má vlastnost skriptu, které poskytuje objekt okno skriptování modelu objektu. Takže ovládací prvek k dosažení objektového modelu je nutné provést následující:

  • Získat IWebBrowserApp jeho obsahující stránku HTML.
  • Získat vlastnost dokument IWebBrowserApp.
  • Získat vlastnost skriptu v dokumentu.
Tím budou umístěny na nejvyšší úrovni (okno objekt) v modelu objektu. Potom pomocí automatizace nižší dále.

Získání IWebBrowserApp

Získávání IWebBrowserApp je dvoustupňový proces:
  1. Získat objekt IServiceProvider použijte ukazatel IOleClientSite. V ATL ovládací prvek, tento ukazatel lze získat přístup k člen m_spClientSite ovládacího prvku. Tento ukazatel lze v ovládacím prvku MFC získat voláním COleControl::GetClientSite(). Ovládací prvek má přístup k rozhraní IOleClientSite jeho kontejneru. Tento ukazatel dotaz může použít pro objekt IServiceProvider:
    pClientSite->QueryInterface(IID_IServiceProvider,
                              (void **)&pISP);
    						
  2. Použít objekt IServiceProvider získat IWebBrowserApp. Pomocí objekt IServiceProvider služby QueryService lze provést získat IWebBrowserApp:
          pISP->QueryService(SID_SWebBrowserApp, IID_IWebBrowserApp,
                            (void **)&pIWebBrowserApp));
    						
Také, pokud jsou programování pro aplikaci Internet Explorer 4 nebo novější můžete získat ukazatel rozhraní IWebBrowser2 kontejneru s tímto kódem:
   pISP->QueryService(IID_IWebBrowserApp, IID_IWebBrowser2,
     (void **)&pIWebBrowser2));
				
služby QueryService je odlišné od QueryInterface, nemá postupujte pravidlo identity v COM. Tedy Pokud samotný objekt neimplementuje IWebBrowserApp, jej můžete delegovat obsahující objekt a služby QueryService jej pro IWebBrowserApp.

Získat vlastnost dokument IWebBrowserApp

IWebBrowserApp je duální rozhraní. Má vlastnost dokumentu a také metoda get_Document. Buď můžete použít k získání IDispatch aktivního dokumentu. Jakmile máte IDispatch, poté získat vlastnost skriptu.

Získat Script vlastností dokumentu

Pomocí IDispatch získali nad získat vlastnost skriptu pomocí automatizace. Poskytne nejvyšší úrovně v skriptování modelu objektu nebo objektu okna.

ZÍSKÁVÁNÍ NEJVYŠŠÍ ÚROVNĚ MODELU OBJEKTU (VISUAL C++)

(Pouze Internet Explorer 4.0)

Internet Explorer 4.0 umožňuje přístup k modelu objektu mnohem snadnější. Tento proces jednokrokové je:
  1. Získat IHTMLDocument2 IClientSite.

Získání IHTMLDocument2 z IOleClientSite

Každý ovládací prvek má přístup k IClientSite jeho kontejneru. DOTAZ ing IHTMLDocument2 z webu klienta měl přidělit skriptování modelu objektu.
   IOleContainer* pContainer = NULL;
   IHTMLDocument2* pDoc = NULL;

   pClientSite->GetContainer( &pContainer );
   if ( pContainer != NULL )
      pContainer->QueryInterface( &IID_IHTMLDocument2, &pDoc );
				
Zkontrolujte vrácená hodnota z výše uvedených volání. Pokud ovládací prvek není vloženo v rámci stránky nebo kontejner není Internet Explorer 4.0 se nezdaří výše volání.

Získávání IHTMLDocument2 dává objektu dokumentu v skriptování modelu objektu. Potom rozhraní automatizace nebo vtable rozhraní lze použít na nižší úroveň objektového modelu.

ZÍSKÁVÁNÍ NEJVYŠŠÍ ÚROVNĚ MODELU OBJEKTU (VISUAL BASIC)

Vlastnost nadřazené UserControl lze přístup k objektu automatizace. Internet Explorer vrátí z dokumentace jazyka pro vlastnost nadřazeného objektu, jehož vlastnost Script vrací objekt IOmWindow.

Příklad poskytnutá v dokumentaci jazyka je následující:
Parent.Script.get_document.bgColor = "Blue"
				
vlastnost The Parent získává objekt automatizace. Potom vlastnost skriptu nám poskytuje objektu okna skriptování modelu objektu. Potom různé vlastnosti a metody lze přistupovat stejně jako ostatní objekt automatizace.

Způsobem přečtěte výše řádek kódu:
Parent.Script.document.bgColor = "Blue"
				
i přesto, že pomocí get_document je správné Internet Explorer 3.x, nebude fungovat v aplikaci Internet Explorer 4.0. Správný způsob je vlastnost dokumentu použít. To bude pracovat i v aplikaci Internet Explorer 3.x a 4.0.

ROZBALOVÁNÍ OBJEKTOVÝ MODEL

Rozbalování objektový model je stejně jednoduché jako volání vlastnosti a metody pomocí automatizace. Internet Explorer 3.x použít pouze automatizace. Vtable rozhraní lze použít pro aplikaci Internet Explorer 4.0. Další informace naleznete v driller ukázkové v Internet Client SDK.

Vlastnosti

ID článku: 172763 - Poslední aktualizace: 18. července 2001 - Revize: 1.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Internet Explorer 3.01
  • Microsoft Internet Explorer 3.02
  • 128bitová verze aplikace Microsoft Internet Explorer 4.0
  • Microsoft Internet Client Software Development Kit 4.01
Klíčová slova: 
kbmt kbfaq kbinfo KB172763 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:172763

Dejte nám zpětnou vazbu

 

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