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à
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 OnRenderFileData
di .
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