Partilhar via


Classe CAxWindow

Essa classe fornece métodos para manipular uma janela que hospeda um controle ActiveX.

Importante

Essa classe e os respectivos membros não podem ser usados em aplicativos executados no Windows Runtime.

Sintaxe

class CAxWindow : public CWindow

Membros

Métodos

Função Descrição
AttachControl Anexa um controle ActiveX existente ao objeto CAxWindow.
CAxWindow Constrói um objeto CAxWindow.
CreateControl Cria um controle ActiveX, inicializa-o e hospeda-o na janela CAxWindow.
CreateControlEx Cria um controle ActiveX e recupera um ponteiro (ou ponteiros) de interface do controle.
GetWndClassName (Estático) Recupera o nome de classe predefinido do objeto CAxWindow.
QueryControl Recupera o IUnknown do controle ActiveX hospedado.
QueryHost Recupera o ponteiro IUnknown do objeto CAxWindow.
SetExternalDispatch Define a interface de expedição externa usada pelo objeto CAxWindow.
SetExternalUIHandler Define a interface CAxWindow externa usada pelo objeto IDocHostUIHandler.

Operadores

Operador Descrição
operador = Atribui um HWND a um objeto CAxWindow existente.

Comentários

Essa classe fornece métodos para manipular uma janela que hospeda um controle ActiveX. A hospedagem é fornecida por "AtlAxWin80", que é encapsulado por CAxWindow.

A classe CAxWindow é implementada como uma especialização da classe CAxWindowT. Essa especialização é declarada como:

typedef CAxWindowT<CWindow> CAxWindow;

Se você precisar alterar a classe base, poderá usar CAxWindowT e especificar a nova classe base como um argumento de modelo.

Requisitos

Cabeçalho: atlwin.h

CAxWindow::AttachControl

Cria um novo objeto host se ainda não estiver presente e anexa o controle especificado ao host.

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

Parâmetros

pControle
[in] Um ponteiro para o IUnknown do controle.

ppUnkContainer
[out] Um ponteiro para o IUnknown do host (o AxWin do objeto).

Valor de retorno

Um valor HRESULT padrão.

Comentários

O objeto de controle que está sendo anexado deve ser inicializado corretamente antes de chamar AttachControl.

CAxWindow::CAxWindow

Constrói um objeto CAxWindow usando um identificador de objeto de janela existente.

CAxWindow(HWND hWnd = NULL);

Parâmetros

hWnd
Um identificador para um objeto de janela existente.

CAxWindow::CreateControl

Cria um controle ActiveX, inicializa-o e hospeda-o na janela especificada.

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

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

Parâmetros

lpszName
Um ponteiro para uma cadeia de caracteres para criação do controle. Deve ser formatado de uma das seguintes formas:

  • Um ProgID como "MSCAL.Calendar.7"

  • Um CLSID como "{8E27C92B-1264-101C-8A2F-040224009C02}"

  • Uma URL como "<https://www.microsoft.com>"

  • Uma referência a um documento ativo, como "file://\\\Documents\MyDoc.doc"

  • Um fragmento de HTML, como "MSHTML:\<HTML>\<BODY>This is a line of text\</BODY>\</HTML>"

    Observação

    "MSHTML:" deve preceder o fragmento HTML para que ele seja designado como sendo um fluxo MSHTML. Somente ProgID e CLSID têm suporte em plataformas do Windows Mobile. Plataformas inseridas do Windows CE, além do Windows Mobile com suporte para CE IE, dão suporte a todos os tipos, incluindo ProgID, CLSID, URL, referência ao documento ativo e fragmento de HTML.

pStream
[in] Um ponteiro para um fluxo que é usado para inicializar as propriedades do controle. Pode ser NULL.

ppUnkContainer
[out] O endereço de um ponteiro que receberá o IUnknown do contêiner. Pode ser NULL.

dwResID
A ID do recurso de um recurso HTML. O controle WebBrowser será criado e carregado com o recurso especificado.

Valor de retorno

Um valor HRESULT padrão.

Comentários

Se a segunda versão desse método for usada, um controle HTML será criado e associado ao recurso identificado por dwResID.

Esse método fornece o mesmo resultado que chamar:

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

Confira CAxWindow2T::CreateControlLic para criar, inicializar e hospedar um controle ActiveX licenciado.

Exemplo

Confira Hospedagem de Controles ActiveX usando o AXHost da ATL para obter um exemplo que usa CreateControl.

CAxWindow::CreateControlEx

Cria um controle ActiveX, inicializa-o e hospeda-o na janela especificada.

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);

Parâmetros

lpszName
Um ponteiro para uma cadeia de caracteres para criação do controle. Deve ser formatado de uma das seguintes formas:

  • Um ProgID como "MSCAL.Calendar.7"

  • Um CLSID como "{8E27C92B-1264-101C-8A2F-040224009C02}"

  • Uma URL como "<https://www.microsoft.com>"

  • Uma referência a um documento ativo, como "file://\\\Documents\MyDoc.doc"

  • Um fragmento de HTML, como "MSHTML:\<HTML>\<BODY>This is a line of text\</BODY>\</HTML>"

    Observação

    "MSHTML:" deve preceder o fragmento HTML para que ele seja designado como sendo um fluxo MSHTML. Somente ProgID e CLSID têm suporte em plataformas do Windows Mobile. Plataformas inseridas do Windows CE, além do Windows Mobile com suporte para CE IE, dão suporte a todos os tipos, incluindo ProgID, CLSID, URL, referência ao documento ativo e fragmento de HTML.

pStream
[in] Um ponteiro para um fluxo que é usado para inicializar as propriedades do controle. Pode ser NULL.

ppUnkContainer
[out] O endereço de um ponteiro que receberá o IUnknown do contêiner. Pode ser NULL.

ppUnkControl
[out] O endereço de um ponteiro que receberá o IUnknown do controle. Pode ser NULL.

iidSink
[in] O identificador de interface de uma interface de saída no objeto contido. Pode ser IID_NULL.

punkSink
[in] Um ponteiro para a interface IUnknown do objeto coletor a ser conectado ao ponto de conexão no objeto contido especificado por iidSink.

dwResID
[in] A ID do recurso de um recurso HTML. O controle WebBrowser será criado e carregado com o recurso especificado.

Valor de retorno

Um valor HRESULT padrão.

Comentários

Esse método é semelhante a CAxWindow::CreateControl, mas, ao contrário dele, CreateControlEx também permite que você receba um ponteiro de interface para o controle recém-criado e configure um coletor de eventos para receber eventos disparados pelo controle.

Confira CAxWindow2T::CreateControlLicEx para criar, inicializar e hospedar um controle ActiveX licenciado.

Exemplo

Confira Hospedagem de Controles ActiveX usando o AXHost da ATL para obter um exemplo que usa CreateControlEx.

CAxWindow::GetWndClassName

Recupera o nome da classe de janela.

static LPCTSTR GetWndClassName();

Valor de retorno

Um ponteiro para uma cadeia de caracteres que contém o nome da classe de janela que pode hospedar controles ActiveX não licenciados.

CAxWindow::operator =

Atribui um HWND a um objeto CAxWindow existente.

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

Parâmetros

hWnd
Um identificador para uma janela existente.

Valor de retorno

Retorna uma referência ao objeto CAxWindow atual.

CAxWindow::QueryControl

Recupera a interface especificada do controle hospedado.

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

Parâmetros

iid
[in] Especifica a IID da interface do controle.

ppUnk
[out] Um ponteiro para a interface do controle. Na versão de modelo desse método, não há necessidade de uma ID de referência, desde que uma interface digitada com uma UUID associada seja passada.

Q
[in] A interface que está sendo consultada.

Valor de retorno

Um valor HRESULT padrão.

CAxWindow::QueryHost

Retorna a interface especificada do host.

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

Parâmetros

iid
[in] Especifica a IID da interface do controle.

ppUnk
[out] Um ponteiro para a interface no host. Na versão de modelo desse método, não há necessidade de uma ID de referência, desde que uma interface digitada com uma UUID associada seja passada.

Q
[in] A interface que está sendo consultada.

Valor de retorno

Um valor HRESULT padrão.

Comentários

A interface do host permite acesso à funcionalidade subjacente do código de hospedagem de janela, implementado por AxWin.

CAxWindow::SetExternalDispatch

Define a interface de expedição externa para o objeto CAxWindow.

HRESULT SetExternalDispatch(IDispatch* pDisp);

Parâmetros

pDisp
[in] Um ponteiro para uma interface IDispatch.

Valor de retorno

Um valor HRESULT padrão.

CAxWindow::SetExternalUIHandler

Define a interface IDocHostUIHandlerDispatch externa para o objeto CAxWindow.

HRESULT SetExternalUIHandler(IDocHostUIHandlerDispatch* pUIHandler);

Parâmetros

pUIHandler
[in] Um ponteiro para uma interface IDocHostUIHandlerDispatch.

Valor de retorno

Um valor HRESULT padrão.

Comentários

A interface IDocHostUIHandlerDispatch externa é usada por controles que consultam o site do host para a interface IDocHostUIHandlerDispatch. O controle WebBrowser é um controle que faz isso.

Confira também

ATLCON Sample
Classe CWindow
Fundamentos do controle composto
Visão geral da aula
Perguntas frequentes sobre contenção de controle