Dela via


COleDocument-klass

Basklassen för OLE-dokument som stöder visuell redigering.

Syntax

class COleDocument : public CDocument

Medlemmar

Offentliga konstruktorer

Namn Beskrivning
COleDocument::COleDocument Konstruerar ett COleDocument objekt.

Offentliga metoder

Namn Beskrivning
COleDocument::AddItem Lägger till ett objekt i listan över objekt som underhålls av dokumentet.
COleDocument::ApplyPrintDevice Anger utskriftsmålenheten för alla klientobjekt i dokumentet.
COleDocument::EnableCompoundFile Gör att dokument lagras med filformatet OLE Structured Storage.
COleDocument::GetInPlaceActiveItem Returnerar det OLE-objekt som för närvarande är aktivt på plats.
COleDocument::GetNextClientItem Hämtar nästa klientobjekt för iterering.
COleDocument::GetNextItem Hämtar nästa dokumentobjekt för iterering.
COleDocument::GetNextServerItem Hämtar nästa serverobjekt för iterering.
COleDocument::GetPrimarySelectedItem Returnerar det primära markerade OLE-objektet i dokumentet.
COleDocument::GetStartPosition Hämtar den inledande positionen för att påbörja iterationen.
COleDocument::HasBlankItems Söker efter tomma objekt i dokumentet.
COleDocument::OnShowViews Anropas när dokumentet blir synligt eller osynligt.
COleDocument::RemoveItem Tar bort ett objekt från listan över objekt som underhålls av dokumentet.
COleDocument::UpdateModifiedFlag Markerar dokumentet som ändrat om något av de inneslutna OLE-objekten har ändrats.

Skyddade metoder

Namn Beskrivning
COleDocument::OnEditChangeIcon Hanterar händelser i menykommandot Ändra ikon.
COleDocument::OnEditConvert Hanterar konverteringen av ett inbäddat eller länkat objekt från en typ till en annan.
COleDocument::OnEditLinks Hanterar händelser i kommandot Länkar på redigera-menyn.
COleDocument::OnFileSendMail Skickar ett e-postmeddelande med dokumentet bifogat.
COleDocument::OnUpdateEditChangeIcon Anropas av ramverket för att uppdatera kommandogränssnittet för menyalternativet Redigera/ändra ikon.
COleDocument::OnUpdateEditLinksMenu Anropas av ramverket för att uppdatera kommandogränssnittet för menyalternativet Redigera/länkar.
COleDocument::OnUpdateObjectVerbMenu Anropas av ramverket för att uppdatera kommandogränssnittet för menyalternativet Redigera/ObjectName och verbundermenyn som används från Redigera/ObjectName.
COleDocument::OnUpdatePasteLinkMenu Anropas av ramverket för att uppdatera kommandogränssnittet för menyalternativet Klistra in special.
COleDocument::OnUpdatePasteMenu Anropas av ramverket för att uppdatera kommandogränssnittet för menyalternativet Klistra in.

Anmärkningar

COleDocument härleds från CDocument, vilket gör att dina OLE-program kan använda dokument-/vyarkitekturen som tillhandahålls av Microsoft Foundation-klassbiblioteket.

COleDocument behandlar ett dokument som en samling CDocItem objekt för att hantera OLE-objekt. Både container- och serverprogram kräver en sådan arkitektur eftersom deras dokument måste kunna innehålla OLE-objekt. Klasserna COleServerItem och COleClientItem, som båda härleds från CDocItem, hanterar interaktionerna mellan program och OLE-objekt.

Om du skriver ett enkelt containerprogram härleder du dokumentklassen från COleDocument. Om du skriver ett containerprogram som stöder länkning till de inbäddade objekten i dess dokument härleder du dokumentklassen från COleLinkingDoc. Om du skriver ett serverprogram eller en kombinationscontainer/server härleder du dokumentklassen från COleServerDoc. COleLinkingDoc och COleServerDoc härleds från COleDocument, så dessa klasser ärver alla tjänster som är tillgängliga i COleDocument och CDocument.

Om du vill använda COleDocumenthärleder du en klass från den och lägger till funktioner för att hantera programmets icke-OLE-data samt inbäddade eller länkade objekt. Om du definierar CDocItem-härledda klasser för att lagra programmets interna data kan du använda standardimplementeringen som definieras av COleDocument för att lagra både dina OLE- och icke-OLE-data. Du kan också utforma egna datastrukturer för lagring av icke-OLE-data separat från OLE-objekten. Mer information finns i artikeln Containers: Compound Files.

CDocument har stöd för att skicka dokumentet via e-post om det finns stöd för e-post (MAPI). COleDocument har uppdaterat OnFileSendMail för att hantera sammansatta dokument korrekt. Mer information finns i artiklarna MAPI och MAPI Support i MFC.

Arvshierarki

CObject

CCmdTarget

CDocument

COleDocument

Krav

rubrik: afxole.h

COleDocument::AddItem

Anropa den här funktionen för att lägga till ett objekt i dokumentet.

virtual void AddItem(CDocItem* pItem);

Parametrar

pItem
Pekare till dokumentobjektet som läggs till.

Anmärkningar

Du behöver inte anropa den här funktionen explicit när den anropas av COleClientItem eller COleServerItem konstruktorn som accepterar en pekare till ett dokument.

COleDocument::ApplyPrintDevice

Anropa den här funktionen för att ändra utskriftsmålenheten för alla inbäddade COleClientItem objekt i programmets containerdokument.

BOOL ApplyPrintDevice(const DVTARGETDEVICE* ptd);
BOOL ApplyPrintDevice(const PRINTDLG* ppd);

Parametrar

ptd
Pekare till en DVTARGETDEVICE datastruktur som innehåller information om den nya utskriftsmålenheten. Kan vara NULL.

ppd
Pekare till en PRINTDLG datastruktur som innehåller information om den nya utskriftsmålenheten. Kan vara NULL.

Returvärde

Nonzero om funktionen lyckades; annars 0.

Anmärkningar

Den här funktionen uppdaterar utskriftsmålenheten för alla objekt men uppdaterar inte presentationscacheminnet för dessa objekt. Om du vill uppdatera presentationscacheminnet för ett objekt anropar du COleClientItem::UpdateLink.

Argumenten för den här funktionen innehåller information som OLE använder för att identifiera målenheten. Strukturen PRINTDLG innehåller information som Windows använder för att initiera den gemensamma dialogrutan Utskrift. När användaren har stängt dialogrutan returnerar Windows information om användarens val i den här strukturen. Den m_pd medlemmen i ett CPrintDialog-objekt är en PRINTDLG struktur.

Mer information finns i PRINTDLG- struktur i Windows SDK.

Mer information finns i DVTARGETDEVICE struktur i Windows SDK.

COleDocument::COleDocument

Konstruerar ett COleDocument objekt.

COleDocument();

COleDocument::EnableCompoundFile

Anropa den här funktionen om du vill lagra dokumentet med hjälp av formatet compound-file.

void EnableCompoundFile(BOOL bEnable = TRUE);

Parametrar

bEnable
Anger om sammansatt filstöd är aktiverat eller inaktiverat.

Anmärkningar

Detta kallas även strukturerad lagring. Du anropar vanligtvis den här funktionen från konstruktorn för klassen COleDocument-derived. Mer information om sammansatta dokument finns i artikeln Containers: Compound Files.

Om du inte anropar den här medlemsfunktionen lagras dokument i ett icke-strukturerat filformat ("flat").

När sammansatt filstöd har aktiverats eller inaktiverats för ett dokument bör inställningen inte ändras under dokumentets livslängd.

COleDocument::GetInPlaceActiveItem

Anropa den här funktionen för att hämta OLE-objektet som för närvarande är aktiverat i ramfönstret som innehåller vyn som identifieras av pWnd.

virtual COleClientItem* GetInPlaceActiveItem(CWnd* pWnd);

Parametrar

pWnd
Pekare mot fönstret som visar containerdokumentet.

Returvärde

En pekare till det enda aktiva OLE-objektet på plats. NULL om det för närvarande inte finns något OLE-objekt i tillståndet "aktiv på plats".

COleDocument::GetNextClientItem

Anropa den här funktionen upprepade gånger för att få åtkomst till vart och ett av klientobjekten i dokumentet.

COleClientItem* GetNextClientItem(POSITION& pos) const;

Parametrar

pos
En referens till ett POSITION-värde som angetts av ett tidigare anrop till GetNextClientItem; det ursprungliga värdet returneras av funktionen GetStartPosition medlem.

Returvärde

En pekare till nästa klientobjekt i dokumentet eller NULL om det inte finns fler klientobjekt.

Anmärkningar

Efter varje anrop anges värdet för pos för nästa objekt i dokumentet, som kanske eller kanske inte är ett klientobjekt.

Exempel

// 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

Anropa den här funktionen upprepade gånger för att få åtkomst till vart och ett av objekten i dokumentet.

virtual CDocItem* GetNextItem(POSITION& pos) const;

Parametrar

pos
En referens till ett POSITION-värde som angetts av ett tidigare anrop till GetNextItem; det ursprungliga värdet returneras av funktionen GetStartPosition medlem.

Returvärde

En pekare till dokumentobjektet på den angivna positionen.

Anmärkningar

Efter varje anrop anges värdet för pos till POSITION-värdet för nästa objekt i dokumentet. Om det hämtade elementet är det sista elementet i dokumentet är det nya värdet för pos NULL.

Exempel

// 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

Anropa den här funktionen upprepade gånger för att komma åt vart och ett av serverobjekten i dokumentet.

COleServerItem* GetNextServerItem(POSITION& pos) const;

Parametrar

pos
En referens till ett POSITION-värde som angetts av ett tidigare anrop till GetNextServerItem; det ursprungliga värdet returneras av funktionen GetStartPosition medlem.

Returvärde

En pekare till nästa serverobjekt i dokumentet eller NULL om det inte finns fler serverobjekt.

Anmärkningar

Efter varje anrop anges värdet för pos för nästa objekt i dokumentet, som kanske eller kanske inte är ett serverobjekt.

Exempel

// pDoc points to a COleDocument object
POSITION pos = pDoc->GetStartPosition();
COleServerItem* pItem;
while ((pItem = pDoc->GetNextServerItem(pos)) != NULL)
{
   // Use pItem
}

COleDocument::GetPrimarySelectedItem

Anropas av ramverket för att hämta det markerade OLE-objektet i den angivna vyn.

virtual COleClientItem* GetPrimarySelectedItem(CView* pView);

Parametrar

pView
Pekare till det aktiva visningsobjekt som visar dokumentet.

Returvärde

En pekare till det enkla, valda OLE-objektet; NULL om inga OLE-objekt har valts eller om fler än ett har valts.

Anmärkningar

Standardimplementeringen söker i listan över inneslutna OLE-objekt efter ett enskilt markerat objekt och returnerar en pekare till det. Om det inte finns något markerat objekt, eller om det finns fler än ett objekt markerat, returnerar funktionen NULL. Du måste åsidosätta funktionen CView::IsSelected medlem i visningsklassen för att funktionen ska fungera. Åsidosätt den här funktionen om du har en egen metod för att lagra inneslutna OLE-objekt.

COleDocument::GetStartPosition

Anropa den här funktionen för att hämta positionen för det första objektet i dokumentet.

virtual POSITION GetStartPosition() const;

Returvärde

Ett POSITION-värde som kan användas för att börja iterera genom dokumentets objekt. NULL om dokumentet inte har några objekt.

Anmärkningar

Skicka värdet som returneras till GetNextItem, GetNextClientItemeller GetNextServerItem.

COleDocument::HasBlankItems

Anropa den här funktionen för att avgöra om dokumentet innehåller några tomma objekt.

BOOL HasBlankItems() const;

Returvärde

Nonzero om dokumentet innehåller några tomma objekt; annars 0.

Anmärkningar

Ett tomt objekt är ett objekt vars rektangel är tom.

COleDocument::OnEditChangeIcon

Visar dialogrutan OLE-ändringsikon och ändrar ikonen som representerar det markerade OLE-objektet till den ikon som användaren väljer i dialogrutan.

afx_msg void OnEditChangeIcon();

Anmärkningar

OnEditChangeIcon skapar och startar en dialogruta COleChangeIconDialog Ändra ikon.

COleDocument::OnEditConvert

Visar dialogrutan OLE-konvertera och konverterar eller aktiverar det markerade OLE-objektet enligt användarval i dialogrutan.

afx_msg void OnEditConvert();

Anmärkningar

OnEditConvert skapar och startar en dialogruta COleConvertDialog Konvertera.

Ett exempel på konvertering är att konvertera ett Microsoft Word-dokument till ett WordPad-dokument.

Visar dialogrutan OLE-redigering/länkar.

afx_msg void OnEditLinks();

Anmärkningar

OnEditLinks skapar och startar en dialogruta COleLinksDialog Länkar som gör att användaren kan ändra de länkade objekten.

COleDocument::OnFileSendMail

Skickar ett meddelande via den boende e-postvärden (om någon) med dokumentet som en bifogad fil.

afx_msg void OnFileSendMail();

Anmärkningar

OnFileSendMail anropar OnSaveDocument för att serialisera (spara) namnlöst och ändrat dokument till en temporär fil som sedan skickas via e-post. Om dokumentet inte har ändrats behövs ingen temporär fil. originalet skickas. OnFileSendMail läser in MAPI32.DLL om den inte redan har lästs in.

Till skillnad från implementeringen av OnFileSendMail för CDocumenthanterar den här funktionen sammansatta filer korrekt.

Mer information finns i MAPI-ämnen och MAPI-stöd i MFC- artiklar.

COleDocument::OnShowViews

Ramverket anropar den här funktionen efter att dokumentets synlighetstillstånd har ändrats.

virtual void OnShowViews(BOOL bVisible);

Parametrar

bVisible
Anger om dokumentet har blivit synligt eller osynligt.

Anmärkningar

Standardversionen av den här funktionen gör ingenting. Åsidosätt det om ditt program måste utföra någon särskild bearbetning när dokumentets synlighet ändras.

COleDocument::OnUpdateEditChangeIcon

Anropas av ramverket för att uppdatera kommandot Ändra ikon på redigera-menyn.

afx_msg void OnUpdateEditChangeIcon(CCmdUI* pCmdUI);

Parametrar

pCmdUI
En pekare till en CCmdUI struktur som representerar menyn som genererade uppdateringskommandot. Uppdateringshanteraren anropar funktionen Enable medlem i CCmdUI-strukturen via pCmdUI- för att uppdatera användargränssnittet.

Anmärkningar

OnUpdateEditChangeIcon uppdaterar kommandots användargränssnitt beroende på om det finns en giltig ikon i dokumentet eller inte. Åsidosätt den här funktionen för att ändra beteendet.

COleDocument::OnUpdateEditLinksMenu

Anropas av ramverket för att uppdatera kommandot Länkar på redigera-menyn.

afx_msg void OnUpdateEditLinksMenu(CCmdUI* pCmdUI);

Parametrar

pCmdUI
En pekare till en CCmdUI struktur som representerar menyn som genererade uppdateringskommandot. Uppdateringshanteraren anropar funktionen Enable medlem i CCmdUI-strukturen via pCmdUI- för att uppdatera användargränssnittet.

Anmärkningar

Från och med det första OLE-objektet i dokumentet kommer OnUpdateEditLinksMenu åt varje objekt, testar om objektet är en länk och aktiverar kommandot Länkar om det är en länk. Åsidosätt den här funktionen för att ändra beteendet.

COleDocument::OnUpdateObjectVerbMenu

Anropas av ramverket för att uppdatera kommandot ObjectName på redigera-menyn och verbundermenyn som används från kommandot ObjectName, där ObjectName är namnet på OLE-objektet som är inbäddat i dokumentet.

afx_msg void OnUpdateObjectVerbMenu(CCmdUI* pCmdUI);

Parametrar

pCmdUI
En pekare till en CCmdUI struktur som representerar menyn som genererade uppdateringskommandot. Uppdateringshanteraren anropar funktionen Enable medlem i CCmdUI-strukturen via pCmdUI- för att uppdatera användargränssnittet.

Anmärkningar

OnUpdateObjectVerbMenu uppdaterar ObjectName-kommandots användargränssnitt beroende på om det finns ett giltigt objekt i dokumentet eller inte. Om det finns ett objekt aktiveras kommandot ObjectName på redigera-menyn. När det här menykommandot har valts visas verbundermenyn. Verbundermenyn innehåller alla verbkommandon som är tillgängliga för objektet, till exempel Redigera, Egenskaper och så vidare. Åsidosätt den här funktionen för att ändra beteendet.

COleDocument::OnUpdatePasteLinkMenu

Anropas av ramverket för att avgöra om ett länkat OLE-objekt kan klistras in från Urklipp.

afx_msg void OnUpdatePasteLinkMenu(CCmdUI* pCmdUI);

Parametrar

pCmdUI
En pekare till en CCmdUI struktur som representerar menyn som genererade uppdateringskommandot. Uppdateringshanteraren anropar funktionen Enable medlem i CCmdUI-strukturen via pCmdUI- för att uppdatera användargränssnittet.

Anmärkningar

Kommandot Klistra in specialmenyn är aktiverat eller inaktiverat beroende på om objektet kan klistras in i dokumentet eller inte.

COleDocument::OnUpdatePasteMenu

Anropas av ramverket för att avgöra om ett inbäddat OLE-objekt kan klistras in från Urklipp.

afx_msg void OnUpdatePasteMenu(CCmdUI* pCmdUI);

Parametrar

pCmdUI
En pekare till en CCmdUI struktur som representerar menyn som genererade uppdateringskommandot. Uppdateringshanteraren anropar funktionen Enable medlem i CCmdUI-strukturen via pCmdUI- för att uppdatera användargränssnittet.

Anmärkningar

Kommandot och knappen Klistra in-menyn är aktiverade eller inaktiverade beroende på om objektet kan klistras in i dokumentet eller inte.

COleDocument::RemoveItem

Anropa den här funktionen för att ta bort ett objekt från dokumentet.

virtual void RemoveItem(CDocItem* pItem);

Parametrar

pItem
Pekare till dokumentobjektet som ska tas bort.

Anmärkningar

Du behöver vanligtvis inte anropa den här funktionen explicit. det anropas av destructorsna för COleClientItem och COleServerItem.

COleDocument::UpdateModifiedFlag

Anropa den här funktionen för att markera dokumentet som ändrat om något av de inneslutna OLE-objekten har ändrats.

virtual void UpdateModifiedFlag();

Anmärkningar

På så sätt kan ramverket uppmana användaren att spara dokumentet innan det stängs, även om de interna data i dokumentet inte har ändrats.

Se även

MFC-exempelcontainer
MFC MFC Sample MFCBIND
CDocument Class
hierarkidiagram