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
。
继承层次结构
IOleInPlaceObjectWindowless
IOleInPlaceObjectWindowlessImpl
要求
标头:atlctl.h
IOleInPlaceObjectWindowlessImpl::ContextSensitiveHelp
返回 E_NOTIMPL。
HRESULT ContextSensitiveHelp(BOOL fEnterMode);
备注
请参阅 Windows SDK 中的 IOleWindow::ContextSensitiveHelp。
IOleInPlaceObjectWindowlessImpl::GetDropTarget
返回 E_NOTIMPL。
HRESULT GetDropTarget(IDropTarget** ppDropTarget);
备注
请参阅 Windows SDK 中的 IOleInPlaceObjectWindowless::GetDropTarget。
IOleInPlaceObjectWindowlessImpl::GetWindow
容器调用此函数以获取控件的窗口句柄。
HRESULT GetWindow(HWND* phwnd);
备注
即使当前窗口已窗口化,某些容器也不适用于已经无窗口的控件。 在 ATL 的实现中,如果控件类的数据成员 m_bWasOnceWindowless
为 TRUE,则函数返回 E_FAIL。 否则,如果 phwnd 不为 NULL,则 GetWindow
将 * phwnd 分配给控件类的数据成员 m_hWnd
并返回 S_OK。
请参阅 Windows SDK 中的 IOleWindow::GetWindow。
IOleInPlaceObjectWindowlessImpl::InPlaceDeactivate
由容器调用,以停用就地活动控件。
HRESULT InPlaceDeactivate(HWND* phwnd);
注解
此方法根据控件的状态执行完整或部分停用。 如有必要,将停用控件的用户界面,并销毁控件的窗口(如果有)。 通知容器控件不再处于就地活动状态。 释放容器用来协商菜单和边框空间的 IOleInPlaceUIWindow
接口。
请参阅 Windows SDK 中的 IOleInPlaceObject::InPlaceDeactivate。
IOleInPlaceObjectWindowlessImpl::OnWindowMessage
将消息从容器调度到处于就地活动的无窗口控件。
HRESULT OnWindowMessage(
UINT msg,
WPARAM WParam,
LPARAM LParam,
LRESULT plResultParam);
备注
请参阅 Windows SDK 中的 IOleInPlaceObjectWindowless::OnWindowMessage。
IOleInPlaceObjectWindowlessImpl::ReactivateAndUndo
返回 E_NOTIMPL。
HRESULT ReactivateAndUndo();
备注
请参阅 Windows SDK 中的 IOleInPlaceObject::ReactivateAndUndo。
IOleInPlaceObjectWindowlessImpl::SetObjectRects
由容器调用,以通知控件其大小和/或位置已更改。
HRESULT SetObjectRects(LPCRECT prcPos, LPCRECT prcClip);
备注
更新控件的 m_rcPos
数据成员和控件显示。 仅显示与剪辑区域相交的控件部分。 如果之前已剪裁控件的显示,但剪辑已删除,则可以调用此函数来重新绘制控件的完整视图。
请参阅 Windows SDK 中的 IOleInPlaceObject::SetObjectRects。
IOleInPlaceObjectWindowlessImpl::UIDeactivate
停用并删除支持就地激活的控件的用户界面。
HRESULT UIDeactivate();
备注
将控件类的数据成员 m_bUIActive
设置为 FALSE。 此函数的 ATL 实现始终返回 S_OK。
请参阅 Windows SDK 中的 IOleInPlaceObject::UIDeactivate。