UDF > WinAPIEx > Dialog >


_WinAPI_PrintDlg

Affiche une boîte de dialogue Print

#include <WinAPIDlg.au3>
_WinAPI_PrintDlg ( ByRef $tPRINTDLG )

Paramètre

$tPRINTDLG La structure $tagPRINTDLG qui contient les informations utilisées pour initialiser la boîte de dialogue. Lorsque la fonction retourne, la structure contient des informations sur les sélections de l'utilisateur. Cette structure doit être initialisée avant l'appel de la fonction.
(Voir MSDN pour plus d'informations)

Valeur de retour

Succès: Retourne True.
Échec: Retourne False et définit @error <> 0, @extended contient le code d'erreur de la boîte de dialogue.

Remarque

Notez que les valeurs des membres "hDevMode" et "hDevNames" dans $tagPRINTDLG peuvent changer quand elles sont passés à _WinAPI_PrintDlg(). C'est parce que ces membres sont remplis à la fois en entrée et en sortie.

Voir aussi

Consultez PrintDlg dans la librairie MSDN.

Exemple

#include <APIDlgConstants.au3>
#include <Memory.au3>
#include <WinAPIDlg.au3>
#include <WinAPIMisc.au3>

; Crée la structure PRINTDLG et définit les valeurs initiales pour le nombre de copies, pages de début et de fin
Local $tPRINTDLG = DllStructCreate($tagPRINTDLG)
DllStructSetData($tPRINTDLG, 'Size', DllStructGetSize($tPRINTDLG))
DllStructSetData($tPRINTDLG, 'Flags', $PD_PAGENUMS)
DllStructSetData($tPRINTDLG, 'FromPage', 2)
DllStructSetData($tPRINTDLG, 'ToPage', 3)
DllStructSetData($tPRINTDLG, 'MinPage', 1)
DllStructSetData($tPRINTDLG, 'MaxPage', 9)
DllStructSetData($tPRINTDLG, 'Copies', 4)

; Crée une boîte de dialogue Print
If Not _WinAPI_PrintDlg($tPRINTDLG) Then
    Exit
EndIf

; Affiche les résultats
Local $hDevNames = DllStructGetData($tPRINTDLG, 'hDevNames')
Local $pDevNames = _MemGlobalLock($hDevNames)
Local $tDEVNAMES = DllStructCreate($tagDEVNAMES, $pDevNames)
ConsoleWrite('Imprimante: '& _WinAPI_GetString($pDevNames + 2 * DllStructGetData($tDEVNAMES, 'DeviceOffset')))
If DllStructGetData($tDEVNAMES, 'Default') Then
    ConsoleWrite('(par défaut)'& @CRLF)
Else
    ConsoleWrite(@CRLF)
EndIf
ConsoleWrite('Première page: '& DllStructGetData($tPRINTDLG, 'FromPage') & @CRLF)
ConsoleWrite('Dernière page: '& DllStructGetData($tPRINTDLG, 'ToPage') & @CRLF)
ConsoleWrite('Nombre de copies: '& DllStructGetData($tPRINTDLG, 'Copies') & @CRLF)

; Libère les objets qui contient une structure DEVMODE et DEVNAMES
_MemGlobalFree(DllStructGetData($tPRINTDLG, 'hDevMode'))
_MemGlobalFree($hDevNames)