INFORMAZIONI: Il modello di oggetti in un controllo ActiveX di accesso

Traduzione articoli Traduzione articoli
Identificativo articolo: 172763 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

Quando si scrive un controllo ActiveX per Internet, Ŕ spesso necessario accedere al modello oggetto della pagina HTML. Il modello di oggetti consente l'accesso a vari elementi all'interno della pagina HTML.

In questo articolo viene descritto l'accesso al modello di oggetti da Visual c ++ e da Visual Basic e vengono illustrati sia Internet Explorer (IE) 3.x e 4.0.

Informazioni

IL MODELLO A OGGETTI

Documentazione per il modello a oggetti Ŕ reperibile in ActiveX Software Development Kit (SDK) e in Internet Client SDK per Internet Explorer 3.x e 4.0, rispettivamente. Il modello a oggetti Ŕ documentato nel modo seguente:
   window
      - location
      - frames
      - ...
      - document
         - links
         - forms
            - elements
				
l'oggetto finestra Ŕ il livello superiore di questa gerarchia. La finestra dispone di una proprietÓ documento, che a sua volta ha un proprio insieme di proprietÓ. Per ulteriori informazioni, consultare il SDK appropriato.

PERCH╔ UN CONTROLLO NECESSARIO ACCEDERE AL MODELLO DI OGGETTO?

Un controllo pu˛ accedere e in alcuni casi modificare informazioni sulla pagina incorporata in. Per effettuare questa operazione, Ŕ necessario che il controllo accedere al modello a oggetti. Ad esempio, un controllo pu˛ enumerare tutti gli elementi in una pagina. In caso di HTML dinamico, Ŕ possibile che il controllo accedere qualsiasi elemento HTML nella pagina.

L'ACCESSO AL MODELLO A OGGETTI

Il modello a oggetti viene implementato utilizzando le interfacce COM e automazione. Una volta che il controllo Ŕ in grado di accedere superiore del modello a oggetti di, quindi Ŕ possibile visualizzare il modello di oggetti tramite automazione o le interfacce COM. Questo articolo viene descritto entrambi i passaggi:
  1. Recupero in corso al livello principale del modello a oggetti.
  2. Drill-down nel modello a oggetti.

AL LIVELLO SUPERIORE DEL MODELLO DI OGGETTI (VISUAL C++)

Utilizzando IWebBrowserApp (per Internet Explorer 3.x e 4.x)

IWebBrowserApp Ŕ un'interfaccia che viene esposta dal controllo Web Browser. Presenta una proprietÓ di documento (o metodo get_document) se utilizza vtable interfaccia che consente l'accesso all'oggetto di automazione del documento attivo. Se il documento Ŕ un documento HTML, quindi l'oggetto di automazione ha una script proprietÓ che consente all'oggetto finestra del modello di oggetti script. Pertanto, per un controllo raggiungere il modello a oggetti, devono essere eseguite le seguenti operazioni:

  • Consente di richiedere IWebBrowserApp la pagina HTML che lo contiene.
  • Ottenere la proprietÓ documento di IWebBrowserApp.
  • Ottenere la proprietÓ di script del documento.
InserirÓ Ŕ al livello superiore (oggetto window) nel modello a oggetti. Utilizzare quindi automazione per eseguire il drill down ulteriormente.

Come ottenere il IWebBrowserApp

Ottenere il IWebBrowserApp avviene in due fasi:
  1. Utilizzare il puntatore IOleClientSite per ottenere IServiceProvider. In ATL in un controllo, Ŕ possibile ottenere questo puntatore verificando accede al membro m_spClientSite del controllo. In un controllo MFC, Ŕ possibile ottenere questo puntatore chiamando COleControl::GetClientSite(). Il controllo ha accesso all'interfaccia IOleClientSite del relativo contenitore. ╚ possibile utilizzare tale puntatore a QI per IServiceProvider:
    pClientSite->QueryInterface(IID_IServiceProvider,
                              (void **)&pISP);
    						
  2. Utilizzare l'IServiceProvider per ottenere IWebBrowserApp. Utilizza l'IServiceProvider, un QueryService pu˛ essere eseguita per ottenere il IWebBrowserApp:
          pISP->QueryService(SID_SWebBrowserApp, IID_IWebBrowserApp,
                            (void **)&pIWebBrowserApp));
    						
Inoltre, se si programmazione per Internet Explorer 4 o versione successiva, Ŕ possibile ottenere un puntatore all'interfaccia IWebBrowser2 del contenitore con questo codice:
   pISP->QueryService(IID_IWebBrowserApp, IID_IWebBrowser2,
     (void **)&pIWebBrowser2));
				
QueryService Ŕ diverso da QueryInterface in non Ŕ necessario attenersi la regola di identitÓ in COM. In questo modo, se l'oggetto stesso non implementa IWebBrowserApp, Ŕ possibile delegare all'oggetto che lo contiene e QueryService per un IWebBrowserApp.

Ottenere la proprietÓ di documento di IWebBrowserApp

IWebBrowserApp Ŕ un'interfaccia duale. Dispone di una proprietÓ del documento e anche un metodo get_Document. Uno pu˛ essere utilizzato per ottenere IDispatch del documento attivo. Dopo aver IDispatch, Ŕ possibile ottenere la proprietÓ di script.

Ottenere la proprietÓ di script del documento

Utilizza IDispatch ottenuto in precedenza, ottenere la proprietÓ di script utilizzando l'automazione. Questo fornirÓ il primo livello in modello di oggetti script o l'oggetto finestra.

RECUPERO DI LIVELLO SUPERIORE DEL MODELLO DI OGGETTI (VISUAL C++)

(Solo per Internet Explorer 4.0)

Internet Explorer 4.0 consente di accedere al modello a oggetti molto pi¨ semplice. Il processo a passaggio singolo Ŕ:
  1. Per ottenere il IHTMLDocument2 il IClientSite.

Ottenere IHTMLDocument2 da IOleClientSite

Ogni controllo dispone dell'accesso IClientSite del relativo contenitore. Effettuando un'operazione QI per IHTMLDocument2 dal sito del client Ŕ consigliabile assegnare il modello di oggetti script.
   IOleContainer* pContainer = NULL;
   IHTMLDocument2* pDoc = NULL;

   pClientSite->GetContainer( &pContainer );
   if ( pContainer != NULL )
      pContainer->QueryInterface( &IID_IHTMLDocument2, &pDoc );
				
controllare il valore restituito dalla chiamata precedente. Se il controllo non Ŕ incorporato all'interno di una pagina HTML o se il contenitore non Ŕ Internet Explorer 4.0, la chiamata precedente avrÓ esito negativo.

Recupero IHTMLDocument2 fornisce l'oggetto documento nel modello di oggetti script. Eseguire il drill down il modello a oggetti Ŕ possibile utilizzare o interfacce di automazione che le interfacce vtable.

RECUPERO DI LIVELLO SUPERIORE DEL MODELLO A OGGETTI (VISUAL BASIC)

La proprietÓ padre di UserControl pu˛ essere utilizzata per accedere all'oggetto automazione. Dalla documentazione di Visual Basic per la proprietÓ padre, Internet Explorer restituisce un oggetto con proprietÓ di script restituisce l'oggetto IOmWindow.

L'esempio fornito nella documentazione di Visual Basic Ŕ la seguente:
Parent.Script.get_document.bgColor = "Blue"
				
padre la proprietÓ ottiene l'oggetto di automazione. Quindi la proprietÓ di script offre all'oggetto finestra del modello di oggetti script. Quindi diverse proprietÓ e metodi accessibili come qualsiasi altro oggetto di automazione.

Riga di codice precedente dovrebbe essere come segue:
Parent.Script.document.bgColor = "Blue"
				
anche se utilizza get_document Ŕ corretto in Internet Explorer 3.x, non funzionerÓ in Internet Explorer 4.0. Il metodo corretto Ŕ utilizzare la proprietÓ del documento. Questo metodo funziona sia Internet Explorer 3.x e 4.0.

DRILL-DOWN IL MODELLO A OGGETTI

Drill-down il modello a oggetti Ŕ semplice come richiamare le proprietÓ e metodi mediante l'automazione. Per Internet Explorer 3.x, utilizzare l'automazione solo. Per Internet Explorer 4.0, Ŕ possono utilizzare le interfacce vtable. Per ulteriori informazioni vedere l'esempio di driller in Internet Client SDK.

ProprietÓ

Identificativo articolo: 172763 - Ultima modifica: mercoledý 18 luglio 2001 - Revisione: 1.0
Le informazioni in questo articolo si applicano a:
  • Microsoft Internet Explorer 3.01
  • Microsoft Internet Explorer 3.02
  • Microsoft Internet Explorer 4.0 128-Bit Edition
  • Microsoft Internet Client Software Development Kit 4.01
Chiavi:á
kbmt kbfaq kbinfo KB172763 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: 172763
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