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 COleDocument
hä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
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
, GetNextClientItem
eller 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.
COleDocument::OnEditLinks
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 CDocument
hanterar 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