Classe COleDocument
Classe di base per i documenti OLE che supportano la modifica visiva.
Sintassi
class COleDocument : public CDocument
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
COleDocument::COleDocument | Costruisce un oggetto COleDocument . |
Metodi pubblici
Nome | Descrizione |
---|---|
COleDocument::AddItem | Aggiunge un elemento all'elenco di elementi gestiti dal documento. |
COleDocument::ApplyPrintDevice | Imposta il dispositivo di destinazione di stampa per tutti gli elementi client nel documento. |
COleDocument::EnableCompoundFile | Fa sì che i documenti vengano archiviati usando il formato di file di archiviazione strutturata OLE. |
COleDocument::GetInPlaceActiveItem | Restituisce l'elemento OLE attualmente attivo sul posto. |
COleDocument::GetNextClientItem | Ottiene l'elemento client successivo per l'iterazione. |
COleDocument::GetNextItem | Ottiene l'elemento del documento successivo per l'iterazione. |
COleDocument::GetNextServerItem | Ottiene l'elemento del server successivo per l'iterazione. |
COleDocument::GetPrimarySelectedItem | Restituisce l'elemento OLE selezionato principale nel documento. |
COleDocument::GetStartPosition | Ottiene la posizione iniziale per iniziare l'iterazione. |
COleDocument::HasBlankItems | Verifica la presenza di elementi vuoti nel documento. |
COleDocument::OnShowViews | Chiamato quando il documento diventa visibile o invisibile. |
COleDocument::RemoveItem | Rimuove un elemento dall'elenco di elementi gestiti dal documento. |
COleDocument::UpdateModifiedFlag | Contrassegna il documento come modificato se uno degli elementi OLE contenuti è stato modificato. |
Metodi protetti
Nome | Descrizione |
---|---|
COleDocument::OnEditChangeIcon | Gestisce gli eventi nel comando di menu Cambia icona. |
COleDocument::OnEditConvert | Gestisce la conversione di un oggetto incorporato o collegato da un tipo a un altro. |
COleDocument::OnEditLinks | Gestisce gli eventi nel comando Collegamenti del menu Modifica. |
COleDocument::OnFileSendMail | Invia un messaggio di posta elettronica con il documento allegato. |
COleDocument::OnUpdateEditChangeIcon | Chiamato dal framework per aggiornare l'interfaccia utente del comando per l'opzione di menu Modifica/Modifica icona. |
COleDocument::OnUpdateEditLinksMenu | Chiamato dal framework per aggiornare l'interfaccia utente del comando per l'opzione di menu Modifica/Collegamenti. |
COleDocument::OnUpdateObjectVerbMenu | Chiamato dal framework per aggiornare l'interfaccia utente del comando per l'opzione di menu Modifica/ NomeOggetto e il sottomenu Verbo a cui si accede da Modifica/ NomeOggetto. |
COleDocument::OnUpdatePasteLinkMenu | Chiamato dal framework per aggiornare l'interfaccia utente del comando per l'opzione di menu Incolla speciale. |
COleDocument::OnUpdatePasteMenu | Chiamato dal framework per aggiornare l'interfaccia utente del comando per l'opzione di menu Incolla. |
Osservazioni:
COleDocument
deriva da CDocument
, che consente alle applicazioni OLE di usare l'architettura di documento/visualizzazione fornita dalla libreria di classi Microsoft Foundation.
COleDocument
considera un documento come una raccolta di oggetti CDocItem per gestire gli elementi OLE. Sia le applicazioni contenitore che quelle server richiedono un'architettura di questo tipo perché i documenti devono essere in grado di contenere elementi OLE. Le classi COleServerItem e COleClientItem , entrambe derivate da CDocItem
, gestiscono le interazioni tra applicazioni e elementi OLE.
Se si scrive una semplice applicazione contenitore, derivare la classe del documento da COleDocument
. Se si scrive un'applicazione contenitore che supporta il collegamento agli elementi incorporati contenuti nei relativi documenti, derivare la classe documento da COleLinkingDoc. Se si scrive un'applicazione server o un contenitore/server combinato, derivare la classe documento da COleServerDoc. COleLinkingDoc
e COleServerDoc
sono derivati da COleDocument
, quindi queste classi ereditano tutti i servizi disponibili in COleDocument
e CDocument
.
Per usare COleDocument
, derivare una classe da essa e aggiungere funzionalità per gestire i dati non OLE dell'applicazione, nonché gli elementi incorporati o collegati. Se si definiscono CDocItem
classi derivate da per archiviare i dati nativi dell'applicazione, è possibile usare l'implementazione predefinita definita da COleDocument
per archiviare i dati OLE e non OLE. È anche possibile progettare strutture di dati personalizzate per archiviare i dati non OLE separatamente dagli elementi OLE. Per altre informazioni, vedere l'articolo Contenitori: File composti.
CDocument
supporta l'invio del documento tramite posta elettronica se è presente il supporto della posta elettronica (MAPI). COleDocument
ha aggiornato OnFileSendMail per gestire correttamente i documenti composti. Per altre informazioni, vedere gli articoli MAPI e MAPI Support in MFC..
Gerarchia di ereditarietà
COleDocument
Requisiti
Intestazione: afxole.h
COleDocument::AddItem
Chiamare questa funzione per aggiungere un elemento al documento.
virtual void AddItem(CDocItem* pItem);
Parametri
pItem
Puntatore all'elemento del documento da aggiungere.
Osservazioni:
Non è necessario chiamare questa funzione in modo esplicito quando viene chiamata dal COleClientItem
costruttore o COleServerItem
che accetta un puntatore a un documento.
COleDocument::ApplyPrintDevice
Chiamare questa funzione per modificare il dispositivo di destinazione di stampa per tutti gli elementi COleClientItem incorporati nel documento contenitore dell'applicazione.
BOOL ApplyPrintDevice(const DVTARGETDEVICE* ptd);
BOOL ApplyPrintDevice(const PRINTDLG* ppd);
Parametri
Ptd
Puntatore a una DVTARGETDEVICE
struttura di dati, che contiene informazioni sul nuovo dispositivo di destinazione di stampa. Può essere NULL.
Ppd
Puntatore a una PRINTDLG
struttura di dati, che contiene informazioni sul nuovo dispositivo di destinazione di stampa. Può essere NULL.
Valore restituito
Diverso da zero se la funzione ha avuto esito positivo; in caso contrario, 0.
Osservazioni:
Questa funzione aggiorna il dispositivo di destinazione di stampa per tutti gli elementi, ma non aggiorna la cache di presentazione per tali elementi. Per aggiornare la cache di presentazione per un elemento, chiamare COleClientItem::UpdateLink.
Gli argomenti di questa funzione contengono informazioni usate da OLE per identificare il dispositivo di destinazione. La struttura PRINTDLG contiene informazioni utilizzate da Windows per inizializzare la finestra di dialogo stampa comune. Dopo che l'utente chiude la finestra di dialogo, Windows restituisce informazioni sulle selezioni dell'utente in questa struttura. Il m_pd
membro di un oggetto CPrintDialog è una PRINTDLG
struttura.
Per altre informazioni, vedere la struttura PRINTDLG in Windows SDK.
Per altre informazioni, vedere la struttura DVTARGETDEVICE in Windows SDK.
COleDocument::COleDocument
Costruisce un oggetto COleDocument
.
COleDocument();
COleDocument::EnableCompoundFile
Chiamare questa funzione se si desidera archiviare il documento usando il formato di file composto.
void EnableCompoundFile(BOOL bEnable = TRUE);
Parametri
bEnable
Specifica se il supporto di file composti è abilitato o disabilitato.
Osservazioni:
Questa operazione è detta anche archiviazione strutturata. Questa funzione viene in genere chiamata dal costruttore della COleDocument
classe derivata da . Per altre informazioni sui documenti composti, vedere l'articolo Contenitori: File composti.
Se non si chiama questa funzione membro, i documenti verranno archiviati in un formato di file non strutturato ("flat").
Dopo aver abilitato o disabilitato il supporto dei file composti per un documento, l'impostazione non deve essere modificata durante la durata del documento.
COleDocument::GetInPlaceActiveItem
Chiamare questa funzione per ottenere l'elemento OLE attualmente attivato nella finestra cornice contenente la visualizzazione identificata da pWnd.
virtual COleClientItem* GetInPlaceActiveItem(CWnd* pWnd);
Parametri
pWnd
Puntatore alla finestra che visualizza il documento contenitore.
Valore restituito
Puntatore al singolo elemento OLE attivo sul posto; NULL se non è attualmente presente alcun elemento OLE nello stato "attivo sul posto".
COleDocument::GetNextClientItem
Chiamare ripetutamente questa funzione per accedere a ognuno degli elementi client nel documento.
COleClientItem* GetNextClientItem(POSITION& pos) const;
Parametri
pos
Riferimento a un valore POSITION impostato da una chiamata precedente a GetNextClientItem
. Il valore iniziale viene restituito dalla GetStartPosition
funzione membro.
Valore restituito
Puntatore all'elemento client successivo nel documento o NULL se non sono presenti altri elementi client.
Osservazioni:
Dopo ogni chiamata, il valore di pos viene impostato per l'elemento successivo nel documento, che potrebbe essere o meno un elemento client.
Esempio
// pDoc points to a COleDocument object
POSITION pos = pDoc->GetStartPosition();
COleClientItem* pItem;
CString strType;
while ((pItem = pDoc->GetNextClientItem(pos)) != NULL)
{
// Use pItem
pItem->GetUserType(USERCLASSTYPE_FULL, strType);
TRACE(strType);
}
COleDocument::GetNextItem
Chiamare ripetutamente questa funzione per accedere a ognuno degli elementi del documento.
virtual CDocItem* GetNextItem(POSITION& pos) const;
Parametri
pos
Riferimento a un valore POSITION impostato da una chiamata precedente a GetNextItem
. Il valore iniziale viene restituito dalla GetStartPosition
funzione membro.
Valore restituito
Puntatore all'elemento del documento nella posizione specificata.
Osservazioni:
Dopo ogni chiamata, il valore di pos viene impostato sul valore POSITION dell'elemento successivo nel documento. Se l'elemento recuperato è l'ultimo elemento del documento, il nuovo valore di pos è NULL.
Esempio
// pDoc points to a COleDocument object
POSITION pos = pDoc->GetStartPosition();
CDocItem* pItem;
CString strType;
while (pos != NULL)
{
pItem = pDoc->GetNextItem(pos);
// Use pItem
if (pItem->IsKindOf(RUNTIME_CLASS(COleClientItem)))
{
((COleClientItem*)pItem)->GetUserType(USERCLASSTYPE_FULL, strType);
TRACE(strType);
}
}
COleDocument::GetNextServerItem
Chiamare ripetutamente questa funzione per accedere a ognuno degli elementi del server nel documento.
COleServerItem* GetNextServerItem(POSITION& pos) const;
Parametri
pos
Riferimento a un valore POSITION impostato da una chiamata precedente a GetNextServerItem
. Il valore iniziale viene restituito dalla GetStartPosition
funzione membro.
Valore restituito
Puntatore all'elemento server successivo nel documento o NULL se non sono presenti altri elementi del server.
Osservazioni:
Dopo ogni chiamata, il valore di pos viene impostato per l'elemento successivo nel documento, che potrebbe essere o meno un elemento del server.
Esempio
// pDoc points to a COleDocument object
POSITION pos = pDoc->GetStartPosition();
COleServerItem* pItem;
while ((pItem = pDoc->GetNextServerItem(pos)) != NULL)
{
// Use pItem
}
COleDocument::GetPrimarySelectedItem
Chiamato dal framework per recuperare l'elemento OLE attualmente selezionato nella visualizzazione specificata.
virtual COleClientItem* GetPrimarySelectedItem(CView* pView);
Parametri
pView
Puntatore all'oggetto visualizzazione attivo che visualizza il documento.
Valore restituito
Puntatore al singolo elemento OLE selezionato; NULL se non sono selezionati elementi OLE o se sono selezionati più elementi.
Osservazioni:
L'implementazione predefinita cerca un singolo elemento selezionato nell'elenco di elementi OLE contenuti e ne restituisce un puntatore. Se non è selezionato alcun elemento o se è selezionato più di un elemento, la funzione restituisce NULL. Per il funzionamento di questa funzione, è necessario eseguire l'override della CView::IsSelected
funzione membro nella classe di visualizzazione. Eseguire l'override di questa funzione se si dispone di un metodo personalizzato per l'archiviazione di elementi OLE contenuti.
COleDocument::GetStartPosition
Chiamare questa funzione per ottenere la posizione del primo elemento nel documento.
virtual POSITION GetStartPosition() const;
Valore restituito
Valore POSITION che può essere utilizzato per iniziare a scorrere gli elementi del documento; NULL se il documento non contiene elementi.
Osservazioni:
Passare il valore restituito a GetNextItem
, GetNextClientItem
o GetNextServerItem
.
COleDocument::HasBlankItems
Chiamare questa funzione per determinare se il documento contiene elementi vuoti.
BOOL HasBlankItems() const;
Valore restituito
Diverso da zero se il documento contiene elementi vuoti; in caso contrario, 0.
Osservazioni:
Un elemento vuoto è uno il cui rettangolo è vuoto.
COleDocument::OnEditChangeIcon
Visualizza la finestra di dialogo Icona di modifica OLE e modifica l'icona che rappresenta l'elemento OLE attualmente selezionato nell'icona selezionata dall'utente nella finestra di dialogo.
afx_msg void OnEditChangeIcon();
Osservazioni:
OnEditChangeIcon
crea e avvia una COleChangeIconDialog
finestra di dialogo Cambia icona.
COleDocument::OnEditConvert
Visualizza la finestra di dialogo Conversione OLE e converte o attiva l'elemento OLE attualmente selezionato in base alle selezioni dell'utente nella finestra di dialogo.
afx_msg void OnEditConvert();
Osservazioni:
OnEditConvert
crea e avvia una COleConvertDialog
finestra di dialogo Converti.
Un esempio di conversione consiste nel convertire un documento di Microsoft Word in un documento wordpad.
COleDocument::OnEditLinks
Visualizza la finestra di dialogo Modifica/Collegamenti OLE.
afx_msg void OnEditLinks();
Osservazioni:
OnEditLinks
crea e avvia una COleLinksDialog
finestra di dialogo Collegamenti che consente all'utente di modificare gli oggetti collegati.
COleDocument::OnFileSendMail
Invia un messaggio tramite l'host di posta residente (se presente) con il documento come allegato.
afx_msg void OnFileSendMail();
Osservazioni:
OnFileSendMail
chiama OnSaveDocument
per serializzare (salvare) documenti senza titolo e modificati in un file temporaneo, che viene quindi inviato tramite posta elettronica. Se il documento non è stato modificato, non è necessario un file temporaneo; l'originale viene inviato. OnFileSendMail
carica MAPI32.DLL se non è già stato caricato.
A differenza dell'implementazione di OnFileSendMail
per CDocument
, questa funzione gestisce correttamente i file composti.
Per altre informazioni, vedere gli argomenti MAPI e il supporto MAPI negli articoli MFC.
COleDocument::OnShowViews
Il framework chiama questa funzione dopo la modifica dello stato di visibilità del documento.
virtual void OnShowViews(BOOL bVisible);
Parametri
bVisible
Indica se il documento è diventato visibile o invisibile.
Osservazioni:
La versione predefinita di questa funzione non esegue alcuna operazione. Eseguirne l'override se l'applicazione deve eseguire un'elaborazione speciale quando cambia la visibilità del documento.
COleDocument::OnUpdateEditChangeIcon
Chiamato dal framework per aggiornare il comando Cambia icona nel menu Modifica.
afx_msg void OnUpdateEditChangeIcon(CCmdUI* pCmdUI);
Parametri
pCmdUI
Puntatore a una CCmdUI
struttura che rappresenta il menu che ha generato il comando di aggiornamento. Il gestore di aggiornamento chiama la Enable
funzione membro della CCmdUI
struttura tramite pCmdUI per aggiornare l'interfaccia utente.
Osservazioni:
OnUpdateEditChangeIcon
aggiorna l'interfaccia utente del comando a seconda che nel documento esista o meno un'icona valida. Eseguire l'override di questa funzione per modificare il comportamento.
COleDocument::OnUpdateEditLinksMenu
Chiamato dal framework per aggiornare il comando Collegamenti nel menu Modifica.
afx_msg void OnUpdateEditLinksMenu(CCmdUI* pCmdUI);
Parametri
pCmdUI
Puntatore a una CCmdUI
struttura che rappresenta il menu che ha generato il comando di aggiornamento. Il gestore di aggiornamento chiama la Enable
funzione membro della CCmdUI
struttura tramite pCmdUI per aggiornare l'interfaccia utente.
Osservazioni:
A partire dal primo elemento OLE nel documento, OnUpdateEditLinksMenu
accede a ogni elemento, verifica se l'elemento è un collegamento e, se si tratta di un collegamento, abilita il comando Collegamenti. Eseguire l'override di questa funzione per modificare il comportamento.
COleDocument::OnUpdateObjectVerbMenu
Chiamato dal framework per aggiornare il comando ObjectName nel menu Modifica e il sottomenu Verbo a cui si accede dal comando ObjectName, dove ObjectName è il nome dell'oggetto OLE incorporato nel documento.
afx_msg void OnUpdateObjectVerbMenu(CCmdUI* pCmdUI);
Parametri
pCmdUI
Puntatore a una CCmdUI
struttura che rappresenta il menu che ha generato il comando di aggiornamento. Il gestore di aggiornamento chiama la Enable
funzione membro della CCmdUI
struttura tramite pCmdUI per aggiornare l'interfaccia utente.
Osservazioni:
OnUpdateObjectVerbMenu
aggiorna l'interfaccia utente del comando ObjectName a seconda che nel documento esista o meno un oggetto valido. Se esiste un oggetto, il comando ObjectName del menu Modifica è abilitato. Quando questo comando di menu è selezionato, viene visualizzato il sottomenu Verbo. Il sottomenu Verb contiene tutti i comandi verbi disponibili per l'oggetto, ad esempio Modifica, Proprietà e così via. Eseguire l'override di questa funzione per modificare il comportamento.
COleDocument::OnUpdatePasteLinkMenu
Chiamato dal framework per determinare se un elemento OLE collegato può essere incollato dagli Appunti.
afx_msg void OnUpdatePasteLinkMenu(CCmdUI* pCmdUI);
Parametri
pCmdUI
Puntatore a una CCmdUI
struttura che rappresenta il menu che ha generato il comando di aggiornamento. Il gestore di aggiornamento chiama la Enable
funzione membro della CCmdUI
struttura tramite pCmdUI per aggiornare l'interfaccia utente.
Osservazioni:
Il comando di menu Incolla speciale è abilitato o disabilitato a seconda che l'elemento possa essere incollato nel documento o meno.
COleDocument::OnUpdatePasteMenu
Chiamato dal framework per determinare se un elemento OLE incorporato può essere incollato dagli Appunti.
afx_msg void OnUpdatePasteMenu(CCmdUI* pCmdUI);
Parametri
pCmdUI
Puntatore a una CCmdUI
struttura che rappresenta il menu che ha generato il comando di aggiornamento. Il gestore di aggiornamento chiama la Enable
funzione membro della CCmdUI
struttura tramite pCmdUI per aggiornare l'interfaccia utente.
Osservazioni:
Il comando di menu Incolla e il pulsante sono abilitati o disabilitati a seconda che l'elemento possa essere incollato nel documento o meno.
COleDocument::RemoveItem
Chiamare questa funzione per rimuovere un elemento dal documento.
virtual void RemoveItem(CDocItem* pItem);
Parametri
pItem
Puntatore all'elemento del documento da rimuovere.
Osservazioni:
In genere non è necessario chiamare questa funzione in modo esplicito; viene chiamato dai distruttori per COleClientItem
e COleServerItem
.
COleDocument::UpdateModifiedFlag
Chiamare questa funzione per contrassegnare il documento come modificato se uno degli elementi OLE contenuti è stato modificato.
virtual void UpdateModifiedFlag();
Osservazioni:
Ciò consente al framework di richiedere all'utente di salvare il documento prima della chiusura, anche se i dati nativi nel documento non sono stati modificati.
Vedi anche
Contenitore di esempio MFC
MFC Sample MFCBIND
Classe CDocument
Grafico della gerarchia