Appunti: aggiunta di altri formati
In questo argomento viene illustrato come espandere l'elenco dei formati supportati, in particolare per il supporto OLE. L'argomento Appunti: copia e incolla dei dati descrive l'implementazione minima necessaria per supportare la copia e incolla dagli Appunti. Se si implementa tutto questo, gli unici formati inseriti negli Appunti sono CF_METAFILEPICT, CF_EMBEDSOURCE, CF_OBJECTDESCRIPTOR ed eventualmente CF_LINKSOURCE. La maggior parte delle applicazioni richiederà più formati negli Appunti rispetto a questi tre.
Registrazione di formati personalizzati
Per creare formati personalizzati, seguire la stessa procedura usata per registrare qualsiasi formato personalizzato degli Appunti: passare il nome del formato alla funzione RegisterClipboardFormat e usarne il valore restituito come ID formato.
Inserimento di formati negli Appunti
Per aggiungere altri formati a quelli inseriti negli Appunti, è necessario eseguire l'override della OnGetClipboardData
funzione nella classe derivata da COleClientItem
o COleServerItem
(a seconda che i dati da copiare siano nativi). In questa funzione è consigliabile usare la procedura seguente.
Per inserire i formati negli Appunti
Creare un oggetto
COleDataSource
.Passare questa origine dati a una funzione che aggiunge i formati di dati nativi all'elenco dei formati supportati chiamando
COleDataSource::CacheGlobalData
.Aggiungere formati standard chiamando
COleDataSource::CacheGlobalData
per ogni formato standard che si vuole supportare.
Questa tecnica viene usata nel programma di esempio OLE MFC HIERSVR (esaminare la OnGetClipboardData
funzione membro della classe CServerItem ). L'unica differenza in questo esempio è che il passaggio 3 non è implementato perché HIERSVR non supporta altri formati standard.