LE PRESSE-PAPIER
Le presse-papier a été intégré
dans la famille des systèmes d'exploitation Windows à partir de
Windows 3.1. Windows utilise le presse-papier pour transférer les
données entre les applications. Il établit ainsi un lien entre
les fonctions de l'utilisateur (manipulées par user32.dll) et celles du
noyau (manipulé par win32k.sys). Cette dichotomie différencie le
presse-papier du processus, de la configuration et de l'activité du
réseau qui sont des fonctions du noyau du Système
d'Exploitation.[8] Certaines versions de Windows telles que Windows 98 et
Windows NT intègre des programmes de visionneuse de presse-papier qui
montrent le contenu courant du presse-papier.[9] Ce chapitre présente le
fonctionnement du presse-papier de Windows, ses limites ainsi que les
développements logiciels autour du presse-papier. Nous finirons en
présentant le cahier des charges d'une l'application de gestion du
presse-papier que nous allons développer afin de pallier aux limites du
presse papier natif de Windows.
2.1. Présentation du presse-papier
Le presse-papier est le mécanisme que le
système d'exploitation Microsoft Windows utilise pour permettre à
des données d'être partagées entre les applications. [9] Le
presse-papier est axé sur l'utilisateur c'est-à-dire qu'aucune
application ne doit faire appel à ce dernier à l'insu de
l'utilisateur.
Le presse-papier est sollicité chaque fois qu'une des
opérations « couper », « copier », « coller
» est effectuée. Avant que les données ne soient
copiées dans le presse-papier, l'utilisateur doit sélectionner
l'information spécifique à copier. Cette information doit
appartenir à l'un des formats de données pris en charges par le
presse-papier. Dans le cas contraire, il sera automatiquement converti en un
format de données proche de celui-ci.
18
2.1.1. Les formats de données
Microsoft Windows met à la disposition de l'utilisateur
trois (03) types de formats de données pour stocker les informations
dans le presse-papier. Ceux-ci sont sollicités lors d'une
opération devant impliquer le presse-papier.
2.1.1.1. Les formats de données standard
Les formats de presse-papier définis par le
système sont appelés format standard du
presse-papier. Ces formats prédéfinis sont
préfixés par CF (Clipboard Format) et définis dans
WINUSER.H. Le tableau suivant décrit ces différents formats.
Tableau 2.1: Formats standard du presse-papier
[10]
Constante
|
Valeur
|
Description
|
CF_TEXT
|
0x0001
|
Format texte. Chaque ligne se termine par une combinaison
retour chariot / saut de ligne (CR-LF). Un caractère zéro signale
la fin des données. Utilisez ce format pour les textes ANSI.
|
CF_BITMAP
|
0x0002
|
Spécifie un format de données de bitmap
Microsoft Windows. (HBITMAP).
|
CF_METAFILEPICT
|
0x0003
|
Spécifie le format de données de l'image du
métafichier Windows.
|
CF_SYLK
|
0x0004
|
Spécifie le format de données de lien
symbolique Windows.
|
CF_DIF
|
0x0005
|
Spécifie le format d'échange de données
Windows. (DIF, Data Interchange Format)
|
CF_TIFF
|
0x0006
|
Spécifie le format de données TIFF (Tagged
Image File Format)
|
CF_OEMTEXT
|
0x0007
|
Spécifie le format de données de texte
Windows OEM standard. Chaque ligne se termine par une
combinaison retour chariot / saut de ligne (CR-LF). Un caractère
zéro signale la fin des données.
|
|
19
CF_DIB
|
0x0008
|
Spécifie le format de données bitmap
indépendant
du périphérique (DIB, Device
Independent Bitmap).
|
CF_PALETTE
|
0x0009
|
Spécifie le format de palette Windows. Chaque fois
qu'une application met des données dans le
presse-papier qui dépend d'une palette de couleurs
ou l'assume, elle doit mettre aussi mettre la palette dans le presse-papier.
|
CF_PENDATA
|
0x000A
|
Spécifie le format de données de stylet
Windows, constitué de traits de stylet dans le cas de
logiciels prenant en charge l'écriture manuscrite.
|
CF_RIFF
|
0x000B
|
Spécifie le format de données audio RIFF
(Resource Interchange File Format). Les données
audio ici sont plus complexes que celles du format wave standard CF_WAVE.
|
CF_WAVE
|
0x000C
|
Représente les données audio dans l'un des formats
standards wave.
|
CF_UNICODETEXT
|
0x000D
|
Spécifie le format de texte Unicode. Chaque ligne se
termine par une combinaison retour chariot / saut de ligne (CR-LF). Un
caractère zéro signale la fin des données.
|
CF_ENHMETAFILE
|
0x000E
|
Spécifie le format de métafichier
amélioré
(EMF, Enhanced Metafile Format) Windows.
|
CF_HDROP
|
0x000F
|
Un identifiant du type HDROP qui identifie
une liste de fichiers. Une application peut retrouver
les informations concernant les fichiers en
passant l'identifiant à la
fonction DragQueryFile.
|
CF_LOCALE
|
0X0010
|
Spécifie le format de données de
paramètres
régionaux (culture) Windows.
|
|
CF_DIBV5
0x0017
Spécifie un objet contenant une structure
BITMAPV5HEADER suivie d'information sur l'espace de couleur
bitmap et de chiffres binaires bitmap.
20
Les formats de données les plus courants sont [11] :
· Texte (texte brut) : texte sans mise
en forme de police, couleur, images. Lorsqu'il est collé dans un
logiciel de traitement de texte, il s'affiche juste comme si vous aviez
tapé sur le clavier.
· RichText Format (Texte
formaté) : il contient les informations de mise en forme telle que la
police, la taille, la couleur...
· HTML (texte et les images
copiées à partir de navigateurs) : il contient aussi la mise en
forme et les tableaux.
· Bitmap : toutes les données
d'image sur le presse-papier utilise ce format, même si on copie une
image de type JPEG, GIF ou PNG à partir d'un navigateur web.
· Image : "autre" format d'image,
utilisé pour les dessins vectoriels faits avec un logiciel de CAO
(Conception Assistée par Ordinateur), ou l'outil de dessin dans
Microsoft Word.
· Pointeurs de fichiers : ceux-ci sont
présents sur le presse-papier lorsque vous "copiez" des fichiers ou des
dossiers dans l'Explorateur Windows. Notez que les fichiers eux-mêmes ne
sont pas vraiment sur le presse-papier ; c'est juste un «pointeur»
qui indique où se trouvent les fichiers et les dossiers à
copier.
|