Public Sub setDruckerSchacht()
Const strMethSignatur As String = MODULE_NAME & "setDruckerSchacht"
On Error GoTo METH_ERR
Dim arrBuffer() As Long
Dim lngLaenge As Long
Dim lngRueck As Long
Dim udtDevMode As DEVMODE
Dim udtPrintDef As PRINTER_DEFAULTS
Dim lngRet As Long
Dim lngPtrDevMode As Long
Dim lngPrinter As Long
Dim strPrinter As String
'ifi: Druckernamen
strPrinter = gobjDrucker.Drucker
'ifi: Printer-Defaults-Struktur initialisieren
udtPrintDef.pDatatype = 0
udtPrintDef.pDevMode = 0
udtPrintDef.DesiredAccess = PRINTER_ALL_ACCESS
'ifi: Printer öffnen
lngRet = OpenPrinter(strPrinter, lngPrinter, udtPrintDef)
'ifi: Pufferlänge ermitteln
lngRet = GetPrinter(lngPrinter, 2, ByVal 0&, 0, lngLaenge)
'ifi: Puffer anpassen
ReDim arrBuffer((lngLaenge \ 4))
'ifi: Printerinfos ermitteln (Level 2)
lngRet = GetPrinter(lngPrinter, 2, arrBuffer(0), lngLaenge, lngLaenge)
'ifi: Pointer auf die Devmode-Struktur
lngPtrDevMode = arrBuffer(7)
'ifi: Eigene Devmode-Struktur füllen
CopyMemory udtDevMode, ByVal lngPtrDevMode, Len(udtDevMode)
'ifi: Jetzt Schacht auswählen (1. Blatt = erstBlatt, Trennblatt = Trennblatt)
udtDevMode.dmDefaultSource = gobjDrucker.erstBlattID
'ifi: Änderungen zurück an die ursprüngliche Speicherstelle
CopyMemory ByVal lngPtrDevMode, udtDevMode, Len(udtDevMode)
'ifi: Jira #08010LW-87: Druckereinstellungen ändern
lngRet = DocumentProperties(0, lngPrinter, strPrinter, udtDevMode, udtDevMode, DM_IN_BUFFER)
lngRet = setPrinter(lngPrinter, 2, arrBuffer(0), 0)
'ifi: Anwendungen über die Änderungen informieren
lngRet = SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0, strPrinter)
'ifi: Drucker schließen
lngRet = ClosePrinter(lngPrinter)
METH_EXIT:
Exit Sub
METH_ERR:
MsgBoxMitErl strMethSignatur
Resume METH_EXIT
Resume
End Sub
|