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
會在偵錯組建中將資訊傳送至傾印裝置,提供和 IOleInPlaceObjectWindowless
的默認實IOleInPlaceObject
作和 實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 。