Classe COleServerItem

Fornisce l'interfaccia server agli elementi OLE.

Sintassi

class COleServerItem : public CDocItem

Membri

Costruttori protetti

Nome Descrizione
COleServerItem::COleServerItem Costruisce un oggetto COleServerItem.

Metodi pubblici

Nome Descrizione
COleServerItem::AddOtherClipboardData Inserisce i formati di presentazione e conversione in un COleDataSource oggetto .
COleServerItem::CopyToClipboard Copia l'elemento negli Appunti.
COleServerItem::D oDragDrop Esegue un'operazione di trascinamento della selezione.
COleServerItem::GetClipboardData Ottiene l'origine dati da utilizzare nel trasferimento dei dati (trascinamento della selezione o degli Appunti).
COleServerItem::GetDocument Restituisce il documento del server che contiene l'elemento.
COleServerItem::GetEmbedSourceData Ottiene i dati CF_EMBEDSOURCE per un elemento OLE.
COleServerItem::GetItemName Restituisce il nome dell'elemento. Utilizzato solo per gli elementi collegati.
COleServerItem::GetLinkSourceData Ottiene i dati CF_LINKSOURCE per un elemento OLE.
COleServerItem::GetObjectDescriptorData Ottiene i dati CF_OBJECTDESCRIPTOR per un elemento OLE.
COleServerItem::IsConnected Indica se l'elemento è attualmente collegato a un contenitore attivo.
COleServerItem::IsLinkedItem Indica se l'elemento rappresenta un elemento OLE collegato.
COleServerItem::NotifyChanged Aggiorna tutti i contenitori con l'aggiornamento automatico dei collegamenti.
COleServerItem::OnDoVerb Chiamato per eseguire un verbo.
COleServerItem::OnDraw Chiamato quando il contenitore richiede di disegnare l'elemento; implementazione obbligatoria.
COleServerItem::OnDrawEx Chiamata per disegno di elementi specializzati.
COleServerItem::OnGetClipboardData Chiamato dal framework per ottenere i dati che verrebbero copiati negli Appunti.
COleServerItem::OnGetExtent Chiamato dal framework per recuperare le dimensioni dell'elemento OLE.
COleServerItem::OnInitFromData Chiamato dal framework per inizializzare un elemento OLE utilizzando il contenuto dell'oggetto trasferimento dati specificato.
COleServerItem::OnQueryUpdateItems Chiamato per determinare se gli elementi collegati richiedono l'aggiornamento.
COleServerItem::OnRenderData Recupera i dati come parte del rendering ritardato.
COleServerItem::OnRenderFileData Recupera i dati in un CFile oggetto come parte del rendering ritardato.
COleServerItem::OnRenderGlobalData Recupera i dati in un oggetto HGLOBAL come parte del rendering ritardato.
COleServerItem::OnSetColorScheme Chiamato per impostare la combinazione di colori dell'elemento.
COleServerItem::OnSetData Chiamato per impostare i dati dell'elemento.
COleServerItem::OnSetExtent Chiamato dal framework per impostare le dimensioni dell'elemento OLE.
COleServerItem::OnUpdate Chiamato quando viene modificata una parte del documento in cui appartiene l'elemento.
COleServerItem::OnUpdateItems Chiamato per aggiornare la cache di presentazione di tutti gli elementi nel documento del server.
COleServerItem::SetItemName Imposta il nome dell'elemento. Utilizzato solo per gli elementi collegati.

Metodi protetti

Nome Descrizione
COleServerItem::GetDataSource Ottiene l'oggetto utilizzato per archiviare i formati di conversione.
COleServerItem::OnHide Chiamato dal framework per nascondere l'elemento OLE.
COleServerItem::OnOpen Chiamato dal framework per visualizzare l'elemento OLE nella propria finestra di primo livello.
COleServerItem::OnShow Chiamato quando il contenitore richiede di visualizzare l'elemento.

Membri dati pubblici

Nome Descrizione
COleServerItem::m_sizeExtent Informa il server sulla quantità di elemento OLE visibile.

Osservazioni:

Un elemento collegato può rappresentare alcuni o tutti i documenti del server. Un elemento incorporato rappresenta sempre un intero documento del server.

La COleServerItem classe definisce diverse funzioni membro sottoponibili a override chiamate dalle librerie a collegamento dinamico (DLL) del sistema OLE, in genere in risposta alle richieste provenienti dall'applicazione contenitore. Queste funzioni membro consentono all'applicazione contenitore di modificare indirettamente l'elemento in vari modi, ad esempio visualizzandoli, eseguendo i relativi verbi o recuperando i dati in diversi formati.

Per usare COleServerItem, derivare una classe da essa e implementare le funzioni membro OnDraw e Serialize . La OnDraw funzione fornisce la rappresentazione metafile di un elemento, consentendo di visualizzarla quando un'applicazione contenitore apre un documento composto. La Serialize funzione di CObject fornisce la rappresentazione nativa di un elemento, consentendo il trasferimento di un elemento incorporato tra il server e le applicazioni contenitore. OnGetExtent fornisce le dimensioni naturali dell'elemento al contenitore, consentendo al contenitore di ridimensionare l'elemento.

Per altre informazioni sui server e sugli argomenti correlati, vedere l'articolo Server: Implementazione di un server e "Creazione di un'applicazione contenitore/server" nell'articolo Contenitori: Funzionalità avanzate.

Gerarchia di ereditarietà

CObject

CCmdTarget

CDocItem

COleServerItem

Requisiti

Intestazione: afxole.h

COleServerItem::AddOtherClipboardData

Chiamare questa funzione per inserire i formati di presentazione e conversione per l'elemento OLE nell'oggetto specificato COleDataSource .

void AddOtherClipboardData(COleDataSource* pDataSource);

Parametri

pDataSource
Puntatore all'oggetto COleDataSource in cui devono essere inseriti i dati.

Osservazioni:

È necessario aver implementato la funzione membro OnDraw per fornire il formato di presentazione (immagine metafile) per l'elemento. Per supportare altri formati di conversione, registrarli usando l'oggetto COleDataSource restituito da GetDataSource ed eseguire l'override della funzione membro OnRenderData per fornire dati nei formati che si desidera supportare.

COleServerItem::COleServerItem

Costruisce un COleServerItem oggetto e lo aggiunge alla raccolta di elementi del documento del server.

COleServerItem(
    COleServerDoc* pServerDoc,
    BOOL bAutoDelete);

Parametri

pServerDoc
Puntatore al documento che conterrà il nuovo elemento.

bAutoDelete
Flag che indica se l'oggetto può essere eliminato quando viene rilasciato un collegamento. Impostare questa proprietà su FALSE se l'oggetto COleServerItem è una parte integrante dei dati del documento da eliminare. Impostare questa proprietà su TRUE se l'oggetto è una struttura secondaria utilizzata per identificare un intervallo nei dati del documento che possono essere eliminati dal framework.

COleServerItem::CopyToClipboard

Chiamare questa funzione per copiare l'elemento OLE negli Appunti.

void CopyToClipboard(BOOL bIncludeLink = FALSE);

Parametri

bIncludeLink
Impostare su TRUE se i dati di collegamento devono essere copiati negli Appunti. Impostare su FALSE se l'applicazione server non supporta i collegamenti.

Osservazioni:

La funzione usa la funzione membro OnGetClipboardData per creare un oggetto COleDataSource contenente i dati dell'elemento OLE nei formati supportati. La funzione inserisce quindi l'oggetto COleDataSource negli Appunti usando la funzione COleDataSource::SetClipboard . L'oggetto COleDataSource include i dati nativi dell'elemento e la relativa rappresentazione in formato CF_METAFILEPICT, nonché i dati in qualsiasi formato di conversione scelto per supportare. Per il funzionamento di questa funzione membro, è necessario aver implementato Serialize e OnDraw .

COleServerItem::D oDragDrop

Chiamare la DoDragDrop funzione membro per eseguire un'operazione di trascinamento della selezione.

DROPEFFECT DoDragDrop(
    LPCRECT lpRectItem,
    CPoint ptOffset,
    BOOL bIncludeLink = FALSE,
    DWORD dwEffects = DROPEFFECT_COPY | DROPEFFECT_MOVE,
    LPCRECT lpRectStartDrag = NULL);

Parametri

lpRectItem
Rettangolo dell'elemento sullo schermo, in pixel, rispetto all'area client.

ptOffset
Offset da lpItemRect in cui la posizione del mouse era al momento del trascinamento.

bIncludeLink
Impostare su TRUE se i dati di collegamento devono essere copiati negli Appunti. Impostarlo su FALSE se l'applicazione non supporta i collegamenti.

dwEffects
Determina gli effetti consentiti dall'origine di trascinamento nell'operazione di trascinamento (combinazione di Copia, Sposta e Collegamento).

lpRectStartDrag
Puntatore al rettangolo che definisce dove inizia effettivamente il trascinamento. Per ulteriori informazioni, vedere la sezione Osservazioni successiva.

Valore restituito

Valore dell'enumerazione DROPEFFECT. Se è DROPEFFECT_MOVE, i dati originali devono essere rimossi.

Osservazioni:

L'operazione di trascinamento della selezione non viene avviata immediatamente. Attende fino a quando il cursore del mouse non lascia il rettangolo specificato da lpRectStartDrag o fino a quando non viene passato un numero specificato di millisecondi. Se lpRectStartDrag è NULL, viene usato un rettangolo predefinito in modo che il trascinamento inizi quando il cursore del mouse sposta un pixel.

Il tempo di ritardo viene specificato da un'impostazione della chiave del Registro di sistema. È possibile modificare il tempo di ritardo chiamando CWinApp::WriteProfileString o CWinApp::WriteProfileInt. Se non si specifica il tempo di ritardo, viene utilizzato un valore predefinito di 200 millisecondi. Il tempo di ritardo del trascinamento viene archiviato nel modo seguente:

  • Il tempo di ritardo del trascinamento di Windows NT viene archiviato in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\NT\CurrentVersion\IniFileMapping\win.ini\Windows\DragDelay.

  • Il tempo di ritardo del trascinamento di Windows 3.x viene archiviato in WIN. File INI, nella sezione [Windows}.

  • Il tempo di ritardo trascinamento di Windows 95/98 viene archiviato in una versione memorizzata nella cache di WIN. INI.

Per altre informazioni sul modo in cui le informazioni sul ritardo di trascinamento vengono archiviate nel Registro di sistema o in . File INI, vedere WriteProfileString in Windows SDK.

COleServerItem::GetClipboardData

Chiamare questa funzione per riempire l'oggetto COleDataSource specificato con tutti i dati che verrebbero copiati negli Appunti se si chiama CopyToClipboard (gli stessi dati verranno trasferiti anche se si chiama DoDragDrop).

void GetClipboardData(
    COleDataSource* pDataSource,
    BOOL bIncludeLink = FALSE,
    LPPOINT lpOffset = NULL,
    LPSIZE lpSize = NULL);

Parametri

pDataSource
Puntatore all'oggetto COleDataSource che riceverà i dati dell'elemento OLE in tutti i formati supportati.

bIncludeLink
TRUE se i dati dei collegamenti devono essere copiati negli Appunti. FALSE se l'applicazione server non supporta i collegamenti.

lpOffset
Offset, in pixel, del cursore del mouse dall'origine dell'oggetto.

lpSize
Dimensione dell'oggetto in pixel.

Osservazioni:

Questa funzione chiama la funzione membro GetEmbedSourceData per ottenere i dati nativi per l'elemento OLE e chiama la funzione membro AddOtherClipboardData per ottenere il formato di presentazione e i formati di conversione supportati. Se bIncludeLink è TRUE, la funzione chiama anche GetLinkSourceData per ottenere i dati di collegamento per l'elemento.

Eseguire l'override di questa funzione se si desidera inserire i formati in un COleDataSource oggetto prima o dopo tali formati forniti da CopyToClipboard.

COleServerItem::GetDataSource

Chiamare questa funzione per ottenere l'oggetto COleDataSource usato per archiviare i formati di conversione supportati dall'applicazione server.

COleDataSource* GetDataSource();

Valore restituito

Puntatore all'oggetto COleDataSource utilizzato per archiviare i formati di conversione.

Osservazioni:

Se si vuole che l'applicazione server offra dati in un'ampia gamma di formati durante le operazioni di trasferimento dei dati, registrare tali formati con l'oggetto COleDataSource restituito da questa funzione. Ad esempio, se si desidera fornire una rappresentazione CF_TEXT dell'elemento OLE per gli Appunti o le operazioni di trascinamento della selezione, registrare il formato con l'oggetto COleDataSource restituito da questa funzione e quindi eseguire l'override della OnRenderXxxData funzione membro per fornire i dati.

COleServerItem::GetDocument

Chiamare questa funzione per ottenere un puntatore al documento che contiene l'elemento.

COleServerDoc* GetDocument() const;

Valore restituito

Puntatore al documento che contiene l'elemento; NULL se l'elemento non fa parte di un documento.

Osservazioni:

In questo modo è possibile accedere al documento del server passato come argomento al COleServerItem costruttore.

COleServerItem::GetEmbedSourceData

Chiamare questa funzione per ottenere i dati di CF_EMBEDSOURCE per un elemento OLE.

void GetEmbedSourceData(LPSTGMEDIUM lpStgMedium);

Parametri

lpStgMedium
Puntatore alla struttura STGMEDIUM che riceverà i dati CF_EMBEDSOURCE per l'elemento OLE.

Osservazioni:

Questo formato include i dati nativi dell'elemento. Per il corretto funzionamento di questa funzione, è necessario aver implementato la Serialize funzione membro.

Il risultato può quindi essere aggiunto a un'origine dati usando COleDataSource::CacheData. Questa funzione viene chiamata automaticamente da COleServerItem::OnGetClipboardData.

Per altre informazioni, vedere STGMEDIUM in Windows SDK.

COleServerItem::GetItemName

Chiamare questa funzione per ottenere il nome dell'elemento.

const CString& GetItemName() const;

Valore restituito

Nome dell'elemento.

Osservazioni:

Questa funzione viene in genere chiamata solo per gli elementi collegati.

COleServerItem::GetLinkSourceData

Chiamare questa funzione per ottenere i dati CF_LINKSOURCE per un elemento OLE.

BOOL GetLinkSourceData(LPSTGMEDIUM lpStgMedium);

Parametri

lpStgMedium
Puntatore alla struttura STGMEDIUM che riceverà i dati CF_LINKSOURCE per l'elemento OLE.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Questo formato include il CLSID che descrive il tipo dell'elemento OLE e le informazioni necessarie per individuare il documento contenente l'elemento OLE.

Il risultato può quindi essere aggiunto a un'origine dati con COleDataSource::CacheData. Questa funzione viene chiamata automaticamente da OnGetClipboardData.

Per altre informazioni, vedere STGMEDIUM in Windows SDK.

COleServerItem::GetObjectDescriptorData

Chiamare questa funzione per ottenere i dati di CF_OBJECTDESCRIPTOR per un elemento OLE.

void GetObjectDescriptorData(
    LPPOINT lpOffset,
    LPSIZE lpSize,
    LPSTGMEDIUM lpStgMedium);

Parametri

lpOffset
Offset del clic del mouse nell'angolo superiore sinistro dell'elemento OLE. Può essere NULL.

lpSize
Dimensioni dell'elemento OLE. Può essere NULL.

lpStgMedium
Puntatore alla struttura STGMEDIUM che riceverà i dati CF_OBJECTDESCRIPTOR per l'elemento OLE.

Osservazioni:

Le informazioni vengono copiate nella STGMEDIUM struttura a cui punta lpStgMedium. Questo formato include le informazioni necessarie per la finestra di dialogo Incolla speciale.

Per altre informazioni, vedere STGMEDIUM in Windows SDK.

COleServerItem::IsConnected

Chiamare questa funzione per verificare se l'elemento OLE è connesso.

BOOL IsConnected() const;

Valore restituito

Diverso da zero se l'elemento è connesso; in caso contrario, 0.

Osservazioni:

Un elemento OLE viene considerato connesso se uno o più contenitori hanno riferimenti all'elemento. Un elemento è connesso se il numero di riferimenti è maggiore di 0 o se è un elemento incorporato.

COleServerItem::IsLinkedItem

Chiamare questa funzione per verificare se l'elemento OLE è un elemento collegato.

BOOL IsLinkedItem() const;

Valore restituito

Diverso da zero se l'elemento è un elemento collegato; in caso contrario, 0.

Osservazioni:

Un elemento viene collegato se l'elemento è valido e non viene restituito nell'elenco di elementi incorporati del documento. Un elemento collegato potrebbe essere connesso o meno a un contenitore.

È comune usare la stessa classe sia per gli elementi collegati che per gli elementi incorporati. IsLinkedItem consente di fare in modo che gli elementi collegati si comportino in modo diverso rispetto agli elementi incorporati, anche se molte volte il codice è comune.

COleServerItem::m_sizeExtent

Questo membro indica al server la quantità di oggetto visibile nel documento contenitore.

CSize m_sizeExtent;

Osservazioni:

L'implementazione predefinita di OnSetExtent imposta questo membro.

COleServerItem::NotifyChanged

Chiamare questa funzione dopo la modifica dell'elemento collegato.

void NotifyChanged(DVASPECT nDrawAspect = DVASPECT_CONTENT);

Parametri

nDrawAspect
Valore dell'enumerazione DVASPECT che indica quale aspetto dell'elemento OLE è stato modificato. Per il parametro è possibile specificare uno qualsiasi dei valori riportati di seguito:

  • DVASPECT_CONTENT Item è rappresentato in modo che possa essere visualizzato come oggetto incorporato all'interno del relativo contenitore.

  • DVASPECT_THUMBNAIL viene eseguito il rendering dell'elemento in una rappresentazione di "anteprima" in modo che possa essere visualizzato in uno strumento di esplorazione.

  • DVASPECT_ICON Elemento è rappresentato da un'icona.

  • DVASPECT_DOCPRINT Elemento viene rappresentato come se fosse stampato usando il comando Stampa dal menu File.

Osservazioni:

Se un elemento contenitore è collegato al documento con un collegamento automatico, l'elemento viene aggiornato in modo da riflettere le modifiche. Nelle applicazioni contenitore scritte usando la libreria di classi Microsoft Foundation, in risposta viene chiamato COleClientItem::OnChange .

COleServerItem::OnDoVerb

Chiamato dal framework per eseguire il verbo specificato.

virtual void OnDoVerb(LONG iVerb);

Parametri

iVerb
Specifica il verbo da eseguire. Può trattarsi di uno dei seguenti elementi:

Valore Significato Simbolo
0 verbo primario OLEIVERB_PRIMARY
1 Verbo secondario (Nessuno)
-1 Visualizza elemento per la modifica OLEIVERB_SHOW
-2 Modifica elemento in una finestra separata OLEIVERB_OPEN
-3 Nascondi elemento OLEIVERB_HIDE

Il valore -1 è in genere un alias per un altro verbo. Se la modifica aperta non è supportata, -2 ha lo stesso effetto di -1. Per altri valori, vedere IOleObject::D oVerb in Windows SDK.

Osservazioni:

Se l'applicazione contenitore è stata scritta con la libreria di classi Microsoft Foundation, questa funzione viene chiamata quando viene chiamata la funzione membro COleClientItem::Activate dell'oggetto corrispondente COleClientItem . L'implementazione predefinita chiama la funzione membro OnShow se viene specificato il verbo primario o OLEIVERB_SHOW, OnOpen se viene specificato il verbo secondario o OLEIVERB_OPEN e OnHide se viene specificato OLEIVERB_HIDE. L'implementazione predefinita chiama OnShow se iVerb non è uno dei verbi elencati in precedenza.

Eseguire l'override di questa funzione se il verbo primario non visualizza l'elemento. Ad esempio, se l'elemento è una registrazione audio e il relativo verbo primario è Play, non è necessario visualizzare l'applicazione server per riprodurre l'elemento.

Per altre informazioni, vedere IOleObject::D oVerb in Windows SDK.

COleServerItem::OnDraw

Chiamato dal framework per eseguire il rendering dell'elemento OLE in un metafile.

virtual BOOL OnDraw(
    CDC* pDC,
    CSize& rSize) = 0;

Parametri

pDC
Puntatore all'oggetto CDC su cui disegnare l'elemento. Il contesto di visualizzazione viene connesso automaticamente al contesto di visualizzazione dell'attributo in modo da poter chiamare le funzioni dell'attributo, anche se in questo modo il metafile è specifico del dispositivo.

rSize
Dimensioni, in unità HIMETRIC, in cui disegnare il metafile.

Valore restituito

Diverso da zero se l'elemento è stato disegnato correttamente; in caso contrario, 0.

Osservazioni:

La rappresentazione metafile dell'elemento OLE viene usata per visualizzare l'elemento nell'applicazione contenitore. Se l'applicazione contenitore è stata scritta con microsoft Foundation Class Library, il metafile viene utilizzato dalla funzione membro Draw dell'oggetto COleClientItem corrispondente. Non vi è nessuna implementazione predefinita. È necessario eseguire l'override di questa funzione per disegnare l'elemento nel contesto di dispositivo specificato.

COleServerItem::OnDrawEx

Chiamato dal framework per tutto il disegno.

virtual BOOL OnDrawEx(
    CDC* pDC,
    DVASPECT nDrawAspect,
    CSize& rSize);

Parametri

pDC
Puntatore all'oggetto CDC su cui disegnare l'elemento. Il controller di dominio viene connesso automaticamente al controller di dominio dell'attributo in modo che sia possibile chiamare funzioni di attributo, anche se in questo modo il metafile è specifico del dispositivo.

nDrawAspect
Valore dell'enumerazione DVASPECT. Per il parametro è possibile specificare uno qualsiasi dei valori riportati di seguito:

  • DVASPECT_CONTENT Item è rappresentato in modo che possa essere visualizzato come oggetto incorporato all'interno del relativo contenitore.

  • DVASPECT_THUMBNAIL viene eseguito il rendering dell'elemento in una rappresentazione di "anteprima" in modo che possa essere visualizzato in uno strumento di esplorazione.

  • DVASPECT_ICON Elemento è rappresentato da un'icona.

  • DVASPECT_DOCPRINT Elemento viene rappresentato come se fosse stampato usando il comando Stampa dal menu File.

rSize
Dimensioni dell'elemento in unità HIMETRIC.

Valore restituito

Diverso da zero se l'elemento è stato disegnato correttamente; in caso contrario, 0.

Osservazioni:

L'implementazione predefinita chiama OnDraw quando DVASPECT è uguale a DVASPECT_CONTENT; in caso contrario, ha esito negativo.

Eseguire l'override di questa funzione per fornire dati di presentazione per aspetti diversi da DVASPECT_CONTENT, ad esempio DVASPECT_ICON o DVASPECT_THUMBNAIL.

COleServerItem::OnGetClipboardData

Chiamato dal framework per ottenere un COleDataSource oggetto contenente tutti i dati che verrebbero inseriti negli Appunti da una chiamata alla funzione membro CopyToClipboard .

virtual COleDataSource* OnGetClipboardData(
    BOOL bIncludeLink,
    LPPOINT lpOffset,
    LPSIZE lpSize);

Parametri

bIncludeLink
Impostare su TRUE se i dati di collegamento devono essere copiati negli Appunti. Impostare su FALSE se l'applicazione server non supporta i collegamenti.

lpOffset
Offset del cursore del mouse dall'origine dell'oggetto in pixel.

lpSize
Dimensione dell'oggetto in pixel.

Valore restituito

Puntatore a un oggetto COleDataSource contenente i dati degli Appunti.

Osservazioni:

L'implementazione predefinita di questa funzione chiama GetClipboardData.

COleServerItem::OnGetExtent

Chiamato dal framework per recuperare le dimensioni, in unità HIMETRIC, dell'elemento OLE.

virtual BOOL OnGetExtent(
    DVASPECT nDrawAspect,
    CSize& rSize);

Parametri

nDrawAspect
Specifica l'aspetto dell'elemento OLE i cui limiti devono essere recuperati. Per il parametro è possibile specificare uno qualsiasi dei valori riportati di seguito:

  • DVASPECT_CONTENT Item è rappresentato in modo che possa essere visualizzato come oggetto incorporato all'interno del relativo contenitore.

  • DVASPECT_THUMBNAIL viene eseguito il rendering dell'elemento in una rappresentazione di "anteprima" in modo che possa essere visualizzato in uno strumento di esplorazione.

  • DVASPECT_ICON Elemento è rappresentato da un'icona.

  • DVASPECT_DOCPRINT Elemento viene rappresentato come se fosse stampato usando il comando Stampa dal menu File.

rSize
Riferimento a un CSize oggetto che riceverà le dimensioni dell'elemento OLE.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Se l'applicazione contenitore è stata scritta con microsoft Foundation Class Library, questa funzione viene chiamata quando viene chiamata la funzione membro GetExtent dell'oggetto corrispondente COleClientItem . L'implementazione predefinita non esegue alcuna operazione. È necessario implementarlo manualmente. Eseguire l'override di questa funzione se si desidera eseguire un'elaborazione speciale quando si gestisce una richiesta per le dimensioni dell'elemento OLE.

COleServerItem::OnHide

Chiamato dal framework per nascondere l'elemento OLE.

virtual void OnHide();

Osservazioni:

Il valore predefinito chiama COleServerDoc::OnShowDocument( FALSE ). La funzione notifica anche al contenitore che l'elemento OLE è stato nascosto. Eseguire l'override di questa funzione se si desidera eseguire un'elaborazione speciale quando si nasconde un elemento OLE.

COleServerItem::OnInitFromData

Chiamato dal framework per inizializzare un elemento OLE usando il contenuto di pDataObject.

virtual BOOL OnInitFromData(
    COleDataObject* pDataObject,
    BOOL bCreation);

Parametri

pDataObject
Puntatore a un oggetto dati OLE contenente dati in vari formati per l'inizializzazione dell'elemento OLE.

bCreation
TRUE se la funzione viene chiamata per inizializzare un elemento OLE appena creato da un'applicazione contenitore. FALSE se la funzione viene chiamata per sostituire il contenuto di un elemento OLE già esistente.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Se bCreation è TRUE, questa funzione viene chiamata se un contenitore implementa Inserisci nuovo oggetto in base alla selezione corrente. I dati selezionati vengono utilizzati durante la creazione del nuovo elemento OLE. Ad esempio, quando si seleziona un intervallo di celle in un programma di foglio di calcolo e quindi si usa Inserisci nuovo oggetto per creare un grafico in base ai valori nell'intervallo selezionato. L'implementazione predefinita non esegue alcuna operazione. Eseguire l'override di questa funzione per scegliere un formato accettabile da quelli offerti da pDataObject e inizializzare l'elemento OLE in base ai dati forniti. Si tratta di un override avanzato.

Per altre informazioni, vedere IOleObject::InitFromData in Windows SDK.

COleServerItem::OnOpen

Chiamato dal framework per visualizzare l'elemento OLE in un'istanza separata dell'applicazione server, anziché sul posto.

virtual void OnOpen();

Osservazioni:

L'implementazione predefinita attiva la prima finestra cornice che visualizza il documento contenente l'elemento OLE; se l'applicazione è un mini-server, l'implementazione predefinita mostra la finestra principale. La funzione notifica inoltre al contenitore che l'elemento OLE è stato aperto.

Eseguire l'override di questa funzione se si desidera eseguire un'elaborazione speciale all'apertura di un elemento OLE. Ciò è particolarmente comune con gli elementi collegati in cui si desidera impostare la selezione sul collegamento quando viene aperto.

Per altre informazioni, vedere IOleClientSite::OnShowWindow in Windows SDK.

COleServerItem::OnQueryUpdateItems

Chiamato dal framework per determinare se gli elementi collegati nel documento del server corrente non sono aggiornati.

virtual BOOL OnQueryUpdateItems();

Valore restituito

Diverso da zero se il documento contiene elementi che richiedono aggiornamenti; 0 se tutti gli elementi sono aggiornati.

Osservazioni:

Un elemento non è aggiornato se il documento di origine è stato modificato, ma l'elemento collegato non è stato aggiornato per riflettere le modifiche apportate al documento.

COleServerItem::OnRenderData

Chiamato dal framework per recuperare i dati nel formato specificato.

virtual BOOL OnRenderData(
    LPFORMATETC lpFormatEtc,
    LPSTGMEDIUM lpStgMedium);

Parametri

lpFormatEtc
Punta alla struttura FORMATETC specificando il formato in cui vengono richieste le informazioni.

lpStgMedium
Punta a una struttura STGMEDIUM in cui devono essere restituiti i dati.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Il formato specificato viene inserito in precedenza nell'oggetto COleDataSource utilizzando la funzione membro DelayRenderData o DelayRenderFileData per il rendering ritardato. L'implementazione predefinita di questa funzione chiama rispettivamente OnRenderFileData o OnRenderGlobalData, se il supporto di archiviazione fornito è un file o una memoria. Se nessuno di questi formati viene fornito, l'implementazione predefinita restituisce 0 e non esegue alcuna operazione.

Se lpStgMedium-tymed> è TYMED_NULL, stGMEDIUM deve essere allocato e compilato come specificato da lpFormatEtc-tymed.> Se non TYMED_NULL, stGMEDIUM deve essere compilato con i dati.

Si tratta di un override avanzato. Eseguire l'override di questa funzione per fornire i dati nel formato e nel supporto richiesti. A seconda dei dati, è possibile eseguire l'override di una delle altre versioni di questa funzione. Se i dati sono di dimensioni ridotte e fisse, eseguire l'override di OnRenderGlobalData. Se i dati si trovano in un file o sono di dimensioni variabili, eseguire l'override OnRenderFileDatadi .

Per altre informazioni, vedere IDataObject::GetData, STGMEDIUM, FORMATETC e TYMED in Windows SDK.

COleServerItem::OnRenderFileData

Chiamato dal framework per recuperare i dati nel formato specificato quando il supporto di archiviazione è un file.

virtual BOOL OnRenderFileData(
    LPFORMATETC lpFormatEtc,
    CFile* pFile);

Parametri

lpFormatEtc
Punta alla struttura FORMATETC specificando il formato in cui vengono richieste le informazioni.

pFile
Punta a un CFile oggetto in cui deve essere eseguito il rendering dei dati.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Il formato specificato viene inserito in precedenza nell'oggetto COleDataSource utilizzando la funzione membro DelayRenderData per il rendering ritardato. L'implementazione predefinita di questa funzione restituisce semplicemente FALSE.

Si tratta di un override avanzato. Eseguire l'override di questa funzione per fornire i dati nel formato e nel supporto richiesti. A seconda dei dati, potrebbe essere necessario eseguire l'override di una delle altre versioni di questa funzione. Per gestire più supporti di archiviazione, eseguire l'override di OnRenderData. Se i dati si trovano in un file o sono di dimensioni variabili, eseguire l'override di OnRenderFileData.

Per altre informazioni, vedere IDataObject::GetData e FORMATETC in Windows SDK.

COleServerItem::OnRenderGlobalData

Chiamato dal framework per recuperare i dati nel formato specificato quando il supporto di archiviazione specificato è memoria globale.

virtual BOOL OnRenderGlobalData(
    LPFORMATETC lpFormatEtc,
    HGLOBAL* phGlobal);

Parametri

lpFormatEtc
Punta alla struttura FORMATETC specificando il formato in cui vengono richieste le informazioni.

phGlobal
Punta a un handle alla memoria globale in cui devono essere restituiti i dati. Se non è stata allocata alcuna memoria, questo parametro può essere NULL.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Il formato specificato viene inserito in precedenza nell'oggetto COleDataSource utilizzando la funzione membro DelayRenderData per il rendering ritardato. L'implementazione predefinita di questa funzione restituisce semplicemente FALSE.

Se phGlobal è NULL, deve essere allocato un nuovo HGLOBAL e restituito in phGlobal. In caso contrario, l'oggetto HGLOBAL specificato da phGlobal deve essere compilato con i dati. La quantità di dati inseriti in HGLOBAL non deve superare le dimensioni correnti del blocco di memoria. Inoltre, il blocco non può essere riallocato a una dimensione maggiore.

Si tratta di un override avanzato. Eseguire l'override di questa funzione per fornire i dati nel formato e nel supporto richiesti. A seconda dei dati, è possibile eseguire l'override di una delle altre versioni di questa funzione. Per gestire più supporti di archiviazione, eseguire l'override di OnRenderData. Se i dati si trovano in un file o sono di dimensioni variabili, eseguire l'override di OnRenderFileData.

Per altre informazioni, vedere IDataObject::GetData e FORMATETC in Windows SDK.

COleServerItem::OnSetColorScheme

Chiamato dal framework per specificare una tavolozza dei colori da utilizzare durante la modifica dell'elemento OLE.

virtual BOOL OnSetColorScheme(const LOGPALETTE* lpLogPalette);

Parametri

lpLogPalette
Puntatore a una struttura LOGPALETTE di Windows.

Valore restituito

Diverso da zero se viene usata la tavolozza dei colori; in caso contrario, 0.

Osservazioni:

Se l'applicazione contenitore è stata scritta usando la libreria di classi Microsoft Foundation, questa funzione viene chiamata quando viene chiamata la funzione IOleObject::SetColorScheme dell'oggetto corrispondente COleClientItem . L'implementazione predefinita restituisce FALSE. Eseguire l'override di questa funzione se si vuole usare la tavolozza consigliata. L'applicazione server non è necessaria per usare la tavolozza suggerita.

Per altre informazioni, vedere IOleObject::SetColorScheme in Windows SDK.

COleServerItem::OnSetData

Chiamato dal framework per sostituire i dati dell'elemento OLE con i dati specificati.

virtual BOOL OnSetData(
    LPFORMATETC lpFormatEtc,
    LPSTGMEDIUM lpStgMedium,
    BOOL bRelease);

Parametri

lpFormatEtc
Puntatore a una struttura FORMATETC che specifica il formato dei dati.

lpStgMedium
Puntatore a una struttura STGMEDIUM in cui risiedono i dati.

bRelease
Indica chi ha la proprietà del supporto di archiviazione dopo aver completato la chiamata di funzione. Il chiamante decide chi è responsabile del rilascio delle risorse allocate per conto del supporto di archiviazione. Il chiamante esegue questa operazione impostando bRelease. Se bRelease è diverso da zero, l'elemento del server assume la proprietà, liberando il supporto al termine dell'utilizzo. Quando bRelease è 0, il chiamante mantiene la proprietà e l'elemento del server può usare il supporto di archiviazione solo per la durata della chiamata.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

L'elemento del server non assume la proprietà dei dati finché non viene ottenuto correttamente. Ovvero, non assume la proprietà se restituisce 0. Se l'origine dati assume la proprietà, libera il supporto di archiviazione chiamando la funzione ReleaseStgMedium .

L'implementazione predefinita non esegue alcuna operazione. Eseguire l'override di questa funzione per sostituire i dati dell'elemento OLE con i dati specificati. Si tratta di un override avanzato.

Per altre informazioni, vedere STGMEDIUM, FORMATETC e ReleaseStgMedium in Windows SDK.

COleServerItem::OnSetExtent

Chiamato dal framework per indicare all'elemento OLE la quantità di spazio disponibile nel documento contenitore.

virtual BOOL OnSetExtent(
    DVASPECT nDrawAspect,
    const CSize& size);

Parametri

nDrawAspect
Specifica l'aspetto dell'elemento OLE i cui limiti vengono specificati. Per il parametro è possibile specificare uno qualsiasi dei valori riportati di seguito:

  • DVASPECT_CONTENT Item è rappresentato in modo che possa essere visualizzato come oggetto incorporato all'interno del relativo contenitore.

  • DVASPECT_THUMBNAIL viene eseguito il rendering dell'elemento in una rappresentazione di "anteprima" in modo che possa essere visualizzato in uno strumento di esplorazione.

  • DVASPECT_ICON Elemento è rappresentato da un'icona.

  • DVASPECT_DOCPRINT Elemento viene rappresentato come se fosse stampato usando il comando Stampa dal menu File.

size
Struttura CSize che specifica le nuove dimensioni dell'elemento OLE.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Se l'applicazione contenitore è stata scritta con microsoft Foundation Class Library, questa funzione viene chiamata quando viene chiamata la funzione membro SetExtent dell'oggetto corrispondente COleClientItem . L'implementazione predefinita imposta il membro m_sizeExtent sulla dimensione specificata se nDrawAspect è DVASPECT_CONTENT; in caso contrario, restituisce 0. Eseguire l'override di questa funzione per eseguire un'elaborazione speciale quando si modificano le dimensioni dell'elemento.

COleServerItem::OnShow

Chiamato dal framework per indicare all'applicazione server di visualizzare l'elemento OLE sul posto.

virtual void OnShow();

Osservazioni:

Questa funzione viene in genere chiamata quando l'utente dell'applicazione contenitore crea un elemento o esegue un verbo, ad esempio Edit, che richiede la visualizzazione dell'elemento. L'implementazione predefinita tenta l'attivazione sul posto. In caso di errore, la funzione chiama la OnOpen funzione membro per visualizzare l'elemento OLE in una finestra separata.

Eseguire l'override di questa funzione se si desidera eseguire un'elaborazione speciale quando viene visualizzato un elemento OLE.

COleServerItem::OnUpdate

Chiamato dal framework quando un elemento è stato modificato.

virtual void OnUpdate(
    COleServerItem* pSender,
    LPARAM lHint,
    CObject* pHint,
    DVASPECT nDrawAspect);

Parametri

pSender
Puntatore all'elemento che ha modificato il documento. Può essere NULL.

lHint
Contiene informazioni sulla modifica.

pHint
Puntatore a un oggetto che archivia le informazioni sulla modifica.

nDrawAspect
Valore dell'enumerazione DVASPECT. Questo parametro può avere uno dei valori seguenti:

  • DVASPECT_CONTENT Item è rappresentato in modo che possa essere visualizzato come oggetto incorporato all'interno del relativo contenitore.

  • DVASPECT_THUMBNAIL viene eseguito il rendering dell'elemento in una rappresentazione di "anteprima" in modo che possa essere visualizzato in uno strumento di esplorazione.

  • DVASPECT_ICON Elemento è rappresentato da un'icona.

  • DVASPECT_DOCPRINT Elemento viene rappresentato come se fosse stampato usando il comando Stampa dal menu File.

Osservazioni:

L'implementazione predefinita chiama NotifyChanged, indipendentemente dall'hint o dal mittente.

COleServerItem::OnUpdateItems

Chiamato dal framework per aggiornare tutti gli elementi nel documento del server.

virtual void OnUpdateItems();

Osservazioni:

L'implementazione predefinita chiama UpdateLink per tutti gli COleClientItem oggetti nel documento.

COleServerItem::SetItemName

Chiamare questa funzione quando si crea un elemento collegato per impostarne il nome.

void SetItemName(LPCTSTR lpszItemName);

Parametri

lpszItemName
Puntatore al nuovo nome dell'elemento.

Osservazioni:

Il nome deve essere univoco all'interno del documento. Quando viene chiamata un'applicazione server per modificare un elemento collegato, l'applicazione usa questo nome per trovare l'elemento. Non è necessario chiamare questa funzione per gli elementi incorporati.

Vedi anche

HIERSVR di esempio MFC
Classe CDocItem
Grafico della gerarchia
Classe COleClientItem
Classe COleServerDoc
Classe COleTemplateServer