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

必要条件

ヘッダー: 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 の OleInPlaceObject::UIDeactivate に関する記事を参照してください。

関連項目

CComControl クラス
クラスの概要