Sdílet prostřednictvím


COleDocument – třída

Základní třída dokumentů OLE, které podporují vizuální úpravy.

Syntaxe

class COleDocument : public CDocument

Členové

Veřejné konstruktory

Jméno popis
COleDocument::COleDocument COleDocument Vytvoří objekt.

Veřejné metody

Jméno 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

Jméno 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

Objekt CObject

CCmdTarget

CDocument

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.

Vrácená 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_pdCPrintDialog 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.

Vrácená 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í.

Vrácená 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í.

Vrácená 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í.

Vrácená 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.

Vrácená 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;

Vrácená 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, GetNextClientItemnebo GetNextServerItem.

COleDocument::HasBlankItems

Voláním této funkce určíte, zda dokument obsahuje prázdné položky.

BOOL HasBlankItems() const;

Vrácená 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.

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

OnUpdateObjectVerbMenuAktualizuje 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