|
|
|
This demo will show you how to use AdvancedDocumentProperties function to displays a printer-configuration dialog box for the specified printer, allowing the user to configure that printer.
Step-By-Step Example
- Create a standard exe project - Place following code in form1 code window Note: Make sure that you have atleast one default printer setup |
Click here to copy the following block | Private Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" ( _ ByVal pPrinterName As String, _ phPrinter As Long, _ pDefault As PRINTER_DEFAULTS) As Long
Private Declare Function AdvancedDocumentProperties Lib "winspool.drv" Alias "AdvancedDocumentPropertiesA" ( _ ByVal hwnd As Long, _ ByVal hPrinter As Long, _ ByVal pDeviceName As String, _ pDevModeOutput As DEVMODE, _ pDevModeInput As DEVMODE) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _ ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long
Private Declare Function ClosePrinter Lib "winspool.drv" ( _ ByVal hPrinter As Long) As Long
Const CCHDEVICENAME = 32 Const CCHFORMNAME = 32
Private Type DEVMODE dmDeviceName As String * CCHDEVICENAME dmSpecVersion As Integer dmDriverVersion As Integer dmSize As Integer dmDriverExtra As Integer dmFields As Long dmOrientation As Integer dmPaperSize As Integer dmPaperLength As Integer dmPaperWidth As Integer dmScale As Integer dmCopies As Integer dmDefaultSource As Integer dmPrintQuality As Integer dmColor As Integer dmDuplex As Integer dmYResolution As Integer dmTTOption As Integer dmCollate As Integer dmFormName As String * CCHFORMNAME dmUnusedPadding As Integer dmBitsPerPel As Integer dmPelsWidth As Long dmPelsHeight As Long dmDisplayFlags As Long dmDisplayFrequency As Long End Type
Private Type PRINTER_DEFAULTS pDatatype As String pDevMode As DEVMODE DesiredAccess As Long End Type
Private Declare Function PrinterProperties Lib "winspool.drv" (ByVal hwnd As _ Long, ByVal hPrinter As Long) As Long
Const PRINTER_ACCESS_ADMINISTER = &H4
Public Sub ShowDocumentProperties(sPrinterName As String, _ hnd_CallingApplication As Long) Dim lAPIResult As Long Dim hnd_Printer As Long Dim pd As PRINTER_DEFAULTS Dim dmIN As DEVMODE Dim dmOUT As DEVMODE Dim llngRet As Long
On Error GoTo ERROR_HANDLER
pd.DesiredAccess = PRINTER_ACCESS_ADMINISTER
If OpenPrinter(sPrinterName, hnd_Printer, pd) = 0 Then pd.DesiredAccess = PRINTER_ACCESS_USE Or STANDARD_RIGHTS_REQUIRED lAPIResult = OpenPrinter(sPrinterName, hnd_Printer, pd) End If
If hnd_Printer Then llngRet = AdvancedDocumentProperties(hnd_CallingApplication, hnd_Printer, _ sPrinterName, _ dmIN, _ dmOUT)
ClosePrinter (hnd_Printer) Else MsgBox "Unable to open printer" End If
EXIT_POINT: Exit Sub ERROR_HANDLER: Err.Raise Number:=Err.Number, _ source:="cPrinterInfo.ShowPrinterProperties(" _ & sPrinterName & ")/" & Err.source, _ Description:=Err.Description End Sub
Private Sub Form_Load() ShowDocumentProperties Printer.DeviceName, FindWindow(vbNullString, Me.Caption) End Sub |
- Press F5 to run the project |
|
|
|
Submitted By :
Nayan Patel
(Member Since : 5/26/2004 12:23:06 PM)
|
|
|
Job Description :
He is the moderator of this site and currently working as an independent consultant. He works with VB.net/ASP.net, SQL Server and other MS technologies. He is MCSD.net, MCDBA and MCSE. In his free time he likes to watch funny movies and doing oil painting. |
View all (893) submissions by this author
(Birth Date : 7/14/1981 ) |
|
|