IOleObjectImpl クラス

このクラスは IUnknown を実装し、コンテナーがコントロールと通信するプリンシパル インターフェイスです。

重要

このクラスとそのメンバーは、Windows ランタイムで実行するアプリケーションで使用することはできません。

構文

template<class T>
class ATL_NO_VTABLE IOleObjectImpl : public IOleObject

パラメーター

T
IOleObjectImpl から派生したクラス。

メンバー

パブリック メソッド

名前 説明
IOleObjectImpl::Advise コントロールとのアドバイザリ コネクションを確立します。
IOleObjectImpl::Close コントロールの状態を実行中から読み込み済みに変更します。
IOleObjectImpl::DoVerb 列挙されたアクションのいずれかを実行するようコントロールに通知します。
IOleObjectImpl::DoVerbDiscardUndo 保持している取り消し状態を破棄するようにコントロールに通知します。
IOleObjectImpl::DoVerbHide ユーザー インターフェイスをビューから削除するようにコントロールに通知します。
IOleObjectImpl::DoVerbInPlaceActivate コントロールを実行し、そのウィンドウをインストールします。ただし、コントロールのユーザー インターフェイスはインストールしません。
IOleObjectImpl::DoVerbOpen コントロールを別のウィンドウで編集できるようにします。
IOleObjectImpl::DoVerbPrimary ユーザーがコントロールをダブルクリックしたときに、指定されたアクションを実行します。 コントロールは、通常、コントロールをインプレースでアクティブ化するために、アクションを定義します。
IOleObjectImpl::DoVerbShow 新しく挿入されたコントロールをユーザーに表示します。
IOleObjectImpl::DoVerbUIActivate コントロールをインプレースでアクティブ化し、メニューやツール バーなどのコントロールのユーザー インターフェイスを表示します。
IOleObjectImpl::EnumAdvise コントロールのアドバイザリ コネクションを列挙します。
IOleObjectImpl::EnumVerbs コントロールのアクションを列挙します。
IOleObjectImpl::GetClientSite コントロールのクライアント サイトを取得します。
IOleObjectImpl::GetClipboardData クリップボードからデータを取得します。 ATL 実装によって E_NOTIMPL が返されます。
IOleObjectImpl::GetExtent コントロールの表示領域の範囲を取得します。
IOleObjectImpl::GetMiscStatus コントロールの状態を取得します。
IOleObjectImpl::GetMoniker コントロールのモニカーを取得します。 ATL 実装によって E_NOTIMPL が返されます。
IOleObjectImpl::GetUserClassID コントロールのクラス識別子を取得します。
IOleObjectImpl::GetUserType コントロールのユーザー型名を取得します。
IOleObjectImpl::InitFromData 選択したデータからコントロールを初期化します。 ATL 実装によって E_NOTIMPL が返されます。
IOleObjectImpl::IsUpToDate コントロールが最新かどうかを確認します。 ATL 実装では S_OK が返されます。
IOleObjectImpl::OnPostVerbDiscardUndo 取り消し状態が破棄された後、DoVerbDiscardUndo によって呼び出されます。
IOleObjectImpl::OnPostVerbHide コントロールが非表示にされた後、DoVerbHide によって呼び出されます。
IOleObjectImpl::OnPostVerbInPlaceActivate コントロールがインプレースでアクティブ化された後、DoVerbInPlaceActivate によって呼び出されます。
IOleObjectImpl::OnPostVerbOpen コントロールを別のウィンドウで編集用に開いた後、DoVerbOpen によって呼び出されます。
IOleObjectImpl::OnPostVerbShow コントロールが表示された後、DoVerbShow によって呼び出されます。
IOleObjectImpl::OnPostVerbUIActivate コントロールのユーザー インターフェイスがアクティブ化された後、DoVerbUIActivate によって呼び出されます。
IOleObjectImpl::OnPreVerbDiscardUndo 取り消し状態が破棄される前に、DoVerbDiscardUndo によって呼び出されます。
IOleObjectImpl::OnPreVerbHide コントロールが非表示にされる前に、DoVerbHide によって呼び出されます。
IOleObjectImpl::OnPreVerbInPlaceActivate コントロールがインプレースでアクティブ化される前に、DoVerbInPlaceActivate によって呼び出されます。
IOleObjectImpl::OnPreVerbOpen コントロールを別のウィンドウで編集用に開く前に、DoVerbOpen によって呼び出されます。
IOleObjectImpl::OnPreVerbShow コントロールが表示される前に、DoVerbShow によって呼び出されます。
IOleObjectImpl::OnPreVerbUIActivate コントロールのユーザー インターフェイスがアクティブ化される前に、DoVerbUIActivate によって呼び出されます。
IOleObjectImpl::SetClientSite コンテナー内のクライアント サイトについてコントロールに通知します。
IOleObjectImpl::SetColorScheme コントロールのアプリケーションの配色を推奨します (存在する場合)。 ATL 実装によって E_NOTIMPL が返されます。
IOleObjectImpl::SetExtent コントロールの表示領域の範囲を設定します。
IOleObjectImpl::SetHostNames コンテナー アプリケーションとコンテナー ドキュメントの名前をコントロールに通知します。
IOleObjectImpl::SetMoniker モニカーについてコントロールに通知します。 ATL 実装によって E_NOTIMPL が返されます。
IOleObjectImpl::Unadvise コントロールとのアドバイザリ コネクションを削除します。
IOleObjectImpl::Update コントロールを更新します。 ATL 実装では S_OK が返されます。

解説

IOleObject インターフェイスは、コンテナーがコントロールと通信するプリンシパル インターフェイスです。 クラス IOleObjectImpl では、このインターフェイスの既定の実装が提供され、デバッグ ビルドでダンプ デバイスに情報を送信することによって IUnknown が実装されます。

関連記事ATL チュートリアル、「ATL プロジェクトの作成

継承階層

IOleObject

IOleObjectImpl

必要条件

ヘッダー: atlctl.h

IOleObjectImpl::Advise

コントロールとのアドバイザリ コネクションを確立します。

STDMETHOD(Advise)(
    IAdviseSink* pAdvSink,
    DWORD* pdwConnection);

解説

Windows SDK の IOleObject::Advise に関する記事を参照してください。

IOleObjectImpl::Close

コントロールの状態を実行中から読み込み済みに変更します。

STDMETHOD(Close)(DWORD dwSaveOption);

解説

コントロールを非アクティブ化し、コントロール ウィンドウが存在する場合は破棄します。 コントロール クラスのデータ メンバー CComControlBase::m_bRequiresSave が TRUE で、dwSaveOption パラメーターが OLECLOSE_SAVEIFDIRTY または OLECLOSE_PROMPTSAVE の場合、コントロールのプロパティが閉じる前に保存されます。

コントロール クラスのデータ メンバーCComControlBase::m_spInPlaceSiteCComControlBase::m_spAdviseSink に保持されているポインターが解放され、データ メンバー CComControlBase::m_bNegotiatedWndCComControlBase::m_bWndless、および CComControlBase::m_bInPlaceSiteEx が FALSE に設定されます。

Windows SDK の IOleObject::Close に関する記事を参照してください。

IOleObjectImpl::DoVerb

列挙されたアクションのいずれかを実行するようコントロールに通知します。

STDMETHOD(DoVerb)(
    LONG iVerb,
    LPMSG /* pMsg */,
    IOleClientSite* pActiveSite,
    LONG /* lindex */,
    HWND hwndParent,
    LPCRECT lprcPosRect);

解説

iVerb の値に応じて、ATL DoVerb ヘルパー関数のいずれかが次のように呼び出されます。

iVerb の値 呼び出される DoVerb ヘルパー関数
OLEIVERB_DISCARDUNDOSTATE DoVerbDiscardUndo
OLEIVERB_HIDE DoVerbHide
OLEIVERB_INPLACEACTIVATE DoVerbInPlaceActivate
OLEIVERB_OPEN DoVerbOpen
OLEIVERB_PRIMARY DoVerbPrimary
OLEIVERB_PROPERTIES CComControlBase::DoVerbProperties
OLEIVERB_SHOW DoVerbShow
OLEIVERB_UIACTIVATE DoVerbUIActivate

Windows SDK の IOleObject::DoVerb に関する記事を参照してください。

IOleObjectImpl::DoVerbDiscardUndo

保持している取り消し状態を破棄するようにコントロールに通知します。

HRESULT DoVerbDiscardUndo(LPCRECT /* prcPosRect */, HWND /* hwndParent */);

パラメーター

prcPosRec
[入力] コンテナーがコントロールで描画しようとする四角形のポインター。

hwndParent
[入力] コントロールを含むウィンドウのハンドル。

戻り値

S_OK を返します。

IOleObjectImpl::DoVerbHide

コントロールのユーザー インターフェイスを非アクティブ化して削除し、コントロールを非表示にします。

HRESULT DoVerbHide(LPCRECT /* prcPosRect */, HWND /* hwndParent */);

パラメーター

prcPosRec
[入力] コンテナーがコントロールで描画しようとする四角形のポインター。

hwndParent
[入力] コントロールを含むウィンドウのハンドル。 ATL の実装では使用されません。

戻り値

S_OK を返します。

IOleObjectImpl::DoVerbInPlaceActivate

コントロールを実行し、そのウィンドウをインストールします。ただし、コントロールのユーザー インターフェイスはインストールしません。

HRESULT DoVerbInPlaceActivate(LPCRECT prcPosRect, HWND /* hwndParent */);

パラメーター

prcPosRec
[入力] コンテナーがコントロールで描画しようとする四角形のポインター。

hwndParent
[入力] コントロールを含むウィンドウのハンドル。 ATL の実装では使用されません。

戻り値

標準 HRESULT 値のいずれか。

解説

CComControlBase::InPlaceActivate を呼び出して、インプレースでコントロールをアクティブ化します。 コントロール クラスのデータ メンバー m_bWindowOnly が TRUE でない限り、DoVerbInPlaceActivate はまず、コントロールをウィンドウなしのコントロールとしてアクティブ化しようとします (コンテナーが IOleInPlaceSiteWindowless をサポートしている場合に限ります)。 それが失敗した場合、関数は拡張された機能を使用してコントロールをアクティブ化しようとします (コンテナーが IOleInPlaceSiteEx をサポートしている場合に限ります)。 それが失敗した場合、関数は拡張された機能を使用せずにコントロールをアクティブ化しようとします (コンテナーが IOleInPlaceSite をサポートしている場合に限ります)。 アクティブ化が成功した場合、関数は、コントロールがアクティブ化されたことをコンテナーに通知します。

IOleObjectImpl::DoVerbOpen

コントロールを別のウィンドウで編集できるようにします。

HRESULT DoVerbOpen(LPCRECT /* prcPosRect */, HWND /* hwndParent */);

パラメーター

prcPosRec
[入力] コンテナーがコントロールで描画しようとする四角形のポインター。

hwndParent
[入力] コントロールを含むウィンドウのハンドル。

戻り値

S_OK を返します。

IOleObjectImpl::DoVerbPrimary

ユーザーがコントロールをダブルクリックしたときに実行されるアクションを定義します。

HRESULT DoVerbPrimary(LPCRECT prcPosRect, HWND hwndParent);

パラメーター

prcPosRec
[入力] コンテナーがコントロールで描画しようとする四角形のポインター。

hwndParent
[入力] コントロールを含むウィンドウのハンドル。

戻り値

標準 HRESULT 値のいずれか。

解説

既定では、プロパティ ページを表示するように設定します。 コントロール クラスでこれをオーバーライドして、ダブルクリック時に別の動作を呼び出すことができます。たとえば、ビデオの再生や、インプレースでのアクティブ化などです。

IOleObjectImpl::DoVerbShow

コントロールを表示するようにコンテナーに通知します。

HRESULT DoVerbShow(LPCRECT prcPosRect, HWND /* hwndParent */);

パラメーター

prcPosRec
[入力] コンテナーがコントロールで描画しようとする四角形のポインター。

hwndParent
[入力] コントロールを含むウィンドウのハンドル。 ATL の実装では使用されません。

戻り値

標準 HRESULT 値のいずれか。

IOleObjectImpl::DoVerbUIActivate

コントロールのユーザー インターフェイスをアクティブ化し、そのメニューが複合メニューに置き換えられていることをコンテナーに通知します。

HRESULT DoVerbUIActivate(LPCRECT prcPosRect, HWND /* hwndParent */);

パラメーター

prcPosRec
[入力] コンテナーがコントロールで描画しようとする四角形のポインター。

hwndParent
[入力] コントロールを含むウィンドウのハンドル。 ATL の実装では使用されません。

戻り値

標準 HRESULT 値のいずれか。

IOleObjectImpl::EnumAdvise

このコントロールの登録済みアドバイザリ コネクションの列挙体を提供します。

STDMETHOD(EnumAdvise)(IEnumSTATDATA** ppenumAdvise);

解説

Windows SDK の IOleObject::EnumAdvise に関する記事を参照してください。

IOleObjectImpl::EnumVerbs

OleRegEnumVerbs を呼び出して、このコントロールの登録済みアクション (動詞) の列挙体を提供します。

STDMETHOD(EnumVerbs)(IEnumOLEVERB** ppEnumOleVerb);

解説

プロジェクトの .rgs ファイルに動詞を追加できます。 たとえば、CIRC のサンプルで CIRCCTL.RGS を参照してください。

Windows SDK の IOleObject::EnumVerbs に関する記事を参照してください。

IOleObjectImpl::GetClientSite

コントロール クラスのデータ メンバー CComControlBase::m_spClientSite のポインターを ppClientSite に置き、ポインターの参照カウントをインクリメントします。

STDMETHOD(GetClientSite)(IOleClientSite** ppClientSite);

解説

Windows SDK の IOleObject::GetClientSite に関する記事を参照してください。

IOleObjectImpl::GetClipboardData

クリップボードからデータを取得します。

STDMETHOD(GetClipboardData)(
    DWORD /* dwReserved */,
    IDataObject** /* ppDataObject */);

戻り値

E_NOTIMPL を返します。

解説

Windows SDK の IOleObject::GetClipboardData に関する記事を参照してください。

IOleObjectImpl::GetExtent

実行中のコントロールの表示サイズを HIMETRIC 単位 (単位あたり 0.01 mm) で取得します。

STDMETHOD(GetExtent)(
    DWORD dwDrawAspect,
    SIZEL* psizel);

解説

サイズは、コントロール クラスのデータ メンバー CComControlBase::m_sizeExtent に格納されます。

Windows SDK の IOleObject::GetExtent に関する記事を参照してください。

IOleObjectImpl::GetMiscStatus

OleRegGetMiscStatus を呼び出して、コントロールに登録された状態情報へのポインターを返します。

STDMETHOD(GetMiscStatus)(
    DWORD dwAspect,
    DWORD* pdwStatus);

解説

状態情報には、コントロールとプレゼンテーション データでサポートされる動作が含まれます。 プロジェクトの .rgs ファイルに状態情報を追加できます。

Windows SDK の IOleObject::GetMiscStatus に関する記事を参照してください。

IOleObjectImpl::GetMoniker

コントロールのモニカーを取得します。

STDMETHOD(GetMoniker)(
    DWORD /* dwAssign */,
    DWORD /* dwWhichMoniker */,
    IMoniker** /* ppmk */);

戻り値

E_NOTIMPL を返します。

解説

Windows SDK の IOleObject::GetMoniker に関する記事を参照してください。

IOleObjectImpl::GetUserClassID

コントロールのクラス識別子を返します。

STDMETHOD(GetUserClassID)(CLSID* pClsid);

解説

Windows SDK の IOleObject::GetUserClassID に関する記事を参照してください。

IOleObjectImpl::GetUserType

OleRegGetUserType を呼び出して、コントロールのユーザー型名を返します。

STDMETHOD(GetUserType)(
    DWORD dwFormOfType,
    LPOLESTR* pszUserType);

解説

ユーザー型名は、メニューやダイアログ ボックスなどのユーザー インターフェイス要素に表示するために使用されます。 プロジェクトの .rgs ファイルでユーザー型名を変更できます。

Windows SDK の IOleObject::GetUserType に関する記事を参照してください。

IOleObjectImpl::InitFromData

選択したデータからコントロールを初期化します。

STDMETHOD(InitFromData)(
    IDataObject* /* pDataObject */,
    BOOL /* fCreation */,
    DWORD /* dwReserved */);

戻り値

E_NOTIMPL を返します。

解説

Windows SDK の IOleObject::InitFromData に関する記事を参照してください。

IOleObjectImpl::IsUpToDate

コントロールが最新かどうかを確認します。

STDMETHOD(IsUpToDate)(void);

戻り値

S_OK を返します。

解説

Windows SDK の IOleObject::IsUpToDate に関する記事を参照してください。

IOleObjectImpl::OnPostVerbDiscardUndo

取り消し状態が破棄された後、DoVerbDiscardUndo によって呼び出されます。

HRESULT OnPostVerbDiscardUndo();

戻り値

S_OK を返します。

解説

取り消し状態が破棄された後に実行するコードで、このメソッドをオーバーライドします。

IOleObjectImpl::OnPostVerbHide

コントロールが非表示にされた後、DoVerbHide によって呼び出されます。

HRESULT OnPostVerbHide();

戻り値

S_OK を返します。

解説

コントロールが非表示にされた後に実行するコードで、このメソッドをオーバーライドします。

IOleObjectImpl::OnPostVerbInPlaceActivate

コントロールがインプレースでアクティブ化された後、DoVerbInPlaceActivate によって呼び出されます。

HRESULT OnPostVerbInPlaceActivate();

戻り値

S_OK を返します。

解説

コントロールがインプレースでアクティブ化された後に実行するコードで、このメソッドをオーバーライドします。

IOleObjectImpl::OnPostVerbOpen

コントロールを別のウィンドウで編集用に開いた後、DoVerbOpen によって呼び出されます。

HRESULT OnPostVerbOpen();

戻り値

S_OK を返します。

解説

別のウィンドウで編集用にコントロールを開いた後に実行するコードで、このメソッドをオーバーライドします。

IOleObjectImpl::OnPostVerbShow

コントロールが表示された後、DoVerbShow によって呼び出されます。

HRESULT OnPostVerbShow();

戻り値

S_OK を返します。

解説

コントロールが表示された後に実行するコードで、このメソッドをオーバーライドします。

IOleObjectImpl::OnPostVerbUIActivate

コントロールのユーザー インターフェイスがアクティブ化された後、DoVerbUIActivate によって呼び出されます。

HRESULT OnPostVerbUIActivate();

戻り値

S_OK を返します。

解説

コントロールのユーザー インターフェイスがアクティブ化された後に実行するコードで、このメソッドをオーバーライドします。

IOleObjectImpl::OnPreVerbDiscardUndo

取り消し状態が破棄される前に、DoVerbDiscardUndo によって呼び出されます。

HRESULT OnPreVerbDiscardUndo();

戻り値

S_OK を返します。

解説

取り消し状態が破棄されるのを防ぐには、エラー HRESULT を返すようにこのメソッドをオーバーライドします。

IOleObjectImpl::OnPreVerbHide

コントロールが非表示にされる前に、DoVerbHide によって呼び出されます。

HRESULT OnPreVerbHide();

戻り値

S_OK を返します。

解説

コントロールが非表示にされるのを防ぐには、エラー HRESULT を返すようにこのメソッドをオーバーライドします。

IOleObjectImpl::OnPreVerbInPlaceActivate

コントロールがインプレースでアクティブ化される前に、DoVerbInPlaceActivate によって呼び出されます。

HRESULT OnPreVerbInPlaceActivate();

戻り値

S_OK を返します。

解説

コントロールがインプレースでアクティブ化されるのを防ぐには、エラー HRESULT を返すようにこのメソッドをオーバーライドします。

IOleObjectImpl::OnPreVerbOpen

コントロールを別のウィンドウで編集用に開く前に、DoVerbOpen によって呼び出されます。

HRESULT OnPreVerbOpen();

戻り値

S_OK を返します。

解説

コントロールが別のウィンドウで編集用に開くのを防ぐには、エラー HRESULT を返すようにこのメソッドをオーバーライドします。

IOleObjectImpl::OnPreVerbShow

コントロールが表示される前に、DoVerbShow によって呼び出されます。

HRESULT OnPreVerbShow();

戻り値

S_OK を返します。

解説

コントロールが表示されるのを防ぐには、エラー HRESULT を返すようにこのメソッドをオーバーライドします。

IOleObjectImpl::OnPreVerbUIActivate

コントロールのユーザー インターフェイスがアクティブ化される前に、DoVerbUIActivate によって呼び出されます。

HRESULT OnPreVerbUIActivate();

戻り値

S_OK を返します。

解説

コントロールのユーザー インターフェイスがアクティブ化されるのを防ぐには、エラー HRESULT を返すようにこのメソッドをオーバーライドします。

IOleObjectImpl::SetClientSite

コンテナー内のクライアント サイトについてコントロールに通知します。

STDMETHOD(SetClientSite)(IOleClientSite* pClientSite);

解説

これで、メソッドは S_OK を返します。

Windows SDK の IOleObject::SetClientSite に関する記事を参照してください。

IOleObjectImpl::SetColorScheme

コントロールのアプリケーションの配色を推奨します (存在する場合)。

STDMETHOD(SetColorScheme)(LOGPALETTE* /* pLogPal */);

戻り値

E_NOTIMPL を返します。

解説

Windows SDK の IOleObject::SetColorScheme に関する記事を参照してください。

IOleObjectImpl::SetExtent

コントロールの表示領域の範囲を設定します。

STDMETHOD(SetExtent)(
    DWORD dwDrawAspect,
    SIZEL* psizel);

解説

それ以外の場合、SetExtent は、psizel が指す値をコントロール クラスのデータ メンバー CComControlBase::m_sizeExtent に格納します。 この値では HIMETRIC 単位 (単位あたり 0.01 mm) が使用されます。

コントロール クラスのデータ メンバー CComControlBase::m_bResizeNatural が TRUE の場合、SetExtent では psizel が指す値もコントロール クラスのデータ メンバー CComControlBase::m_sizeNatural に格納します。

コントロール クラスのデータ メンバー CComControlBase::m_bRecomposeOnResize が TRUE の場合、SetExtentSendOnDataChangeSendOnViewChange を呼び出して、コントロールのサイズが変更されたことをアドバイス ホルダーに登録されているすべてのアドバイザリ シンクに通知します。

Windows SDK の IOleObject::SetExtent に関する記事を参照してください。

IOleObjectImpl::SetHostNames

コンテナー アプリケーションとコンテナー ドキュメントの名前をコントロールに通知します。

STDMETHOD(SetHostNames)(LPCOLESTR /* szContainerApp */, LPCOLESTR /* szContainerObj */);

戻り値

S_OK を返します。

解説

Windows SDK の IOleObject::SetHostNames に関する記事を参照してください。

IOleObjectImpl::SetMoniker

モニカーについてコントロールに通知します。

STDMETHOD(SetMoniker)(
    DWORD /* dwWhichMoniker */,
    IMoniker** /* pmk */);

戻り値

E_NOTIMPL を返します。

解説

Windows SDK の IOleObject::SetMoniker に関する記事を参照してください。

IOleObjectImpl::Unadvise

コントロール クラスの m_spOleAdviseHolder データ メンバーに格納されているアドバイザリ コネクションを削除します。

STDMETHOD(Unadvise)(DWORD dwConnection);

解説

Windows SDK の IOleObject::Unadvise に関する記事を参照してください。

IOleObjectImpl::Update

コントロールを更新します。

STDMETHOD(Update)(void);

戻り値

S_OK を返します。

解説

Windows SDK の IOleObject::Update に関する記事を参照してください。

関連項目

CComControl クラス
ActiveX コントロール インターフェイス
クラスの概要