- Public Declare Function lstrcpy Lib "kernel32" _ 
-    Alias "lstrcpyA" _ 
-    (ByVal lpString1 As String, _ 
-    ByVal lpString2 As String) _ 
-    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 GetPrinter Lib "winspool.drv" Alias "GetPrinterA" _ 
-    (ByVal hPrinter As Long, _ 
-    ByVal Level As Long, _ 
-    pPrinter As Byte, _ 
-    ByVal cbBuf As Long, _ 
-    pcbNeeded As Long) _ 
-    As Long 
-   
- Public Declare Function ClosePrinter Lib "winspool.drv" _ 
-    (ByVal hPrinter As Long) _ 
-    As Long 
-   
- Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _ 
-    (Destination As Any, _ 
-    Source As Any, _ 
-    ByVal Length As Long) 
-   
- Public Declare Function EnumJobs Lib "winspool.drv" Alias "EnumJobsA" _ 
-    (ByVal hPrinter As Long, _ 
-    ByVal FirstJob As Long, _ 
-    ByVal NoJobs As Long, _ 
-    ByVal Level As Long, _ 
-    pJob As Byte, _ 
-    ByVal cdBuf As Long, _ 
-    pcbNeeded As Long, _ 
-    pcReturned As Long) _ 
-    As Long 
-     
- ' constants for PRINTER_DEFAULTS structure 
- Public Const PRINTER_ACCESS_USE = &H8 
- Public Const PRINTER_ACCESS_ADMINISTER = &H4 
-   
- ' constants for DEVMODE structure 
- Public Const CCHDEVICENAME = 32 
- Public Const CCHFORMNAME = 32 
-   
- Public Type PRINTER_DEFAULTS 
-    pDatatype As String 
-    pDevMode As Long 
-    DesiredAccess As Long 
- End Type 
-   
- Public 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 
-    dmLogPixels As Integer 
-    dmBitsPerPel As Long 
-    dmPelsWidth As Long 
-    dmPelsHeight As Long 
-    dmDisplayFlags As Long 
-    dmDisplayFrequency As Long 
- End Type 
-   
- Type SYSTEMTIME 
-    wYear As Integer 
-    wMonth As Integer 
-    wDayOfWeek As Integer 
-    wDay As Integer 
-    wHour As Integer 
-    wMinute As Integer 
-    wSecond As Integer 
-    wMilliseconds As Integer 
- End Type 
-   
- Type JOB_INFO_2 
-    JobId As Long 
-    pPrinterName As Long 
-    pMachineName As Long 
-    pUserName As Long 
-    pDocument As Long 
-    pNotifyName As Long 
-    pDatatype As Long 
-    pPrintProcessor As Long 
-    pParameters As Long 
-    pDriverName As Long 
-    pDevMode As Long 
-    pStatus As Long 
-    pSecurityDescriptor As Long 
-    Status As Long 
-    Priority As Long 
-    Position As Long 
-    StartTime As Long 
-    UntilTime As Long 
-    TotalPages As Long 
-    Size As Long 
-    Submitted As SYSTEMTIME 
-    time As Long 
-    PagesPrinted As Long 
- End Type 
-   
- Type PRINTER_INFO_2 
-    pServerName As Long 
-    pPrinterName As Long 
-    pShareName As Long 
-    pPortName As Long 
-    pDriverName As Long 
-    pComment As Long 
-    pLocation As Long 
-    pDevMode As Long 
-    pSepFile As Long 
-    pPrintProcessor As Long 
-    pDatatype As Long 
-    pParameters As Long 
-    pSecurityDescriptor As Long 
-    Attributes As Long 
-    Priority As Long 
-    DefaultPriority As Long 
-    StartTime As Long 
-    UntilTime As Long 
-    Status As Long 
-    cJobs As Long 
-    AveragePPM As Long 
- End Type 
-   
- Public Const ERROR_INSUFFICIENT_BUFFER = 122 
- Public Const PRINTER_STATUS_BUSY = &H200 
- Public Const PRINTER_STATUS_DOOR_OPEN = &H400000 
- Public Const PRINTER_STATUS_ERROR = &H2 
- Public Const PRINTER_STATUS_INITIALIZING = &H8000 
- Public Const PRINTER_STATUS_IO_ACTIVE = &H100 
- Public Const PRINTER_STATUS_MANUAL_FEED = &H20 
- Public Const PRINTER_STATUS_NO_TONER = &H40000 
- Public Const PRINTER_STATUS_NOT_AVAILABLE = &H1000 
- Public Const PRINTER_STATUS_OFFLINE = &H80 
- Public Const PRINTER_STATUS_OUT_OF_MEMORY = &H200000 
- Public Const PRINTER_STATUS_OUTPUT_BIN_FULL = &H800 
- Public Const PRINTER_STATUS_PAGE_PUNT = &H80000 
- Public Const PRINTER_STATUS_PAPER_JAM = &H8 
- Public Const PRINTER_STATUS_PAPER_OUT = &H10 
- Public Const PRINTER_STATUS_PAPER_PROBLEM = &H40 
- Public Const PRINTER_STATUS_PAUSED = &H1 
- Public Const PRINTER_STATUS_PENDING_DELETION = &H4 
- Public Const PRINTER_STATUS_PRINTING = &H400 
- Public Const PRINTER_STATUS_PROCESSING = &H4000 
- Public Const PRINTER_STATUS_TONER_LOW = &H20000 
- Public Const PRINTER_STATUS_USER_INTERVENTION = &H100000 
- Public Const PRINTER_STATUS_WAITING = &H2000 
- Public Const PRINTER_STATUS_WARMING_UP = &H10000 
- Public Const JOB_STATUS_PAUSED = &H1 
- Public Const JOB_STATUS_ERROR = &H2 
- Public Const JOB_STATUS_DELETING = &H4 
- Public Const JOB_STATUS_SPOOLING = &H8 
- Public Const JOB_STATUS_PRINTING = &H10 
- Public Const JOB_STATUS_OFFLINE = &H20 
- Public Const JOB_STATUS_PAPEROUT = &H40 
- Public Const JOB_STATUS_PRINTED = &H80 
- Public Const JOB_STATUS_DELETED = &H100 
- Public Const JOB_STATUS_BLOCKED_DEVQ = &H200 
- Public Const JOB_STATUS_USER_INTERVENTION = &H400 
- Public Const JOB_STATUS_RESTART = &H800