Класс CAxWindow

Этот класс предоставляет методы для управления окном, на котором размещен элемент activeX.

Важно!

Этот класс и его члены нельзя использовать в приложениях, выполняемых в среде выполнения Windows.

Синтаксис

class CAxWindow : public CWindow

Участники

Методы

Function Description
AttachControl Присоединяет существующий элемент activeX к объекту CAxWindow .
CAxWindow Формирует объект CAxWindow.
CreateControl Создает элемент ActiveX, инициализирует его и размещает в CAxWindow окне.
CreateControlEx Создает элемент ActiveX и извлекает указатель интерфейса (или указатели) из элемента управления.
GetWndClassName (статический) Извлекает предопределенное имя CAxWindow класса объекта.
QueryControl Извлекает IUnknown размещенный элемент activeX.
QueryHost Извлекает IUnknown указатель CAxWindow объекта.
SetExternalDispatch Задает внешний интерфейс диспетчера, используемый CAxWindow объектом.
SetExternalUIHandler Задает внешний IDocHostUIHandler интерфейс, используемый CAxWindow объектом.

Операторы

Operator Description
оператор = Назначает HWND существующему CAxWindow объекту.

Замечания

Этот класс предоставляет методы для управления окном, на котором размещен элемент activeX. Размещение предоставляется atlAxWin80, который упаковывается в оболочкуCAxWindow.

Класс CAxWindow реализуется как специализация CAxWindowT класса. Эта специализация объявлена следующим образом:

typedef CAxWindowT<CWindow> CAxWindow;

Если необходимо изменить базовый класс, можно использовать CAxWindowT и указать новый базовый класс в качестве аргумента шаблона.

Требования

Заголовок: atlwin.h

CAxWindow::AttachControl

Создает новый объект узла, если он еще не присутствует и присоединяет указанный элемент управления к узлу.

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

Параметры

pControl
[in] Указатель на IUnknown элемент управления.

ppUnkContainer
[out] Указатель на IUnknown узел ( AxWin объект).

Возвращаемое значение

Стандартное значение HRESULT.

Замечания

Перед вызовом AttachControlприсоединенный объект элемента управления должен быть правильно инициализирован.

CAxWindow::CAxWindow

CAxWindow Создает объект с помощью существующего дескриптора объекта окна.

CAxWindow(HWND hWnd = NULL);

Параметры

hWnd
Дескриптор существующего объекта окна.

CAxWindow::CreateControl

Создает элемент управления ActiveX, инициализирует его и размещает в указанном окне.

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

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

Параметры

lpszName
Указатель на строку для создания элемента управления. Должен быть отформатирован одним из следующих способов:

  • Идентификатор progID, например "MSCAL.Calendar.7"

  • CLSID, например "{8E27C92B-1264-101C-8A2F-040224009C02}"

  • URL-адрес, например "<https://www.microsoft.com>"

  • Ссылка на активный документ, например "file://\\\Documents\MyDoc.doc"

  • Фрагмент HTML, например "MSHTML:\<HTML>\<BODY>This is a line of text\</BODY>\</HTML>"

    Примечание.

    "MSHTML:" должен предшествовать фрагменту HTML, чтобы он был назначен как поток MSHTML. Только progID и CLSID поддерживаются на платформах Windows Mobile. Встроенные платформы Windows CE, отличные от Windows Mobile с поддержкой CE IE, поддерживают все типы, включая ProgID, CLSID, URL-адрес, ссылку на активный документ и фрагмент HTML.

pStream
[in] Указатель на поток, используемый для инициализации свойств элемента управления. Может иметь значение NULL.

ppUnkContainer
[out] Адрес указателя, который получит IUnknown контейнер. Может иметь значение NULL.

dwResID
Идентификатор ресурса HTML. Элемент управления WebBrowser будет создан и загружен с указанным ресурсом.

Возвращаемое значение

Стандартное значение HRESULT.

Замечания

Если используется вторая версия этого метода, создается элемент управления HTML и привязан к ресурсу, определяемого dwResID.

Этот метод дает тот же результат, что и вызов:

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

См. статью CAxWindow2T::CreateControlLic для создания, инициализации и размещения лицензированного элемента activeX.

Пример

Пример использования CreateControlэлементов ActiveX см. в разделе "Размещение элементов ActiveX Controls с помощью ATL AXHost".

CAxWindow::CreateControlEx

Создает элемент управления ActiveX, инициализирует его и размещает в указанном окне.

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);

Параметры

lpszName
Указатель на строку для создания элемента управления. Должен быть отформатирован одним из следующих способов:

  • Идентификатор progID, например "MSCAL.Calendar.7"

  • CLSID, например "{8E27C92B-1264-101C-8A2F-040224009C02}"

  • URL-адрес, например "<https://www.microsoft.com>"

  • Ссылка на активный документ, например "file://\\\Documents\MyDoc.doc"

  • Фрагмент HTML, например "MSHTML:\<HTML>\<BODY>This is a line of text\</BODY>\</HTML>"

    Примечание.

    "MSHTML:" должен предшествовать фрагменту HTML, чтобы он был назначен как поток MSHTML. Только progID и CLSID поддерживаются на платформах Windows Mobile. Встроенные платформы Windows CE, отличные от Windows Mobile с поддержкой CE IE, поддерживают все типы, включая ProgID, CLSID, URL-адрес, ссылку на активный документ и фрагмент HTML.

pStream
[in] Указатель на поток, используемый для инициализации свойств элемента управления. Может иметь значение NULL.

ppUnkContainer
[out] Адрес указателя, который получит IUnknown контейнер. Может иметь значение NULL.

ppUnkControl
[out] Адрес указателя, который получит IUnknown элемент управления. Может иметь значение NULL.

iidSink
[in] Идентификатор интерфейса исходящего интерфейса в содержащемся объекте. Можно IID_NULL.

punkSink
[in] Указатель на IUnknown интерфейс объекта приемника, который должен быть подключен к точке подключения на автономном объекте, указанном iidSink.

dwResID
[in] Идентификатор ресурса HTML. Элемент управления WebBrowser будет создан и загружен с указанным ресурсом.

Возвращаемое значение

Стандартное значение HRESULT.

Замечания

Этот метод аналогичен CAxWindow::CreateControl, но в отличие от этого метода, CreateControlEx также позволяет получать указатель интерфейса на только что созданный элемент управления и настроить приемник событий для получения событий, запущенных элементом управления.

См. статью CAxWindow2T::CreateControlLicEx , чтобы создать, инициализировать и разместить лицензированный элемент activeX.

Пример

Пример использования CreateControlExэлементов ActiveX см. в разделе "Размещение элементов ActiveX Controls с помощью ATL AXHost".

CAxWindow::GetWndClassName

Извлекает имя класса окна.

static LPCTSTR GetWndClassName();

Возвращаемое значение

Указатель на строку, содержащую имя класса окна, который может размещать нелицензированные элементы ActiveX.

CAxWindow::operator =

Назначает HWND существующему CAxWindow объекту.

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

Параметры

hWnd
Дескриптор существующего окна.

Возвращаемое значение

Возвращает ссылку на текущий объект CAxWindow.

CAxWindow::QueryControl

Извлекает указанный интерфейс размещенного элемента управления.

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

Параметры

Iid
[in] Указывает iiD интерфейса элемента управления.

ppUnk
[out] Указатель на интерфейс элемента управления. В версии шаблона этого метода не требуется идентификатор ссылки, если передается типизированный интерфейс с соответствующим UUID.

Q
[in] Интерфейс, который запрашивается.

Возвращаемое значение

Стандартное значение HRESULT.

CAxWindow::QueryHost

Возвращает указанный интерфейс узла.

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

Параметры

Iid
[in] Указывает iiD интерфейса элемента управления.

ppUnk
[out] Указатель на интерфейс на узле. В версии шаблона этого метода не требуется идентификатор ссылки, если передается типизированный интерфейс с соответствующим UUID.

Q
[in] Интерфейс, который запрашивается.

Возвращаемое значение

Стандартное значение HRESULT.

Замечания

Интерфейс узла позволяет получить доступ к базовым функциям кода размещения окон, реализованным AxWin.

CAxWindow::SetExternalDispatch

Задает внешний интерфейс диспетчера для CAxWindow объекта.

HRESULT SetExternalDispatch(IDispatch* pDisp);

Параметры

pDisp
[in] Указатель на IDispatch интерфейс.

Возвращаемое значение

Стандартное значение HRESULT.

CAxWindow::SetExternalUIHandler

Задает внешний интерфейс IDocHostUIHandlerDispatch для CAxWindow объекта.

HRESULT SetExternalUIHandler(IDocHostUIHandlerDispatch* pUIHandler);

Параметры

pUIHandler
[in] Указатель на IDocHostUIHandlerDispatch интерфейс.

Возвращаемое значение

Стандартное значение HRESULT.

Замечания

Внешний IDocHostUIHandlerDispatch интерфейс используется элементами управления, запрашивающими сайт узла для IDocHostUIHandlerDispatch интерфейса. Элемент управления WebBrowser — это один элемент управления, который делает это.

См. также

Пример ATLCON
Класс CWindow
Основные сведения о составном элементе управления
Общие сведения о классе
Вопросы и ответы о сдерживании элементов управления