COleDocument – třída
Základní třída dokumentů OLE, které podporují vizuální úpravy.
Syntaxe
class COleDocument : public CDocument
Členové
Veřejné konstruktory
Název | Popis |
---|---|
COleDocument::COleDocument | COleDocument Vytvoří objekt. |
Veřejné metody
Název | Popis |
---|---|
COleDocument::AddItem | Přidá položku do seznamu položek, které dokument udržuje. |
COleDocument::ApplyPrintDevice | Nastaví cílové zařízení tisku pro všechny položky klienta v dokumentu. |
COleDocument::EnableCompoundFile | Způsobí uložení dokumentů pomocí formátu souboru strukturovaného úložiště OLE. |
COleDocument::GetInPlaceActiveItem | Vrátí položku OLE, která je aktuálně aktivní. |
COleDocument::GetNextClientItem | Získá další položku klienta pro iterování. |
COleDocument::GetNextItem | Získá další položku dokumentu pro iterování. |
COleDocument::GetNextServerItem | Získá další položku serveru pro iterování. |
COleDocument::GetPrimarySelectedItem | Vrátí primární vybranou položku OLE v dokumentu. |
COleDocument::GetStartPosition | Získá počáteční pozici pro zahájení iterace. |
COleDocument::HasBlankItems | Kontroluje prázdné položky v dokumentu. |
COleDocument::OnShowViews | Volá se, když se dokument stane viditelným nebo neviditelným. |
COleDocument::RemoveItem | Odebere položku ze seznamu položek, které dokument udržuje. |
COleDocument::UpdateModifiedFlag | Označí dokument jako upravený, pokud byla změněna některá z obsažených položek OLE. |
Chráněné metody
Název | Popis |
---|---|
COleDocument::OnEditChangeIcon | Zpracovává události v příkazu Nabídky Změnit ikonu. |
COleDocument::OnEditConvert | Zpracovává převod vloženého nebo propojeného objektu z jednoho typu do druhého. |
COleDocument::OnEditLinks | Zpracovává události v příkazu Odkazy v nabídce Upravit. |
COleDocument::OnFileSendMail | Odešle e-mailovou zprávu s připojeným dokumentem. |
COleDocument::OnUpdateEditChangeIcon | Volá se rozhraním pro aktualizaci uživatelského rozhraní příkazu pro možnost nabídky Upravit/Změnit ikonu. |
COleDocument::OnUpdateEditLinksMenu | Volá se rozhraním pro aktualizaci uživatelského rozhraní příkazu pro možnost nabídky Upravit/Odkazy. |
COleDocument::OnUpdateObjectVerbMenu | Volané architekturou pro aktualizaci uživatelského rozhraní příkazu pro možnost nabídky Edit/ ObjectName a podnabídka Slovesa, ke které se přistupuje z Edit/ ObjectName. |
COleDocument::OnUpdatePasteLinkMenu | Volá se rozhraním pro aktualizaci uživatelského rozhraní příkazu pro možnost nabídky Vložit jinak. |
COleDocument::OnUpdatePasteMenu | Volá se rozhraním pro aktualizaci uživatelského rozhraní příkazu pro možnost nabídky Vložit. |
Poznámky
COleDocument
je odvozen od CDocument
, který umožňuje aplikacím OLE používat architekturu dokumentu/zobrazení poskytovanou knihovnou tříd Microsoft Foundation.
COleDocument
zpracovává dokument jako kolekci objektů CDocItem pro zpracování položek OLE. Kontejnerové i serverové aplikace vyžadují takovou architekturu, protože jejich dokumenty musí obsahovat položky OLE. COleServerItem a COleClientItem třídy, které jsou odvozeny z CDocItem
, spravují interakce mezi aplikacemi a položkami OLE.
Pokud píšete jednoduchou aplikaci kontejneru, odvodit třídu dokumentu z COleDocument
. Pokud píšete aplikaci typu kontejner, která podporuje propojení s vloženými položkami obsaženými v jejích dokumentech, odvozujte třídu dokumentu z COleLinkingDoc. Pokud píšete serverovou aplikaci nebo kombinaci kontejneru nebo serveru, odvozujte třídu dokumentu z COleServerDoc. COleLinkingDoc
a COleServerDoc
jsou odvozeny z COleDocument
, takže tyto třídy dědí všechny služby dostupné v COleDocument
a CDocument
.
Chcete-li použít COleDocument
, odvodit z ní třídu a přidat funkce pro správu dat mimo OLE aplikace, stejně jako vložené nebo propojené položky. Pokud definujete CDocItem
-odvozené třídy pro ukládání nativních dat aplikace, můžete použít výchozí implementaci definovanou COleDocument
k uložení dat OLE i jiných než OLE. Můžete také navrhnout vlastní datové struktury pro ukládání dat, která nejsou ole, odděleně od položek OLE. Další informace najdete v článku Kontejnery: Složené soubory..
CDocument
podporuje odesílání dokumentu e-mailem, pokud je k dispozici podpora pošty (MAPI). COleDocument
aplikace byla aktualizována OnFileSendMail tak, aby zpracovávala složené dokumenty správně. Další informace najdete v článcích MAPI a podpora MAPI v prostředí MFC..
Hierarchie dědičnosti
COleDocument
Požadavky
Hlavička: afxole.h
COleDocument::AddItem
Voláním této funkce přidáte položku do dokumentu.
virtual void AddItem(CDocItem* pItem);
Parametry
pItem
Ukazatel na přidanou položku dokumentu
Poznámky
Tuto funkci není nutné volat explicitně při volání konstruktorem nebo COleServerItem
konstruktoremCOleClientItem
, který přijímá ukazatel na dokument.
COleDocument::ApplyPrintDevice
Voláním této funkce změníte zařízení cíle tisku pro všechny vložené položky COleClientItem v dokumentu kontejneru vaší aplikace.
BOOL ApplyPrintDevice(const DVTARGETDEVICE* ptd);
BOOL ApplyPrintDevice(const PRINTDLG* ppd);
Parametry
Ptd
Ukazatel na datovou DVTARGETDEVICE
strukturu, která obsahuje informace o novém tiskovém cílovém zařízení. Může mít hodnotu NULL.
Ppd
Ukazatel na datovou PRINTDLG
strukturu, která obsahuje informace o novém tiskovém cílovém zařízení. Může mít hodnotu NULL.
Návratová hodnota
Nenulové, pokud byla funkce úspěšná; jinak 0.
Poznámky
Tato funkce aktualizuje tiskové cílové zařízení pro všechny položky, ale neaktualizuje mezipaměť prezentace pro tyto položky. Chcete-li aktualizovat mezipaměť prezentace pro položku, zavolejte COleClientItem::UpdateLink.
Argumenty této funkce obsahují informace, které OLE používá k identifikaci cílového zařízení. Struktura PRINTDLG obsahuje informace, které systém Windows používá k inicializaci společného dialogového okna Tisk. Po zavření dialogového okna systém Windows vrátí informace o výběru uživatele v této struktuře. Člen m_pd
CPrintDialog objektu PRINTDLG
je struktura.
Další informace naleznete ve struktuře PRINTDLG v sadě Windows SDK.
Další informace naleznete ve struktuře DVTARGETDEVICE v sadě Windows SDK.
COleDocument::COleDocument
COleDocument
Vytvoří objekt.
COleDocument();
COleDocument::EnableCompoundFile
Tuto funkci zavolejte, pokud chcete dokument uložit ve formátu složeného souboru.
void EnableCompoundFile(BOOL bEnable = TRUE);
Parametry
bEnable
Určuje, jestli je povolená nebo zakázaná podpora složených souborů.
Poznámky
Říká se tomu také strukturované úložiště. Tuto funkci obvykle voláte z konstruktoru vaší COleDocument
-odvozené třídy. Další informace o složených dokumentech najdete v článku Kontejnery: Složené soubory..
Pokud tuto členovou funkci nezavoláte, budou dokumenty uloženy v nestrukturovaném ("plochém") formátu souboru.
Po povolení nebo zakázání podpory složených souborů pro dokument by se nastavení nemělo měnit během životnosti dokumentu.
COleDocument::GetInPlaceActiveItem
Voláním této funkce získáte položku OLE, která je aktuálně aktivována v okně rámečku obsahující zobrazení identifikované pWnd.
virtual COleClientItem* GetInPlaceActiveItem(CWnd* pWnd);
Parametry
pWnd
Ukazatel na okno, které zobrazuje dokument kontejneru.
Návratová hodnota
Ukazatel na jednu aktivní aktivní položku OLE na místě; Null, pokud v aktuálním stavu aktivní není žádná položka OLE.
COleDocument::GetNextClientItem
Voláním této funkce můžete opakovaně přistupovat ke každé z položek klienta v dokumentu.
COleClientItem* GetNextClientItem(POSITION& pos) const;
Parametry
Pos
Odkaz na hodnotu POSITION nastavenou předchozím voláním GetNextClientItem
; počáteční hodnota je vrácena členovou GetStartPosition
funkcí.
Návratová hodnota
Ukazatel na další položku klienta v dokumentu nebo null, pokud nejsou k dispozici žádné další položky klienta.
Poznámky
Po každém volání je hodnota pos nastavena pro další položku v dokumentu, což může nebo nemusí být položka klienta.
Příklad
// 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
Voláním této funkce můžete opakovaně přistupovat ke každému z položek v dokumentu.
virtual CDocItem* GetNextItem(POSITION& pos) const;
Parametry
Pos
Odkaz na hodnotu POSITION nastavenou předchozím voláním GetNextItem
; počáteční hodnota je vrácena členovou GetStartPosition
funkcí.
Návratová hodnota
Ukazatel na položku dokumentu na zadané pozici.
Poznámky
Po každém volání je hodnota pos nastavena na hodnotu POSITION další položky v dokumentu. Pokud je načtený prvek posledním prvkem v dokumentu, nová hodnota pos je NULL.
Příklad
// 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
Voláním této funkce můžete opakovaně přistupovat ke každé ze serverových položek v dokumentu.
COleServerItem* GetNextServerItem(POSITION& pos) const;
Parametry
Pos
Odkaz na hodnotu POSITION nastavenou předchozím voláním GetNextServerItem
; počáteční hodnota je vrácena členovou GetStartPosition
funkcí.
Návratová hodnota
Ukazatel na další položku serveru v dokumentu nebo null, pokud neexistují žádné další položky serveru.
Poznámky
Po každém volání je hodnota pos nastavena pro další položku v dokumentu, která může nebo nemusí být položkou serveru.
Příklad
// pDoc points to a COleDocument object
POSITION pos = pDoc->GetStartPosition();
COleServerItem* pItem;
while ((pItem = pDoc->GetNextServerItem(pos)) != NULL)
{
// Use pItem
}
COleDocument::GetPrimarySelectedItem
Volá se rozhraním pro načtení aktuálně vybrané položky OLE v zadaném zobrazení.
virtual COleClientItem* GetPrimarySelectedItem(CView* pView);
Parametry
pView
Ukazatel na aktivní objekt zobrazení zobrazující dokument.
Návratová hodnota
Ukazatel na jednu vybranou položku OLE; Null pokud nejsou vybrány žádné položky OLE nebo pokud je vybráno více než jedna.
Poznámky
Výchozí implementace prohledá seznam obsažených položek OLE pro jednu vybranou položku a vrátí ukazatel na ni. Pokud není vybrána žádná položka nebo pokud je vybráno více než jedna položka, vrátí funkce hodnotu NULL. Aby tato funkce fungovala, musíte přepsat CView::IsSelected
členovu funkci ve třídě zobrazení. Tuto funkci přepište, pokud máte vlastní metodu ukládání obsažených položek OLE.
COleDocument::GetStartPosition
Voláním této funkce získáte pozici první položky v dokumentu.
virtual POSITION GetStartPosition() const;
Návratová hodnota
Hodnota POSITION, kterou lze použít k zahájení iterace položkami dokumentu; Hodnota NULL, pokud dokument neobsahuje žádné položky.
Poznámky
Předejte hodnotu vrácenou do GetNextItem
, GetNextClientItem
nebo GetNextServerItem
.
COleDocument::HasBlankItems
Voláním této funkce určíte, zda dokument obsahuje prázdné položky.
BOOL HasBlankItems() const;
Návratová hodnota
Nenulové, pokud dokument obsahuje všechny prázdné položky; jinak 0.
Poznámky
Prázdná položka je jedna, jejíž obdélník je prázdný.
COleDocument::OnEditChangeIcon
Zobrazí dialogové okno Ikona změny OLE a změní ikonu představující aktuálně vybranou položku OLE na ikonu, kterou uživatel vybere v dialogovém okně.
afx_msg void OnEditChangeIcon();
Poznámky
OnEditChangeIcon
vytvoří a spustí COleChangeIconDialog
dialogové okno Změnit ikonu.
COleDocument::OnEditConvert
Zobrazí dialogové okno Převést OLE a převede nebo aktivuje aktuálně vybranou položku OLE podle výběru uživatele v dialogovém okně.
afx_msg void OnEditConvert();
Poznámky
OnEditConvert
vytvoří a spustí COleConvertDialog
dialogové okno Převést.
Příkladem převodu je převod dokumentu aplikace Microsoft Word na wordový dokument.
COleDocument::OnEditLinks
Zobrazí dialogové okno Upravit nebo odkazy OLE.
afx_msg void OnEditLinks();
Poznámky
OnEditLinks
vytvoří a spustí dialogové okno Odkazy COleLinksDialog
, které uživateli umožňuje změnit propojené objekty.
COleDocument::OnFileSendMail
Odešle zprávu prostřednictvím rezidentního poštovního hostitele (pokud existuje) s dokumentem jako přílohou.
afx_msg void OnFileSendMail();
Poznámky
OnFileSendMail
volání OnSaveDocument
k serializaci (uložení) bez názvu a změněných dokumentů do dočasného souboru, který se pak odešle prostřednictvím elektronické pošty. Pokud dokument nebyl změněn, není nutný dočasný soubor; původní je odeslán. OnFileSendMail
načte MAPI32.DLL, pokud ještě nebyl načten.
Na rozdíl od implementace OnFileSendMail
pro CDocument
, tato funkce zpracovává složené soubory správně.
Další informace naleznete v tématech mapI a podpoře MAPI v článcích MFC.
COleDocument::OnShowViews
Architektura tuto funkci volá po změně stavu viditelnosti dokumentu.
virtual void OnShowViews(BOOL bVisible);
Parametry
bVisible
Určuje, zda byl dokument viditelný nebo neviditelný.
Poznámky
Výchozí verze této funkce nic nedělá. Přepsat, pokud vaše aplikace musí provést jakékoli speciální zpracování při změně viditelnosti dokumentu.
COleDocument::OnUpdateEditChangeIcon
Volá se rozhraním pro aktualizaci příkazu Změnit ikonu v nabídce Upravit.
afx_msg void OnUpdateEditChangeIcon(CCmdUI* pCmdUI);
Parametry
pCmdUI
Ukazatel na CCmdUI
strukturu, která představuje nabídku, která vygenerovala příkaz update. Obslužná rutina aktualizace volá Enable
členovou CCmdUI
funkci struktury prostřednictvím pCmdUI k aktualizaci uživatelského rozhraní.
Poznámky
OnUpdateEditChangeIcon
aktualizuje uživatelské rozhraní příkazu v závislosti na tom, jestli v dokumentu existuje platná ikona. Přepište tuto funkci, aby se změnilo chování.
COleDocument::OnUpdateEditLinksMenu
Volá se rozhraním pro aktualizaci příkazu Odkazy v nabídce Upravit.
afx_msg void OnUpdateEditLinksMenu(CCmdUI* pCmdUI);
Parametry
pCmdUI
Ukazatel na CCmdUI
strukturu, která představuje nabídku, která vygenerovala příkaz update. Obslužná rutina aktualizace volá Enable
členovou CCmdUI
funkci struktury prostřednictvím pCmdUI k aktualizaci uživatelského rozhraní.
Poznámky
Počínaje první položkou OLE v dokumentu OnUpdateEditLinksMenu
přistupuje ke každé položce, testuje, zda je položka odkazem, a pokud se jedná o odkaz, povolí příkaz Odkazy. Přepište tuto funkci, aby se změnilo chování.
COleDocument::OnUpdateObjectVerbMenu
Volá se rozhraním pro aktualizaci příkazu ObjectName v nabídce Upravit a podnabídky Slovesa, ke které se přistupuje z příkazu ObjectName , kde ObjectName je název objektu OLE vloženého v dokumentu.
afx_msg void OnUpdateObjectVerbMenu(CCmdUI* pCmdUI);
Parametry
pCmdUI
Ukazatel na CCmdUI
strukturu, která představuje nabídku, která vygenerovala příkaz update. Obslužná rutina aktualizace volá Enable
členovou CCmdUI
funkci struktury prostřednictvím pCmdUI k aktualizaci uživatelského rozhraní.
Poznámky
OnUpdateObjectVerbMenu
Aktualizuje uživatelské rozhraní příkazu ObjectName v závislosti na tom, zda v dokumentu existuje platný objekt. Pokud objekt existuje, je povolen příkaz ObjectName v nabídce Upravit. Po výběru tohoto příkazu nabídky se zobrazí podnabídka Slovesa. Podnabídka Slovesa obsahuje všechny příkazy, které jsou k dispozici pro objekt, například Upravit, Vlastnosti atd. Přepište tuto funkci, aby se změnilo chování.
COleDocument::OnUpdatePasteLinkMenu
Volané rozhraním k určení, zda lze propojenou položku OLE vložit ze schránky.
afx_msg void OnUpdatePasteLinkMenu(CCmdUI* pCmdUI);
Parametry
pCmdUI
Ukazatel na CCmdUI
strukturu, která představuje nabídku, která vygenerovala příkaz update. Obslužná rutina aktualizace volá Enable
členovou CCmdUI
funkci struktury prostřednictvím pCmdUI k aktualizaci uživatelského rozhraní.
Poznámky
Příkaz nabídky Vložit jinak je povolený nebo zakázaný v závislosti na tom, jestli lze položku vložit do dokumentu, nebo ne.
COleDocument::OnUpdatePasteMenu
Volané rozhraním určuje, zda lze vloženou položku OLE vložit ze schránky.
afx_msg void OnUpdatePasteMenu(CCmdUI* pCmdUI);
Parametry
pCmdUI
Ukazatel na CCmdUI
strukturu, která představuje nabídku, která vygenerovala příkaz update. Obslužná rutina aktualizace volá Enable
členovou CCmdUI
funkci struktury prostřednictvím pCmdUI k aktualizaci uživatelského rozhraní.
Poznámky
Příkaz nabídky Vložit a tlačítko jsou povoleny nebo zakázány v závislosti na tom, zda lze položku vložit do dokumentu, nebo ne.
COleDocument::RemoveItem
Voláním této funkce odeberete položku z dokumentu.
virtual void RemoveItem(CDocItem* pItem);
Parametry
pItem
Ukazatel na položku dokumentu, kterou chcete odebrat.
Poznámky
Obvykle není nutné tuto funkci volat explicitně; je volána destruktory pro COleClientItem
a COleServerItem
.
COleDocument::UpdateModifiedFlag
Voláním této funkce označíte dokument jako upravený, pokud byla změněna některá z obsažených položek OLE.
virtual void UpdateModifiedFlag();
Poznámky
To umožňuje rozhraní vyzvat uživatele k uložení dokumentu před zavřením, a to i v případě, že nativní data v dokumentu nebyla změněna.
Viz také
UKÁZKOVÝ KONTEJNER MFC
MFC – ukázka MFCBIND
CDocument – třída
Graf hierarchie