Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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řipojte objekt COleTemplateServer k šablonám dokumentů voláním členské funkce objektu ConnectTemplate a zaregistrujte všechny objekty třídy v systému OLE voláním COleTemplateServer::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
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.
Návratová 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.
Návratová 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.
Návratová 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