Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I formati degli Appunti della shell vengono usati per identificare il tipo di dati della shell trasferiti negli Appunti. La maggior parte dei formati degli Appunti della shell identifica un tipo di dati, ad esempio un elenco di nomi di file o puntatori a elenchi di identificatori di elemento (PIDL). Tuttavia, alcuni formati vengono usati per la comunicazione tra origine e destinazione. Possono accelerare il processo di trasferimento dei dati supportando operazioni shell come lo spostamento ottimizzato e delete_on_paste. I dati della shell sono sempre contenuti in un oggetto dati che usa una struttura FORMATETC come modo più generale per caratterizzare i dati. Il membro cfFormat della struttura è impostato sul formato degli Appunti per l'elemento di dati specifico. Gli altri membri forniscono informazioni aggiuntive, ad esempio il meccanismo di trasferimento dei dati. I dati sono contenuti in una struttura STGMEDIUM associata.
Annotazioni
Gli identificatori di formato degli Appunti standard hanno il formato CF_XXX. Un esempio comune è CF_TEXT, usato per il trasferimento di dati di testo ANSI. Questi identificatori hanno valori predefiniti e possono essere usati direttamente con le strutture FORMATETC . Ad eccezione di CF_HDROP, gli identificatori di formato della shell non sono predefiniti. Ad eccezione di DragWindow, hanno il formato CFSTR_XXX. Per differenziare questi valori dai formati predefiniti, vengono spesso definiti semplicemente formati. Tuttavia, a differenza dei formati predefiniti, devono essere registrati sia dall'origine che dalla destinazione prima che possano essere usati per trasferire i dati. Per registrare un formato shell, includere il file di intestazione Shlobj.h e passare l'identificatore di formato CFSTR_XXX a RegisterClipboardFormat. Questa funzione restituisce un valore di formato degli Appunti valido, che può quindi essere utilizzato come membro cfFormat di una struttura FORMATETC .
I formati degli Appunti della shell sono organizzati qui in tre gruppi, in base alla modalità di utilizzo.
- Formati per il trasferimento di oggetti file system
- Formati per il trasferimento di oggetti virtuali
- Formati per la comunicazione tra origine e destinazione
Formati per il trasferimento di oggetti file system
Questi formati vengono usati per trasferire uno o più file o altri oggetti Shell.
- CF_HDROP
- CFSTR_FILECONTENTS
- CFSTR_FILEDESCRIPTOR
- CFSTR_FILENAME
- CFSTR_FILENAMEMAP
- CFSTR_MOUNTEDVOLUME
- CFSTR_SHELLIDLIST
- CFSTR_SHELLIDLISTOFFSET
CF_HDROP
Questo formato degli Appunti viene utilizzato quando si trasferiscono i percorsi di un gruppo di file esistenti. A differenza degli altri formati shell, è predefinito, quindi non è necessario chiamare RegisterClipboardFormat. I dati sono costituiti da una struttura STGMEDIUM che contiene un oggetto memoria globale. Il membro hGlobal della struttura punta a una struttura DROPFILES come membro hGlobal .
Il membro pFiles della struttura DROPFILES contiene un offset a una matrice di caratteri con terminazione Null doppia che contiene i nomi di file. Se si estrae un formato CF_HDROP da un oggetto dati, è possibile utilizzare DragQueryFile per estrarre singoli nomi di file dall'oggetto memoria globale. Se si crea un formato CF_HDROP da inserire in un oggetto dati, sarà necessario costruire la matrice di nomi file.
La matrice di nomi file è costituita da una serie di stringhe, ognuna contenente il percorso completo di un file, incluso il carattere NULL di terminazione. Alla stringa finale viene aggiunto un carattere Null aggiuntivo per terminare la matrice. Ad esempio, se i file c:\temp1.txt e c:\temp2.txt vengono trasferiti, la matrice di caratteri è simile alla seguente:
c:\temp1.txt'\0'c:\temp2.txt'\0''\0'
Annotazioni
In questo esempio viene usato '\0' per rappresentare il carattere Null , non i caratteri letterali che devono essere inclusi.
Se l'oggetto è stato copiato negli Appunti come parte di un'operazione di trascinamento della selezione, il membro pt della struttura DROPFILES contiene le coordinate del punto in cui è stato rilasciato l'oggetto. È possibile usare DragQueryPoint per estrarre le coordinate del cursore.
Se questo formato è presente in un oggetto dati, un ciclo di trascinamento OLE simula WM_DROPFILES funzionalità con destinazioni non OLE drop. Questo è importante se l'applicazione è l'origine di un'operazione di trascinamento della selezione in un sistema Windows 3.1.
CFSTR_FILECONTENTS
Questo identificatore di formato viene usato con il formato CFSTR_FILEDESCRIPTOR per trasferire i dati come se fosse un file, indipendentemente dalla modalità di archiviazione effettiva. I dati sono costituiti da una struttura STGMEDIUM che rappresenta il contenuto di un file. Il file viene in genere rappresentato come oggetto flusso, evitando di dover inserire il contenuto del file in memoria. In tal caso, il membro tymed della struttura STGMEDIUM è impostato su TYMED_ISTREAM e il file è rappresentato da un'interfaccia IStream . Il file può anche essere un oggetto di archiviazione o di memoria globale (TYMED_ISTORAGE o TYMED_HGLOBAL). Il formato di CFSTR_FILEDESCRIPTOR associato contiene una struttura FILEDESCRIPTOR per ogni file che specifica il nome e gli attributi del file.
La destinazione considera i dati associati a un formato CFSTR_FILECONTENTS come se fosse un file. Quando la destinazione chiama IDataObject::GetData per estrarre i dati, specifica un particolare file impostando il membro lindex della struttura FORMATETC sull'indice in base zero della struttura FILEDESCRIPTOR del file nel formato CFSTR_FILEDESCRIPTOR a fianco. La destinazione usa quindi il puntatore di interfaccia restituito o l'handle di memoria globale per estrarre i dati.
CFSTR_FILEDESCRIPTOR
Questo identificatore di formato viene usato con il formato CFSTR_FILECONTENTS per trasferire i dati come gruppo di file. Questi due formati sono il modo preferito per trasferire gli oggetti Shell che non vengono archiviati come file di file system. Questi formati, ad esempio, possono essere usati per trasferire un gruppo di messaggi di posta elettronica come singoli file, anche se ogni messaggio di posta elettronica viene effettivamente archiviato come blocco di dati in un database. I dati sono costituiti da una struttura STGMEDIUM che contiene un oggetto memoria globale. Il membro hGlobal della struttura punta a una struttura FILEGROUPDESCRIPTOR seguita da una matrice contenente una struttura FILEDESCRIPTOR per ogni file del gruppo. Per ogni struttura FILEDESCRIPTOR , esiste un formato di CFSTR_FILECONTENTS separato che contiene il contenuto del file. Per identificare il formato di CFSTR_FILECONTENTS di un determinato file, impostare il valore lIndex della struttura FORMATETC sull'indice in base zero della struttura FILEDESCRIPTOR del file.
Il formato CFSTR_FILEDESCRIPTOR viene comunemente usato per trasferire i dati come se fosse un gruppo di file, indipendentemente dalla modalità di archiviazione effettiva. Dal punto di vista della destinazione, ogni formato CFSTR_FILECONTENTS rappresenta un singolo file e viene trattato di conseguenza. Tuttavia, l'origine può archiviare i dati in qualsiasi modo scelto. Anche se un formato CSFTR_FILECONTENTS potrebbe corrispondere a un singolo file, può anche rappresentare i dati estratti dall'origine da un database o da un documento di testo.
CFSTR_FILENAME
Questo identificatore di formato viene usato per trasferire un singolo file. I dati sono costituiti da una struttura STGMEDIUM che contiene un oggetto memoria globale. Il membro hGlobal della struttura punta a una singola stringa con terminazione Null contenente il percorso completo del file. Questo formato è stato sostituito da CF_HDROP, ma è supportato per la compatibilità con le versioni precedenti con le applicazioni Windows 3.1.
CFSTR_FILENAMEMAP
Questo identificatore di formato viene usato quando viene rinominato un gruppo di file nel formato CF_HDROP e trasferito. I dati sono costituiti da una struttura STGMEDIUM che contiene un oggetto memoria globale. Il membro hGlobal della struttura punta a una matrice di caratteri con terminazione Null doppia. Questa matrice contiene un nuovo nome per ogni file, nello stesso ordine in cui i file sono elencati nel formato CF_HDROP adiacente. Il formato della matrice di caratteri è uguale a quello usato da CF_HDROP per elencare i file trasferiti.
CFSTR_MOUNTEDVOLUME
Questo identificatore di formato viene usato per trasferire un percorso in un volume montato. È simile a CF_HDROP, ma contiene solo un singolo percorso e può gestire le stringhe di percorso più lunghe che potrebbero essere necessarie per rappresentare un percorso quando il volume viene montato in una cartella. I dati sono costituiti da una struttura STGMEDIUM che contiene un oggetto memoria globale. Il membro hGlobal della struttura punta a una singola stringa con terminazione Null contenente il percorso completo del file. La stringa di percorso deve terminare con un carattere '\', seguito dalla terminazione NULL.
Prima di Windows 2000, i volumi potevano essere montati solo su lettere di unità. Per i sistemi Windows 2000 e versioni successive con un'unità formattata NTFS, è anche possibile montare volumi in cartelle vuote. Questa funzionalità consente di montare un volume senza occupare una lettera di unità. Il volume montato può usare qualsiasi formato attualmente supportato, tra cui FAT, FAT32, NTFS e CDFS.
È possibile aggiungere pagine a una finestra delle proprietà Proprietà unità implementando un gestore della finestra delle proprietà. Se il volume viene montato su una lettera di unità, shell passa le informazioni sul percorso al gestore con il formato CF_HDROP . Con i sistemi Windows 2000 e versioni successive, il formato CF_HDROP viene usato quando un volume viene montato su una lettera di unità, come nei sistemi precedenti. Tuttavia, se un volume viene montato in una cartella, viene usato l'identificatore di formato CFSTR_MOUNTEDVOLUME anziché CF_HDROP.
Se vengono usate solo lettere di unità per montare i volumi, verranno usati solo CF_HDROP e i gestori delle finestre delle proprietà esistenti funzioneranno come accade con i sistemi precedenti. Tuttavia, se si desidera che il gestore visualizzi una pagina per i volumi montati su cartelle e lettere di unità, il gestore deve essere in grado di comprendere sia i formati CSFTR_MOUNTEDVOLUME che CF_HDROP.
CFSTR_SHELLIDLIST
Questo identificatore di formato viene usato quando si trasferiscono i percorsi di uno o più oggetti dello spazio dei nomi esistenti. Viene usato in modo molto simile a CF_HDROP, ma contiene PIDLs invece dei percorsi del file system. L'uso di PIDLs consente al formato CFSTR_SHELLIDLIST di gestire oggetti virtuali e oggetti file system. I dati sono una struttura STGMEDIUM che contiene un oggetto memoria globale. Il membro hGlobal della struttura punta a una struttura CIDA .
Il membro aoffset della struttura CIDA è una matrice contenente offset all'inizio della struttura ITEMIDLIST per ogni PIDL da trasferire. Per estrarre un particolare PIDL, determinare prima di tutto il relativo indice. Aggiungere quindi il valore aoffset corrispondente a tale indice all'indirizzo della struttura CIDA .
Il primo elemento di aoffset contiene un offset al PIDL completo di una cartella padre. Se questo PIDL è vuoto, la cartella padre è il desktop. Ognuno degli elementi rimanenti della matrice contiene un offset a uno dei PIDL da trasferire. Tutti questi PIDL sono relativi al PIDL della cartella padre.
È possibile utilizzare le due macro seguenti per recuperare IDL da una struttura CIDA . Il primo accetta un puntatore alla struttura e recupera il PIDL della cartella padre. Il secondo accetta un puntatore alla struttura e recupera uno degli altri PIDL, identificati dal relativo indice in base zero.
#define GetPIDLFolder(pida) (LPCITEMIDLIST)(((LPBYTE)pida)+(pida)->aoffset[0])
#define GetPIDLItem(pida, i) (LPCITEMIDLIST)(((LPBYTE)pida)+(pida)->aoffset[i+1])
Annotazioni
Il valore restituito da queste macro è un puntatore alla struttura ITEMIDLIST di PIDL. Poiché queste strutture variano in lunghezza, è necessario determinare la fine della struttura passando attraverso ognuna delle strutture SHITEMID della struttura ITEMIDLIST fino a raggiungere il valore NULL a due byte che contrassegna la fine.
CFSTR_SHELLIDLISTOFFSET
Questo identificatore di formato viene usato con formati quali CF_HDROP, CFSTR_SHELLIDLIST e CFSTR_FILECONTENTS per specificare la posizione di un gruppo di oggetti in seguito a un trasferimento. I dati sono costituiti da una struttura STGMEDIUM che contiene un oggetto memoria globale. Il membro hGlobal della struttura punta a una matrice di strutture POINT . La prima struttura specifica le coordinate dello schermo, in pixel, dell'angolo superiore sinistro del rettangolo che racchiude il gruppo. Il resto delle strutture specifica le posizioni dei singoli oggetti rispetto alla posizione del gruppo. Devono essere nello stesso ordine usato per elencare gli oggetti nel formato associato.
Formati per il trasferimento di oggetti virtuali
Il formato CFSTR_SHELLIDLIST può essere usato per trasferire sia il file system che gli oggetti virtuali. Esistono tuttavia anche diversi formati specializzati per il trasferimento di determinati tipi di oggetti virtuali.
CFSTR_NETRESOURCES
Questo identificatore di formato viene usato quando si trasferiscono risorse di rete, ad esempio un dominio o un server. I dati sono una struttura STGMEDIUM che contiene un oggetto memoria globale. Il membro hGlobal della struttura punta a una struttura NRESARRAY . Il membro nr di tale struttura indica una struttura NETRESOURCE il cui membro lpRemoteName contiene una stringa con terminazione Null che identifica la risorsa di rete. La destinazione di rilascio può quindi usare i dati con qualsiasi funzione API Windows Networking (WNet), ad esempio WNetAddConnection, per eseguire operazioni di rete sull'oggetto.
CFSTR_PRINTERGROUP
Questo identificatore di formato viene utilizzato quando si trasferiscono i nomi descrittivi delle stampanti. I dati sono una struttura STGMEDIUM che contiene un oggetto memoria globale. Il membro hGlobal della struttura punta a una stringa nello stesso formato usato con CF_HDROP. Tuttavia, il membro pFiles della struttura DROPFILES contiene uno o più nomi descrittivi di stampanti anziché percorsi di file.
CFSTR_INETURL
Questo identificatore di formato sostituisce CFSTR_SHELLURL (deprecato). Se si vuole che l'applicazione modificare gli URL degli Appunti, usare CFSTR_INETURL anziché CFSTR_SHELLURL (deprecato). Questo formato offre la rappresentazione migliore degli Appunti di un singolo URL. Se UNICODE non è definito, l'applicazione recupera la versione CF_TEXT/CFSTR_SHELLURL dell'URL. Se è definito UNICODE, l'applicazione recupera la versione CF_UNICODE dell'URL.
CFSTR_SHELLURL (deprecato)
Annotazioni
Questo identificatore di formato è stato deprecato; usare invece CFSTR_INETURL.
Formati per la comunicazione tra origine e destinazione
Questi identificatori di formato consentono la comunicazione tra origine e destinazione. I formati accompagnano i dati e offrono alle applicazioni un maggiore livello di controllo sulle operazioni move-copy-paste o drag-and-drop che coinvolgono oggetti Shell.
- CFSTR_INDRAGLOOP
- CFSTR_LOGICALPERFORMEDDROPEFFECT
- CFSTR_PASTESUCCEEDED
- CFSTR_PERFORMEDDROPEFFECT
- CFSTR_PREFERREDDROPEFFECT
- CFSTR_TARGETCLSID
- CFSTR_UNTRUSTEDDRAGDROP
- TrascinareWindow
CFSTR_INDRAGLOOP
Questo identificatore di formato viene utilizzato da un oggetto dati per indicare se si trova in un ciclo di trascinamento della selezione. I dati sono una struttura STGMEDIUM che contiene un oggetto memoria globale. Il membro hGlobal della struttura punta a un valore DWORD . Se il valore DWORD è diverso da zero, l'oggetto dati si trova all'interno di un ciclo di trascinamento della selezione. Se il valore è impostato su zero, l'oggetto dati non si trova all'interno di un ciclo di trascinamento della selezione.
Alcune destinazioni di rilascio possono chiamare IDataObject::GetData e tentare di estrarre i dati mentre l'oggetto è ancora all'interno del ciclo di trascinamento della selezione. Il rendering completo dell'oggetto per ogni occorrenza potrebbe causare la stalla del cursore di trascinamento. Se l'oggetto dati supporta CFSTR_INDRAGLOOP, la destinazione può invece usare tale formato per controllare lo stato del ciclo di trascinamento della selezione ed evitare il rendering intensivo della memoria dell'oggetto fino a quando non viene effettivamente eliminato. I formati che richiedono un utilizzo intensivo della memoria per il rendering devono essere ancora inclusi nell'enumeratore FORMATETC e nelle chiamate a IDataObject::QueryGetData. Se l'oggetto dati non imposta CFSTR_INDRAGLOOP, deve agire come se il valore sia impostato su zero.
CFSTR_LOGICALPERFORMEDDROPEFFECT
Versione 5.0.Questo identificatore di formato consente a un'origine di rilascio di chiamare il metodo IDataObject::GetData dell'oggetto dati per determinare il risultato di un trasferimento dei dati shell. I dati sono una struttura STGMEDIUM che contiene un oggetto memoria globale. Il membro hGlobal della struttura punta a una DWORD contenente un valore DROPEFFECT .
L'identificatore di formato CFSTR_PERFORMEDDROPEFFECT è stato progettato per consentire alla destinazione di indicare all'oggetto dati l'operazione effettivamente eseguita. Tuttavia, shell usa spostamenti ottimizzati per gli oggetti del file system quando possibile. In tal caso, shell imposta in genere il valore CFSTR_PERFORMEDDROPEFFECT su DROPEFFECT_NONE, per indicare all'oggetto dati che i dati originali sono stati eliminati. Pertanto, l'origine non può utilizzare il valore CFSTR_PERFORMEDDROPEFFECT per determinare quale operazione è stata eseguita. Sebbene la maggior parte delle origini non richieda queste informazioni, esistono alcune eccezioni. Ad esempio, anche se gli spostamenti ottimizzati eliminano la necessità di eliminare dati da un'origine, l'origine potrebbe comunque dover aggiornare un database correlato per indicare che i file sono stati spostati o copiati.
Se un'origine deve conoscere l'operazione eseguita, può chiamare il metodo IDataObject::GetDataObject dell'oggetto dati e richiedere il formato CFSTR_LOGICALPERFORMEDDROPEFFECT. Questo formato riflette essenzialmente ciò che accade dal punto di vista dell'utente dopo il completamento dell'operazione. Se viene creato un nuovo file e il file originale viene eliminato, l'utente visualizza un'operazione di spostamento e il valore dei dati del formato viene impostato su DROPEFFECT_MOVE. Se il file originale è ancora presente, l'utente visualizza un'operazione di copia e il valore dei dati del formato è impostato su DROPEFFECT_COPY. Se è stato creato un collegamento, il valore dei dati del formato verrà DROPEFFECT_LINK.
CFSTR_PASTESUCCEEDED
Questo identificatore di formato viene utilizzato dalla destinazione per informare l'oggetto dati, tramite il relativo metodo IDataObject::SetData , che un'operazione delete-on-paste ha avuto esito positivo. I dati sono una struttura STGMEDIUM che contiene un oggetto memoria globale. Il membro hGlobal della struttura punta a una DWORD contenente un valore DROPEFFECT . Questo formato viene utilizzato per notificare all'oggetto dati che deve completare l'operazione di taglio ed eliminare i dati originali, se necessario. Per altre informazioni, vedere Operazioni di eliminazione su incolla.
CFSTR_PERFORMEDDROPEFFECT
Questo identificatore di formato viene utilizzato dalla destinazione per informare l'oggetto dati tramite il relativo metodo IDataObject::SetData del risultato di un trasferimento dati. I dati sono una struttura STGMEDIUM che contiene un oggetto memoria globale. Il membro hGlobal della struttura punta a un DWORD impostato sul valore DROPEFFECT appropriato, in genere DROPEFFECT_MOVE o DROPEFFECT_COPY.
Questo formato viene in genere usato quando il risultato di un'operazione può essere spostato o copiato, ad esempio in un'operazione di spostamento o eliminazione ottimizzata su incolla. Fornisce un modo affidabile per la destinazione di indicare all'oggetto dati cosa è accaduto effettivamente. È stato introdotto perché il valore di pdwEffect restituito da DoDragDrop non indicava in modo affidabile quale operazione era stata eseguita. Il formato CFSTR_PERFORMEDDROPEFFECT è il modo affidabile per indicare che è stato eseguito uno spostamento non ottimizzato.
CFSTR_PREFERREDDROPEFFECT
Questo identificatore di formato viene utilizzato dall'origine per specificare se il metodo preferito per il trasferimento dei dati è lo spostamento, la copia o il collegamento. Una destinazione di rilascio richiede questo formato chiamando il metodo IDataObject::GetData dell'oggetto dati. I dati sono una struttura STGMEDIUM che contiene un oggetto memoria globale. Il membro hGlobal della struttura punta a un valore DWORD . Questo valore è impostato su DROPEFFECT_MOVE se si preferisce un'operazione di spostamento, DROPEFFECT_COPY se si preferisce un'operazione di copia o DROPEFFECT_LINK se si preferisce un'operazione di collegamento.
Questa funzionalità viene usata quando un'origine può supportare un'operazione di spostamento o copia. Usa il formato CFSTR_PREFERREDDROPEFFECT per comunicare la preferenza alla destinazione. Poiché la destinazione non è obbligato a rispettare la richiesta, la destinazione deve chiamare il metodo IDataObject::SetData dell'origine con un formato CFSTR_PERFORMEDDROPEFFECT per indicare all'oggetto dati quale operazione è stata effettivamente eseguita.
Con un'operazione di eliminazione su incolla , il formato CFSTR_PREFERREDDROPEFFECT viene usato per indicare alla destinazione se l'origine ha eseguito un taglio o una copia. Con un'operazione di trascinamento della selezione, è possibile usare CFSTR_PREFERREDDROPEFFECT formato per specificare l'azione della shell. Se questo formato non è presente, shell esegue un'azione predefinita, in base al contesto. Ad esempio, se un utente trascina un file da un volume e lo rilascia in un altro volume, l'azione predefinita della shell consiste nel copiare il file. Includendo un formato CFSTR_PREFERREDDROPEFFECT nell'oggetto dati, è possibile eseguire l'override dell'azione predefinita e indicare in modo esplicito a Shell di copiare, spostare o collegare il file. Se l'utente sceglie di trascinare con il pulsante destro, CFSTR_PREFERREDDROPEFFECT formato specifica il comando predefinito nel menu di scelta rapida di trascinamento della selezione . L'utente è ancora libero di scegliere altri comandi nel menu.
Prima di Microsoft Internet Explorer 4.0, un'applicazione indicava di trasferire i tipi di file di collegamento impostando FD_LINKUI nella struttura dwFlags del membro FILEDESCRIPTOR. Le destinazioni dovevano quindi usare una chiamata potenzialmente dispendiosa in termini di tempo a IDataObject::GetData per scoprire se è stato impostato il flag FD_LINKUI. A questo punto, il modo preferito per indicare che i collegamenti vengono trasferiti consiste nell'usare il formato CFSTR_PREFERREDDROPEFFECT impostato su DROPEFFECT_LINK. Tuttavia, per garantire la compatibilità con le versioni precedenti con i sistemi meno recenti, le origini devono comunque impostare il flag FD_LINKUI.
CFSTR_TARGETCLSID
Questo identificatore di formato viene usato da una destinazione per fornire il relativo CLSID all'origine. I dati sono una struttura STGMEDIUM che contiene un oggetto memoria globale. Il membro hGlobal della struttura punta al GUID CLSID della destinazione di rilascio.
Questo formato viene usato principalmente per consentire l'eliminazione degli oggetti trascinandoli nel Cestino. Quando un oggetto viene eliminato nel Cestino, viene chiamato il metodo IDataObject::SetData del codice sorgente con un formato CFSTR_TARGETCLSID impostato sul CLSID del Cestino (CLSID_RecycleBin). L'origine può quindi eliminare l'oggetto originale.
CFSTR_UNTRUSTEDDRAGDROP
Questo identificatore di formato viene usato da Windows Internet Explorer e dalla shell Windows per fornire un meccanismo tramite il quale bloccare o richiedere operazioni di trascinamento della selezione provenienti da Internet Explorer insieme al flag URLACTION_SHELL_ENHANCED_DRAGDROP_SECURITY.
CFSTR_UNTRUSTEDDRAGDROP viene aggiunto dall'origine di un'operazione di trascinamento della selezione per specificare che l'oggetto dati potrebbe contenere dati non attendibili. I dati sono rappresentati da una struttura STGMEDIUM che contiene un oggetto memoria globale. Il membro hGlobal della struttura punta a un DWORD impostato su un flag di azione URL appropriato per eseguire un controllo dei criteri tramite il metodo IInternetSecurityManager::P rocessUrlAction , usando il flag PUAF_ENFORCERESTRICTED .
TrascinareWindow
Questo formato viene usato in un'operazione di trascinamento della selezione per identificare l'immagine di trascinamento di un oggetto (finestra) in modo che le informazioni visive possano essere aggiornate in modo dinamico. Quando un oggetto viene trascinato su una destinazione di rilascio, un'applicazione aggiorna la struttura DROPDESCRIPTION in risposta al metodo IDropTarget::D ragOver o IDropSource::GiveFeedback . DROPDESCRIPTION viene aggiornato con un nuovo valore DROPIMAGETYPE che indica la decorazione da applicare all'oggetto visivo della finestra di trascinamento; Ad esempio, un'indicazione che il file viene copiato anziché spostato o che l'oggetto non può essere eliminato in tale percorso. Tuttavia, finché l'oggetto non riceve un messaggio di DDWM_UPDATEWINDOW , gli oggetti visivi non vengono aggiornati. Questo formato fornisce il valore HWND della finestra di trascinamento del destinatario al mittente del messaggio di DDWM_UPDATEWINDOW .
I dati degli Appunti sono di tipo TYMED_HGLOBAL. È una rappresentazione DWORD di un HWND. I dati possono essere passati alla funzione
Questo formato non richiede l'inclusione di Shlobj.h.