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 CDocItem
classe 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 CWinApp
classe derivata da creare un modello di documento e specificare la COleLinkingDoc
classe 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 COleLinkingDoc
di , vedere gli articoli Contenitori: Implementazione di un contenitore e contenitori: funzionalità avanzate.
Gerarchia di ereditarietà
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 COleLinkingDoc
di OnNewDocument
, OnOpenDocument
e 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 COleLinkingDoc
di OnCloseDocument
, OnNewDocument
, OnOpenDocument
e OnSaveDocument
.
Vedi anche
OCLIENT di esempio MFC
Classe COleDocument
Grafico della gerarchia
Classe CDocTemplate