Вызов кода C++ из DHTMLCalling C++ Code from DHTML

Элемент управления DHTML может размещаться в контейнере, таком как тестовый контейнер или Internet Explorer.A DHTML control can be hosted in a container, such as Test Container or Internet Explorer. Сведения о том, как получить доступ к тестовому контейнеру, см. в разделе Тестирование свойств и событий с помощью тестового контейнера .See Testing Properties and Events with Test Container for information on how to access Test Container.

Контейнер, в котором размещается элемент управления, взаимодействует с элементом управления с помощью интерфейсов обычного элемента управления.The container hosting the control communicates with the control using the normal control interfaces. DHTML использует интерфейс диспетчеризации, который заканчивается на "UI" для взаимодействия с кодом C++ и Вашим ресурсом HTML.DHTML uses the dispatch interface that ends with "UI" to communicate with your C++ code and your HTML resource. При изменении элемента управления ATL DHTMLможно добавлять методы, вызываемые этими разными интерфейсами.In Modifying the ATL DHTML Control, you can practice adding the methods to be called by these different interfaces.

Чтобы просмотреть пример вызова кода C++ из DHTML, Создайте элемент управления DHTML с помощью мастера элементов управления ATL и изучите код в файле заголовка и 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.

Объявление методов WebBrowser в файле заголовкаDeclaring WebBrowser Methods in the Header File

Для вызова методов C++ из пользовательского интерфейса DHTML необходимо добавить методы в интерфейс ПОЛЬЗОВАТЕЛЬСКОГО интерфейса элемента управления.To invoke C++ methods from the DHTML UI, you must add methods to your control's UI interface. Например, файл заголовка, созданный мастером элементов управления ATL, содержит метод C++ OnClick , который является членом интерфейса пользовательского интерфейса элемента управления, созданного мастером.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.

Проверьте OnClick в файле. h файла элемента управления:Examine OnClick in the control's .h file:

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

Первый параметр, пдиспбоди, является указателем на интерфейс диспетчеризации объекта Body.The first parameter, pdispBody, is a pointer to the body object's dispatch interface. Второй параметр, варколор, определяет цвет, применяемый к элементу управления.The second parameter, varColor, identifies the color to apply to the control.

Вызов кода C++ в HTML-файлеCalling C++ Code in the HTML File

После объявления методов WebBrowser в файле заголовка можно вызывать методы из HTML-файла.Once you have declared the WebBrowser methods in the header file, you can invoke the methods from the HTML file. Обратите внимание, что в HTML-файле мастер элементов управления ATL вставляет три метода диспетчеризации Windows: три OnClick метода, которые отправляют сообщения для изменения цвета фона элемента управления.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.

Изучите один из методов в HTML-файле:Examine one of the methods in the HTML file:

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

В приведенном выше коде HTML внешний метод Window OnClick вызывается как часть тега кнопки.In the HTML code above, the window external method, OnClick, is called as part of the button tag. Метод имеет два параметра: theBody , который ссылается на текст HTML-документа, и "red" , который указывает, что цвет фона элемента управления будет изменен на красный при нажатии кнопки.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. RedСледующий тег является меткой кнопки.The Red following the tag is the button's label.

Дополнительные сведения о предоставлении собственных методов см. в разделе изменение элемента управления DHTML в ATL .See Modifying the ATL DHTML Control for more information about providing your own methods. Дополнительные сведения о HTML-файле см. в разделе Определение элементов проекта элемента управления DHTML .See Identifying the Elements of the DHTML Control Project for more information about the HTML file.

См. также разделSee also

Поддержка элементов управления DHTMLSupport for DHTML Control