共用方式為


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作。

相關文章 ATL 教學課程建立 ATL 專案

繼承階層架構

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

另請參閱

CComControl 類別
類別概觀