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_spInPlaceSite と CComControlBase::m_spAdviseSink に保持されているポインターが解放され、データ メンバー CComControlBase::m_bNegotiatedWnd、CComControlBase::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 の場合、SetExtent
は SendOnDataChange
と SendOnViewChange
を呼び出して、コントロールのサイズが変更されたことをアドバイス ホルダーに登録されているすべてのアドバイザリ シンクに通知します。
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 に関する記事を参照してください。