~ Edito ~
12/03/2006 @ 13:39
Depuis la dernière mise à jour (qui remonte à... oulala plusieurs mois), un petit ménage de printemps s'impose. Ca tombe bien, c'est presque la période. Au menu, et progressivement sur les jours à venir, rafraîchissement de plusieurs fonctions et procédures, nouvelles APIs et nouveaux programmes. ~ Rechercher ~
~ Annuaire VB ~
~ Partenaires ~
|
Procédure : OpenDlgPrinter Public Declare Function PrinterProperties Lib "winspool.drv" ( _ ByVal hwnd As Long, ByVal hPrinter As Long) As Long Public Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" ( _ ByVal pPrinterName As String, phPrinter As Long, _ pDefault As PRINTER_DEFAULTS) As Long Public Declare Function ClosePrinter Lib "winspool.drv" ( _ ByVal hPrinter As Long) As Long ' Déclaration de type Public Type PRINTER_DEFAULTS pDatatype As Long pDevMode As Long pDesiredAccess As Long End Type ' Déclaration des constantes Public Const STANDARD_RIGHTS_REQUIRED = &HF0000 Public Const PRINTER_ACCESS_ADMINISTER = &H4 Public Const PRINTER_ACCESS_USE = &H8 Public Const PRINTER_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or _ PRINTER_ACCESS_ADMINISTER Or _ PRINTER_ACCESS_USE) Public Sub OpenDlgPrinter(stPrinterName As String, frmTmp As Form) ' stPrinterName doit être égal à la propriété DeviceName, ' de l'imprimante voulue dans la collections Printers ' frmTmp est la fenêtre appelante. Dim lgTmp As Long Dim lgPrinter As Long Dim PD As PRINTER_DEFAULTS PD.pDatatype = 0 PD.pDesiredAccess = PRINTER_ALL_ACCESS PD.pDevMode = 0 lgTmp = OpenPrinter(stPrinterName, lgPrinter, PD) If lgTmp = 0 Then MsgBox "Impossible d'accéder à l'imprimante!", vbInformation, "Echec" Else lgTmp = PrinterProperties(frmTmp.hwnd, lgPrinter) lgTmp = ClosePrinter(lgPrinter) End If End Sub |