Share via


COleLinkingDoc-klasse

Opmerking

De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

De basisklasse voor OLE-containerdocumenten die ondersteuning bieden voor het koppelen aan de ingesloten items die ze bevatten.

Syntaxis

class COleLinkingDoc : public COleDocument

Leden

Openbare constructors

Naam Description
COleLinkingDoc::COleLinkingDoc Maakt een COleLinkingDoc object.

Openbare methoden

Naam Description
COleLinkingDoc::Register Registreert het document bij de OLE-systeem-DLL's.
COleLinkingDoc::Revoke Hiermee wordt de registratie van het document ingetrokken.

Beveiligde methoden

Naam Description
COleLinkingDoc::OnFindEmbeddedItem Hiermee wordt het opgegeven ingesloten item gevonden.
COleLinkingDoc::OnGetLinkedItem Hiermee zoekt u het opgegeven gekoppelde item.

Opmerkingen

Een containertoepassing die koppelingen naar ingesloten items ondersteunt, wordt een 'koppelingscontainer' genoemd. De OCLIENT-voorbeeldtoepassing is een voorbeeld van een koppelingscontainer.

Wanneer de bron van een gekoppeld item een ingesloten item in een ander document is, moet dat met document worden geladen om het ingesloten item te kunnen bewerken. Daarom moet een koppelingscontainer kunnen worden gestart door een andere containertoepassing wanneer de gebruiker de bron van een gekoppeld item wil bewerken. Uw toepassing moet ook de COleTemplateServer-klasse gebruiken, zodat deze documenten kan maken wanneer deze programmatisch wordt gestart.

Als u van uw container een koppelingscontainer wilt maken, moet u uw documentklasse afleiden uit COleLinkingDoc in plaats van COleDocument. Net als bij elke andere OLE-container moet u uw klasse ontwerpen voor het opslaan van de systeemeigen gegevens van de toepassing, evenals ingesloten of gekoppelde items. U moet ook gegevensstructuren ontwerpen voor het opslaan van uw systeemeigen gegevens. Als u een CDocItem-afgeleide klasse definieert voor de systeemeigen gegevens van uw toepassing, kunt u de interface gebruiken die is gedefinieerd door COleDocument uw systeemeigen gegevens en uw OLE-gegevens op te slaan.

Als u wilt toestaan dat uw toepassing programmatisch wordt gestart door een andere container, declareert u een COleTemplateServer object als lid van de -afgeleide klasse van uw toepassing CWinApp:

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

Maak in de InitInstance lidfunctie van uw CWinApp-afgeleide klasse een documentsjabloon en geef uw COleLinkingDoc-afgeleide klasse op als de documentklasse:

// 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);

Verbind uw COleTemplateServer object met uw documentsjablonen door de lidfunctie van ConnectTemplate het object aan te roepen en alle klasseobjecten bij het OLE-systeem te registreren door het volgende aan te roepen COleTemplateServer::RegisterAll:

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

Zie OCLIENT voor een voorbeeld-afgeleide CWinAppklassedefinitie en InitInstance -functie. H en OCLIENT. CPP in de MFC-voorbeeld-OCLIENT.

Zie de artikelen Containers: Een container en containers implementeren: geavanceerde functies voor meer informatie over het gebruik COleLinkingDocvan containers.

Overnamehiërarchie

CObject

CCmdTarget

CDocument

COleDocument

COleLinkingDoc

Requirements

Koptekst: afxole.h

COleLinkingDoc::COleLinkingDoc

Hiermee wordt een COleLinkingDoc object gemaakt zonder te beginnen met communicatie met de OLE-systeem-DLL's.

COleLinkingDoc();

Opmerkingen

U moet de Register lidfunctie aanroepen om OLE te informeren dat het document is geopend.

COleLinkingDoc::OnFindEmbeddedItem

Aangeroepen door het framework om te bepalen of het document een ingesloten OLE-item met de opgegeven naam bevat.

virtual COleClientItem* OnFindEmbeddedItem(LPCTSTR lpszItemName);

Parameterwaarden

lpszItemName
Wijs de naam aan van het ingesloten OLE-item dat is aangevraagd.

Retourwaarde

Een aanwijzer naar het opgegeven item; NULL als het item niet wordt gevonden.

Opmerkingen

De standaard implementatie doorzoekt de lijst met ingesloten items voor een item met de opgegeven naam (de naamvergelijking is hoofdlettergevoelig). Overschrijf deze functie als u uw eigen methode hebt voor het opslaan of benoemen van ingesloten OLE-items.

COleLinkingDoc::OnGetLinkedItem

Aangeroepen door het framework om te controleren of het document een gekoppeld serveritem met de opgegeven naam bevat.

virtual COleServerItem* OnGetLinkedItem(LPCTSTR lpszItemName);

Parameterwaarden

lpszItemName
Aanwijzer naar de naam van het gekoppelde OLE-item dat is aangevraagd.

Retourwaarde

Een aanwijzer naar het opgegeven item; NULL als het item niet wordt gevonden.

Opmerkingen

De standaard COleLinkingDoc implementatie retourneert altijd NULL. Deze functie wordt overschreven in de afgeleide klasse COleServerDoc om te zoeken in de lijst met OLE-serveritems voor een gekoppeld item met de opgegeven naam (de naamvergelijking is hoofdlettergevoelig). Overschrijf deze functie als u uw eigen methode voor het opslaan of ophalen van gekoppelde serveritems hebt geïmplementeerd.

COleLinkingDoc::Register

Informeert de OLE-systeem-DLL's dat het document is geopend.

BOOL Register(
    COleObjectFactory* pFactory,
    LPCTSTR lpszPathName);

Parameterwaarden

pFactory
Aanwijzer naar een OLE-factoryobject (kan NULL zijn).

lpszPathName
Wijs het volledig gekwalificeerde pad van het containerdocument aan.

Retourwaarde

Niet-nul als het document is geregistreerd; anders 0.

Opmerkingen

Roep deze functie aan wanneer u een benoemd bestand maakt of opent om het document te registreren bij de OLE-systeem-DLL's. U hoeft deze functie niet aan te roepen als het document een ingesloten item vertegenwoordigt.

Als u in uw toepassing gebruikt COleTemplateServer , Register wordt u aangeroepen door COleLinkingDocde implementatie van OnNewDocument, OnOpenDocumenten OnSaveDocument.

COleLinkingDoc::Revoke

Informeert de OLE-systeem-DLL's dat het document niet meer is geopend.

void Revoke();

Opmerkingen

Roep deze functie aan om de registratie van het document met de OLE-systeem-DLL's in te trekken.

U moet deze functie aanroepen bij het sluiten van een benoemd bestand, maar u hoeft deze meestal niet rechtstreeks aan te roepen. Revokewordt voor u opgeroepen door COleLinkingDocde tenuitvoerlegging van OnCloseDocument, OnNewDocumenten OnOpenDocumentOnSaveDocument.

Zie ook

MFC-voorbeeld-OCLIENT
COleDocument-klasse
Hiërarchiegrafiek
CDocTemplate-klasse