Поделиться через


Класс IOleInPlaceObjectWindowlessImpl

Этот класс реализует и предоставляет методы IUnknown , позволяющие элементу управления без окна получать сообщения о окне и участвовать в операциях перетаскивания.

Внимание

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

Синтаксис

template<class T>
class IOleInPlaceObjectWindowlessImpl

Параметры

T
Класс, производный от IOleInPlaceObjectWindowlessImpl.

Участники

Открытые методы

Имя Описание
IOleInPlaceObjectWindowlessImpl::ContextSensitiveHelp Включает справку с учетом контекста. Реализация ATL возвращает E_NOTIMPL.
IOleInPlaceObjectWindowlessImpl::GetDropTarget IDropTarget Предоставляет интерфейс для активного объекта без окон, поддерживающего перетаскивание. Реализация ATL возвращает E_NOTIMPL.
IOleInPlaceObjectWindowlessImpl::GetWindow Возвращает дескриптор окна.
IOleInPlaceObjectWindowlessImpl::InPlaceDeactivate Деактивирует активный элемент управления на месте.
IOleInPlaceObjectWindowlessImpl::OnWindowMessage Отправляет сообщение из контейнера в элемент управления без окон, активный на месте.
IOleInPlaceObjectWindowlessImpl::ReactivateAndUndo Повторно активирует ранее деактивированный элемент управления. Реализация ATL возвращает E_NOTIMPL.
IOleInPlaceObjectWindowlessImpl::SetObjectRects Указывает, какая часть элемента управления на месте отображается.
IOleInPlaceObjectWindowlessImpl::UIDeactivate Деактивирует и удаляет пользовательский интерфейс, поддерживающий активацию на месте.

Замечания

Интерфейс IOleInPlaceObject управляет повторной активацией и деактивацией элементов управления на месте и определяет, сколько элементов управления должно отображаться. Интерфейс IOleInPlaceObjectWindowless позволяет элементу управления без окна получать сообщения окна и участвовать в операциях перетаскивания. Класс IOleInPlaceObjectWindowlessImpl предоставляет реализацию IOleInPlaceObject и IOleInPlaceObjectWindowless реализуется IUnknown по умолчанию, отправляя сведения на устройство дампа в отладочных сборках.

Руководство по созданию проекта ATL в статьях ATL

Иерархия наследования

IOleInPlaceObjectWindowless

IOleInPlaceObjectWindowlessImpl

Требования

Header: atlctl.h

IOleInPlaceObjectWindowlessImpl::ContextSensitiveHelp

Возвращает E_NOTIMPL.

HRESULT ContextSensitiveHelp(BOOL fEnterMode);

Замечания

См . раздел IOleWindow::ContextSensitiveHelp в пакете SDK для Windows.

IOleInPlaceObjectWindowlessImpl::GetDropTarget

Возвращает E_NOTIMPL.

HRESULT GetDropTarget(IDropTarget** ppDropTarget);

Замечания

См. раздел IOleInPlaceObjectWindowless::GetDropTarget в пакете SDK для Windows.

IOleInPlaceObjectWindowlessImpl::GetWindow

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

HRESULT GetWindow(HWND* phwnd);

Замечания

Некоторые контейнеры не будут работать с элементом управления, который был бессерверным, даже если он в настоящее время отображается. В реализации ATL, если член m_bWasOnceWindowless данных класса элемента управления имеет значение TRUE, функция возвращает E_FAIL. В противном случае, если phwnd не имеет значения NULL, GetWindow задает * phwnd члену m_hWnd данных класса элемента управления и возвращает S_OK.

См . раздел IOleWindow::GetWindow в пакете SDK для Windows.

IOleInPlaceObjectWindowlessImpl::InPlaceDeactivate

Вызывается контейнером для деактивации активного элемента управления на месте.

HRESULT InPlaceDeactivate(HWND* phwnd);

Замечания

Этот метод выполняет полную или частично деактивацию в зависимости от состояния элемента управления. При необходимости пользовательский интерфейс элемента управления деактивирован, а окно элемента управления, если таковое имеется, будет уничтожено. Контейнер уведомляется о том, что элемент управления больше не активен. Интерфейс IOleInPlaceUIWindow , используемый контейнером для согласования меню и пространства границ, освобождается.

См . раздел IOleInPlaceObject::InPlaceDeactivate в пакете SDK для Windows.

IOleInPlaceObjectWindowlessImpl::OnWindowMessage

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

HRESULT OnWindowMessage(
    UINT msg,
    WPARAM WParam,
    LPARAM LParam,
    LRESULT plResultParam);

Замечания

См. раздел IOleInPlaceObjectWindowless::OnWindowMessage в пакете SDK для Windows.

IOleInPlaceObjectWindowlessImpl::ReactivateAndUndo

Возвращает E_NOTIMPL.

HRESULT ReactivateAndUndo();

Замечания

См . раздел IOleInPlaceObject::ReactivateAndUndo в пакете SDK для Windows.

IOleInPlaceObjectWindowlessImpl::SetObjectRects

Вызывается контейнером для информирования элемента управления о том, что его размер и/или позиция изменились.

HRESULT SetObjectRects(LPCRECT prcPos, LPCRECT prcClip);

Замечания

Обновляет элемент данных элемента управления m_rcPos и дисплей элемента управления. Отображается только часть элемента управления, пересекающая область клипа. Если экран элемента управления был обрезан ранее, но вырезка была удалена, эта функция может вызываться для перерисовки полного представления элемента управления.

См. раздел IOleInPlaceObject::SetObjectRects в пакете SDK для Windows.

IOleInPlaceObjectWindowlessImpl::UIDeactivate

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

HRESULT UIDeactivate();

Замечания

Задает элемент m_bUIActive данных класса элемента управления значение FALSE. Реализация ATL этой функции всегда возвращает S_OK.

См . раздел IOleInPlaceObject::UIDeactivate в пакете SDK для Windows.

См. также

Класс CComControl
Общие сведения о классе