Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
Les formats du Presse-papiers shell sont utilisés pour identifier le type de données Shell transférées via le Presse-papiers. La plupart des formats de Presse-papiers Shell identifient un type de données, tel qu’une liste de noms de fichiers ou de pointeurs vers des listes d’identificateurs d’élément (PIDL). Toutefois, certains formats sont utilisés pour la communication entre la source et la cible. Ils peuvent accélérer le processus de transfert de données en prenant en charge les opérations Shell telles que le déplacement optimisé et le delete_on_paste. Les données shell sont toujours contenues dans un objet de données qui utilise une structure FORMATETC comme moyen plus général de caractériser les données. Le membre cfFormat de la structure est défini sur le format du Presse-papiers pour l’élément de données particulier. Les autres membres fournissent des informations supplémentaires, telles que le mécanisme de transfert de données. Les données sont contenues dans une structure STGMEDIUM associée.
Note
Les identificateurs de format du Presse-papiers standard ont le formulaire CF_XXX. Un exemple courant est CF_TEXT, qui est utilisé pour transférer des données texte ANSI. Ces identificateurs ont des valeurs prédéfinies et peuvent être utilisés directement avec des structures FORMATETC . À l’exception de CF_HDROP, les identificateurs de format Shell ne sont pas prédéfinis. À l’exception de DragWindow, ils ont le formulaire CFSTR_XXX. Pour différencier ces valeurs des formats prédéfinis, elles sont souvent appelées simplement formats. Toutefois, contrairement aux formats prédéfinis, ils doivent être enregistrés par source et cible avant de pouvoir être utilisés pour transférer des données. Pour inscrire un format Shell, incluez le fichier d’en-tête Shlobj.h et transmettez l’identificateur de format CFSTR_XXX à RegisterClipboardFormat. Cette fonction retourne une valeur de format de presse-papiers valide, qui peut ensuite être utilisée comme membre cfFormat d’une structure FORMATETC .
Les formats du Presse-papiers Shell sont organisés ici en trois groupes, en fonction de la façon dont ils sont utilisés.
- Formats pour le transfert d’objets de système de fichiers
- Formats de transfert d’objets virtuels
- Formats de communication entre la source et la cible
Formats pour le transfert d’objets de système de fichiers
Ces formats sont utilisés pour transférer un ou plusieurs fichiers ou d’autres objets Shell.
- CF_HDROP
- CFSTR_FILECONTENTS
- CFSTR_FILEDESCRIPTOR
- CFSTR_FILENAME
- CFSTR_FILENAMEMAP
- CFSTR_MOUNTEDVOLUME
- CFSTR_SHELLIDLIST
- CFSTR_SHELLIDLISTOFFSET
CF_HDROP
Ce format de Presse-papiers est utilisé lors du transfert des emplacements d’un groupe de fichiers existants. Contrairement aux autres formats Shell, il est prédéfini. Il n’est donc pas nécessaire d’appeler RegisterClipboardFormat. Les données se composent d’une structure STGMEDIUM qui contient un objet mémoire global. Le membre hGlobal de la structure pointe vers une structure DROPFILES comme membre hGlobal .
Le membre pFiles de la structure DROPFILES contient un décalage vers un tableau de caractères à double fin null qui contient les noms de fichiers. Si vous extrayez un format CF_HDROP à partir d’un objet de données, vous pouvez utiliser DragQueryFile pour extraire des noms de fichiers individuels de l’objet mémoire globale. Si vous créez un format CF_HDROP à placer dans un objet de données, vous devez construire le tableau de noms de fichier.
Le tableau de noms de fichiers se compose d’une série de chaînes, chacune contenant le chemin complet d’un fichier, y compris le caractère NULL de fin. Un caractère null supplémentaire est ajouté à la chaîne finale pour terminer le tableau. Par exemple, si les fichiers c :\temp1.txt et c :\temp2.txt sont transférés, le tableau de caractères ressemble à ceci :
c:\temp1.txt'\0'c:\temp2.txt'\0''\0'
Note
Dans cet exemple, « \0 » est utilisé pour représenter le caractère Null , et non les caractères littéraux qui doivent être inclus.
Si l’objet a été copié dans le Presse-papiers dans le cadre d’une opération de glisser-déplacer, le membre pt de la structure DROPFILES contient les coordonnées du point où l’objet a été supprimé. Vous pouvez utiliser DragQueryPoint pour extraire les coordonnées du curseur.
Si ce format est présent dans un objet de données, une boucle de glisser OLE simule WM_DROPFILES fonctionnalité avec des cibles de déplacement non OLE. Cela est important si votre application est la source d’une opération de glisser-déplacer sur un système Windows 3.1.
CFSTR_FILECONTENTS
Cet identificateur de format est utilisé avec le format CFSTR_FILEDESCRIPTOR pour transférer des données comme s’il s’agissait d’un fichier, quelle que soit la façon dont elle est réellement stockée. Les données se composent d’une structure STGMEDIUM qui représente le contenu d’un fichier. Le fichier est normalement représenté en tant qu’objet de flux, ce qui évite d’avoir à placer le contenu du fichier en mémoire. Dans ce cas, le membre tymed de la structure STGMEDIUM est défini sur TYMED_ISTREAM, et le fichier est représenté par une interface IStream . Le fichier peut également être un objet de stockage ou de mémoire globale (TYMED_ISTORAGE ou TYMED_HGLOBAL). Le format CFSTR_FILEDESCRIPTOR associé contient une structure FILEDESCRIPTOR pour chaque fichier qui spécifie le nom et les attributs du fichier.
La cible traite les données associées à un format CFSTR_FILECONTENTS comme s’il s’agissait d’un fichier. Lorsque la cible appelle IDataObject ::GetData pour extraire les données, elle spécifie un fichier particulier en définissant le membre lindex de la structure FORMATETC sur l’index de base zéro de la structure FILEDESCRIPTOR du fichier au format CFSTR_FILEDESCRIPTOR associé. La cible utilise ensuite le pointeur d’interface retourné ou le handle de mémoire globale pour extraire les données.
CFSTR_FILEDESCRIPTOR
Cet identificateur de format est utilisé avec le format CFSTR_FILECONTENTS pour transférer des données en tant que groupe de fichiers. Ces deux formats sont le moyen préféré de transférer des objets Shell qui ne sont pas stockés en tant que fichiers de système de fichiers. Par exemple, ces formats peuvent être utilisés pour transférer un groupe de messages électroniques sous forme de fichiers individuels, même si chaque e-mail est réellement stocké sous forme de bloc de données dans une base de données. Les données se composent d’une structure STGMEDIUM qui contient un objet mémoire global. Le membre hGlobal de la structure pointe vers une structure FILEGROUPDESCRIPTOR suivie d’un tableau contenant une structure FILEDESCRIPTOR pour chaque fichier du groupe. Pour chaque structure FILEDESCRIPTOR , il existe un format CFSTR_FILECONTENTS distinct qui contient le contenu du fichier. Pour identifier le format CFSTR_FILECONTENTS d’un fichier particulier, définissez la valeur lIndex de la structure FORMATETC sur l’index de base zéro de la structure FILEDESCRIPTOR du fichier.
Le format CFSTR_FILEDESCRIPTOR est couramment utilisé pour transférer des données comme s’il s’agissait d’un groupe de fichiers, quelle que soit la façon dont elles sont réellement stockées. Du point de vue de la cible, chaque format de CFSTR_FILECONTENTS représente un seul fichier et est traité en conséquence. Toutefois, la source peut stocker les données de n’importe quelle façon qu’elles choisissent. Bien qu’un format de CSFTR_FILECONTENTS corresponde à un seul fichier, il peut également représenter des données extraites par la source d’une base de données ou d’un document texte.
CFSTR_FILENAME
Cet identificateur de format est utilisé pour transférer un seul fichier. Les données se composent d’une structure STGMEDIUM qui contient un objet mémoire global. Le membre hGlobal de la structure pointe vers une seule chaîne terminée par null contenant le chemin d’accès complet du fichier. Ce format a été remplacé par CF_HDROP, mais il est pris en charge pour la compatibilité descendante avec les applications Windows 3.1.
CFSTR_FILENAMEMAP
Cet identificateur de format est utilisé lorsqu’un groupe de fichiers au format CF_HDROP est renommé et transféré. Les données se composent d’une structure STGMEDIUM qui contient un objet mémoire global. Le membre hGlobal de la structure pointe vers un tableau de caractères à double fin null. Ce tableau contient un nouveau nom pour chaque fichier, dans le même ordre que celui indiqué dans le format de CF_HDROP associé. Le format du tableau de caractères est le même que celui utilisé par CF_HDROP pour répertorier les fichiers transférés.
CFSTR_MOUNTEDVOLUME
Cet identificateur de format est utilisé pour transférer un chemin d’accès sur un volume monté. Il est similaire à CF_HDROP, mais il ne contient qu’un seul chemin et peut gérer les chaînes de chemin d’accès plus longues qui peuvent être nécessaires pour représenter un chemin d’accès lorsque le volume est monté sur un dossier. Les données se composent d’une structure STGMEDIUM qui contient un objet mémoire global. Le membre hGlobal de la structure pointe vers une seule chaîne terminée par null contenant le chemin d’accès complet du fichier. La chaîne de chemin d’accès doit se terminer par un caractère « \ », suivi de la valeur NULL de fin.
Avant Windows 2000, les volumes ne peuvent être montés que sur les lettres de lecteur. Pour Windows systèmes 2000 et versions ultérieures avec un lecteur au format NTFS, vous pouvez également monter des volumes sur des dossiers vides. Cette fonctionnalité permet à un volume d’être monté sans prendre de lettre de lecteur. Le volume monté peut utiliser n’importe quel format actuellement pris en charge, notamment FAT, FAT32, NTFS et CDFS.
Vous pouvez ajouter des pages à une feuille de propriétés Propriétés du lecteur en implémentant un gestionnaire de feuille de propriétés. Si le volume est monté sur une lettre de lecteur, l’interpréteur de commandes transmet les informations de chemin d’accès au gestionnaire au format CF_HDROP . Avec Windows systèmes 2000 et ultérieurs, le format CF_HDROP est utilisé lorsqu’un volume est monté sur une lettre de lecteur, comme avec les systèmes antérieurs. Toutefois, si un volume est monté sur un dossier, l’identificateur de format CFSTR_MOUNTEDVOLUME est utilisé au lieu de CF_HDROP.
Si seules les lettres de lecteur seront utilisées pour monter des volumes, seules CF_HDROP seront utilisées et les gestionnaires de feuille de propriétés existants fonctionneront comme ils l’ont fait avec les systèmes antérieurs. Toutefois, si vous souhaitez que votre gestionnaire affiche une page pour les volumes montés sur des dossiers ainsi que des lettres de lecteur, le gestionnaire doit être en mesure de comprendre les formats CSFTR_MOUNTEDVOLUME et CF_HDROP.
CFSTR_SHELLIDLIST
Cet identificateur de format est utilisé lors du transfert des emplacements d’un ou plusieurs objets d’espace de noms existants. Il est utilisé de la même façon que CF_HDROP, mais il contient des CODES PIDL au lieu des chemins du système de fichiers. L’utilisation de PIDLs permet au format CFSTR_SHELLIDLIST de gérer les objets virtuels ainsi que les objets du système de fichiers. Les données sont une structure STGMEDIUM qui contient un objet mémoire global. Le membre hGlobal de la structure pointe vers une structure de l’ACDI .
Le membre aoffset de la structure de l’ACDI est un tableau contenant des décalages au début de la structure ITEMIDLIST pour chaque PIDL transféré. Pour extraire un CODE PIDL particulier, commencez par déterminer son index. Ensuite, ajoutez la valeur aoffset qui correspond à cet index à l’adresse de la structure de l’ACDI .
Le premier élément d’aoffset contient un décalage vers le PIDL complet d’un dossier parent. Si ce code PIDL est vide, le dossier parent est le bureau. Chacun des éléments restants du tableau contient un décalage vers l’un des PIDL à transférer. Tous ces PIDL sont relatifs à l’ADRESSE PIDL du dossier parent.
Les deux macros suivantes peuvent être utilisées pour récupérer des LISTES de données personnelles à partir d’une structure de l’ACDI . Le premier prend un pointeur vers la structure et récupère le code PIDL du dossier parent. La deuxième prend un pointeur vers la structure et récupère l’un des autres PIDL, identifiés par son index de base zéro.
#define GetPIDLFolder(pida) (LPCITEMIDLIST)(((LPBYTE)pida)+(pida)->aoffset[0])
#define GetPIDLItem(pida, i) (LPCITEMIDLIST)(((LPBYTE)pida)+(pida)->aoffset[i+1])
Note
La valeur retournée par ces macros est un pointeur vers la structure ITEMIDLIST du PIDL. Étant donné que ces structures varient en longueur, vous devez déterminer la fin de la structure en parcourant chacune des structures SHITEMID de la structure ITEMIDLIST jusqu’à atteindre la valeur NULL à deux octets qui marque la fin.
CFSTR_SHELLIDLISTOFFSET
Cet identificateur de format est utilisé avec des formats tels que CF_HDROP, CFSTR_SHELLIDLIST et CFSTR_FILECONTENTS pour spécifier la position d’un groupe d’objets après un transfert. Les données se composent d’une structure STGMEDIUM qui contient un objet mémoire global. Le membre hGlobal de la structure pointe vers un tableau de structures POINT . La première structure spécifie les coordonnées de l’écran, en pixels, du coin supérieur gauche du rectangle qui entoure le groupe. Le reste des structures spécifient les emplacements des objets individuels par rapport à la position du groupe. Ils doivent être dans le même ordre que celui utilisé pour répertorier les objets au format associé.
Formats de transfert d’objets virtuels
Le format CFSTR_SHELLIDLIST peut être utilisé pour transférer à la fois le système de fichiers et les objets virtuels. Toutefois, il existe également plusieurs formats spécialisés pour transférer des types particuliers d’objets virtuels.
CFSTR_NETRESOURCES
Cet identificateur de format est utilisé lors du transfert de ressources réseau, telles qu’un domaine ou un serveur. Les données sont une structure STGMEDIUM qui contient un objet mémoire global. Le membre hGlobal de la structure pointe vers une structure NRESARRAY . Le membre nr de cette structure indique une structure NETRESOURCE dont le membre lpRemoteName contient une chaîne terminée par null identifiant la ressource réseau. La cible de suppression peut ensuite utiliser les données avec l’une des fonctions d’API Windows Networking (WNet), telles que WNetAddConnection, pour effectuer des opérations réseau sur l’objet.
CFSTR_PRINTERGROUP
Cet identificateur de format est utilisé lors du transfert des noms conviviaux des imprimantes. Les données sont une structure STGMEDIUM qui contient un objet mémoire global. Le membre hGlobal de la structure pointe vers une chaîne au même format que celui utilisé avec CF_HDROP. Toutefois, le membre pFiles de la structure DROPFILES contient un ou plusieurs noms conviviaux d’imprimantes au lieu des chemins d’accès aux fichiers.
CFSTR_INETURL
Cet identificateur de format remplace CFSTR_SHELLURL (déconseillé). Si vous souhaitez que votre application manipule des URL du Presse-papiers, utilisez CFSTR_INETURL au lieu de CFSTR_SHELLURL (déconseillé). Ce format offre la meilleure représentation du Presse-papiers d’une URL unique. Si UNICODE n’est pas défini, l’application récupère la version CF_TEXT/CFSTR_SHELLURL de l’URL. Si UNICODE est défini, l’application récupère la version CF_UNICODE de l’URL.
CFSTR_SHELLURL (déconseillé)
Note
Cet identificateur de format a été déconseillé ; utilisez CFSTR_INETURL à la place.
Formats de communication entre la source et la cible
Ces identificateurs de format autorisent la communication entre la source et la cible. Les formats accompagnent les données et donnent aux applications un plus grand degré de contrôle sur les opérations de déplacement-copier-coller ou glisser-déplacer impliquant des objets Shell.
- CFSTR_INDRAGLOOP
- CFSTR_LOGICALPERFORMEDDROPEFFECT
- CFSTR_PASTESUCCEEDED
- CFSTR_PERFORMEDDROPEFFECT
- CFSTR_PREFERREDDROPEFFECT
- CFSTR_TARGETCLSID
- CFSTR_UNTRUSTEDDRAGDROP
- DragWindow
CFSTR_INDRAGLOOP
Cet identificateur de format est utilisé par un objet de données pour indiquer s’il se trouve dans une boucle glisser-déplacer. Les données sont une structure STGMEDIUM qui contient un objet mémoire global. Le membre hGlobal de la structure pointe vers une valeur DWORD . Si la valeur DWORD n’est pas nulle, l’objet de données se trouve dans une boucle de glisser-déplacer. Si la valeur est définie sur zéro, l’objet de données n’est pas dans une boucle glisser-déplacer.
Certaines cibles de déplacement peuvent appeler IDataObject ::GetData et tenter d’extraire des données pendant que l’objet se trouve toujours dans la boucle glisser-déplacer. Le rendu complet de l’objet pour chaque occurrence de ce type peut entraîner le blocage du curseur de glissement. Si l’objet de données prend en charge CFSTR_INDRAGLOOP, la cible peut utiliser ce format pour vérifier l’état de la boucle glisser-déplacer et éviter le rendu intensif de la mémoire de l’objet jusqu’à ce qu’il soit réellement supprimé. Les formats nécessitant beaucoup de mémoire pour le rendu doivent toujours être inclus dans l’énumérateur FORMATETC et dans les appels à IDataObject ::QueryGetData. Si l’objet de données ne définit pas CFSTR_INDRAGLOOP, il doit agir comme si la valeur est définie sur zéro.
CFSTR_LOGICALPERFORMEDDROPEFFECT
Version 5.0.Cet identificateur de format permet à une source de suppression d’appeler la méthode IDataObject ::GetData de l’objet de données pour déterminer le résultat d’un transfert de données Shell. Les données sont une structure STGMEDIUM qui contient un objet mémoire global. Le membre hGlobal de la structure pointe vers un DWORD contenant une valeur DROPEFFECT .
L’identificateur de format CFSTR_PERFORMEDDROPEFFECT était destiné à permettre à la cible d’indiquer à l’objet de données quelle opération a réellement eu lieu. Toutefois, l’interpréteur de commandes utilise des déplacements optimisés pour les objets de système de fichiers dans la mesure du possible. Dans ce cas, l’interpréteur de commandes définit normalement la valeur CFSTR_PERFORMEDDROPEFFECT sur DROPEFFECT_NONE, pour indiquer à l’objet de données que les données d’origine ont été supprimées. Par conséquent, la source ne peut pas utiliser la valeur CFSTR_PERFORMEDDROPEFFECT pour déterminer quelle opération a eu lieu. Bien que la plupart des sources n’ont pas besoin de ces informations, il existe certaines exceptions. Par exemple, même si les déplacements optimisés éliminent la nécessité d’une source pour supprimer des données, la source peut encore avoir besoin de mettre à jour une base de données associée pour indiquer que les fichiers ont été déplacés ou copiés.
Si une source doit savoir quelle opération a eu lieu, elle peut appeler la méthode IDataObject ::GetData de l’objet de données et demander le format CFSTR_LOGICALPERFORMEDDROPEFFECT. Ce format reflète essentiellement ce qui se passe du point de vue de l’utilisateur une fois l’opération terminée. Si un nouveau fichier est créé et que le fichier d’origine est supprimé, l’utilisateur voit une opération de déplacement et la valeur de données du format est définie sur DROPEFFECT_MOVE. Si le fichier d’origine est toujours là, l’utilisateur voit une opération de copie et la valeur de données du format est définie sur DROPEFFECT_COPY. Si un lien a été créé, la valeur de données du format est DROPEFFECT_LINK.
CFSTR_PASTESUCCEEDED
Cet identificateur de format est utilisé par la cible pour informer l’objet de données, par le biais de sa méthode IDataObject ::SetData , qu’une opération delete-on-paste a réussi. Les données sont une structure STGMEDIUM qui contient un objet mémoire global. Le membre hGlobal de la structure pointe vers un DWORD contenant une valeur DROPEFFECT . Ce format est utilisé pour avertir l’objet de données qu’il doit effectuer l’opération de coupe et supprimer les données d’origine, si nécessaire. Pour plus d’informations, consultez Opérations delete-on-paste.
CFSTR_PERFORMEDDROPEFFECT
Cet identificateur de format est utilisé par la cible pour informer l’objet de données via sa méthode IDataObject ::SetData du résultat d’un transfert de données. Les données sont une structure STGMEDIUM qui contient un objet mémoire global. Le membre hGlobal de la structure pointe vers une valeur DWORD définie sur la valeur DROPEFFECT appropriée, normalement DROPEFFECT_MOVE ou DROPEFFECT_COPY.
Ce format est normalement utilisé lorsque le résultat d’une opération peut être déplacé ou copié, par exemple dans une opération de déplacement ou de suppression optimisée. Il fournit un moyen fiable pour la cible d’indiquer à l’objet de données ce qui s’est réellement passé. Elle a été introduite parce que la valeur de pdwEffect retournée par DoDragDrop n’a pas indiqué de manière fiable quelle opération avait eu lieu. Le format CFSTR_PERFORMEDDROPEFFECT est le moyen fiable d’indiquer qu’un déplacement non optimisé a eu lieu.
CFSTR_PREFERREDDROPEFFECT
Cet identificateur de format est utilisé par la source pour spécifier si sa méthode préférée de transfert de données est le déplacement, la copie ou le lien. Une cible déroulante demande ce format en appelant la méthode IDataObject ::GetData de l’objet de données. Les données sont une structure STGMEDIUM qui contient un objet mémoire global. Le membre hGlobal de la structure pointe vers une valeur DWORD . Cette valeur est définie sur DROPEFFECT_MOVE si une opération de déplacement est préférée, DROPEFFECT_COPY si une opération de copie est préférée ou DROPEFFECT_LINK si une opération de liaison est préférée.
Cette fonctionnalité est utilisée lorsqu’une source peut prendre en charge une opération de déplacement ou de copie. Il utilise le format CFSTR_PREFERREDDROPEFFECT pour communiquer sa préférence à la cible. Étant donné que la cible n’est pas tenue d’honorer la requête, la cible doit appeler la méthode IDataObject ::SetData de la source avec un format CFSTR_PERFORMEDDROPEFFECT pour indiquer à l’objet de données quelle opération a été effectuée.
Avec une opération de suppression sur collage , le format CFSTR_PREFERREDDROPEFFECT est utilisé pour indiquer à la cible si la source a effectué une coupe ou une copie. Avec une opération de glisser-déplacer, vous pouvez utiliser CFSTR_PREFERREDDROPEFFECT format pour spécifier l’action de l’interpréteur de commandes. Si ce format n’est pas présent, l’interpréteur de commandes exécute une action par défaut, en fonction du contexte. Par exemple, si un utilisateur fait glisser un fichier d’un volume et le supprime sur un autre volume, l’action par défaut de l’interpréteur de commandes consiste à copier le fichier. En incluant un format CFSTR_PREFERREDDROPEFFECT dans l’objet de données, vous pouvez remplacer l’action par défaut et indiquer explicitement à l’interpréteur de commandes de copier, déplacer ou lier le fichier. Si l’utilisateur choisit de faire glisser avec le bouton droit, CFSTR_PREFERREDDROPEFFECT format spécifie la commande par défaut dans le menu contextuel glisser-déplacer . L’utilisateur est toujours libre de choisir d’autres commandes dans le menu.
Avant Microsoft Internet Explorer 4.0, une application a indiqué qu’elle transférait des types de fichiers de raccourci en définissant FD_LINKUI dans la structure dwFlags membre de la structure FILEDESCRIPTOR. Les cibles devaient ensuite utiliser un appel potentiellement fastidieux à IDataObject ::GetData pour déterminer si l’indicateur de FD_LINKUI a été défini. À présent, la méthode recommandée pour indiquer que les raccourcis sont transférés consiste à utiliser le format CFSTR_PREFERREDDROPEFFECT défini sur DROPEFFECT_LINK. Toutefois, pour la compatibilité descendante avec les systèmes plus anciens, les sources doivent toujours définir l’indicateur de FD_LINKUI.
CFSTR_TARGETCLSID
Cet identificateur de format est utilisé par une cible pour fournir son CLSID à la source. Les données sont une structure STGMEDIUM qui contient un objet mémoire global. Le membre hGlobal de la structure pointe vers le GUID CLSID de la cible de déplacement.
Ce format est principalement utilisé pour permettre aux objets d’être supprimés en les faisant glisser vers la Corbeille. Lorsqu’un objet est supprimé dans la Corbeille, la méthode IDataObject ::SetData de la source est appelée avec un format CFSTR_TARGETCLSID défini sur le CLSID de la Corbeille (CLSID_RecycleBin). La source peut ensuite supprimer l’objet d’origine.
CFSTR_UNTRUSTEDDRAGDROP
Cet identificateur de format est utilisé par Windows Internet Explorer et l’interpréteur de commandes Windows pour fournir un mécanisme par lequel bloquer ou demander des opérations de glisser-déplacer provenant de Internet Explorer conjointement avec l’indicateur URLACTION_SHELL_ENHANCED_DRAGDROP_SECURITY.
CFSTR_UNTRUSTEDDRAGDROP est ajouté par la source d’une opération de glisser-déplacer pour spécifier que l’objet de données peut contenir des données non fiables. Les données sont représentées par une structure STGMEDIUM qui contient un objet mémoire global. Le membre hGlobal de la structure pointe vers un indicateur DWORD défini sur un indicateur d’action d’URL approprié pour provoquer une vérification de stratégie via la méthode IInternetSecurityManager ::P rocessUrlAction , à l’aide de l’indicateur PUAF_ENFORCERESTRICTED .
DragWindow
Ce format est utilisé dans une opération de glisser-déplacer pour identifier l’image (fenêtre) d’un objet afin que ses informations visuelles puissent être mises à jour dynamiquement. Lorsqu’un objet est déplacé sur une cible de déplacement, une application met à jour sa structure DROPDESCRIPTION en réponse à la méthode IDropTarget ::D ragOver ou IDropSource ::GiveFeedback . DropDESCRIPTION est mis à jour avec une nouvelle valeur DROPIMAGETYPE qui indique la décoration à appliquer au visuel de la fenêtre de glissement ; par exemple, une indication indiquant que le fichier est copié plutôt que déplacé ou que l’objet ne peut pas être supprimé à cet emplacement. Toutefois, jusqu’à ce que l’objet reçoive un message DDWM_UPDATEWINDOW , les visuels ne sont pas mis à jour. Ce format fournit le HWND de la fenêtre de glisser du destinataire vers l’expéditeur du message DDWM_UPDATEWINDOW .
Les données du Presse-papiers sont de type TYMED_HGLOBAL. Il s’agit d’une représentation DWORD d’un HWND. Les données peuvent être transmises à la fonction ULongToHandle, définie dans Basetsd.h, pour fournir une HWND à utiliser sur Windows 64 bits.
Ce format ne nécessite pas l’inclusion de Shlobj.h.