!
! ********************************************************************
! *                                                                  *
! *  Copyright 2001 Compaq Computer Corporation                      *
! *                                                                  *
! *  COMPAQ Registered in U.S. Patent and Trademark Office.          *
! *                                                                  *
! *  Confidential computer software. Valid license from Compaq or    *
! *  authorized sublicensor required for possession, use or copying. *
! *  Consistent with FAR 12.211 and 12.212, Commercial Computer      *
! *  Software, Computer Software Documentation, and Technical Data   *
! *  for Commercial Items are licensed to the U.S. Government under  *
! *  vendor's standard commercial license.                           *
! *                                                                  *
! ********************************************************************
!
!DEC$ IF .NOT. DEFINED (WINSPOOL_ )
!DEC$ DEFINE xWINSPOOL_  
!
!
!
!         *****WINSPOOL.LIB Interfaces*****
! 
!     This module defines routine interfaces to the Windows APIs
!     for both the 32-bit (_M_IX86) and 64-bit (_M_IA64) versions of the
!     NT4 and WIN2000 operating systems.  
!
!     The base for this version is: 
!
!           Microsoft Platform Software Development Kit (SDK)
!                Win64 Pre-alpha February 2000
!
!     As with the C header files distributed with the SDK, there
!     is only one common set of files for both 64-bit and 32-bit
!     operating systems.
!   
!     Within the Fortran versions of the header files, the
!     following symbols are used to control the compilation.
! 
!     _M_IA64 conditionally compiles items for 64 bit systems.
!     _M_IX86 conditionally compiles items for 32 bit systesm.
!
!     Known problems: 
!
!07-12-00
!
module winspool
use dfwinty
!DEC$OBJCOMMENT LIB:"WINSPOOL.LIB"
!
INTERFACE 
FUNCTION DeviceCapabilities( &
        arg1, &
        arg2, &
        arg3, &
        arg4, &
        arg5)
USE DFWINTY
  integer(SINT) :: DeviceCapabilities ! int
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'DeviceCapabilitiesA' :: DeviceCapabilities
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: arg1
  character*(*) arg1 ! LPCSTR arg1
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: arg2
  character*(*) arg2 ! LPCSTR arg2
  integer(WORD) arg3 ! WORD arg3
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: arg4
  character*(*) arg4 ! LPSTR arg4
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: arg5
  TYPE (T_DEVMODE)  arg5 ! DEVMODEA*  arg5
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION EnumPrinters( &
        Flags, &
        Name, &
        Level, &
        pPrinterEnum, &
        cbBuf, &
        pcbNeeded, &
        pcReturned)
USE DFWINTY
  integer(BOOL) :: EnumPrinters ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'EnumPrintersA' :: EnumPrinters
  integer(DWORD) Flags ! DWORD Flags
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: Name
  character*(*) Name ! LPSTR Name
  integer(DWORD) Level ! DWORD Level
  integer(LPBYTE) pPrinterEnum ! LPBYTE pPrinterEnum
  integer(DWORD) cbBuf ! DWORD cbBuf
  integer(LPDWORD) pcbNeeded ! LPDWORD pcbNeeded
  integer(LPDWORD) pcReturned ! LPDWORD pcReturned
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION OpenPrinter( &
        pPrinterName, &
        phPrinter, &
        pDefault)
USE DFWINTY
  integer(BOOL) :: OpenPrinter ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'OpenPrinterA' :: OpenPrinter
!DEC$ ATTRIBUTES REFERENCE, IGNORE_LOC, ALLOW_NULL :: pPrinterName
  character*(*) pPrinterName ! LPSTR pPrinterName
!DEC$ ATTRIBUTES REFERENCE, IGNORE_LOC :: phPrinter
  integer(HANDLE) phPrinter ! LPHANDLE phPrinter
!DEC$ ATTRIBUTES REFERENCE, IGNORE_LOC, ALLOW_NULL :: pDefault
  TYPE (T_PRINTER_DEFAULTS) pDefault ! LPPRINTER_DEFAULTSA pDefault
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION ResetPrinter( &
        hPrinter, &
        pDefault)
USE DFWINTY
  integer(BOOL) :: ResetPrinter ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'ResetPrinterA' :: ResetPrinter
  integer(HANDLE) hPrinter ! HANDLE hPrinter
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pDefault
  TYPE (T_PRINTER_DEFAULTS) pDefault ! LPPRINTER_DEFAULTSA pDefault
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION SetJob( &
        hPrinter, &
        JobId, &
        Level, &
        pJob, &
        Command)
USE DFWINTY
  integer(BOOL) :: SetJob ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'SetJobA' :: SetJob
  integer(HANDLE) hPrinter ! HANDLE hPrinter
  integer(DWORD) JobId ! DWORD JobId
  integer(DWORD) Level ! DWORD Level
  integer(LPBYTE) pJob ! LPBYTE pJob
  integer(DWORD) Command ! DWORD Command
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION GetJob( &
        hPrinter, &
        JobId, &
        Level, &
        pJob, &
        cbBuf, &
        pcbNeeded)
USE DFWINTY
  integer(BOOL) :: GetJob ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'GetJobA' :: GetJob
  integer(HANDLE) hPrinter ! HANDLE hPrinter
  integer(DWORD) JobId ! DWORD JobId
  integer(DWORD) Level ! DWORD Level
  integer(LPBYTE) pJob ! LPBYTE pJob
  integer(DWORD) cbBuf ! DWORD cbBuf
  integer(LPDWORD) pcbNeeded ! LPDWORD pcbNeeded
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION EnumJobs( &
        hPrinter, &
        FirstJob, &
        NoJobs, &
        Level, &
        pJob, &
        cbBuf, &
        pcbNeeded, &
        pcReturned)
USE DFWINTY
  integer(BOOL) :: EnumJobs ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'EnumJobsA' :: EnumJobs
  integer(HANDLE) hPrinter ! HANDLE hPrinter
  integer(DWORD) FirstJob ! DWORD FirstJob
  integer(DWORD) NoJobs ! DWORD NoJobs
  integer(DWORD) Level ! DWORD Level
  integer(LPBYTE) pJob ! LPBYTE pJob
  integer(DWORD) cbBuf ! DWORD cbBuf
  integer(LPDWORD) pcbNeeded ! LPDWORD pcbNeeded
  integer(LPDWORD) pcReturned ! LPDWORD pcReturned
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION AddPrinter( &
        pName, &
        Level, &
        pPrinter)
USE DFWINTY
  integer(HANDLE) :: AddPrinter ! HANDLE
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'AddPrinterA' :: AddPrinter
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pName
  character*(*) pName ! LPSTR pName
  integer(DWORD) Level ! DWORD Level
  integer(LPBYTE) pPrinter ! LPBYTE pPrinter
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION DeletePrinter( &
        hPrinter)
USE DFWINTY
  integer(BOOL) :: DeletePrinter ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'DeletePrinter' :: DeletePrinter
  integer(HANDLE) hPrinter ! HANDLE hPrinter
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION SetPrinter( &
        hPrinter, &
        Level, &
        pPrinter, &
        Command)
USE DFWINTY
  integer(BOOL) :: SetPrinter ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'SetPrinterA' :: SetPrinter
  integer(HANDLE) hPrinter ! HANDLE hPrinter
  integer(DWORD) Level ! DWORD Level
  integer(LPBYTE) pPrinter ! LPBYTE pPrinter
  integer(DWORD) Command ! DWORD Command
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION GetPrinter( &
        hPrinter, &
        Level, &
        pPrinter, &
        cbBuf, &
        pcbNeeded)
USE DFWINTY
  integer(BOOL) :: GetPrinter ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'GetPrinterA' :: GetPrinter
  integer(HANDLE) hPrinter ! HANDLE hPrinter
  integer(DWORD) Level ! DWORD Level
  integer(LPBYTE) pPrinter ! LPBYTE pPrinter
  integer(DWORD) cbBuf ! DWORD cbBuf
  integer(LPDWORD) pcbNeeded ! LPDWORD pcbNeeded
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION AddPrinterDriver( &
        pName, &
        Level, &
        pDriverInfo)
USE DFWINTY
  integer(BOOL) :: AddPrinterDriver ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'AddPrinterDriverA' :: AddPrinterDriver
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pName
  character*(*) pName ! LPSTR pName
  integer(DWORD) Level ! DWORD Level
  integer(LPBYTE) pDriverInfo ! LPBYTE pDriverInfo
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION AddPrinterDriverEx( &
        pName, &
        Level, &
        pDriverInfo, &
        dwFileCopyFlags)
USE DFWINTY
  integer(BOOL) :: AddPrinterDriverEx ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'AddPrinterDriverExA' :: AddPrinterDriverEx
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pName
  character*(*) pName ! LPSTR pName
  integer(DWORD) Level ! DWORD Level
  integer(LPBYTE) pDriverInfo ! LPBYTE pDriverInfo
  integer(DWORD) dwFileCopyFlags ! DWORD dwFileCopyFlags
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION EnumPrinterDrivers( &
        pName, &
        pEnvironment, &
        Level, &
        pDriverInfo, &
        cbBuf, &
        pcbNeeded, &
        pcReturned)
USE DFWINTY
  integer(BOOL) :: EnumPrinterDrivers ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'EnumPrinterDriversA' :: EnumPrinterDrivers
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pName
  character*(*) pName ! LPSTR pName
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pEnvironment
  character*(*) pEnvironment ! LPSTR pEnvironment
  integer(DWORD) Level ! DWORD Level
  integer(LPBYTE) pDriverInfo ! LPBYTE pDriverInfo
  integer(DWORD) cbBuf ! DWORD cbBuf
  integer(LPDWORD) pcbNeeded ! LPDWORD pcbNeeded
  integer(LPDWORD) pcReturned ! LPDWORD pcReturned
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION GetPrinterDriver( &
        hPrinter, &
        pEnvironment, &
        Level, &
        pDriverInfo, &
        cbBuf, &
        pcbNeeded)
USE DFWINTY
  integer(BOOL) :: GetPrinterDriver ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'GetPrinterDriverA' :: GetPrinterDriver
  integer(HANDLE) hPrinter ! HANDLE hPrinter
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pEnvironment
  character*(*) pEnvironment ! LPSTR pEnvironment
  integer(DWORD) Level ! DWORD Level
  integer(LPBYTE) pDriverInfo ! LPBYTE pDriverInfo
  integer(DWORD) cbBuf ! DWORD cbBuf
  integer(LPDWORD) pcbNeeded ! LPDWORD pcbNeeded
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION GetPrinterDriverDirectory( &
        pName, &
        pEnvironment, &
        Level, &
        pDriverDirectory, &
        cbBuf, &
        pcbNeeded)
USE DFWINTY
  integer(BOOL) :: GetPrinterDriverDirectory ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'GetPrinterDriverDirectoryA' :: GetPrinterDriverDirectory
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pName
  character*(*) pName ! LPSTR pName
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pEnvironment
  character*(*) pEnvironment ! LPSTR pEnvironment
  integer(DWORD) Level ! DWORD Level
  integer(LPBYTE) pDriverDirectory ! LPBYTE pDriverDirectory
  integer(DWORD) cbBuf ! DWORD cbBuf
  integer(LPDWORD) pcbNeeded ! LPDWORD pcbNeeded
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION DeletePrinterDriver( &
        pName, &
        pEnvironment, &
        pDriverName)
USE DFWINTY
  integer(BOOL) :: DeletePrinterDriver ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'DeletePrinterDriverA' :: DeletePrinterDriver
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pName
  character*(*) pName ! LPSTR pName
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pEnvironment
  character*(*) pEnvironment ! LPSTR pEnvironment
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pDriverName
  character*(*) pDriverName ! LPSTR pDriverName
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION DeletePrinterDriverEx( &
        pName, &
        pEnvironment, &
        pDriverName, &
        dwDeleteFlag, &
        dwVersionFlag)
USE DFWINTY
  integer(BOOL) :: DeletePrinterDriverEx ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'DeletePrinterDriverExA' :: DeletePrinterDriverEx
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pName
  character*(*) pName ! LPSTR pName
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pEnvironment
  character*(*) pEnvironment ! LPSTR pEnvironment
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pDriverName
  character*(*) pDriverName ! LPSTR pDriverName
  integer(DWORD) dwDeleteFlag ! DWORD dwDeleteFlag
  integer(DWORD) dwVersionFlag ! DWORD dwVersionFlag
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION AddPrintProcessor( &
        pName, &
        pEnvironment, &
        pPathName, &
        pPrintProcessorName)
USE DFWINTY
  integer(BOOL) :: AddPrintProcessor ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'AddPrintProcessorA' :: AddPrintProcessor
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pName
  character*(*) pName ! LPSTR pName
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pEnvironment
  character*(*) pEnvironment ! LPSTR pEnvironment
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pPathName
  character*(*) pPathName ! LPSTR pPathName
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pPrintProcessorName
  character*(*) pPrintProcessorName ! LPSTR pPrintProcessorName
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION EnumPrintProcessors( &
        pName, &
        pEnvironment, &
        Level, &
        pPrintProcessorInfo, &
        cbBuf, &
        pcbNeeded, &
        pcReturned)
USE DFWINTY
  integer(BOOL) :: EnumPrintProcessors ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'EnumPrintProcessorsA' :: EnumPrintProcessors
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pName
  character*(*) pName ! LPSTR pName
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pEnvironment
  character*(*) pEnvironment ! LPSTR pEnvironment
  integer(DWORD) Level ! DWORD Level
  integer(LPBYTE) pPrintProcessorInfo ! LPBYTE pPrintProcessorInfo
  integer(DWORD) cbBuf ! DWORD cbBuf
  integer(LPDWORD) pcbNeeded ! LPDWORD pcbNeeded
  integer(LPDWORD) pcReturned ! LPDWORD pcReturned
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION GetPrintProcessorDirectory( &
        pName, &
        pEnvironment, &
        Level, &
        pPrintProcessorInfo, &
        cbBuf, &
        pcbNeeded)
USE DFWINTY
  integer(BOOL) :: GetPrintProcessorDirectory ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'GetPrintProcessorDirectoryA' :: GetPrintProcessorDirectory
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pName
  character*(*) pName ! LPSTR pName
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pEnvironment
  character*(*) pEnvironment ! LPSTR pEnvironment
  integer(DWORD) Level ! DWORD Level
  integer(LPBYTE) pPrintProcessorInfo ! LPBYTE pPrintProcessorInfo
  integer(DWORD) cbBuf ! DWORD cbBuf
  integer(LPDWORD) pcbNeeded ! LPDWORD pcbNeeded
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION EnumPrintProcessorDatatypes( &
        pName, &
        pPrintProcessorName, &
        Level, &
        pDatatypes, &
        cbBuf, &
        pcbNeeded, &
        pcReturned)
USE DFWINTY
  integer(BOOL) :: EnumPrintProcessorDatatypes ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'EnumPrintProcessorDatatypesA' :: EnumPrintProcessorDatatypes
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pName
  character*(*) pName ! LPSTR pName
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pPrintProcessorName
  character*(*) pPrintProcessorName ! LPSTR pPrintProcessorName
  integer(DWORD) Level ! DWORD Level
  integer(LPBYTE) pDatatypes ! LPBYTE pDatatypes
  integer(DWORD) cbBuf ! DWORD cbBuf
  integer(LPDWORD) pcbNeeded ! LPDWORD pcbNeeded
  integer(LPDWORD) pcReturned ! LPDWORD pcReturned
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION DeletePrintProcessor( &
        pName, &
        pEnvironment, &
        pPrintProcessorName)
USE DFWINTY
  integer(BOOL) :: DeletePrintProcessor ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'DeletePrintProcessorA' :: DeletePrintProcessor
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pName
  character*(*) pName ! LPSTR pName
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pEnvironment
  character*(*) pEnvironment ! LPSTR pEnvironment
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pPrintProcessorName
  character*(*) pPrintProcessorName ! LPSTR pPrintProcessorName
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION StartDocPrinter( &
        hPrinter, &
        Level, &
        pDocInfo)
USE DFWINTY
  integer(DWORD) :: StartDocPrinter ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'StartDocPrinterA' :: StartDocPrinter
  integer(HANDLE) hPrinter ! HANDLE hPrinter
  integer(DWORD) Level ! DWORD Level
  integer(LPBYTE) pDocInfo ! LPBYTE pDocInfo
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION StartPagePrinter( &
        hPrinter)
USE DFWINTY
  integer(BOOL) :: StartPagePrinter ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'StartPagePrinter' :: StartPagePrinter
  integer(HANDLE) hPrinter ! HANDLE hPrinter
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION WritePrinter( &
        hPrinter, &
        pBuf, &
        cbBuf, &
        pcWritten)
USE DFWINTY
  integer(BOOL) :: WritePrinter ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'WritePrinter' :: WritePrinter
  integer(HANDLE) hPrinter ! HANDLE hPrinter
  integer(LPVOID) pBuf ! LPVOID pBuf
  integer(DWORD) cbBuf ! DWORD cbBuf
  integer(LPDWORD) pcWritten ! LPDWORD pcWritten
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION FlushPrinter( &
        hPrinter, &
        pBuf, &
        cbBuf, &
        pcWritten, &
        cSleep)
USE DFWINTY
  integer(BOOL) :: FlushPrinter ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'FlushPrinter' :: FlushPrinter
  integer(HANDLE) hPrinter ! HANDLE hPrinter
  integer(LPVOID) pBuf ! LPVOID pBuf
  integer(DWORD) cbBuf ! DWORD cbBuf
  integer(LPDWORD) pcWritten ! LPDWORD pcWritten
  integer(DWORD) cSleep ! DWORD cSleep
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION EndPagePrinter( &
        hPrinter)
USE DFWINTY
  integer(BOOL) :: EndPagePrinter ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'EndPagePrinter' :: EndPagePrinter
  integer(HANDLE) hPrinter ! HANDLE hPrinter
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION AbortPrinter( &
        hPrinter)
USE DFWINTY
  integer(BOOL) :: AbortPrinter ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'AbortPrinter' :: AbortPrinter
  integer(HANDLE) hPrinter ! HANDLE hPrinter
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION ReadPrinter( &
        hPrinter, &
        pBuf, &
        cbBuf, &
        pNoBytesRead)
USE DFWINTY
  integer(BOOL) :: ReadPrinter ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'ReadPrinter' :: ReadPrinter
  integer(HANDLE) hPrinter ! HANDLE hPrinter
  integer(LPVOID) pBuf ! LPVOID pBuf
  integer(DWORD) cbBuf ! DWORD cbBuf
  integer(LPDWORD) pNoBytesRead ! LPDWORD pNoBytesRead
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION EndDocPrinter( &
        hPrinter)
USE DFWINTY
  integer(BOOL) :: EndDocPrinter ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'EndDocPrinter' :: EndDocPrinter
  integer(HANDLE) hPrinter ! HANDLE hPrinter
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION AddJob( &
        hPrinter, &
        Level, &
        pData, &
        cbBuf, &
        pcbNeeded)
USE DFWINTY
  integer(BOOL) :: AddJob ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'AddJobA' :: AddJob
  integer(HANDLE) hPrinter ! HANDLE hPrinter
  integer(DWORD) Level ! DWORD Level
  integer(LPBYTE) pData ! LPBYTE pData
  integer(DWORD) cbBuf ! DWORD cbBuf
  integer(LPDWORD) pcbNeeded ! LPDWORD pcbNeeded
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION ScheduleJob( &
        hPrinter, &
        JobId)
USE DFWINTY
  integer(BOOL) :: ScheduleJob ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'ScheduleJob' :: ScheduleJob
  integer(HANDLE) hPrinter ! HANDLE hPrinter
  integer(DWORD) JobId ! DWORD JobId
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION PrinterProperties( &
        hWnd, &
        hPrinter)
USE DFWINTY
  integer(BOOL) :: PrinterProperties ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'PrinterProperties' :: PrinterProperties
  integer(HANDLE) hWnd ! HWND hWnd
  integer(HANDLE) hPrinter ! HANDLE hPrinter
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION DocumentProperties( &
        hWnd, &
        hPrinter, &
        pDeviceName, &
        pDevModeOutput, &
        pDevModeInput, &
        fMode)
USE DFWINTY
  integer(LONG) :: DocumentProperties ! LONG
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'DocumentPropertiesA' :: DocumentProperties
  integer(HANDLE) hWnd ! HWND hWnd
  integer(HANDLE) hPrinter ! HANDLE hPrinter
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pDeviceName
  character*(*) pDeviceName ! LPSTR pDeviceName
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pDevModeOutput
  TYPE (T_DEVMODE) pDevModeOutput ! PDEVMODEA pDevModeOutput
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pDevModeInput
  TYPE (T_DEVMODE) pDevModeInput ! PDEVMODEA pDevModeInput
  integer(DWORD) fMode ! DWORD fMode
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION AdvancedDocumentProperties( &
        hWnd, &
        hPrinter, &
        pDeviceName, &
        pDevModeOutput, &
        pDevModeInput)
USE DFWINTY
  integer(LONG) :: AdvancedDocumentProperties ! LONG
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'AdvancedDocumentPropertiesA' :: AdvancedDocumentProperties
  integer(HANDLE) hWnd ! HWND hWnd
  integer(HANDLE) hPrinter ! HANDLE hPrinter
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pDeviceName
  character*(*) pDeviceName ! LPSTR pDeviceName
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pDevModeOutput
  TYPE (T_DEVMODE) pDevModeOutput ! PDEVMODEA pDevModeOutput
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pDevModeInput
  TYPE (T_DEVMODE) pDevModeInput ! PDEVMODEA pDevModeInput
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION GetPrinterData( &
        hPrinter, &
        pValueName, &
        pType, &
        pData, &
        nSize, &
        pcbNeeded)
USE DFWINTY
  integer(DWORD) :: GetPrinterData ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'GetPrinterDataA' :: GetPrinterData
  integer(HANDLE) hPrinter ! HANDLE hPrinter
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pValueName
  character*(*) pValueName ! LPSTR pValueName
  integer(LPDWORD) pType ! LPDWORD pType
  integer(LPBYTE) pData ! LPBYTE pData
  integer(DWORD) nSize ! DWORD nSize
  integer(LPDWORD) pcbNeeded ! LPDWORD pcbNeeded
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION GetPrinterDataEx( &
        hPrinter, &
        pKeyName, &
        pValueName, &
        pType, &
        pData, &
        nSize, &
        pcbNeeded)
USE DFWINTY
  integer(DWORD) :: GetPrinterDataEx ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'GetPrinterDataExA' :: GetPrinterDataEx
  integer(HANDLE) hPrinter ! HANDLE hPrinter
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pKeyName
  character*(*) pKeyName ! LPCSTR pKeyName
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pValueName
  character*(*) pValueName ! LPCSTR pValueName
  integer(LPDWORD) pType ! LPDWORD pType
  integer(LPBYTE) pData ! LPBYTE pData
  integer(DWORD) nSize ! DWORD nSize
  integer(LPDWORD) pcbNeeded ! LPDWORD pcbNeeded
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION EnumPrinterData( &
        hPrinter, &
        dwIndex, &
        pValueName, &
        cbValueName, &
        pcbValueName, &
        pType, &
        pData, &
        cbData, &
        pcbData)
USE DFWINTY
  integer(DWORD) :: EnumPrinterData ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'EnumPrinterDataA' :: EnumPrinterData
  integer(HANDLE) hPrinter ! HANDLE hPrinter
  integer(DWORD) dwIndex ! DWORD dwIndex
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pValueName
  character*(*) pValueName ! LPSTR pValueName
  integer(DWORD) cbValueName ! DWORD cbValueName
  integer(LPDWORD) pcbValueName ! LPDWORD pcbValueName
  integer(LPDWORD) pType ! LPDWORD pType
  integer(LPBYTE) pData ! LPBYTE pData
  integer(DWORD) cbData ! DWORD cbData
  integer(LPDWORD) pcbData ! LPDWORD pcbData
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION EnumPrinterDataEx( &
        hPrinter, &
        pKeyName, &
        pEnumValues, &
        cbEnumValues, &
        pcbEnumValues, &
        pnEnumValues)
USE DFWINTY
  integer(DWORD) :: EnumPrinterDataEx ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'EnumPrinterDataExA' :: EnumPrinterDataEx
  integer(HANDLE) hPrinter ! HANDLE hPrinter
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pKeyName
  character*(*) pKeyName ! LPCSTR pKeyName
  integer(LPBYTE) pEnumValues ! LPBYTE pEnumValues
  integer(DWORD) cbEnumValues ! DWORD cbEnumValues
  integer(LPDWORD) pcbEnumValues ! LPDWORD pcbEnumValues
  integer(LPDWORD) pnEnumValues ! LPDWORD pnEnumValues
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION EnumPrinterKey( &
        hPrinter, &
        pKeyName, &
        pSubkey, &
        cbSubkey, &
        pcbSubkey)
USE DFWINTY
  integer(DWORD) :: EnumPrinterKey ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'EnumPrinterKeyA' :: EnumPrinterKey
  integer(HANDLE) hPrinter ! HANDLE hPrinter
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pKeyName
  character*(*) pKeyName ! LPCSTR pKeyName
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pSubkey
  character*(*) pSubkey ! LPSTR pSubkey
  integer(DWORD) cbSubkey ! DWORD cbSubkey
  integer(LPDWORD) pcbSubkey ! LPDWORD pcbSubkey
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION SetPrinterData( &
        hPrinter, &
        pValueName, &
        Type, &
        pData, &
        cbData)
USE DFWINTY
  integer(DWORD) :: SetPrinterData ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'SetPrinterDataA' :: SetPrinterData
  integer(HANDLE) hPrinter ! HANDLE hPrinter
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pValueName
  character*(*) pValueName ! LPSTR pValueName
  integer(DWORD) Type ! DWORD Type
  integer(LPBYTE) pData ! LPBYTE pData
  integer(DWORD) cbData ! DWORD cbData
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION SetPrinterDataEx( &
        hPrinter, &
        pKeyName, &
        pValueName, &
        Type, &
        pData, &
        cbData)
USE DFWINTY
  integer(DWORD) :: SetPrinterDataEx ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'SetPrinterDataExA' :: SetPrinterDataEx
  integer(HANDLE) hPrinter ! HANDLE hPrinter
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pKeyName
  character*(*) pKeyName ! LPCSTR pKeyName
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pValueName
  character*(*) pValueName ! LPCSTR pValueName
  integer(DWORD) Type ! DWORD Type
  integer(LPBYTE) pData ! LPBYTE pData
  integer(DWORD) cbData ! DWORD cbData
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION DeletePrinterData( &
        hPrinter, &
        pValueName)
USE DFWINTY
  integer(DWORD) :: DeletePrinterData ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'DeletePrinterDataA' :: DeletePrinterData
  integer(HANDLE) hPrinter ! HANDLE hPrinter
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pValueName
  character*(*) pValueName ! LPSTR pValueName
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION DeletePrinterDataEx( &
        hPrinter, &
        pKeyName, &
        pValueName)
USE DFWINTY
  integer(DWORD) :: DeletePrinterDataEx ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'DeletePrinterDataExA' :: DeletePrinterDataEx
  integer(HANDLE) hPrinter ! HANDLE hPrinter
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pKeyName
  character*(*) pKeyName ! LPCSTR pKeyName
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pValueName
  character*(*) pValueName ! LPCSTR pValueName
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION DeletePrinterKey( &
        hPrinter, &
        pKeyName)
USE DFWINTY
  integer(DWORD) :: DeletePrinterKey ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'DeletePrinterKeyA' :: DeletePrinterKey
  integer(HANDLE) hPrinter ! HANDLE hPrinter
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pKeyName
  character*(*) pKeyName ! LPCSTR pKeyName
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION WaitForPrinterChange( &
        hPrinter, &
        Flags)
USE DFWINTY
  integer(DWORD) :: WaitForPrinterChange ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'WaitForPrinterChange' :: WaitForPrinterChange
  integer(HANDLE) hPrinter ! HANDLE hPrinter
  integer(DWORD) Flags ! DWORD Flags
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION FindFirstPrinterChangeNotification( &
        hPrinter, &
        fdwFlags, &
        fdwOptions, &
        pPrinterNotifyOptions)
USE DFWINTY
  integer(HANDLE) :: FindFirstPrinterChangeNotification ! HANDLE
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'FindFirstPrinterChangeNotification' :: FindFirstPrinterChangeNotification
  integer(HANDLE) hPrinter ! HANDLE hPrinter
  integer(DWORD) fdwFlags ! DWORD fdwFlags
  integer(DWORD) fdwOptions ! DWORD fdwOptions
  integer(LPVOID) pPrinterNotifyOptions ! LPVOID pPrinterNotifyOptions
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION FindNextPrinterChangeNotification( &
        hChange, &
        pdwChange, &
        pvReserved, &
        ppPrinterNotifyInfo)
USE DFWINTY
  integer(BOOL) :: FindNextPrinterChangeNotification ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'FindNextPrinterChangeNotification' :: FindNextPrinterChangeNotification
  integer(HANDLE) hChange ! HANDLE hChange
  integer(LPDWORD) pdwChange ! PDWORD pdwChange
  integer(LPVOID) pvReserved ! LPVOID pvReserved
!DEC$ ATTRIBUTES REFERENCE :: ppPrinterNotifyInfo
  integer(LPVOID) ppPrinterNotifyInfo ! LPVOID* ppPrinterNotifyInfo
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION FreePrinterNotifyInfo( &
        pPrinterNotifyInfo)
USE DFWINTY
  integer(BOOL) :: FreePrinterNotifyInfo ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'FreePrinterNotifyInfo' :: FreePrinterNotifyInfo
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pPrinterNotifyInfo
  TYPE (T_PRINTER_NOTIFY_INFO) pPrinterNotifyInfo ! PPRINTER_NOTIFY_INFO pPrinterNotifyInfo
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION FindClosePrinterChangeNotification( &
        hChange)
USE DFWINTY
  integer(BOOL) :: FindClosePrinterChangeNotification ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'FindClosePrinterChangeNotification' :: FindClosePrinterChangeNotification
  integer(HANDLE) hChange ! HANDLE hChange
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION PrinterMessageBox( &
        hPrinter, &
        aError, &
        hWnd, &
        pText, &
        pCaption, &
        dwType)
USE DFWINTY
  integer(DWORD) :: PrinterMessageBox ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'PrinterMessageBoxA' :: PrinterMessageBox
  integer(HANDLE) hPrinter ! HANDLE hPrinter
  integer(DWORD) aError ! DWORD Error
  integer(HANDLE) hWnd ! HWND hWnd
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pText
  character*(*) pText ! LPSTR pText
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pCaption
  character*(*) pCaption ! LPSTR pCaption
  integer(DWORD) dwType ! DWORD dwType
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION ClosePrinter( &
        hPrinter)
USE DFWINTY
  integer(BOOL) :: ClosePrinter ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'ClosePrinter' :: ClosePrinter
  integer(HANDLE) hPrinter ! HANDLE hPrinter
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION AddForm( &
        hPrinter, &
        Level, &
        pForm)
USE DFWINTY
  integer(BOOL) :: AddForm ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'AddFormA' :: AddForm
  integer(HANDLE) hPrinter ! HANDLE hPrinter
  integer(DWORD) Level ! DWORD Level
  integer(LPBYTE) pForm ! LPBYTE pForm
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION DeleteForm( &
        hPrinter, &
        pFormName)
USE DFWINTY
  integer(BOOL) :: DeleteForm ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'DeleteFormA' :: DeleteForm
  integer(HANDLE) hPrinter ! HANDLE hPrinter
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pFormName
  character*(*) pFormName ! LPSTR pFormName
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION GetForm( &
        hPrinter, &
        pFormName, &
        Level, &
        pForm, &
        cbBuf, &
        pcbNeeded)
USE DFWINTY
  integer(BOOL) :: GetForm ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'GetFormA' :: GetForm
  integer(HANDLE) hPrinter ! HANDLE hPrinter
!DEC$ ATTRIBUTES REFERENCE, IGNORE_LOC, ALLOW_NULL :: pFormName
  character*(*) pFormName ! LPSTR pFormName
  integer(DWORD) Level ! DWORD Level
  integer(LPBYTE) pForm ! LPBYTE pForm
  integer(DWORD) cbBuf ! DWORD cbBuf
  integer(LPDWORD) pcbNeeded ! LPDWORD pcbNeeded
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION SetForm( &
        hPrinter, &
        pFormName, &
        Level, &
        pForm)
USE DFWINTY
  integer(BOOL) :: SetForm ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'SetFormA' :: SetForm
  integer(HANDLE) hPrinter ! HANDLE hPrinter
!DEC$ ATTRIBUTES REFERENCE, IGNORE_LOC, ALLOW_NULL :: pFormName
  character*(*) pFormName ! LPSTR pFormName
  integer(DWORD) Level ! DWORD Level
  integer(LPBYTE) pForm ! LPBYTE pForm
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION EnumForms( &
        hPrinter, &
        Level, &
        pForm, &
        cbBuf, &
        pcbNeeded, &
        pcReturned)
USE DFWINTY
  integer(BOOL) :: EnumForms ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'EnumFormsA' :: EnumForms
  integer(HANDLE) hPrinter ! HANDLE hPrinter
  integer(DWORD) Level ! DWORD Level
  integer(LPBYTE) pForm ! LPBYTE pForm
  integer(DWORD) cbBuf ! DWORD cbBuf
  integer(LPDWORD) pcbNeeded ! LPDWORD pcbNeeded
  integer(LPDWORD) pcReturned ! LPDWORD pcReturned
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION EnumMonitors( &
        pName, &
        Level, &
        pMonitors, &
        cbBuf, &
        pcbNeeded, &
        pcReturned)
USE DFWINTY
  integer(BOOL) :: EnumMonitors ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'EnumMonitorsA' :: EnumMonitors
!DEC$ ATTRIBUTES REFERENCE, IGNORE_LOC, ALLOW_NULL :: pName
  character*(*) pName ! LPSTR pName
  integer(DWORD) Level ! DWORD Level
  integer(LPBYTE) pMonitors ! LPBYTE pMonitors
  integer(DWORD) cbBuf ! DWORD cbBuf
  integer(LPDWORD) pcbNeeded ! LPDWORD pcbNeeded
  integer(LPDWORD) pcReturned ! LPDWORD pcReturned
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION AddMonitor( &
        pName, &
        Level, &
        pMonitors)
USE DFWINTY
  integer(BOOL) :: AddMonitor ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'AddMonitorA' :: AddMonitor
!DEC$ ATTRIBUTES REFERENCE, IGNORE_LOC, ALLOW_NULL :: pName
  character*(*) pName ! LPSTR pName
  integer(DWORD) Level ! DWORD Level
  integer(LPBYTE) pMonitors ! LPBYTE pMonitors
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION DeleteMonitor( &
        pName, &
        pEnvironment, &
        pMonitorName)
USE DFWINTY
  integer(BOOL) :: DeleteMonitor ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'DeleteMonitorA' :: DeleteMonitor
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pName
  character*(*) pName ! LPSTR pName
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pEnvironment
  character*(*) pEnvironment ! LPSTR pEnvironment
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pMonitorName
  character*(*) pMonitorName ! LPSTR pMonitorName
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION EnumPorts( &
        pName, &
        Level, &
        pPorts, &
        cbBuf, &
        pcbNeeded, &
        pcReturned)
USE DFWINTY
  integer(BOOL) :: EnumPorts ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'EnumPortsA' :: EnumPorts
!DEC$ ATTRIBUTES REFERENCE, IGNORE_LOC, ALLOW_NULL :: pName
  character*(*) pName ! LPSTR pName
  integer(DWORD) Level ! DWORD Level
  integer(LPBYTE) pPorts ! LPBYTE pPorts
  integer(DWORD) cbBuf ! DWORD cbBuf
  integer(LPDWORD) pcbNeeded ! LPDWORD pcbNeeded
  integer(LPDWORD) pcReturned ! LPDWORD pcReturned
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION AddPort( &
        pName, &
        hWnd, &
        pMonitorName)
USE DFWINTY
  integer(BOOL) :: AddPort ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'AddPortA' :: AddPort
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pName
  character*(*) pName ! LPSTR pName
  integer(HANDLE) hWnd ! HWND hWnd
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pMonitorName
  character*(*) pMonitorName ! LPSTR pMonitorName
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION ConfigurePort( &
        pName, &
        hWnd, &
        pPortName)
USE DFWINTY
  integer(BOOL) :: ConfigurePort ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'ConfigurePortA' :: ConfigurePort
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pName
  character*(*) pName ! LPSTR pName
  integer(HANDLE) hWnd ! HWND hWnd
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pPortName
  character*(*) pPortName ! LPSTR pPortName
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION DeletePort( &
        pName, &
        hWnd, &
        pPortName)
USE DFWINTY
  integer(BOOL) :: DeletePort ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'DeletePortA' :: DeletePort
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pName
  character*(*) pName ! LPSTR pName
  integer(HANDLE) hWnd ! HWND hWnd
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pPortName
  character*(*) pPortName ! LPSTR pPortName
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION GetDefaultPrinter( &
        pszBuffer, &
        pcchBuffer)
USE DFWINTY
  integer(BOOL) :: GetDefaultPrinter ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'GetDefaultPrinterA' :: GetDefaultPrinter
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pszBuffer
  character*(*) pszBuffer ! LPSTR pszBuffer
  integer(LPDWORD) pcchBuffer ! LPDWORD pcchBuffer
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION SetDefaultPrinter( &
        pszPrinter)
USE DFWINTY
  integer(BOOL) :: SetDefaultPrinter ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'SetDefaultPrinterA' :: SetDefaultPrinter
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pszPrinter
  character*(*) pszPrinter ! LPCSTR pszPrinter
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION SetPort( &
        pName, &
        pPortName, &
        dwLevel, &
        pPortInfo)
USE DFWINTY
  integer(BOOL) :: SetPort ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'SetPortA' :: SetPort
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pName
  character*(*) pName ! LPSTR pName
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pPortName
  character*(*) pPortName ! LPSTR pPortName
  integer(DWORD) dwLevel ! DWORD dwLevel
  integer(LPBYTE) pPortInfo ! LPBYTE pPortInfo
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION AddPrinterConnection( &
        pName)
USE DFWINTY
  integer(BOOL) :: AddPrinterConnection ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'AddPrinterConnectionA' :: AddPrinterConnection
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pName
  character*(*) pName ! LPSTR pName
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION DeletePrinterConnection( &
        pName)
USE DFWINTY
  integer(BOOL) :: DeletePrinterConnection ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'DeletePrinterConnectionA' :: DeletePrinterConnection
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pName
  character*(*) pName ! LPSTR pName
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION ConnectToPrinterDlg( &
        hwnd, &
        Flags)
USE DFWINTY
  integer(HANDLE) :: ConnectToPrinterDlg ! HANDLE
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'ConnectToPrinterDlg' :: ConnectToPrinterDlg
  integer(HANDLE) hwnd ! HWND hwnd
  integer(DWORD) Flags ! DWORD Flags
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION AddPrintProvidor( &
        pName, &
        level, &
        pProvidorInfo)
USE DFWINTY
  integer(BOOL) :: AddPrintProvidor ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'AddPrintProvidorA' :: AddPrintProvidor
!DEC$ ATTRIBUTES REFERENCE, IGNORE_LOC, ALLOW_NULL :: pName
  character*(*) pName ! LPSTR pName
  integer(DWORD) level ! DWORD level
  integer(LPBYTE) pProvidorInfo ! LPBYTE pProvidorInfo
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION DeletePrintProvidor( &
        pName, &
        pEnvironment, &
        pPrintProvidorName)
USE DFWINTY
  integer(BOOL) :: DeletePrintProvidor ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'DeletePrintProvidorA' :: DeletePrintProvidor
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pName
  character*(*) pName ! LPSTR pName
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pEnvironment
  character*(*) pEnvironment ! LPSTR pEnvironment
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pPrintProvidorName
  character*(*) pPrintProvidorName ! LPSTR pPrintProvidorName
 END FUNCTION
END INTERFACE
!
end module winspool
!
!DEC$ ENDIF ! /* WINSPOOL_ */
