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