Classe COleLinkingDoc

Classe di base per i documenti del contenitore OLE che supportano il collegamento agli elementi incorporati in essi contenuti.

Sintassi

class COleLinkingDoc : public COleDocument

Membri

Costruttori pubblici

Nome Descrizione
COleLinkingDoc::COleLinkingDoc Costruisce un oggetto COleLinkingDoc.

Metodi pubblici

Nome Descrizione
COleLinkingDoc::Register Registra il documento con le DLL di sistema OLE.
COleLinkingDoc::Revoke Revoca la registrazione del documento.

Metodi protetti

Nome Descrizione
COleLinkingDoc::OnFindEmbeddedItem Trova l'elemento incorporato specificato.
COleLinkingDoc::OnGetLinkedItem Trova l'elemento collegato specificato.

Osservazioni:

Un'applicazione contenitore che supporta il collegamento a elementi incorporati è denominata "contenitore di collegamento". L'applicazione di esempio OCLIENT è un esempio di contenitore di collegamento.

Quando l'origine di un elemento collegato è un elemento incorporato in un altro documento, tale documento deve essere caricato affinché l'elemento incorporato venga modificato. Per questo motivo, un contenitore di collegamento deve essere avviato da un'altra applicazione contenitore quando l'utente vuole modificare l'origine di un elemento collegato. L'applicazione deve anche usare la classe COleTemplateServer in modo che possa creare documenti all'avvio a livello di codice.

Per rendere il contenitore un contenitore di collegamento, derivare la classe del documento da COleLinkingDoc anziché da COleDocument. Come per qualsiasi altro contenitore OLE, è necessario progettare la classe per archiviare i dati nativi dell'applicazione, nonché gli elementi incorporati o collegati. Inoltre, è necessario progettare strutture di dati per archiviare i dati nativi. Se si definisce una CDocItemclasse derivata da per i dati nativi dell'applicazione, è possibile usare l'interfaccia definita da COleDocument per archiviare i dati nativi e i dati OLE.

Per consentire l'avvio dell'applicazione a livello di codice da un altro contenitore, dichiarare un COleTemplateServer oggetto come membro della classe derivata dall'applicazione CWinApp:

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

InitInstance Nella funzione membro della CWinAppclasse derivata da creare un modello di documento e specificare la COleLinkingDocclasse derivata da come classe documento:

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

Connettere l'oggetto COleTemplateServer ai modelli di documento chiamando la funzione membro dell'oggetto ConnectTemplate e registrare tutti gli oggetti classe con il sistema OLE chiamando COleTemplateServer::RegisterAll:

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

Per una definizione e InitInstance una funzione di classe derivata di esempioCWinApp, vedere OCLIENT. H e OCLIENT. CPP nell'esempio OCLIENT MFC.

Per altre informazioni sull'uso COleLinkingDocdi , vedere gli articoli Contenitori: Implementazione di un contenitore e contenitori: funzionalità avanzate.

Gerarchia di ereditarietà

CObject

CCmdTarget

CDocument

COleDocument

COleLinkingDoc

Requisiti

Intestazione: afxole.h

COleLinkingDoc::COleLinkingDoc

Costruisce un COleLinkingDoc oggetto senza iniziare le comunicazioni con le DLL di sistema OLE.

COleLinkingDoc();

Osservazioni:

È necessario chiamare la Register funzione membro per informare OLE che il documento è aperto.

COleLinkingDoc::OnFindEmbeddedItem

Chiamato dal framework per determinare se il documento contiene un elemento OLE incorporato con il nome specificato.

virtual COleClientItem* OnFindEmbeddedItem(LPCTSTR lpszItemName);

Parametri

lpszItemName
Puntatore al nome dell'elemento OLE incorporato richiesto.

Valore restituito

Puntatore all'elemento specificato; NULL se l'elemento non viene trovato.

Osservazioni:

L'implementazione predefinita cerca nell'elenco di elementi incorporati un elemento con il nome specificato ( il confronto dei nomi fa distinzione tra maiuscole e minuscole). Eseguire l'override di questa funzione se si dispone di un metodo personalizzato per l'archiviazione o la denominazione di elementi OLE incorporati.

COleLinkingDoc::OnGetLinkedItem

Chiamato dal framework per verificare se il documento contiene un elemento del server collegato con il nome specificato.

virtual COleServerItem* OnGetLinkedItem(LPCTSTR lpszItemName);

Parametri

lpszItemName
Puntatore al nome dell'elemento OLE collegato richiesto.

Valore restituito

Puntatore all'elemento specificato; NULL se l'elemento non viene trovato.

Osservazioni:

L'implementazione predefinita COleLinkingDoc restituisce sempre NULL. Questa funzione viene sottoposta a override nella classe COleServerDoc derivata per cercare un elemento collegato nell'elenco di elementi del server OLE con il nome specificato( il confronto dei nomi fa distinzione tra maiuscole e minuscole). Eseguire l'override di questa funzione se è stato implementato un metodo personalizzato per l'archiviazione o il recupero di elementi del server collegato.

COleLinkingDoc::Register

Informa le DLL di sistema OLE che il documento è aperto.

BOOL Register(
    COleObjectFactory* pFactory,
    LPCTSTR lpszPathName);

Parametri

pFactory
Puntatore a un oggetto OLE factory (può essere NULL).

lpszPathName
Puntatore al percorso completo del documento contenitore.

Valore restituito

Diverso da zero se il documento viene registrato correttamente; in caso contrario, 0.

Osservazioni:

Chiamare questa funzione durante la creazione o l'apertura di un file denominato per registrare il documento con le DLL di sistema OLE. Non è necessario chiamare questa funzione se il documento rappresenta un elemento incorporato.

Se si usa COleTemplateServer nell'applicazione, Register viene chiamato dall'implementazione COleLinkingDocdi OnNewDocument, OnOpenDocumente OnSaveDocument.

COleLinkingDoc::Revoke

Informa le DLL di sistema OLE che il documento non è più aperto.

void Revoke();

Osservazioni:

Chiamare questa funzione per revocare la registrazione del documento con le DLL di sistema OLE.

È consigliabile chiamare questa funzione quando si chiude un file denominato, ma in genere non è necessario chiamarlo direttamente. Revoke viene chiamato per l'utente dall'implementazione COleLinkingDocdi OnCloseDocument, OnNewDocument, OnOpenDocumente OnSaveDocument.

Vedi anche

OCLIENT di esempio MFC
Classe COleDocument
Grafico della gerarchia
Classe CDocTemplate