How to Come recuperare l'URL di una pagina Web da un controllo ActiveX

Traduzione articoli Traduzione articoli
Identificativo articolo: 181678 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo è stato precedentemente pubblicato con il codice di riferimento I181678
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

In questo articolo é contenuta una descrizione di come un controllo ActiveX é in grado di recuperare l'URL (Uniform Resource Locator, identificatore uniforme di risorsa) della pagina Web o del documento in cui risiede.

Ciò può essere utile per limitare l'utilizzo di un controllo ActiveX a un dominio o sito in particolare o per accedere a file quando é fornito un percorso relativo.

Informazioni

Durante l'inizializzazione di un controllo ActiveX incorporato, Internet Explorer (IE) invia un puntatore al proprio sito client tramite la chiamata IOleObject::SetClientSite(). E possibile utilizzare questo processo per recuperare un moniker per il contenitore oppure per accedere al modello dell'oggetto documento per recuperare l'URL relativo alla pagina Web che fa da host.

In questo articolo é contenuta una descrizione di come recuperare l'URL corrente da un moniker contenitore. Per ulteriori informazioni su come ottenere l'URL dal modello dell'oggetto documento, vedere l'articolo seguente della Knowledge Base (informazioni in lingua inglese):
172763 INFO: Accessing the Object Model from Within an ActiveX Control
Attenersi alla seguente procedura per recuperare l'URL corrente da un moniker contenitore:
  1. Ottenere il puntatore di interfaccia del sito client (IOleClientSite). Il contenitore chiama IOleObject::SetClientSite() per passare un puntatore al sito client. Ignorare questo metodo per nascondere il puntatore.
  2. Ottenere un moniker per il sito client mediante la chiamata IOleClientSite::GetMoniker().
  3. Chiamare IMoniker::GetDisplayName() per ottenere l'URL relativo al documento corrente.
Il codice d'esempio seguente descrive come eseguire le operazioni sopra citate ignorando il metodo IOleObject::SetClientSite() in un controllo ActiveX ATL (Active Template Library, libreria attiva di modelli):

Codice di esempio

STDMETHOD(SetClientSite)(IOleClientSite *pClientSite)
{
   if (pClientSite != NULL)
   {
      // Obtain URL from container moniker.
      CComPtr<IMoniker> spmk;
      LPOLESTR pszDisplayName;

      if (SUCCEEDED(pClientSite->GetMoniker(
                                    OLEGETMONIKER_TEMPFORUSER,
                                    OLEWHICHMK_CONTAINER,
                                    &spmk)))
      {
         if (SUCCEEDED(spmk->GetDisplayName(
                                 NULL, NULL, &pszDisplayName)))
         {
            USES_CONVERSION;

            CComBSTR bstrURL;
            bstrURL = pszDisplayName;

            ATLTRACE("The current URL is %s\n", OLE2T(bstrURL));
            CoTaskMemFree((LPVOID)pszDisplayName);
         }
      }
   }

   return IOleObject_SetClientSite(pClientSite);
}

Riferimenti

Per ulteriori informazioni sulle interfacce IOleObject, IoleClientSite e IOleContainer, consultare la Guida in linea di Microsoft Visual C++.

(c) Microsoft Corporation 1998, Tutti i diritti riservati. Con il contributo di Mark Davis, Microsoft Corporation

Proprietà

Identificativo articolo: 181678 - Ultima modifica: venerdì 20 gennaio 2006 - Revisione: 3.0
Le informazioni in questo articolo si applicano a:
  • Microsoft Internet Explorer 3.0
Chiavi: 
axsdkcontrols kbdsi kbgrpinet kbie300 kbie400 kbie401 kbie500 kbie550 KB181678
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.
Dichiarazione di non responsabilità per articoli della Microsoft Knowledge Base su prodotti non più supportati
Questo articolo è stato scritto sui prodotti per cui Microsoft non offre più supporto. L?articolo, quindi, viene offerto ?così come è? e non verrà più aggiornato.

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