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 CDocItemclassi 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à

CObject

CCmdTarget

CDocument

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 COleDocumentclasse 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, GetNextClientItemo 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.

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