Lecture du contenu du presse-papiers
Avant de lire le contenu du presse papier, il faudra tout d'abord s'assurer que l'application saura interpréter les données contenues dedans.
Pour cela, il faut demander le type de données stockées.
BOOL IsClipboardFormatAvailable (type);
Où type est le type que l'application sera lire
dans le presse-papiers (CF_TEXT, ...)
Si TRUE, le presse papiers contient des données correspondant au type.
L'application peut dans ce cas ouvrir le presse papier pour récupérer
les données:
OpenClipboard (hwnd);
Puis récupérer un handle sur le tampon mémoire contenant
les données.
hClipMemory = GetClipboardData (type); avec type = CF_TEXT par exemple...
Vérifiez hClipMemory, si la valeur retournée est NULL, c'est qu'il n'y a pas de données correspondant à type...
Le handle
ainsi récupéré ne vous permet pas de libérer ou
de modifier les données qu'il représente.
A savoir, ce handle ne sera valide qu'entre GetClipboardData et la fermeture à l'accès du presse-papiers par CloseClipboard().
Vous pouvez maintenant lire les données, en allouant tout d'abord une zone mémoire.
Par exemple hMemAppli = GlobalAlloc (GHND, GlobalSize (hClipMemory));
Puis récupérer un pointeur sur les deux tampons via GlobalLock, faire la recopie, sans oublier de dévérouiller la mémoire via la fonction GlobalUnlock();
Enfin, fermer l'accès au presse-papiers via CloseClipboard.
Comme le handle hClipMemory n'est plus valide, vous pourrez affecter la valeur
0 à la variable utilisée.