Classe CAxWindow

Questa classe fornisce metodi per la modifica di una finestra che ospita un controllo ActiveX.

Importante

Questa classe e i relativi membri non possono essere usati nelle applicazioni eseguite in Windows Runtime.

Sintassi

class CAxWindow : public CWindow

Membri

Metodi

Funzione Descrizione
AttachControl Collega un controllo ActiveX esistente all'oggetto CAxWindow .
CAxWindow Costruisce un oggetto CAxWindow.
CreateControl Crea un controllo ActiveX, lo inizializza e lo ospita nella CAxWindow finestra.
CreateControlEx Crea un controllo ActiveX e recupera un puntatore di interfaccia (o puntatori) dal controllo .
GetWndClassName (Statico) Recupera il nome predefinito della classe dell'oggetto CAxWindow .
QueryControl Recupera l'oggetto IUnknown del controllo ActiveX ospitato.
QueryHost Recupera il IUnknown puntatore dell'oggetto CAxWindow .
SetExternalDispatch Imposta l'interfaccia dispatch esterna utilizzata dall'oggetto CAxWindow .
SetExternalUIHandler Imposta l'interfaccia esterna IDocHostUIHandler utilizzata dall'oggetto CAxWindow .

Operatori

Operatore Descrizione
operator = Assegna un HWND a un oggetto esistente CAxWindow .

Osservazioni:

Questa classe fornisce metodi per la modifica di una finestra che ospita un controllo ActiveX. L'hosting viene fornito da " AtlAxWin80", di cui viene eseguito il wrapping da CAxWindow.

La classe CAxWindow viene implementata come specializzazione della CAxWindowT classe . Questa specializzazione viene dichiarata come:

typedef CAxWindowT<CWindow> CAxWindow;

Se è necessario modificare la classe di base, è possibile usare CAxWindowT e specificare la nuova classe di base come argomento modello.

Requisiti

Intestazione: atlwin.h

CAxWindow::AttachControl

Crea un nuovo oggetto host se non è già presente e collega il controllo specificato all'host.

HRESULT AttachControl(
    IUnknown* pControl,
    IUnknown** ppUnkContainer);

Parametri

pControl
[in] Puntatore all'oggetto IUnknown del controllo .

ppUnkContainer
[out] Puntatore all'oggetto IUnknown dell'host (l'oggetto AxWin ).

Valore restituito

Valore HRESULT standard.

Osservazioni:

L'oggetto di controllo associato deve essere inizializzato correttamente prima di chiamare AttachControl.

CAxWindow::CAxWindow

Costruisce un CAxWindow oggetto utilizzando un handle di oggetto finestra esistente.

CAxWindow(HWND hWnd = NULL);

Parametri

hWnd
Handle per un oggetto finestra esistente.

CAxWindow::CreateControl

Crea un controllo ActiveX, lo inizializza e lo ospita nella finestra specificata.

HRESULT CreateControl(
    LPCOLESTR lpszName,
    IStream* pStream = NULL,
    IUnknown** ppUnkContainer = NULL);

HRESULT CreateControl(
    DWORD dwResID,
    IStream* pStream = NULL,
    IUnknown** ppUnkContainer = NULL);

Parametri

lpszName
Puntatore a una stringa per creare il controllo. Deve essere formattato in uno dei modi seguenti:

  • ProgID, ad esempio "MSCAL.Calendar.7"

  • CLSID, ad esempio "{8E27C92B-1264-101C-8A2F-040224009C02}"

  • URL, ad esempio "<https://www.microsoft.com>"

  • Riferimento a un documento attivo, ad esempio "file://\\\Documents\MyDoc.doc"

  • Frammento di codice HTML, ad esempio "MSHTML:\<HTML>\<BODY>This is a line of text\</BODY>\</HTML>"

    Nota

    "MSHTML:" deve precedere il frammento HTML in modo che sia designato come flusso MSHTML. Nelle piattaforme Windows Mobile sono supportati solo ProgID e CLSID. Le piattaforme incorporate di Windows CE, diverse da Windows Mobile con supporto per Internet Explorer ce supportano tutti i tipi, tra cui ProgID, CLSID, URL, riferimento al documento attivo e frammento di HTML.

pStream
[in] Puntatore a un flusso utilizzato per inizializzare le proprietà del controllo. Può essere NULL.

ppUnkContainer
[out] Indirizzo di un puntatore che riceverà l'oggetto IUnknown del contenitore. Può essere NULL.

dwResID
ID risorsa di una risorsa HTML. Il controllo WebBrowser verrà creato e caricato con la risorsa specificata.

Valore restituito

Valore HRESULT standard.

Osservazioni:

Se viene utilizzata la seconda versione di questo metodo, viene creato e associato un controllo HTML alla risorsa identificata da dwResID.

Questo metodo offre lo stesso risultato della chiamata:

AtlAxCreateControlEx(lpszName, hWnd, pStream, NULL, NULL, GUID_NULL, NULL);

Vedere CAxWindow2T::CreateControlLic per creare, inizializzare e ospitare un controllo ActiveX concesso in licenza.

Esempio

Per un esempio che usa , vedere Hosting di controlli ActiveX tramite ATL AXHost.CreateControl

CAxWindow::CreateControlEx

Crea un controllo ActiveX, lo inizializza e lo ospita nella finestra specificata.

HRESULT CreateControlEx(
    LPCOLESTR lpszName,
    IStream* pStream = NULL,
    IUnknown** ppUnkContainer = NULL,
    IUnknown** ppUnkControl = NULL,
    REFIID iidSink = IID_NULL,
    IUnknown* punkSink = NULL);

HRESULT CreateControlEx(
    DWORD dwResID,
    IStream* pStream = NULL,
    IUnknown** ppUnkContainer = NULL,
    IUnknown** ppUnkControl = NULL,
    REFIID iidSink = IID_NULL,
    IUnknown* punkSink = NULL);

Parametri

lpszName
Puntatore a una stringa per creare il controllo. Deve essere formattato in uno dei modi seguenti:

  • ProgID, ad esempio "MSCAL.Calendar.7"

  • CLSID, ad esempio "{8E27C92B-1264-101C-8A2F-040224009C02}"

  • URL, ad esempio "<https://www.microsoft.com>"

  • Riferimento a un documento attivo, ad esempio "file://\\\Documents\MyDoc.doc"

  • Frammento di codice HTML, ad esempio "MSHTML:\<HTML>\<BODY>This is a line of text\</BODY>\</HTML>"

    Nota

    "MSHTML:" deve precedere il frammento HTML in modo che sia designato come flusso MSHTML. Nelle piattaforme Windows Mobile sono supportati solo ProgID e CLSID. Le piattaforme incorporate di Windows CE, diverse da Windows Mobile con supporto per Internet Explorer ce supportano tutti i tipi, tra cui ProgID, CLSID, URL, riferimento al documento attivo e frammento di HTML.

pStream
[in] Puntatore a un flusso utilizzato per inizializzare le proprietà del controllo. Può essere NULL.

ppUnkContainer
[out] Indirizzo di un puntatore che riceverà l'oggetto IUnknown del contenitore. Può essere NULL.

ppUnkControl
[out] Indirizzo di un puntatore che riceverà l'oggetto IUnknown del controllo . Può essere NULL.

iidSink
[in] Identificatore dell'interfaccia di un'interfaccia in uscita nell'oggetto contenuto. Può essere IID_NULL.

punkSink
[in] Puntatore all'interfaccia dell'oggetto IUnknown sink da connettere al punto di connessione sull'oggetto contenuto specificato da iidSink.

dwResID
[in] ID risorsa di una risorsa HTML. Il controllo WebBrowser verrà creato e caricato con la risorsa specificata.

Valore restituito

Valore HRESULT standard.

Osservazioni:

Questo metodo è simile a CAxWindow::CreateControl, ma a differenza di questo metodo consente CreateControlEx anche di ricevere un puntatore di interfaccia al controllo appena creato e di configurare un sink di eventi per ricevere gli eventi generati dal controllo .

Vedere CAxWindow2T::CreateControlLicEx per creare, inizializzare e ospitare un controllo ActiveX concesso in licenza.

Esempio

Per un esempio che usa , vedere Hosting di controlli ActiveX tramite ATL AXHost.CreateControlEx

CAxWindow::GetWndClassName

Recupera il nome della classe della finestra.

static LPCTSTR GetWndClassName();

Valore restituito

Puntatore a una stringa contenente il nome della classe window che può ospitare controlli ActiveX senza licenza.

CAxWindow::operator =

Assegna un HWND a un oggetto esistente CAxWindow .

CAxWindow<TBase>& operator=(HWND hWnd);

Parametri

hWnd
Handle per una finestra esistente.

Valore restituito

Restituisce un riferimento all'oggetto CAxWindow corrente.

CAxWindow::QueryControl

Recupera l'interfaccia specificata del controllo ospitato.

HRESULT QueryControl(REFIID iid, void** ppUnk);
template <class  Q>
HRESULT QueryControl(Q** ppUnk);

Parametri

iid
[in] Specifica l'IID dell'interfaccia del controllo.

ppUnk
[out] Puntatore all'interfaccia del controllo. Nella versione del modello di questo metodo non è necessario un ID riferimento, purché venga passata un'interfaccia tipizzata con un UUID associato.

Q
[in] Interfaccia per cui viene eseguita una query.

Valore restituito

Valore HRESULT standard.

CAxWindow::QueryHost

Restituisce l'interfaccia specificata dell'host.

HRESULT QueryHost(REFIID iid, void** ppUnk);
template <class  Q>
HRESULT QueryHost(Q** ppUnk);

Parametri

iid
[in] Specifica l'IID dell'interfaccia del controllo.

ppUnk
[out] Puntatore all'interfaccia nell'host. Nella versione del modello di questo metodo non è necessario un ID riferimento, purché venga passata un'interfaccia tipizzata con un UUID associato.

Q
[in] Interfaccia per cui viene eseguita una query.

Valore restituito

Valore HRESULT standard.

Osservazioni:

L'interfaccia dell'host consente l'accesso alla funzionalità sottostante del codice di hosting della finestra, implementato da AxWin.

CAxWindow::SetExternalDispatch

Imposta l'interfaccia dispatch esterna per l'oggetto CAxWindow .

HRESULT SetExternalDispatch(IDispatch* pDisp);

Parametri

pDisp
[in] Puntatore a un'interfaccia IDispatch .

Valore restituito

Valore HRESULT standard.

CAxWindow::SetExternalUIHandler

Imposta l'interfaccia IDocHostUIHandlerDispatch esterna per l'oggetto CAxWindow .

HRESULT SetExternalUIHandler(IDocHostUIHandlerDispatch* pUIHandler);

Parametri

pUIHandler
[in] Puntatore a un'interfaccia IDocHostUIHandlerDispatch .

Valore restituito

Valore HRESULT standard.

Osservazioni:

L'interfaccia esterna IDocHostUIHandlerDispatch viene usata dai controlli che eseguono query sul sito dell'host per l'interfaccia IDocHostUIHandlerDispatch . Il controllo WebBrowser è un controllo che esegue questa operazione.

Vedi anche

Esempio di ATLCON
Classe CWindow
Nozioni fondamentali sul controllo composito
Cenni preliminari sulla classe
Domande frequenti sul contenimento del controllo