jj 24.07, wix installer
This commit is contained in:
53
KommiCollo/RawPrinter.vb
Normal file
53
KommiCollo/RawPrinter.vb
Normal file
@@ -0,0 +1,53 @@
|
||||
Imports System.Runtime.InteropServices
|
||||
|
||||
Public Class RawPrinter
|
||||
Public Structure DOCINFO
|
||||
<MarshalAs(UnmanagedType.LPWStr)> Public DocumentName As String
|
||||
<MarshalAs(UnmanagedType.LPWStr)> Public OutputFile As String
|
||||
<MarshalAs(UnmanagedType.LPWStr)> Public DataType As String
|
||||
End Structure
|
||||
|
||||
<DllImport("winspool.drv", CharSet:=CharSet.Unicode, ExactSpelling:=False, CallingConvention:=CallingConvention.StdCall)> _
|
||||
Private Shared Function OpenPrinter(ByVal pPrinterName As String, ByRef phPrinter As IntPtr, ByVal pDefault As Integer) As Long
|
||||
End Function
|
||||
|
||||
<DllImport("winspool.drv", CharSet:=CharSet.Unicode, ExactSpelling:=False, CallingConvention:=CallingConvention.StdCall)> _
|
||||
Private Shared Function StartDocPrinter(ByVal hPrinter As IntPtr, ByVal Level As Integer, ByRef pDocInfo As DOCINFO) As Long
|
||||
End Function
|
||||
|
||||
<DllImport("winspool.drv", CharSet:=CharSet.Unicode, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
|
||||
Private Shared Function StartPagePrinter(ByVal hPrinter As IntPtr) As Long
|
||||
End Function
|
||||
|
||||
<DllImport("winspool.drv", CharSet:=CharSet.Ansi, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
|
||||
Private Shared Function WritePrinter(ByVal hPrinter As IntPtr, ByVal data As String, ByVal buf As Integer, ByRef pcWritten As Integer) As Long
|
||||
End Function
|
||||
|
||||
<DllImport("winspool.drv", CharSet:=CharSet.Unicode, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
|
||||
Private Shared Function EndPagePrinter(ByVal hPrinter As IntPtr) As Long
|
||||
End Function
|
||||
|
||||
<DllImport("winspool.drv", CharSet:=CharSet.Unicode, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
|
||||
Private Shared Function EndDocPrinter(ByVal hPrinter As IntPtr) As Long
|
||||
End Function
|
||||
|
||||
<DllImport("winspool.drv", CharSet:=CharSet.Unicode, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
|
||||
Private Shared Function ClosePrinter(ByVal hPrinter As IntPtr) As Long
|
||||
End Function
|
||||
|
||||
Public Shared Sub SendToPrinter(ByVal printerJobName As String, ByVal rawStringToSendToThePrinter As String, ByVal printerNameAsDescribedByPrintManager As String)
|
||||
Dim handleForTheOpenPrinter = New IntPtr()
|
||||
Dim documentInformation = New DOCINFO()
|
||||
Dim printerBytesWritten = 0
|
||||
documentInformation.DocumentName = printerJobName
|
||||
documentInformation.DataType = vbNullString
|
||||
documentInformation.OutputFile = vbNullString
|
||||
OpenPrinter(printerNameAsDescribedByPrintManager, handleForTheOpenPrinter, 0)
|
||||
StartDocPrinter(handleForTheOpenPrinter, 1, documentInformation)
|
||||
StartPagePrinter(handleForTheOpenPrinter)
|
||||
WritePrinter(handleForTheOpenPrinter, rawStringToSendToThePrinter, rawStringToSendToThePrinter.Length, printerBytesWritten)
|
||||
EndPagePrinter(handleForTheOpenPrinter)
|
||||
EndDocPrinter(handleForTheOpenPrinter)
|
||||
ClosePrinter(handleForTheOpenPrinter)
|
||||
End Sub
|
||||
End Class
|
||||
Reference in New Issue
Block a user