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 | Aggiorna 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 articoli correlati, 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 è OLECLOSE_SAVEIFDIRTY o OLECLOSE_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 FALSE.
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
Aggiorna 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