How to: Access metodi/proprietÓ del contenitore da script

Traduzione articoli Traduzione articoli
Identificativo articolo: 188015 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo Ŕ stato archiviato. L?articolo, quindi, viene offerto ?cosý come Ŕ? e non verrÓ pi¨ aggiornato.
Espandi tutto | Chiudi tutto

Sommario

Durante l'hosting del controllo WebBrowser in un'applicazione Visual c ++, potrebbe essere necessario accedere a metodi o proprietÓ del contenitore da script in una pagina Web. Questo articolo viene descritto come eseguire questa operazione implementa l'interfaccia IDocHostUIHandler.

Informazioni

Implementando l'interfaccia IDocHostUIHandler, Ŕ possibile controllare molte delle funzionalitÓ interfaccia utente del controllo WebBrowser nell'applicazione host. IDocHostUIHandler consente inoltre di estendere il modello a oggetti DHTML (Dynamic HTML) per accedere ai metodi e proprietÓ del contenitore da all'interno di script.

Il metodo di GetExternal() della IDocHostUIHandler fornisce questa funzionalitÓ. Quando script in una pagina Web chiama "window.external.yourMethod", il controllo WebBrowser chiama il metodo di GetExternal per recuperare un puntatore IDispatch dell'applicazione host. ╚ grazie a questo puntatore che il controllo WebBrowser Ŕ in grado di accedere ai metodi e proprietÓ.

Una volta che il controllo WebBrowser ha un puntatore IDispatch del contenitore, quindi chiama IDispatch::GetIDsOfNames() per ottenere il DISPID del metodo o proprietÓ chiamata dallo script, yourMethod in questo caso.

Infine, le chiamate del controllo WebBrowser IDispatch::Invoke() con il DISPID recupero dal GetIDsOfNames().

Di seguito sono i passaggi da completare per estendere il modello di oggetti DHTML per poter accedere a metodi e la proprietÓ del contenitore da script:
  1. Implementare IDocHostUIHandler.
  2. Implementare il metodo IDocHostUIHandler::GetExternal. Impostare IDispatch parametro a quella del contenitore di modo:
    STDMETHOD(GetExternal)(IDispatch** ppDispatch)
    {
       // Assumes you inherit from IDispatch
       *ppDispatch = (IDispatch*)this;
       (*ppDispatch)->AddRef();
    
       return S_OK;
    }
    					
  3. Restituire il dispatch ID (DISPID) del metodo o proprietÓ da GetIDsOfNames. Se Ŕ stato aggiunto il metodo o proprietÓ utilizzando una procedura guidata, questo verrÓ eseguito automaticamente.
  4. Implementare il DISPID del metodo o proprietÓ l'implementazione di IDispatch:: Invoke modo:
    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. Chiamare un metodo o proprietÓ del contenitore da uno script come questo:
     <SCRIPT LANGUAGE="VBScript">
        Sub SomeControl_OnClick
           window.external.yourMethod
        End Sub
     </SCRIPT>
    					

Riferimenti

Per ulteriori informazioni sulle tecnologie illustrate in questo articolo, vedere la documentazione relativa alle interfacce di hosting avanzato e alla IDocHostUIHandler in MSDN Online Web Workshop:
http://msdn.microsoft.com/workshop/
(c) 1998 Microsoft Corporation, tutti i diritti riservati. Contributi di Scott Roberts, Microsoft Corporation

ProprietÓ

Identificativo articolo: 188015 - Ultima modifica: domenica 9 febbraio 2014 - Revisione: 2.1
Le informazioni in questo articolo si applicano a:
  • Microsoft Internet Explorer 4.0 128-Bit Edition
  • 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
Chiavi:á
kbnosurvey kbarchive kbmt kbfaq kbhowto kbscript kbwebbrowser KB188015 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 188015
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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