=head1 NOM

Win32::Clipboard - Interaction avec le Presse-Papiers de Windows.

=head1 SYNOPSIS

    use Win32::Clipboard;

    $CLIP = Win32::Clipboard();

    print "Le Presse-Papiers contient : ", $CLIP->Get(), "\n";

    $CLIP->Set("du texte à copier dans le Presse-Papiers");

    $CLIP->Empty();

    $CLIP->WaitForChange();
    print "Le Presse-Papiers a changé !\n";


=head1 DESCRIPTION

Ce module vous permet d'interagir avec le presse-papiers de Windows: vous pouvez
obtenir son contenu, le changer, le vider, ou laisser votre script dormir jusqu'à
ce qu'il change. Cette version supporte 3 formats pour les données du Presse-Papiers :

=over 4

=item *
texte (C<CF_TEXT>)

Le presse-papiers contient du texte; c'est le B<seul> format que vous pouvez utiliser
pour mettre des données dans le presse-papiers; vous l'obtenez en une seule chaîne.

Exemple:

    $text = Win32::Clipboard::GetText();
    print $text;

=item *
bitmap (C<CF_DIB>)

Le presse-papiers contient une image, ou un bitmap ou une image copiés dans le
presse-papiers depuis une application graphique. La donnée que vous obtenez
est un tampon binaire prêt à être écrit dans un fichier bitmap (format BMP).

Exemple:

    $image = Win32::Clipboard::GetBitmap();
    open    BITMAP, ">some.bmp";
    binmode BITMAP;
    print   BITMAP $image;
    close   BITMAP;

=item *
liste de fichiers (C<CF_HDROP>)

Le presse-papiers contient des fichiers copiés ou coupés depuis une application
de type Explorateur; vous obtenez une liste de noms de fichiers.

Exemple:

    @files = Win32::Clipboard::GetFiles();
    print join("\n", @files);

=back

=head2 RÉFÉRENCE

Toutes les fonctions peuvent être utilisées soit avec leur nom complet
(ex. B<Win32::Clipboard::Get>) ou bien comme méthodes d'un objet C<Win32::Clipboard>.
Pour la syntaxe, reportez-vous à la rubrique L</SYNOPSIS> ci-dessus.
Notez aussi que vous pouvez créer un objet presse-papiers et fixer son contenu en
même temps:

    $CLIP = Win32::Clipboard("blah blah blah");

ou, avec la manière moins commune :

    $CLIP = new Win32::Clipboard("blah blah blah");

Si vous préférez, vous pouvez même lier le Presse-papiers à une variable
comme ceci:

	tie $CLIP, 'Win32::Clipboard';

	print "Contenu du presse-papier : $CLIP\n";

	$CLIP = "du text à copier dans le presse-papier...";

Dans ce cas, vous pouvez aussi accéder aux autres méthodes en utilisant la
fonction tied() :

	tied($CLIP)->Empty;
	print "image saisie" if tied($CLIP)->IsBitmap;

=over 4

=item Empty()

Vide le presse-papiers.

=for html <P>

=item EnumFormats()

Retourne un tableau d'identificateurs décrivant le format des données disponibles
dans le presse-papiers. Les formats peuvent être standards (comme décrits dans
la section L</CONSTANTES>) ou spécifiques à une application.
Voyez aussi IsFormatAvailable().

=for html <P>

=item Get()

Retourne le contenu du presse-papiers; notez que le résultat dépend de la nature
des données contenues dans le presse-papiers; pour vous assurer d'obtenir uniquement
le format désiré, vous devriez utiliser GetText() , GetBitmap() ou GetFiles() à
la place. En fait, Get() est implémenté comme :

	if(    IsBitmap() ) { return GetBitmap(); }
	elsif( IsFiles()  ) { return GetFiles();  }
	else                { return GetText();   }

Voir aussi IsBitmap() , IsFiles() , IsText() , EnumFormats() et IsFormatAvailable()
pour vérifier le format des données du presse-papiers avant de les obtenir.

=for html <P>

=item GetAs(FORMAT)

Retourne le contenu du presse-papiers dans le FORMAT désiré (qui peut être donné
par une des constantes définies dans la section L</CONSTANTES> ou être un format
personnalisé).
Notez que les seuls identificateurs significatifs sont C<CF_TEXT> , C<CF_DIB> et
C<CF_HDROP>; tout autre format est traité comme une chaîne.

=for html <P>

=item GetBitmap()

Retourne le contenu du presse-papiers comme une image, ou C<undef> en cas d'erreur.

=for html <P>

=item GetFiles()

Retourne le contenu du presse-papiers comme une liste de noms de fichiers,
ou C<undef> en cas d'erreur.

=for html <P>

=item GetFormatName(FORMAT)

Retourne le nom du format personnalisé du presse-papiers spécifié,
ou C<undef> en cas d'erreur.
Notez que vous ne pouvez pas obtenir le nom des formats standards
(décrits dans la section L</CONSTANTES>).

=for html <P>

=item GetText()

Retourne le contenu du presse-papiers comme une chaîne,
ou C<undef> en cas d'erreur.

=for html <P>

=item IsBitmap()

Retourne une valeur booléenne indiquant su le presse-papiers contient
une image.
Voir aussi GetBitmap() .

=for html <P>

=item IsFiles()

Retourne une valeur booléenne indiquant si le presse-papiers contient
une liste de fichiers.
Voir aussi GetFiles() .

=for html <P>

=item IsFormatAvailable(FORMAT)

Vérifie si les données du presse-papiers coïncident avec le FORMAT spécifié
(une des constantes décrites dans la section L</CONSTANTES>; retourne zéro si
les données ne correspondent pas, une valeur non nulle s'il y a coïncidence.

=for html <P>

=item IsText()

Retourne une valeur booléenne indiquant si le presse-papiers contient
du texte.
Voir aussi GetText() .

=for html <P>

=item Set(VALUE)

Donne au presse-papier le contenu de la chaîne spécifiée.

=for html <P>

=item WaitForChange([TIMEOUT])

Cette fonction arrête le script jusqu'à ce que le contenu du presse-papiers
change. Si vous spécifiez un C<TIMEOUT> (en millisecondes), la fonction
retournera quand ce délai sera passé, même si le contenu du presse-papiers n'a
pas changé. Si aucune valeur n'est donnée, elle attendra éternellement. Renvoie
1 si le presse-papiers a changé, C<undef> en cas d'erreur.

=back

=head2 CONSTANTES

Ces constantes sont les formats standards du presse-papiers reconnu par
Win32::Clipboard:

	CF_TEXT             1
	CF_DIB              8
	CF_HDROP            15

Les formats suivants B<ne sont pas reconnus> par Win32::Clipboard; néanmoins,
ce sont des constantes exportées par le module et elles peuvent être utilisées
avec les fonctions  EnumFormats() , IsFormatAvailable() et GetAs() :

	CF_BITMAP           2
	CF_METAFILEPICT     3
	CF_SYLK             4
	CF_DIF              5
	CF_TIFF             6
	CF_OEMTEXT          7
	CF_PALETTE          9
	CF_PENDATA          10
	CF_RIFF             11
	CF_WAVE             12
	CF_UNICODETEXT      13
	CF_ENHMETAFILE      14
	CF_LOCALE           16

=head1 AUTEUR

Aldo Calpini <F<dada@perl.it>>

Portage XS original par Gurusamy Sarathy <F<gsar@activestate.com>>.

=head1 VERSION FRANÇAISE

Cette traduction française correspond à la version anglaise distribuée avec perl 5.6.1.
Pour en savoir plus concernant ces traductions, consultez http://www.enstimac.fr/Perl/ .

=head1 TRADUCTION EN FRANÇAIS

Jean-Louis Morel <jl_morel@bribes.org>

=cut
