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