Llamar a código de C++ desde DHTMLCalling C++ Code from DHTML

Un control DHTML puede hospedarse en un contenedor, como Test Container o Internet Explorer.A DHTML control can be hosted in a container, such as Test Container or Internet Explorer. Consulte Probar propiedades y eventos con un contenedor de prueba para obtener información sobre cómo obtener acceso a Test Container.See Testing Properties and Events with Test Container for information on how to access Test Container.

El contenedor que hospeda el control se comunica con el control mediante las interfaces de control normal.The container hosting the control communicates with the control using the normal control interfaces. DHTML utiliza la interfaz de envío que termina con "Interfaz de usuario" para comunicarse con el código de C++ y el recurso HTML.DHTML uses the dispatch interface that ends with "UI" to communicate with your C++ code and your HTML resource. En modificar el Control DHTML ATL, puede poner en práctica los métodos para llamar a estas interfaces diferentes.In Modifying the ATL DHTML Control, you can practice adding the methods to be called by these different interfaces.

Para ver un ejemplo de llamar a código de C++ desde DHTML, crear un control DHTML mediante el Asistente para controles ATL y examine el código en el archivo de encabezado y en el archivo HTML.To see an example of calling C++ code from DHTML, create a DHTML control using the ATL Control Wizard and examine the code in the header file and in the HTML file.

Declarar métodos de WebBrowser en el archivo de encabezadoDeclaring WebBrowser Methods in the Header File

Para invocar los métodos de C++ desde la UI DHTML, debe agregar métodos a la interfaz de la interfaz de usuario del control.To invoke C++ methods from the DHTML UI, you must add methods to your control's UI interface. Por ejemplo, el archivo de encabezado creado por el Asistente para controles ATL contiene el método de C++ OnClick, que es un miembro de la interfaz de la interfaz de usuario del control generado por el asistente.For example, the header file created by the ATL Control Wizard contains the C++ method OnClick, which is a member of the UI interface of the wizard-generated control.

Examinar OnClick en el archivo .h del control:Examine OnClick in the control's .h file:

STDMETHOD(OnClick)(IDispatch* pdispBody, VARIANT varColor)

El primer parámetro, pdispBody, es un puntero a la interfaz de envío del objeto de cuerpo.The first parameter, pdispBody, is a pointer to the body object's dispatch interface. El segundo parámetro, varColor, identifica el color que se aplica al control.The second parameter, varColor, identifies the color to apply to the control.

Llamar a código de C++ en el archivo HTMLCalling C++ Code in the HTML File

Una vez que haya declarado los métodos de WebBrowser en el archivo de encabezado, puede invocar los métodos desde el archivo HTML.Once you have declared the WebBrowser methods in the header file, you can invoke the methods from the HTML file. Observe que en el archivo HTML que el Asistente para controles ATL inserta tres métodos de envío de Windows: tres OnClick métodos que envían mensajes a cambiar el color de fondo del control.Notice in the HTML file that the ATL Control Wizard inserts three Windows dispatch methods: three OnClick methods that dispatch messages to change the background color of the control.

Examinar uno de los métodos en el archivo HTML:Examine one of the methods in the HTML file:

<BUTTON onclick='window.external.OnClick(theBody, "red");'>Red</BUTTON>

En el código HTML anterior, el método externo de ventana, OnClick, se llama como parte de la etiqueta del botón.In the HTML code above, the window external method, OnClick, is called as part of the button tag. El método tiene dos parámetros: theBody, que hace referencia al cuerpo del documento HTML, y "red", lo que indica que color de fondo del control se cambiará a rojo cuando se hace clic en el botón.The method has two parameters: theBody, which references the body of the HTML document, and "red", which indicates that the control's background color will be changed to red when the button is clicked. El Red después de la etiqueta es la etiqueta del botón.The Red following the tag is the button's label.

Consulte modificar el Control DHTML ATL para obtener más información acerca de cómo proporcionar sus propios métodos.See Modifying the ATL DHTML Control for more information about providing your own methods. Consulte que identifican los elementos del proyecto de Control DHTML para obtener más información sobre el archivo HTML.See Identifying the Elements of the DHTML Control Project for more information about the HTML file.

Vea tambiénSee also

Compatibilidad con controles DHTMLSupport for DHTML Control