Класс 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.