Jak Access metody/vlastnosti kontejner ze skriptu

Překlady článku Překlady článku
ID článku: 188015 - Produkty, které se vztahují k tomuto článku.
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Souhrn

Při provozování ovládací prvek WebBrowser v aplikaci Visual C++ může být nezbytné přístup metody nebo vlastnosti kontejner ze skriptu na webové stránce. Tento článek popisuje postup implementací rozhraní IDocHostUIHandler.

Další informace

Implementací rozhraní IDocHostUIHandler můžete řídit mnoho funkcí uživatelské rozhraní ovládací prvek WebBrowser v hostitelské aplikaci. IDocHostUIHandler také umožňuje rozšířit objektový Model Dynamic HTML (DHTML) přístup k metody a vlastnosti kontejneru ze skriptu.

Tato funkce poskytuje metodu GetExternal() IDocHostUIHandler. Po "window.external.yourMethod" volá skript na webové stránce, ovládací prvek WebBrowser volá metodu GetExternal načíst ukazatel IDispatch hostitelské aplikace. Je prostřednictvím tohoto ukazatele ovládací prvek WebBrowser je možné získat přístup k metody a vlastnosti.

Jakmile ukazatel IDispatch kontejner má ovládací prvek WebBrowser, potom volání IDispatch::GetIDsOfNames() získat DISPID metodu nebo vlastnost v tomto případě volané ze skriptu yourMethod.

Volání ovládacího prvku WebBrowser IDispatch::Invoke() s DISPID nakonec načtena z funkce GetIDsOfNames().

Zde jsou uvedeny kroky, je nutné postupovat podle rozšířit objektový model DHTML bude moci získat přístup na kontejner metody a vlastnosti skriptu:
  1. Implementovat IDocHostUIHandler.
  2. Implementovat metodu IDocHostUIHandler::GetExternal. Nastavit IDispatch parametr, vaše kontejneru takto:
    STDMETHOD(GetExternal)(IDispatch** ppDispatch)
    {
       // Assumes you inherit from IDispatch
       *ppDispatch = (IDispatch*)this;
       (*ppDispatch)->AddRef();
    
       return S_OK;
    }
    					
  3. Vrátit dispatch ID (DISPID) metody nebo vlastnosti z GetIDsOfNames. Pokud jste přidali, metodu nebo vlastnost pomocí průvodce, bude provést pro vás.
  4. Zavést DISPID metoda nebo vlastnost implementace IDispatch::Invoke takto:
    STDMETHODIMP CAtlBrCon::Invoke(DISPID dispidMember, REFIID riid,
                                   LCID lcid, WORD wFlags,
                                   DISPPARAMS* pDispParams,
                                   VARIANT* pvarResult,
                                   EXCEPINFO* pExcepInfo, UINT* puArgErr)
    {
       switch (dispidMember)
       {
          case DISPID_MYMETHOD_OR_PROPERTY:
             // Do something here
    
          default:
             return E_INVALIDARG;
       }
    
       return S_OK;
    }
    					
  5. Volání metody nebo vlastnosti kontejner ze skriptu takto:
     <SCRIPT LANGUAGE="VBScript">
        Sub SomeControl_OnClick
           window.external.yourMethod
        End Sub
     </SCRIPT>
    					

Odkazy

Další informace o technologiích popisované v tomto článku naleznete v dokumentaci týkající se rozhraní Advanced provozování a IDocHostUIHandler MSDN Online Web Workshop:
http://msdn.microsoft.com/workshop/
(c) Microsoft Corporation 1998, všechny rezervované práv. Příspěvky společností Scott Robertse, Microsoft

Vlastnosti

ID článku: 188015 - Poslední aktualizace: 14. února 2014 - Revize: 2.1
Informace v tomto článku jsou určeny pro produkt:
  • 128bitová verze aplikace Microsoft Internet Explorer 4.0
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 4.01 Service Pack 1
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 5.5
Klíčová slova: 
kbnosurvey kbarchive kbmt kbfaq kbhowto kbscript kbwebbrowser KB188015 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:188015

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