Sdílet prostřednictvím


COleLinkingDoc – třída

Základní třída dokumentů kontejneru OLE, které podporují propojení s vloženými položkami, které obsahují.

Syntaxe

class COleLinkingDoc : public COleDocument

Členové

Veřejné konstruktory

Název Popis
COleLinkingDoc::COleLinkingDoc COleLinkingDoc Vytvoří objekt.

Veřejné metody

Název Popis
COleLinkingDoc::Register Zaregistruje dokument pomocí knihoven DLL systému OLE.
COleLinkingDoc::Revoke Odvolá registraci dokumentu.

Chráněné metody

Název Popis
COleLinkingDoc::OnFindEmbeddedItem Najde zadanou vloženou položku.
COleLinkingDoc::OnGetLinkedItem Vyhledá zadanou propojenou položku.

Poznámky

Kontejnerová aplikace, která podporuje propojení s vloženými položkami, se nazývá "propojení kontejneru". Ukázková aplikace OCLIENT je příkladem kontejneru propojení.

Pokud je zdroj propojené položky vloženou položkou v jiném dokumentu, musí být tento dokument načten, aby byla vložená položka upravena. Z tohoto důvodu musí být kontejner propojení možné spustit jinou aplikací kontejneru, když chce uživatel upravit zdroj propojené položky. Vaše aplikace musí také použít COleTemplateServer třídy, aby mohl vytvářet dokumenty při spuštění programově.

Pokud chcete kontejner vytvořit jako kontejner propojení, odvozujte třídu dokumentu místo COleDocument COleLinkingDoc. Stejně jako u jakéhokoli jiného kontejneru OLE musíte navrhnout třídu pro ukládání nativních dat aplikace i vložených nebo propojených položek. Musíte také navrhnout datové struktury pro ukládání nativních dat. Pokud definujete -odvozenou CDocItemtřídu pro nativní data vaší aplikace, můžete použít rozhraní definované COleDocument k ukládání nativních dat i dat OLE.

Pokud chcete aplikaci spustit programově jiným kontejnerem, deklarujte COleTemplateServer objekt jako člena -odvozené třídy vaší aplikace CWinApp:

class COleContainerApp : public CWinApp
{
protected:
   COleTemplateServer m_server;
   // remainder of class declaration omitted

InitInstance Ve členské funkci vaší CWinApp-odvozené třídy vytvořte šablonu dokumentu a jako třídu dokumentu zadejte COleLinkingDoc-odvozenou třídu:

// CMyLinkDoc is derived from COleLinkingDoc
CMultiDocTemplate* pDocTemplate = new CMultiDocTemplate(IDR_LINKDOCTYPE,
   RUNTIME_CLASS(CMyLinkDoc),
   RUNTIME_CLASS(CChildFrame),
   RUNTIME_CLASS(CMyLinkView));
if (!pDocTemplate)
return FALSE;
pDocTemplate->SetContainerInfo(IDR_OLECONTTYPE_CNTR_IP);
AddDocTemplate(pDocTemplate);

Připojení objekt COleTemplateServer do šablon dokumentů voláním členské funkce objektu ConnectTemplate a zaregistrujte všechny objekty třídy v systému OLE volánímCOleTemplateServer::RegisterAll:

m_server.ConnectTemplate(clsid, pDocTemplate, FALSE);
COleTemplateServer::RegisterAll();

Ukázkovou CWinAppdefinici a InitInstance funkci odvozené třídy najdete v tématu OCLIENT. H a OCLIENT. CPP v ukázkovém objektu OCLIENT mfc

Další informace o použití COleLinkingDocnajdete v článcích Kontejnery: Implementace kontejneru a kontejnerů: Pokročilé funkce.

Hierarchie dědičnosti

Objekt CObject

CCmdTarget

CDocument

COleDocument

COleLinkingDoc

Požadavky

Hlavička: afxole.h

COleLinkingDoc::COleLinkingDoc

COleLinkingDoc Vytvoří objekt bez zahájení komunikace se systémovými knihovny DLL OLE.

COleLinkingDoc();

Poznámky

Chcete-li informovat ole, že je dokument otevřen, je nutné volat Register člena funkce.

COleLinkingDoc::OnFindEmbeddedItem

Volá se rozhraním k určení, zda dokument obsahuje vloženou položku OLE se zadaným názvem.

virtual COleClientItem* OnFindEmbeddedItem(LPCTSTR lpszItemName);

Parametry

lpszItemName
Ukazatel na název požadované vložené položky OLE.

Vrácená hodnota

Ukazatel na zadanou položku; HODNOTA NULL, pokud položka nebyla nalezena.

Poznámky

Výchozí implementace prohledá seznam vložených položek položky se zadaným názvem (porovnání názvů se rozlišují malá a velká písmena). Tuto funkci přepište, pokud máte vlastní metodu ukládání nebo pojmenování vložených položek OLE.

COleLinkingDoc::OnGetLinkedItem

Volá se rozhraním a kontroluje, jestli dokument obsahuje propojenou položku serveru se zadaným názvem.

virtual COleServerItem* OnGetLinkedItem(LPCTSTR lpszItemName);

Parametry

lpszItemName
Ukazatel na název požadované propojené položky OLE.

Vrácená hodnota

Ukazatel na zadanou položku; HODNOTA NULL, pokud položka nebyla nalezena.

Poznámky

Výchozí COleLinkingDoc implementace vždy vrátí hodnotu NULL. Tato funkce je přepsána v odvozené třídě COleServerDoc , aby se v seznamu položek serveru OLE vyhledaly propojené položky se zadaným názvem (porovnání názvů se rozlišují malá a velká písmena). Tuto funkci přepište, pokud jste implementovali vlastní metodu ukládání nebo načítání propojených položek serveru.

COleLinkingDoc::Register

Informuje knihovny DLL systému OLE, že je dokument otevřen.

BOOL Register(
    COleObjectFactory* pFactory,
    LPCTSTR lpszPathName);

Parametry

pFactory
Ukazatel na objekt objektu továrny OLE (může mít hodnotu NULL).

lpszPathName
Ukazatel na plně kvalifikovanou cestu k dokumentu kontejneru.

Vrácená hodnota

Nenulové, pokud je dokument úspěšně zaregistrován; jinak 0.

Poznámky

Volání této funkce při vytváření nebo otevření pojmenovaného souboru pro registraci dokumentu v knihovnách DLL systému OLE. Pokud dokument představuje vloženou položku, není nutné tuto funkci volat.

Pokud ve své aplikaci používáte COleTemplateServer , Register volá se pro vás COleLinkingDocimplementace OnNewDocument, OnOpenDocumenta OnSaveDocument.

COleLinkingDoc::Revoke

Informuje systémové knihovny DLL OLE, že dokument již není otevřen.

void Revoke();

Poznámky

Voláním této funkce odvoláte registraci dokumentu pomocí systémových knihoven DLL OLE.

Tuto funkci byste měli volat při zavírání pojmenovaného souboru, ale obvykle ji nemusíte volat přímo. Revokeje pro vás volána implementací COleLinkingDocOnCloseDocument, OnNewDocument, OnOpenDocument, a OnSaveDocument.

Viz také

MFC – ukázka OCLIENT
COleDocument – třída
Graf hierarchie
CDocTemplate – třída