Partilhar via


Classe CAxWindow

Observação

A Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Esta classe fornece métodos para manipular uma janela que aloja um controlo ActiveX.

Importante

Esta classe e os seus membros não podem ser usados em aplicações que sejam executadas no Windows Runtime.

Sintaxe

class CAxWindow : public CWindow

Membros

Methods

Função Description
AttachControl Anexa um controlo ActiveX existente ao CAxWindow objeto.
CAxWindow Constrói um CAxWindow objeto.
CreateControl Cria um controlo ActiveX, inicializa-o e hospeda-o na CAxWindow janela.
CreateControlEx Cria um controlo ActiveX e recupera um ponteiro de interface (ou ponteiros) a partir do controlo.
GetWndClassName (Estática) Recupera o nome pré-definido da classe do CAxWindow objeto.
QueryControl Recupera o IUnknown controlo ActiveX hospedado.
QueryHost Recupera o IUnknown ponteiro do CAxWindow objeto.
SetExternalDispatch Define a interface de despacho externa usada pelo CAxWindow objeto.
SetExternalUIHandler Define a interface externa IDocHostUIHandler usada pelo CAxWindow objeto.

Operadores

Operador Description
operador = Atribui um HWND a um objeto existente CAxWindow .

Observações

Esta classe fornece métodos para manipular uma janela que hospeda um controlo ActiveX. O alojamento é fornecido por " AtlAxWin80", que é encapsulado por CAxWindow.

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

typedef CAxWindowT<CWindow> CAxWindow;

Se precisares de mudar a classe base, podes usar CAxWindowT e especificar a nova classe base como argumento modelo.

Requerimentos

Cabeçalho: atlwin.h

CAxWindow::AttachControl

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

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

Parâmetros

pControl
[dentro] Um indicador para o IUnknown do controlo.

ppUnkContainer
[fora] Um apontador para o IUnknown do hospedeiro (o AxWin objeto).

Valor de retorno

Um valor HRESULT padrão.

Observações

O objeto de controlo que está a ser anexado deve ser corretamente inicializado antes de chamar AttachControl.

CAxWindow::CAxWindow

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

CAxWindow(HWND hWnd = NULL);

Parâmetros

hWnd
Um handle para um objeto janela existente.

CAxWindow::CreateControl

Cria um controlo ActiveX, inicializa-o e aloja-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 apontador para uma string para criar o controlo. 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 seja designado como um fluxo MSHTML. Apenas o ProgID e o CLSID são suportados nas plataformas Windows Mobile. As plataformas embutidas do Windows CE, exceto o Windows Mobile com suporte para CE IE, suportam todos os tipos, incluindo ProgID, CLSID, URL, referência a documentos ativos e fragmentos de HTML.

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

ppUnkContainer
[fora] O endereço de um ponteiro que irá receber o IUnknown do contentor. Pode ser NULL.

dwResID
O ID de recurso de um recurso HTML. O controlo do Navegador Web será criado e carregado com o recurso especificado.

Valor de retorno

Um valor HRESULT padrão.

Observações

Se for usada a segunda versão deste método, cria-se um controlo HTML que é atribuído ao recurso identificado pelo dwResID.

Este método dá-lhe o mesmo resultado que chamar:

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

Consulte CAxWindow2T::CreateControlLic para criar, inicializar e hospedar um controlo ActiveX licenciado.

Example

Consulte Hospedagem de Controlos ActiveX usando ATL AXHost para um exemplo que utiliza CreateControl.

CAxWindow::CreateControlEx

Cria um controlo ActiveX, inicializa-o e aloja-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 apontador para uma string para criar o controlo. 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 seja designado como um fluxo MSHTML. Apenas o ProgID e o CLSID são suportados nas plataformas Windows Mobile. As plataformas embutidas do Windows CE, exceto o Windows Mobile com suporte para CE IE, suportam todos os tipos, incluindo ProgID, CLSID, URL, referência a documentos ativos e fragmentos de HTML.

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

ppUnkContainer
[fora] O endereço de um ponteiro que irá receber o IUnknown do contentor. Pode ser NULL.

ppUnkControl
[fora] O endereço de um ponteiro que irá receber o IUnknown do controlo. Pode ser NULL.

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

punkSink
[dentro] Um ponteiro para a IUnknown interface do objeto sink a ser ligado ao ponto de ligação no objeto contido especificado por iidSink.

dwResID
[dentro] O ID de recurso de um recurso HTML. O controlo do Navegador Web será criado e carregado com o recurso especificado.

Valor de retorno

Um valor HRESULT padrão.

Observações

Este método é semelhante ao CAxWindow::CreateControl, mas ao contrário desse método, CreateControlEx também permite receber um ponteiro de interface para o controlo recém-criado e configurar um dissipador de eventos para receber os eventos disparados pelo controlo.

Consulte CAxWindow2T::CreateControlLicEx para criar, inicializar e hospedar um controlo ActiveX licenciado.

Example

Consulte Hospedagem de Controlos ActiveX usando ATL AXHost para um exemplo que utiliza CreateControlEx.

CAxWindow::GetWndClassName

Recupera o nome da classe janela.

static LPCTSTR GetWndClassName();

Valor de retorno

Um ponteiro para uma string contendo o nome da classe janela que pode hospedar controlos ActiveX não licenciados.

CAxWindow::operator =

Atribui um HWND a um objeto existente CAxWindow .

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

Parâmetros

hWnd
Uma maçaneta para uma janela já existente.

Valor de retorno

Devolve uma referência ao objeto atual CAxWindow .

CAxWindow::QueryControl

Recupera a interface especificada do controlo hospedado.

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

Parâmetros

IID
[dentro] Especifica o IID da interface do controlo.

ppUnk
[fora] Um apontador para a interface do controlo. Na versão modelo deste método, não é necessário um ID de referência desde que uma interface tipada com um UUID associado seja passada.

Q
[dentro] A interface que está a ser consultada.

Valor de retorno

Um valor HRESULT padrão.

CAxWindow::QueryHost

Devolve a interface especificada do anfitrião.

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

Parâmetros

IID
[dentro] Especifica o IID da interface do controlo.

ppUnk
[fora] Um ponteiro para a interface no host. Na versão modelo deste método, não é necessário um ID de referência desde que uma interface tipada com um UUID associado seja passada.

Q
[dentro] A interface que está a ser consultada.

Valor de retorno

Um valor HRESULT padrão.

Observações

A interface do host permite o acesso à funcionalidade subjacente do código de hospedagem de janelas, implementada por AxWin.

CAxWindow::SetExternalDispatch

Define a interface externa de despacho para o CAxWindow objeto.

HRESULT SetExternalDispatch(IDispatch* pDisp);

Parâmetros

pDisp
[dentro] Um apontador para uma IDispatch interface.

Valor de retorno

Um valor HRESULT padrão.

CAxWindow::SetExternalUIHandler

Define a interface externa IDocHostUIHandlerDispatch para o CAxWindow objeto.

HRESULT SetExternalUIHandler(IDocHostUIHandlerDispatch* pUIHandler);

Parâmetros

pUIHandler
[dentro] Um apontador para uma IDocHostUIHandlerDispatch interface.

Valor de retorno

Um valor HRESULT padrão.

Observações

A interface externa IDocHostUIHandlerDispatch é usada por controlos que consultam o site do anfitrião para a IDocHostUIHandlerDispatch interface. O controlo do navegador web é um dos controlos que faz isto.

Consulte também

Exemplo ATLCON
Classe CWindow
Fundamentos do Controlo Composto
Visão geral da classe
FAQ sobre Contenção de Controlo