Compartir a través de


Clase CAxWindow

Esta clase proporciona métodos para manipular una ventana que hospeda un control ActiveX.

Importante

Esta clase y sus miembros no se pueden usar en las aplicaciones que se ejecutan en Windows Runtime.

Sintaxis

class CAxWindow : public CWindow

Miembros

Métodos

Función Descripción
AttachControl Asocia un control ActiveX existente al objeto CAxWindow.
CAxWindow Construye un objeto CAxWindow.
CreateControl Crea un control ActiveX, lo inicializa y lo hospeda en la ventana CAxWindow.
CreateControlEx Crea un control ActiveX y recupera un puntero (o punteros) de interfaz del control.
GetWndClassName (Estático) Recupera el nombre de clase predefinido del objeto CAxWindow.
QueryControl Recupera IUnknown del control ActiveX hospedado.
QueryHost Recupera el puntero IUnknown del objeto CAxWindow.
SetExternalDispatch Establece la interfaz de distribución externa usada por el objeto CAxWindow.
SetExternalUIHandler Establece la interfaz externa IDocHostUIHandler usada por el objeto CAxWindow.

Operadores

Operador Descripción
operator = Asigna HWND a un objeto CAxWindow existente.

Comentarios

Esta clase proporciona métodos para manipular una ventana que hospeda un control ActiveX. El hospedaje lo proporciona "AtlAxWin80", que se ajusta mediante CAxWindow.

La clase CAxWindow se implementa como una especialización de la clase CAxWindowT. Esta especialización se declara de la siguiente forma:

typedef CAxWindowT<CWindow> CAxWindow;

Si necesita cambiar la clase base, puede usar CAxWindowT y especificar la nueva clase base como argumento de plantilla.

Requisitos

Encabezado: atlwin.h

CAxWindow::AttachControl

Crea un nuevo objeto host si aún no hay uno presente y adjunta el control especificado al host.

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

Parámetros

pControl
[in] Puntero al elemento IUnknown del control.

ppUnkContainer
[out] Puntero a IUnknown del host (el objeto AxWin).

Valor devuelto

Valor HRESULT estándar.

Comentarios

El objeto de control que se asocia debe inicializarse correctamente antes de llamar a AttachControl.

CAxWindow::CAxWindow

Construye un objeto CAxWindow mediante un manipulador de objeto de ventana existente.

CAxWindow(HWND hWnd = NULL);

Parámetros

hWnd
Manipulador de un objeto de ventana existente.

CAxWindow::CreateControl

Crea un control ActiveX, lo inicializa y lo hospeda en la ventana especificada.

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

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

Parámetros

lpszName
Puntero a una cadena para crear el control. Debe tener el formato de una de las siguientes maneras:

  • Un ProgID como "MSCAL.Calendar.7"

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

  • Una dirección URL como "<https://www.microsoft.com>"

  • Referencia a un documento activo como "file://\\\Documents\MyDoc.doc"

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

    Nota:

    "MSHTML:" debe preceder al fragmento de HTML para que se designe como una secuencia MSHTML. Solo se admiten ProgID y CLSID en plataformas Windows Mobile. Las plataformas insertadas de Windows CE, que no sean Windows Mobile compatibles con IE de CE, admiten todos los tipos, incluidos ProgID, CLSID, URL, referencia al documento activo y fragmento de HTML.

pStream
[in] Puntero a una secuencia que se usa para inicializar las propiedades del control. Puede ser NULL.

ppUnkContainer
[out] Dirección de un puntero que recibirá el elemento IUnknown del contenedor. Puede ser NULL.

dwResID
Id. de recurso de un recurso HTML. El control WebBrowser se creará y cargará con el recurso especificado.

Valor devuelto

Valor HRESULT estándar.

Comentarios

Si se usa la segunda versión de este método, se crea un control HTML y se enlaza al recurso identificado por dwResID.

Este método proporciona el mismo resultado que realizar una llamada:

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

Consulte CAxWindow2T::CreateControlLic para crear, inicializar y hospedar un control ActiveX con licencia.

Ejemplo

Consulte Hospedar controles ActiveX mediante ATL AXHost para obtener un ejemplo que utilice CreateControl.

CAxWindow::CreateControlEx

Crea un control ActiveX, lo inicializa y lo hospeda en la ventana 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
Puntero a una cadena para crear el control. Debe tener el formato de una de las siguientes maneras:

  • Un ProgID como "MSCAL.Calendar.7"

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

  • Una dirección URL como "<https://www.microsoft.com>"

  • Referencia a un documento activo como "file://\\\Documents\MyDoc.doc"

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

    Nota:

    "MSHTML:" debe preceder al fragmento de HTML para que se designe como una secuencia MSHTML. Solo se admiten ProgID y CLSID en plataformas Windows Mobile. Las plataformas insertadas de Windows CE, que no sean Windows Mobile compatibles con IE de CE, admiten todos los tipos, incluidos ProgID, CLSID, URL, referencia al documento activo y fragmento de HTML.

pStream
[in] Puntero a una secuencia que se usa para inicializar las propiedades del control. Puede ser NULL.

ppUnkContainer
[out] Dirección de un puntero que recibirá el elemento IUnknown del contenedor. Puede ser NULL.

ppUnkControl
[out] Dirección de un puntero que recibirá el elemento IUnknown del control. Puede ser NULL.

iidSink
[in] El identificador de interfaz de una interfaz de salida en el objeto contenido. Puede ser IID_NULL.

punkSink
[in] Puntero a la interfaz del objeto receptor IUnknown que se va a conectar al punto de conexión en el objeto contenido especificado por iidSink.

dwResID
[in] Id. de recurso de un recurso HTML. El control WebBrowser se creará y cargará con el recurso especificado.

Valor devuelto

Valor HRESULT estándar.

Comentarios

Este método es similar a CAxWindow::CreateControl, pero, al contrario que ese método, CreateControlEx también permite recibir un puntero de interfaz al control recién creado y configurar un receptor de eventos para recibirlos desencadenados por el control.

Consulte CAxWindow2T::CreateControlLicEx para crear, inicializar y hospedar un control ActiveX con licencia.

Ejemplo

Consulte Hospedar controles ActiveX mediante ATL AXHost para obtener un ejemplo que utilice CreateControlEx.

CAxWindow::GetWndClassName

Recupera el nombre de la clase de ventana.

static LPCTSTR GetWndClassName();

Valor devuelto

Puntero a una cadena que contiene el nombre de la clase de ventana que puede hospedar controles ActiveX sin licencia.

CAxWindow::operator =

Asigna HWND a un objeto CAxWindow existente.

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

Parámetros

hWnd
Manipulador de una ventana existente.

Valor devuelto

Devuelve una referencia al objeto CAxWindow actual.

CAxWindow::QueryControl

Recupera la interfaz especificada del control hospedado.

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

Parámetros

iid
[in] Especifica el IID de la interfaz del control.

ppUnk
[out] Puntero a la interfaz del control. En la versión de plantilla de este método, no es necesario un id. de referencia siempre que se pase una interfaz con tipo con un UUID asociado.

Q
[in] Interfaz para la que se está consultando.

Valor devuelto

Valor HRESULT estándar.

CAxWindow::QueryHost

Devuelve la interfaz especificada del host.

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

Parámetros

iid
[in] Especifica el IID de la interfaz del control.

ppUnk
[out] Puntero a la interfaz en el host. En la versión de plantilla de este método, no es necesario un id. de referencia siempre que se pase una interfaz con tipo con un UUID asociado.

Q
[in] Interfaz para la que se está consultando.

Valor devuelto

Valor HRESULT estándar.

Comentarios

La interfaz del host permite el acceso a la funcionalidad subyacente del código de hospedaje de ventanas, implementado por AxWin.

CAxWindow::SetExternalDispatch

Establece la interfaz de envío externa para el objeto CAxWindow.

HRESULT SetExternalDispatch(IDispatch* pDisp);

Parámetros

pDisp
[in] Puntero a una interfaz IDispatch.

Valor devuelto

Valor HRESULT estándar.

CAxWindow::SetExternalUIHandler

Establece la interfaz externa IDocHostUIHandlerDispatch para el objeto CAxWindow.

HRESULT SetExternalUIHandler(IDocHostUIHandlerDispatch* pUIHandler);

Parámetros

pUIHandler
[in] Puntero a una interfaz IDocHostUIHandlerDispatch.

Valor devuelto

Valor HRESULT estándar.

Comentarios

Los controles que consultan el sitio del host para la interfaz IDocHostUIHandlerDispatch usan la interfaz externa IDocHostUIHandlerDispatch. El control WebBrowser es un control que lo hace.

Consulte también

Ejemplo de ATLCON
CWindow (clase)
Fundamentos de controles compuestos
Información general sobre la clase
Preguntas más frecuentes sobre la contención de controles