Condividi tramite


Classe IOleObjectImpl

Questa classe implementa IUnknown e è l'interfaccia principale tramite cui un contenitore comunica con un controllo .

Importante

Questa classe e i relativi membri non possono essere usati nelle applicazioni eseguite in Windows Runtime.

Sintassi

template<class T>
class ATL_NO_VTABLE IOleObjectImpl : public IOleObject

Parametri

T
Classe derivata da IOleObjectImpl.

Membri

Metodi pubblici

Nome Descrizione
IOleObjectImpl::Advise Stabilisce una connessione consultiva con il controllo .
IOleObjectImpl::Close Modifica lo stato del controllo dall'esecuzione al caricamento.
IOleObjectImpl::D oVerb Indica al controllo di eseguire una delle azioni enumerate.
IOleObjectImpl::D oVerbDiscardUndo Indica al controllo di rimuovere qualsiasi stato di annullamento gestito.
IOleObjectImpl::D oVerbHide Indica al controllo di rimuovere l'interfaccia utente dalla visualizzazione.
IOleObjectImpl::D oVerbInPlaceActivate Esegue il controllo e ne installa la finestra, ma non installa l'interfaccia utente del controllo.
IOleObjectImpl::D oVerbOpen Determina la modifica del controllo in una finestra separata.
IOleObjectImpl::D oVerbPrimary Esegue l'azione specificata quando l'utente fa doppio clic sul controllo. Il controllo definisce l'azione, in genere per attivare il controllo sul posto.
IOleObjectImpl::D oVerbShow Mostra un controllo appena inserito all'utente.
IOleObjectImpl::D oVerbUIActivate Attiva il controllo sul posto e mostra l'interfaccia utente del controllo, ad esempio menu e barre degli strumenti.
IOleObjectImpl::EnumAdvise Enumera le connessioni di consulenza del controllo.
IOleObjectImpl::EnumVerbs Enumera le azioni per il controllo.
IOleObjectImpl::GetClientSite Recupera il sito client del controllo.
IOleObjectImpl::GetClipboardData Recupera i dati dagli Appunti. L'implementazione ATL restituisce E_NOTIMPL.
IOleObjectImpl::GetExtent Recupera l'extent dell'area di visualizzazione del controllo.
IOleObjectImpl::GetMiscStatus Recupera lo stato del controllo.
IOleObjectImpl::GetMoniker Recupera il moniker del controllo. L'implementazione ATL restituisce E_NOTIMPL.
IOleObjectImpl::GetUserClassID Recupera l'identificatore di classe del controllo.
IOleObjectImpl::GetUserType Recupera il nome del tipo utente del controllo.
IOleObjectImpl::InitFromData Inizializza il controllo dai dati selezionati. L'implementazione ATL restituisce E_NOTIMPL.
IOleObjectImpl::IsUpToDate Controlla se il controllo è aggiornato. L'implementazione ATL restituisce S_OK.
IOleObjectImpl::OnPostVerbDiscardUndo Chiamato da DoVerbDiscardUndo dopo l'eliminazione dello stato di annullamento.
IOleObjectImpl::OnPostVerbHide Chiamato da DoVerbHide dopo che il controllo è nascosto.
IOleObjectImpl::OnPostVerbInPlaceActivate Chiamato da DoVerbInPlaceActivate dopo l'attivazione del controllo.
IOleObjectImpl::OnPostVerbOpen Chiamato da DoVerbOpen dopo che il controllo è stato aperto per la modifica in una finestra separata.
IOleObjectImpl::OnPostVerbShow Chiamato da DoVerbShow dopo che il controllo è stato reso visibile.
IOleObjectImpl::OnPostVerbUIActivate Chiamato da DoVerbUIActivate dopo l'attivazione dell'interfaccia utente del controllo.
IOleObjectImpl::OnPreVerbDiscardUndo Chiamato da DoVerbDiscardUndo prima che lo stato di annullamento venga rimosso.
IOleObjectImpl::OnPreVerbHide Chiamato da DoVerbHide prima che il controllo sia nascosto.
IOleObjectImpl::OnPreVerbInPlaceActivate Chiamato da DoVerbInPlaceActivate prima che il controllo venga attivato sul posto.
IOleObjectImpl::OnPreVerbOpen Chiamato da DoVerbOpen prima che il controllo sia stato aperto per la modifica in una finestra separata.
IOleObjectImpl::OnPreVerbShow Chiamato da DoVerbShow prima che il controllo sia stato reso visibile.
IOleObjectImpl::OnPreVerbUIActivate Chiamato da DoVerbUIActivate prima dell'attivazione dell'interfaccia utente del controllo.
IOleObjectImpl::SetClientSite Indica al controllo il relativo sito client nel contenitore.
IOleObjectImpl::SetColorScheme Consiglia una combinazione di colori per l'applicazione del controllo, se presente. L'implementazione ATL restituisce E_NOTIMPL.
IOleObjectImpl::SetExtent Imposta l'extent dell'area di visualizzazione del controllo.
IOleObjectImpl::SetHostNames Indica al controllo i nomi dell'applicazione contenitore e del documento contenitore.
IOleObjectImpl::SetMoniker Indica al controllo il relativo moniker. L'implementazione ATL restituisce E_NOTIMPL.
IOleObjectImpl::Unadvise Elimina una connessione consultiva con il controllo .
IOleObjectImpl::Update Aggiornamenti il controllo. L'implementazione ATL restituisce S_OK.

Osservazioni:

L'interfaccia IOleObject è l'interfaccia principale tramite cui un contenitore comunica con un controllo . La classe IOleObjectImpl fornisce un'implementazione predefinita di questa interfaccia e implementa inviando informazioni al dispositivo di dump nelle compilazioni IUnknown di debug.

Esercitazione su ATL per articolicorrelati, creazione di un progetto ATL

Gerarchia di ereditarietà

IOleObject

IOleObjectImpl

Requisiti

Intestazione: atlctl.h

IOleObjectImpl::Advise

Stabilisce una connessione consultiva con il controllo .

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

Osservazioni:

Vedi IOleObject::Advise in Windows SDK.

IOleObjectImpl::Close

Modifica lo stato del controllo dall'esecuzione al caricamento.

STDMETHOD(Close)(DWORD dwSaveOption);

Osservazioni:

Disattiva il controllo e elimina definitivamente la finestra di controllo, se esistente. Se il membro dati della classe di controllo CComControlBase::m_bRequiresSave è TRUE e il parametro dwSaveOption è OLECLO edizione Standard_SAVEIFDIRTY o OLECLO edizione Standard_PROMPTSAVE, le proprietà del controllo vengono salvate prima della chiusura.

I puntatori contenuti nei membri dati della classe di controllo CComControlBase::m_spInPlaceSite e CComControlBase::m_spAdviseSink vengono rilasciati e i membri dei dati CComControlBase::m_bNegotiatedWnd, CComControlBase::m_bWndless e CComControlBase::m_bInPlaceSiteEx sono impostati su FAL edizione Standard.

Vedi IOleObject::Close in Windows SDK.

IOleObjectImpl::D oVerb

Indica al controllo di eseguire una delle azioni enumerate.

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

Osservazioni:

A seconda del valore di iVerb, una delle funzioni helper ATL DoVerb viene chiamata come segue:

Valore iVerb Funzione helper DoVerb denominata
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

Vedere IOleObject::D oVerb in Windows SDK.

IOleObjectImpl::D oVerbDiscardUndo

Indica al controllo di rimuovere qualsiasi stato di annullamento gestito.

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

Parametri

prcPosRec
[in] Puntatore al rettangolo in cui il contenitore desidera che il controllo disegnare.

hwndParent
[in] Handle della finestra contenente il controllo .

Valore restituito

Restituisce S_OK.

IOleObjectImpl::D oVerbHide

Disattiva e rimuove l'interfaccia utente del controllo e nasconde il controllo.

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

Parametri

prcPosRec
[in] Puntatore al rettangolo in cui il contenitore desidera che il controllo disegnare.

hwndParent
[in] Handle della finestra contenente il controllo . Non usato nell'implementazione ATL.

Valore restituito

Restituisce S_OK.

IOleObjectImpl::D oVerbInPlaceActivate

Esegue il controllo e ne installa la finestra, ma non installa l'interfaccia utente del controllo.

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

Parametri

prcPosRec
[in] Puntatore al rettangolo in cui il contenitore desidera che il controllo disegnare.

hwndParent
[in] Handle della finestra contenente il controllo . Non usato nell'implementazione ATL.

Valore restituito

Uno dei valori HRESULT standard.

Osservazioni:

Attiva il controllo sul posto chiamando CComControlBase::InPlaceActivate. A meno che il membro m_bWindowOnly dati della classe di controllo non sia TRUE, DoVerbInPlaceActivate tenta prima di tutto di attivare il controllo come controllo senza finestra (possibile solo se il contenitore supporta IOleInPlaceSiteWindowless). In caso di esito negativo, la funzione tenta di attivare il controllo con funzionalità estese (possibile solo se il contenitore supporta IOleInPlaceSiteEx). In caso di esito negativo, la funzione tenta di attivare il controllo senza funzionalità estese (possibile solo se il contenitore supporta IOleInPlaceSite). Se l'attivazione ha esito positivo, la funzione notifica al contenitore che il controllo è stato attivato.

IOleObjectImpl::D oVerbOpen

Determina la modifica del controllo in una finestra separata.

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

Parametri

prcPosRec
[in] Puntatore al rettangolo in cui il contenitore desidera che il controllo disegnare.

hwndParent
[in] Handle della finestra contenente il controllo .

Valore restituito

Restituisce S_OK.

IOleObjectImpl::D oVerbPrimary

Definisce l'azione eseguita quando l'utente fa doppio clic sul controllo.

HRESULT DoVerbPrimary(LPCRECT prcPosRect, HWND hwndParent);

Parametri

prcPosRec
[in] Puntatore al rettangolo in cui il contenitore desidera che il controllo disegnare.

hwndParent
[in] Handle della finestra contenente il controllo .

Valore restituito

Uno dei valori HRESULT standard.

Osservazioni:

Per impostazione predefinita, impostare per visualizzare le pagine delle proprietà. È possibile eseguirne l'override nella classe di controllo per richiamare un comportamento diverso facendo doppio clic; ad esempio, riprodurre un video o passare sul posto attivo.

IOleObjectImpl::D oVerbShow

Indica al contenitore di rendere visibile il controllo.

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

Parametri

prcPosRec
[in] Puntatore al rettangolo in cui il contenitore desidera che il controllo disegnare.

hwndParent
[in] Handle della finestra contenente il controllo . Non usato nell'implementazione ATL.

Valore restituito

Uno dei valori HRESULT standard.

IOleObjectImpl::D oVerbUIActivate

Attiva l'interfaccia utente del controllo e notifica al contenitore che i relativi menu vengono sostituiti da menu compositi.

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

Parametri

prcPosRec
[in] Puntatore al rettangolo in cui il contenitore desidera che il controllo disegnare.

hwndParent
[in] Handle della finestra contenente il controllo . Non usato nell'implementazione ATL.

Valore restituito

Uno dei valori HRESULT standard.

IOleObjectImpl::EnumAdvise

Fornisce un'enumerazione delle connessioni di consulenza registrate per questo controllo.

STDMETHOD(EnumAdvise)(IEnumSTATDATA** ppenumAdvise);

Osservazioni:

Vedere IOleObject::EnumAdvise in Windows SDK.

IOleObjectImpl::EnumVerbs

Fornisce un'enumerazione di azioni registrate (verbi) per questo controllo chiamando OleRegEnumVerbs.

STDMETHOD(EnumVerbs)(IEnumOLEVERB** ppEnumOleVerb);

Osservazioni:

È possibile aggiungere verbi al file rgs del progetto. Ad esempio, vedere CIRCCTL. RGS nell'esempio CIRC .

Vedere IOleObject::EnumVerbs in Windows SDK.

IOleObjectImpl::GetClientSite

Inserisce il puntatore nel membro dati della classe di controllo CComControlBase::m_spClientSite in ppClientSite e incrementa il conteggio dei riferimenti sul puntatore.

STDMETHOD(GetClientSite)(IOleClientSite** ppClientSite);

Osservazioni:

Vedere IOleObject::GetClientSite in Windows SDK.

IOleObjectImpl::GetClipboardData

Recupera i dati dagli Appunti.

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

Valore restituito

Restituisce E_NOTIMPL.

Osservazioni:

Vedere IOleObject::GetClipboardData in Windows SDK.

IOleObjectImpl::GetExtent

Recupera le dimensioni di visualizzazione di un controllo in esecuzione in unità HIMETRIC (0,01 millimetri per unità).

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

Osservazioni:

Le dimensioni vengono archiviate nel membro dati della classe di controllo CComControlBase::m_sizeExtent.

Vedere IOleObject::GetExtent in Windows SDK.

IOleObjectImpl::GetMiscStatus

Restituisce un puntatore alle informazioni sullo stato registrate per il controllo chiamando OleRegGetMiscStatus.

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

Osservazioni:

Le informazioni sullo stato includono comportamenti supportati dai dati di controllo e presentazione. È possibile aggiungere informazioni sullo stato al file rgs del progetto.

Vedere IOleObject::GetMiscStatus in Windows SDK.

IOleObjectImpl::GetMoniker

Recupera il moniker del controllo.

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

Valore restituito

Restituisce E_NOTIMPL.

Osservazioni:

Vedere IOleObject::GetMoniker in Windows SDK.

IOleObjectImpl::GetUserClassID

Restituisce l'identificatore di classe del controllo.

STDMETHOD(GetUserClassID)(CLSID* pClsid);

Osservazioni:

Vedere IOleObject::GetUserClassID in Windows SDK.

IOleObjectImpl::GetUserType

Restituisce il nome del tipo utente del controllo chiamando OleRegGetUserType.

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

Osservazioni:

Il nome di tipo utente viene usato per la visualizzazione in elementi dell'interfaccia utente, ad esempio menu e finestre di dialogo. È possibile modificare il nome del tipo utente nel file con estensione rgs del progetto.

Vedere IOleObject::GetUserType in Windows SDK.

IOleObjectImpl::InitFromData

Inizializza il controllo dai dati selezionati.

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

Valore restituito

Restituisce E_NOTIMPL.

Osservazioni:

Vedere IOleObject::InitFromData in Windows SDK.

IOleObjectImpl::IsUpToDate

Controlla se il controllo è aggiornato.

STDMETHOD(IsUpToDate)(void);

Valore restituito

Restituisce S_OK.

Osservazioni:

Vedere IOleObject::IsUpToDate in Windows SDK.

IOleObjectImpl::OnPostVerbDiscardUndo

Chiamato da DoVerbDiscardUndo dopo l'eliminazione dello stato di annullamento.

HRESULT OnPostVerbDiscardUndo();

Valore restituito

Restituisce S_OK.

Osservazioni:

Eseguire l'override di questo metodo con il codice che si desidera eseguire dopo l'eliminazione dello stato di annullamento.

IOleObjectImpl::OnPostVerbHide

Chiamato da DoVerbHide dopo che il controllo è nascosto.

HRESULT OnPostVerbHide();

Valore restituito

Restituisce S_OK.

Osservazioni:

Eseguire l'override di questo metodo con il codice che si desidera eseguire dopo che il controllo è nascosto.

IOleObjectImpl::OnPostVerbInPlaceActivate

Chiamato da DoVerbInPlaceActivate dopo l'attivazione del controllo.

HRESULT OnPostVerbInPlaceActivate();

Valore restituito

Restituisce S_OK.

Osservazioni:

Eseguire l'override di questo metodo con il codice che si desidera eseguire dopo l'attivazione del controllo sul posto.

IOleObjectImpl::OnPostVerbOpen

Chiamato da DoVerbOpen dopo che il controllo è stato aperto per la modifica in una finestra separata.

HRESULT OnPostVerbOpen();

Valore restituito

Restituisce S_OK.

Osservazioni:

Eseguire l'override di questo metodo con il codice che si desidera eseguire dopo l'apertura del controllo per la modifica in una finestra separata.

IOleObjectImpl::OnPostVerbShow

Chiamato da DoVerbShow dopo che il controllo è stato reso visibile.

HRESULT OnPostVerbShow();

Valore restituito

Restituisce S_OK.

Osservazioni:

Eseguire l'override di questo metodo con il codice che si desidera eseguire dopo che il controllo è stato reso visibile.

IOleObjectImpl::OnPostVerbUIActivate

Chiamato da DoVerbUIActivate dopo l'attivazione dell'interfaccia utente del controllo.

HRESULT OnPostVerbUIActivate();

Valore restituito

Restituisce S_OK.

Osservazioni:

Eseguire l'override di questo metodo con il codice che si desidera eseguire dopo l'attivazione dell'interfaccia utente del controllo.

IOleObjectImpl::OnPreVerbDiscardUndo

Chiamato da DoVerbDiscardUndo prima che lo stato di annullamento venga rimosso.

HRESULT OnPreVerbDiscardUndo();

Valore restituito

Restituisce S_OK.

Osservazioni:

Per evitare che lo stato di annullamento venga rimosso, eseguire l'override di questo metodo per restituire un errore HRESULT.

IOleObjectImpl::OnPreVerbHide

Chiamato da DoVerbHide prima che il controllo sia nascosto.

HRESULT OnPreVerbHide();

Valore restituito

Restituisce S_OK.

Osservazioni:

Per impedire che il controllo venga nascosto, eseguire l'override di questo metodo per restituire un errore HRESULT.

IOleObjectImpl::OnPreVerbInPlaceActivate

Chiamato da DoVerbInPlaceActivate prima che il controllo venga attivato sul posto.

HRESULT OnPreVerbInPlaceActivate();

Valore restituito

Restituisce S_OK.

Osservazioni:

Per impedire che il controllo venga attivato sul posto, eseguire l'override di questo metodo per restituire un errore HRESULT.

IOleObjectImpl::OnPreVerbOpen

Chiamato da DoVerbOpen prima che il controllo sia stato aperto per la modifica in una finestra separata.

HRESULT OnPreVerbOpen();

Valore restituito

Restituisce S_OK.

Osservazioni:

Per impedire l'apertura del controllo per la modifica in una finestra separata, eseguire l'override di questo metodo per restituire un errore HRESULT.

IOleObjectImpl::OnPreVerbShow

Chiamato da DoVerbShow prima che il controllo sia stato reso visibile.

HRESULT OnPreVerbShow();

Valore restituito

Restituisce S_OK.

Osservazioni:

Per impedire che il controllo venga reso visibile, eseguire l'override di questo metodo per restituire un errore HRESULT.

IOleObjectImpl::OnPreVerbUIActivate

Chiamato da DoVerbUIActivate prima dell'attivazione dell'interfaccia utente del controllo.

HRESULT OnPreVerbUIActivate();

Valore restituito

Restituisce S_OK.

Osservazioni:

Per impedire l'attivazione dell'interfaccia utente del controllo, eseguire l'override di questo metodo per restituire un errore HRESULT.

IOleObjectImpl::SetClientSite

Indica al controllo il relativo sito client nel contenitore.

STDMETHOD(SetClientSite)(IOleClientSite* pClientSite);

Osservazioni:

Il metodo restituisce quindi S_OK.

Vedere IOleObject::SetClientSite in Windows SDK.

IOleObjectImpl::SetColorScheme

Consiglia una combinazione di colori per l'applicazione del controllo, se presente.

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

Valore restituito

Restituisce E_NOTIMPL.

Osservazioni:

Vedere IOleObject::SetColorScheme in Windows SDK.

IOleObjectImpl::SetExtent

Imposta l'extent dell'area di visualizzazione del controllo.

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

Osservazioni:

In caso contrario, SetExtent archivia il valore a cui psizel punta nel membro dati della classe del controllo CComControlBase::m_sizeExtent. Questo valore è espresso in unità HIMETRIC (0,01 millimetri per unità).

Se il membro dati della classe di controllo CComControlBase::m_bResizeNatural è TRUE, SetExtent archivia anche il valore a psizel cui punta nel membro dati della classe di controllo CComControlBase::m_sizeNatural.

Se il membro dati della classe di controllo CComControlBase::m_bRecomposeOnResize è TRUE, SetExtent chiama SendOnDataChange e SendOnViewChange notifica a tutti i sink consultivi registrati con il titolare del consiglio che la dimensione del controllo è cambiata.

Vedere IOleObject::SetExtent in Windows SDK.

IOleObjectImpl::SetHostNames

Indica al controllo i nomi dell'applicazione contenitore e del documento contenitore.

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

Valore restituito

Restituisce S_OK.

Osservazioni:

Vedere IOleObject::SetHostNames in Windows SDK.

IOleObjectImpl::SetMoniker

Indica al controllo il relativo moniker.

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

Valore restituito

Restituisce E_NOTIMPL.

Osservazioni:

Vedere IOleObject::SetMoniker in Windows SDK.

IOleObjectImpl::Unadvise

Elimina la connessione consultiva archiviata nel membro dati della classe del m_spOleAdviseHolder controllo.

STDMETHOD(Unadvise)(DWORD dwConnection);

Osservazioni:

Vedere IOleObject::Unadvise in Windows SDK.

IOleObjectImpl::Update

Aggiornamenti il controllo.

STDMETHOD(Update)(void);

Valore restituito

Restituisce S_OK.

Osservazioni:

Vedere IOleObject::Update in Windows SDK.

Vedi anche

Classe CComControl
Interfacce dei controlli ActiveX
Cenni preliminari sulla classe