Affiche une boîte de dialogue Print
#include <WinAPIDlg.au3>
_WinAPI_PrintDlg ( ByRef $tPRINTDLG )
$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) |
Succès: | Retourne True. |
Échec: | Retourne False et définit @error <> 0, @extended contient le code d'erreur de la boîte de dialogue. |
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.
Consultez PrintDlg dans la librairie MSDN.
#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)