Sdílet prostřednictvím


IOleObjectImpl – třída

Tato třída implementuje IUnknown a je hlavním rozhraním, přes které kontejner komunikuje s ovládacím prvek.

Důležité

Tuto třídu a její členy nelze použít v aplikacích, které se spouští v prostředí Windows Runtime.

Syntaxe

template<class T>
class ATL_NO_VTABLE IOleObjectImpl : public IOleObject

Parametry

T
Vaše třída odvozená z IOleObjectImpl.

Členové

Veřejné metody

Název Popis
IOleObjectImpl::Radte Vytvoří poradní spojení s ovládacím prvek.
IOleObjectImpl::Close Změní stav ovládacího prvku ze spuštěného na načtený.
IOleObjectImpl::D oVerb Řekne ovládacímu prvku, aby provedl jednu z jejích výčtových akcí.
IOleObjectImpl::D oVerbDiscardUndo Řekne ovládacímu prvku, aby zahodil jakýkoli stav vrácení zpět, který udržuje.
IOleObjectImpl::D oVerbHide Řekne ovládacímu prvku, aby odebral jeho uživatelské rozhraní ze zobrazení.
IOleObjectImpl::D oVerbInPlaceActivate Spustí ovládací prvek a nainstaluje jeho okno, ale nenainstaluje uživatelské rozhraní ovládacího prvku.
IOleObjectImpl::D oVerbOpen Způsobí, že se ovládací prvek otevře v samostatném okně.
IOleObjectImpl::D oVerbPrimary Provede zadanou akci, když uživatel dvakrát klikne na ovládací prvek. Ovládací prvek definuje akci, obvykle k aktivaci ovládacího prvku na místě.
IOleObjectImpl::D oVerbShow Zobrazí nově vložený ovládací prvek pro uživatele.
IOleObjectImpl::D oVerbUIActivate Aktivuje ovládací prvek na místě a zobrazí uživatelské rozhraní ovládacího prvku, například nabídky a panely nástrojů.
IOleObjectImpl::EnumAdvise Vytvoří výčet poradních připojení ovládacího prvku.
IOleObjectImpl::EnumVerbs Vytvoří výčet akcí pro ovládací prvek.
IOleObjectImpl::GetClientSite Načte klientskou lokalitu ovládacího prvku.
IOleObjectImpl::GetClipboardData Načte data ze schránky. Implementace ATL vrátí E_NOTIMPL.
IOleObjectImpl::GetExtent Načte rozsah oblasti zobrazení ovládacího prvku.
IOleObjectImpl::GetMiscStatus Načte stav ovládacího prvku.
IOleObjectImpl::GetMoniker Načte moniker ovládacího prvku. Implementace ATL vrátí E_NOTIMPL.
IOleObjectImpl::GetUserClassID Načte identifikátor třídy ovládacího prvku.
IOleObjectImpl::GetUserType Načte uživatelské jméno ovládacího prvku.
IOleObjectImpl::InitFromData Inicializuje ovládací prvek z vybraných dat. Implementace ATL vrátí E_NOTIMPL.
IOleObjectImpl::IsUpToDate Zkontroluje, jestli je ovládací prvek aktuální. Implementace ATL vrátí S_OK.
IOleObjectImpl::OnPostVerbDiscardUndo Volá doVerbDiscardUndo po zrušení stavu.
IOleObjectImpl::OnPostVerbHide Volal DoVerbHide po skrytí ovládacího prvku.
IOleObjectImpl::OnPostVerbInPlaceActivate Volal DoVerbInPlaceActivate po aktivaci ovládacího prvku.
IOleObjectImpl::OnPostVerbOpen Volal DoVerbOpen po otevření ovládacího prvku pro úpravy v samostatném okně.
IOleObjectImpl::OnPostVerbShow Volal DoVerbShow po zobrazení ovládacího prvku.
IOleObjectImpl::OnPostVerbUIActivate Volal DoVerbUIActivate po aktivaci uživatelského rozhraní ovládacího prvku.
IOleObjectImpl::OnPreVerbDiscardUndo Volá doVerbDiscardUndo před zrušením stavu.
IOleObjectImpl::OnPreVerbHide Volal DoVerbHide před skrytím ovládacího prvku.
IOleObjectImpl::OnPreVerbInPlaceActivate Volal DoVerbInPlaceActivate před aktivací ovládacího prvku na místě.
IOleObjectImpl::OnPreVerbOpen Volal DoVerbOpen před otevřením ovládacího prvku pro úpravy v samostatném okně.
IOleObjectImpl::OnPreVerbShow Volal DoVerbShow před zobrazením ovládacího prvku.
IOleObjectImpl::OnPreVerbUIActivate Volal DoVerbUIActivate před aktivací uživatelského rozhraní ovládacího prvku.
IOleObjectImpl::SetClientSite Informuje ovládací prvek o jeho klientské lokalitě v kontejneru.
IOleObjectImpl::SetColorScheme Pokud existuje, doporučí barevné schéma pro aplikaci ovládacího prvku. Implementace ATL vrátí E_NOTIMPL.
IOleObjectImpl::SetExtent Nastaví rozsah oblasti zobrazení ovládacího prvku.
IOleObjectImpl::SetHostNames Informuje ovládací prvek o názvech aplikace kontejneru a dokumentu kontejneru.
IOleObjectImpl::SetMoniker Řekne ovládacímu prvku, co je jeho moniker. Implementace ATL vrátí E_NOTIMPL.
IOleObjectImpl::Unadvise Odstraní připojení poradce k ovládacímu prvku.
IOleObjectImpl::Update Aktualizuje ovládací prvek. Implementace ATL vrátí S_OK.

Poznámky

Rozhraní IOleObject je hlavní rozhraní, prostřednictvím kterého kontejner komunikuje s ovládacím prvek. Třída IOleObjectImpl poskytuje výchozí implementaci tohoto rozhraní a implementuje IUnknown odesláním informací do zařízení s výpisem paměti v buildech ladění.

Související články ATL – kurz, vytvoření projektu ATL

Hierarchie dědičnosti

IOleObject

IOleObjectImpl

Požadavky

Hlavička: atlctl.h

IOleObjectImpl::Radte

Vytvoří poradní spojení s ovládacím prvek.

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

Poznámky

Viz IOleObject::Radte v sadě Windows SDK.

IOleObjectImpl::Close

Změní stav ovládacího prvku ze spuštěného na načtený.

STDMETHOD(Close)(DWORD dwSaveOption);

Poznámky

Deaktivuje ovládací prvek a zničí okno ovládacího prvku, pokud existuje. Pokud datový člen třídy ovládacího prvku CComControlBase::m_bRequiresSave je TRUE a dwSaveOption parametr je buď OLECLOSE_SAVEIFDIRTY nebo OLECLOSE_PROMPTSAVE, vlastnosti ovládacího prvku jsou uloženy před zavřením.

Ukazatele uchovávané v datových členech třídy ovládacího prvku CComControlBase::m_spInPlaceSite a CComControlBase::m_spAdviseSink jsou vydány a datové členy CComControlBase::m_bNegotiatedWnd, CComControlBase::m_bWndless a CComControlBase::m_bInPlaceSiteEx jsou nastaveny na HODNOTU FALSE.

Viz IOleObject::Close v sadě Windows SDK.

IOleObjectImpl::D oVerb

Řekne ovládacímu prvku, aby provedl jednu z jejích výčtových akcí.

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

Poznámky

V závislosti na hodnotě je volána jedna z pomocných iVerbfunkcí KNIHOVNY ATL DoVerb následujícím způsobem:

Hodnota iVerb Pomocná funkce DoVerb volala
OLEIVERB_DISCARDUNDOSTATE DoVerbDiscardUndo
OLEIVERB_HIDE DoVerbHide
OLEIVERB_INPLACEACTIVATE DoVerbInPlaceActivate
OLEIVERB_OPEN DoVerbOpen
OLEIVERB_PRIMARY DoVerbPrimary
OLEIVERB_PROPERTIES CComControlBase::D oVerbProperties
OLEIVERB_SHOW DoVerbShow
OLEIVERB_UIACTIVATE DoVerbUIActivate

Viz IOleObject::D oVerb v sadě Windows SDK.

IOleObjectImpl::D oVerbDiscardUndo

Řekne ovládacímu prvku, aby zahodil jakýkoli stav vrácení zpět, který udržuje.

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

Parametry

prcPosRec
[v] Ukazatel na obdélník, do kterého má kontejner nakreslit ovládací prvek.

hwndParent
[v] Úchyt okna obsahujícího ovládací prvek

Návratová hodnota

Vrátí S_OK.

IOleObjectImpl::D oVerbHide

Deaktivuje a odebere uživatelské rozhraní ovládacího prvku a skryje ovládací prvek.

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

Parametry

prcPosRec
[v] Ukazatel na obdélník, do kterého má kontejner nakreslit ovládací prvek.

hwndParent
[v] Úchyt okna obsahujícího ovládací prvek Nepoužívá se v implementaci ATL.

Návratová hodnota

Vrátí S_OK.

IOleObjectImpl::D oVerbInPlaceActivate

Spustí ovládací prvek a nainstaluje jeho okno, ale nenainstaluje uživatelské rozhraní ovládacího prvku.

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

Parametry

prcPosRec
[v] Ukazatel na obdélník, do kterého má kontejner nakreslit ovládací prvek.

hwndParent
[v] Úchyt okna obsahujícího ovládací prvek Nepoužívá se v implementaci ATL.

Návratová hodnota

Jedna ze standardních hodnot HRESULT.

Poznámky

Aktivuje ovládací prvek na místě voláníM CComControlBase::InPlaceActivate. Pokud datový člen m_bWindowOnly třídy ovládacího prvku není TRUE, DoVerbInPlaceActivate nejprve se pokusí aktivovat ovládací prvek jako ovládací prvek bez oken (možné pouze v případě, že kontejner podporuje IOleInPlaceSiteWindowless). Pokud se to nezdaří, funkce se pokusí aktivovat ovládací prvek s rozšířenými funkcemi (možné pouze v případě, že kontejner podporuje IOleInPlaceSiteEx). Pokud se to nezdaří, funkce se pokusí aktivovat ovládací prvek bez rozšířených funkcí (je možné pouze v případě, že kontejner podporuje IOleInPlaceSite). Pokud aktivace proběhne úspěšně, funkce oznámí kontejneru, že byl ovládací prvek aktivován.

IOleObjectImpl::D oVerbOpen

Způsobí, že se ovládací prvek otevře v samostatném okně.

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

Parametry

prcPosRec
[v] Ukazatel na obdélník, do kterého má kontejner nakreslit ovládací prvek.

hwndParent
[v] Úchyt okna obsahujícího ovládací prvek

Návratová hodnota

Vrátí S_OK.

IOleObjectImpl::D oVerbPrimary

Definuje akci, která se provede, když uživatel poklikne na ovládací prvek.

HRESULT DoVerbPrimary(LPCRECT prcPosRect, HWND hwndParent);

Parametry

prcPosRec
[v] Ukazatel na obdélník, do kterého má kontejner nakreslit ovládací prvek.

hwndParent
[v] Úchyt okna obsahujícího ovládací prvek

Návratová hodnota

Jedna ze standardních hodnot HRESULT.

Poznámky

Ve výchozím nastavení nastavíte zobrazení stránek vlastností. Toto chování můžete ve své třídě ovládacího prvku přepsat tak, aby vyvolalo jiné chování poklikání; Můžete například přehrát video nebo přejít na místě aktivní.

IOleObjectImpl::D oVerbShow

Řekne kontejneru, aby byl ovládací prvek viditelný.

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

Parametry

prcPosRec
[v] Ukazatel na obdélník, do kterého má kontejner nakreslit ovládací prvek.

hwndParent
[v] Úchyt okna obsahujícího ovládací prvek Nepoužívá se v implementaci ATL.

Návratová hodnota

Jedna ze standardních hodnot HRESULT.

IOleObjectImpl::D oVerbUIActivate

Aktivuje uživatelské rozhraní ovládacího prvku a upozorní kontejner, že jeho nabídky jsou nahrazeny složenými nabídkami.

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

Parametry

prcPosRec
[v] Ukazatel na obdélník, do kterého má kontejner nakreslit ovládací prvek.

hwndParent
[v] Úchyt okna obsahujícího ovládací prvek Nepoužívá se v implementaci ATL.

Návratová hodnota

Jedna ze standardních hodnot HRESULT.

IOleObjectImpl::EnumAdvise

Poskytuje výčet registrovaných doporučených připojení pro tento ovládací prvek.

STDMETHOD(EnumAdvise)(IEnumSTATDATA** ppenumAdvise);

Poznámky

Viz IOleObject::EnumAdvise v sadě Windows SDK.

IOleObjectImpl::EnumVerbs

Poskytuje výčet registrovaných akcí (sloves) pro tento ovládací prvek voláním OleRegEnumVerbs.

STDMETHOD(EnumVerbs)(IEnumOLEVERB** ppEnumOleVerb);

Poznámky

Do souboru .rgs projektu můžete přidat příkazy. Například viz CIRCCTL. RGS ve vzorku CIRC .

Viz IOleObject::EnumVerbs v sadě Windows SDK.

IOleObjectImpl::GetClientSite

Umístí ukazatel do datového členu třídy ovládacího prvku CComControlBase::m_spClientSite do ppClientSite a zvýší počet odkazů na ukazatel.

STDMETHOD(GetClientSite)(IOleClientSite** ppClientSite);

Poznámky

Viz IOleObject::GetClientSite v sadě Windows SDK.

IOleObjectImpl::GetClipboardData

Načte data ze schránky.

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

Návratová hodnota

Vrátí E_NOTIMPL.

Poznámky

Viz IOleObject::GetClipboardData v sadě Windows SDK.

IOleObjectImpl::GetExtent

Načte velikost zobrazení spuštěného ovládacího prvku v jednotkách HIMETRIC (0,01 milimetru na jednotku).

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

Poznámky

Velikost je uložena v datovém členu třídy ovládacího prvku CComControlBase::m_sizeExtent.

Viz IOleObject::GetExtent v sadě Windows SDK.

IOleObjectImpl::GetMiscStatus

Vrátí ukazatel na registrované informace o stavu ovládacího prvku voláním OleRegGetMiscStatus.

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

Poznámky

Informace o stavu zahrnují chování podporované ovládacími prvky a prezentačními daty. Do souboru .rgs projektu můžete přidat informace o stavu.

Viz IOleObject::GetMiscStatus v sadě Windows SDK.

IOleObjectImpl::GetMoniker

Načte moniker ovládacího prvku.

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

Návratová hodnota

Vrátí E_NOTIMPL.

Poznámky

Viz IOleObject::GetMoniker v sadě Windows SDK.

IOleObjectImpl::GetUserClassID

Vrátí identifikátor třídy ovládacího prvku.

STDMETHOD(GetUserClassID)(CLSID* pClsid);

Poznámky

Viz IOleObject::GetUserClassID v sadě Windows SDK.

IOleObjectImpl::GetUserType

Vrátí uživatelské jméno ovládacího prvku voláním OleRegGetUserType.

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

Poznámky

Uživatelské jméno se používá k zobrazení v prvcích uživatelského rozhraní, jako jsou nabídky a dialogová okna. Název uživatele můžete změnit v souboru .rgs projektu.

Viz IOleObject::GetUserType v sadě Windows SDK.

IOleObjectImpl::InitFromData

Inicializuje ovládací prvek z vybraných dat.

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

Návratová hodnota

Vrátí E_NOTIMPL.

Poznámky

Viz IOleObject::InitFromData v sadě Windows SDK.

IOleObjectImpl::IsUpToDate

Zkontroluje, jestli je ovládací prvek aktuální.

STDMETHOD(IsUpToDate)(void);

Návratová hodnota

Vrátí S_OK.

Poznámky

Viz IOleObject::IsUpToDate v sadě Windows SDK.

IOleObjectImpl::OnPostVerbDiscardUndo

Volá doVerbDiscardUndo po zrušení stavu.

HRESULT OnPostVerbDiscardUndo();

Návratová hodnota

Vrátí S_OK.

Poznámky

Tuto metodu přepište kódem, který chcete spustit po zahození stavu zpět.

IOleObjectImpl::OnPostVerbHide

Volal DoVerbHide po skrytí ovládacího prvku.

HRESULT OnPostVerbHide();

Návratová hodnota

Vrátí S_OK.

Poznámky

Tuto metodu přepište kódem, který chcete spustit po skrytí ovládacího prvku.

IOleObjectImpl::OnPostVerbInPlaceActivate

Volal DoVerbInPlaceActivate po aktivaci ovládacího prvku.

HRESULT OnPostVerbInPlaceActivate();

Návratová hodnota

Vrátí S_OK.

Poznámky

Tuto metodu přepište kódem, který chcete spustit po aktivaci ovládacího prvku.

IOleObjectImpl::OnPostVerbOpen

Volal DoVerbOpen po otevření ovládacího prvku pro úpravy v samostatném okně.

HRESULT OnPostVerbOpen();

Návratová hodnota

Vrátí S_OK.

Poznámky

Tuto metodu přepište kódem, který chcete provést po otevření ovládacího prvku pro úpravy v samostatném okně.

IOleObjectImpl::OnPostVerbShow

Volal DoVerbShow po zobrazení ovládacího prvku.

HRESULT OnPostVerbShow();

Návratová hodnota

Vrátí S_OK.

Poznámky

Tuto metodu přepište kódem, který chcete spustit po zobrazení ovládacího prvku.

IOleObjectImpl::OnPostVerbUIActivate

Volal DoVerbUIActivate po aktivaci uživatelského rozhraní ovládacího prvku.

HRESULT OnPostVerbUIActivate();

Návratová hodnota

Vrátí S_OK.

Poznámky

Tuto metodu přepište kódem, který chcete spustit po aktivaci uživatelského rozhraní ovládacího prvku.

IOleObjectImpl::OnPreVerbDiscardUndo

Volá doVerbDiscardUndo před zrušením stavu.

HRESULT OnPreVerbDiscardUndo();

Návratová hodnota

Vrátí S_OK.

Poznámky

Pokud chcete zabránit zahození stavu vrácení zpět, přepište tuto metodu tak, aby vrátila chybu HRESULT.

IOleObjectImpl::OnPreVerbHide

Volal DoVerbHide před skrytím ovládacího prvku.

HRESULT OnPreVerbHide();

Návratová hodnota

Vrátí S_OK.

Poznámky

Chcete-li zabránit skrytí ovládacího prvku, přepište tuto metodu tak, aby vrátila chybu HRESULT.

IOleObjectImpl::OnPreVerbInPlaceActivate

Volal DoVerbInPlaceActivate před aktivací ovládacího prvku na místě.

HRESULT OnPreVerbInPlaceActivate();

Návratová hodnota

Vrátí S_OK.

Poznámky

Chcete-li zabránit aktivaci ovládacího prvku na místě, přepište tuto metodu, aby se vrátila chyba HRESULT.

IOleObjectImpl::OnPreVerbOpen

Volal DoVerbOpen před otevřením ovládacího prvku pro úpravy v samostatném okně.

HRESULT OnPreVerbOpen();

Návratová hodnota

Vrátí S_OK.

Poznámky

Chcete-li zabránit otevření ovládacího prvku pro úpravy v samostatném okně, přepište tuto metodu tak, aby vrátil chybu HRESULT.

IOleObjectImpl::OnPreVerbShow

Volal DoVerbShow před zobrazením ovládacího prvku.

HRESULT OnPreVerbShow();

Návratová hodnota

Vrátí S_OK.

Poznámky

Chcete-li zabránit zobrazení ovládacího prvku, přepište tuto metodu tak, aby vrátila chybu HRESULT.

IOleObjectImpl::OnPreVerbUIActivate

Volal DoVerbUIActivate před aktivací uživatelského rozhraní ovládacího prvku.

HRESULT OnPreVerbUIActivate();

Návratová hodnota

Vrátí S_OK.

Poznámky

Pokud chcete zabránit aktivaci uživatelského rozhraní ovládacího prvku, přepište tuto metodu tak, aby vrátila chybu HRESULT.

IOleObjectImpl::SetClientSite

Informuje ovládací prvek o jeho klientské lokalitě v kontejneru.

STDMETHOD(SetClientSite)(IOleClientSite* pClientSite);

Poznámky

Metoda pak vrátí S_OK.

Viz IOleObject::SetClientSite v sadě Windows SDK.

IOleObjectImpl::SetColorScheme

Pokud existuje, doporučí barevné schéma pro aplikaci ovládacího prvku.

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

Návratová hodnota

Vrátí E_NOTIMPL.

Poznámky

Viz IOleObject::SetColorScheme v sadě Windows SDK.

IOleObjectImpl::SetExtent

Nastaví rozsah oblasti zobrazení ovládacího prvku.

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

Poznámky

SetExtent V opačném případě uloží hodnotu, na kterou psizel odkazuje datový člen třídy ovládacího prvku CComControlBase::m_sizeExtent. Tato hodnota je v jednotkách HIMETRIC (0,01 milimetru na jednotku).

Pokud je datový člen třídy ovládacího prvku CComControlBase::m_bResizeNatural true, SetExtent uloží také hodnotu, na kterou psizel odkazuje datový člen třídy ovládacího prvku CComControlBase::m_sizeNatural.

Pokud datový člen třídy ovládacího prvku CComControlBase::m_bRecomposeOnResize je TRUE, SetExtent volá SendOnDataChange a SendOnViewChange upozorňují všechny poradní jímky zaregistrované u držitele rady, že velikost ovládacího prvku se změnila.

Viz IOleObject::SetExtent v sadě Windows SDK.

IOleObjectImpl::SetHostNames

Informuje ovládací prvek o názvech aplikace kontejneru a dokumentu kontejneru.

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

Návratová hodnota

Vrátí S_OK.

Poznámky

Viz IOleObject::SetHostNames v sadě Windows SDK.

IOleObjectImpl::SetMoniker

Řekne ovládacímu prvku, co je jeho moniker.

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

Návratová hodnota

Vrátí E_NOTIMPL.

Poznámky

Viz IOleObject::SetMoniker v sadě Windows SDK.

IOleObjectImpl::Unadvise

Odstraní připojení poradce uložené v datovém členu m_spOleAdviseHolder třídy ovládacího prvku.

STDMETHOD(Unadvise)(DWORD dwConnection);

Poznámky

Viz IOleObject::Unadvise v sadě Windows SDK.

IOleObjectImpl::Update

Aktualizuje ovládací prvek.

STDMETHOD(Update)(void);

Návratová hodnota

Vrátí S_OK.

Poznámky

Viz IOleObject::Update v sadě Windows SDK.

Viz také

CComControl – třída
Rozhraní ovládacích prvků ActiveX
Přehled třídy