mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
541 lines
14 KiB
541 lines
14 KiB
/****************************************************************************
|
|
* *
|
|
* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY *
|
|
* KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE *
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR *
|
|
* PURPOSE. *
|
|
* *
|
|
* Copyright (C) 1993-95 Microsoft Corporation. All Rights Reserved. *
|
|
* *
|
|
****************************************************************************/
|
|
|
|
/*++
|
|
|
|
Module Name:
|
|
|
|
WinSplp.h
|
|
|
|
Abstract:
|
|
|
|
Internal Header file for Print APIs
|
|
|
|
--*/
|
|
|
|
#ifndef _WINSPLP_
|
|
#define _WINSPLP_
|
|
|
|
#define PD_INSTALLED_MEMORY "Installed Memory"
|
|
#define PD_AVAILABLE_MEMORY "Available Memory"
|
|
|
|
typedef struct _PRINTPROVIDOR {
|
|
|
|
BOOL (WINAPI *fpOpenPrinter)(LPTSTR pPrinterName,
|
|
LPHANDLE phPrinter,
|
|
LPPRINTER_DEFAULTS pDefault);
|
|
|
|
BOOL (WINAPI *fpSetJob)(HANDLE hPrinter,
|
|
DWORD JobId,
|
|
DWORD Level,
|
|
LPBYTE pJob,
|
|
DWORD Command);
|
|
|
|
BOOL (WINAPI *fpGetJob)(HANDLE hPrinter,
|
|
DWORD JobId,
|
|
DWORD Level,
|
|
LPBYTE pJob,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded);
|
|
|
|
BOOL (WINAPI *fpEnumJobs)(HANDLE hPrinter,
|
|
DWORD FirstJob,
|
|
DWORD NoJobs,
|
|
DWORD Level,
|
|
LPBYTE pJob,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded,
|
|
LPDWORD pcReturned);
|
|
|
|
HANDLE (WINAPI *fpAddPrinter)(LPTSTR pName,
|
|
DWORD Level,
|
|
LPBYTE pPrinter);
|
|
|
|
BOOL (WINAPI *fpDeletePrinter)(HANDLE hPrinter);
|
|
|
|
BOOL (WINAPI *fpSetPrinter)(HANDLE hPrinter,
|
|
DWORD Level,
|
|
LPBYTE pPrinter,
|
|
DWORD Command);
|
|
|
|
BOOL (WINAPI *fpGetPrinter)(HANDLE hPrinter,
|
|
DWORD Level,
|
|
LPBYTE pPrinter,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded);
|
|
|
|
BOOL (WINAPI *fpEnumPrinters)(DWORD Flags,
|
|
LPTSTR Name,
|
|
DWORD Level,
|
|
LPBYTE pPrinterEnum,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded,
|
|
LPDWORD pcReturned);
|
|
|
|
BOOL (WINAPI *fpAddPrinterDriver)(LPTSTR pName,
|
|
DWORD Level,
|
|
LPBYTE pDriverInfo);
|
|
|
|
BOOL (WINAPI *fpEnumPrinterDrivers)(LPTSTR pName,
|
|
LPTSTR pEnvironment,
|
|
DWORD Level,
|
|
LPBYTE pDriverInfo,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded,
|
|
LPDWORD pcReturned);
|
|
|
|
BOOL (WINAPI *fpGetPrinterDriver)(HANDLE hPrinter,
|
|
LPTSTR pEnvironment,
|
|
DWORD Level,
|
|
LPBYTE pDriverInfo,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded);
|
|
|
|
BOOL (WINAPI *fpGetPrinterDriverDirectory)(LPTSTR pName,
|
|
LPTSTR pEnvironment,
|
|
DWORD Level,
|
|
LPBYTE pDriverDirectory,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded);
|
|
|
|
BOOL (WINAPI *fpDeletePrinterDriver)(LPTSTR pName,
|
|
LPTSTR pEnvironment,
|
|
LPTSTR pDriverName);
|
|
|
|
BOOL (WINAPI *fpAddPrintProcessor)(LPTSTR pName,
|
|
LPTSTR pEnvironment,
|
|
LPTSTR pPathName,
|
|
LPTSTR pPrintProcessorName);
|
|
|
|
BOOL (WINAPI *fpEnumPrintProcessors)(LPTSTR pName,
|
|
LPTSTR pEnvironment,
|
|
DWORD Level,
|
|
LPBYTE pPrintProcessorInfo,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded,
|
|
LPDWORD pcReturned);
|
|
|
|
BOOL (WINAPI *fpGetPrintProcessorDirectory)(LPTSTR pName,
|
|
LPTSTR pEnvironment,
|
|
DWORD Level,
|
|
LPBYTE pPrintProcessorInfo,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded);
|
|
|
|
BOOL (WINAPI *fpDeletePrintProcessor)(LPTSTR pName,
|
|
LPTSTR pEnvironment,
|
|
LPTSTR pPrintProcessorName);
|
|
|
|
BOOL (WINAPI *fpEnumPrintProcessorDatatypes)(LPTSTR pName,
|
|
LPTSTR pPrintProcessorName,
|
|
DWORD Level,
|
|
LPBYTE pDataypes,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded,
|
|
LPDWORD pcReturned);
|
|
|
|
DWORD (WINAPI *fpStartDocPrinter)(HANDLE hPrinter,
|
|
DWORD Level,
|
|
LPBYTE pDocInfo);
|
|
|
|
BOOL (WINAPI *fpStartPagePrinter)(HANDLE hPrinter);
|
|
|
|
BOOL (WINAPI *fpWritePrinter)(HANDLE hPrinter,
|
|
LPVOID pBuf,
|
|
DWORD cbBuf,
|
|
LPDWORD pcWritten);
|
|
|
|
BOOL (WINAPI *fpEndPagePrinter)(HANDLE hPrinter);
|
|
|
|
BOOL (WINAPI *fpAbortPrinter)(HANDLE hPrinter);
|
|
|
|
BOOL (WINAPI *fpReadPrinter)(HANDLE hPrinter,
|
|
LPVOID pBuf,
|
|
DWORD cbBuf,
|
|
LPDWORD pNoBytesRead);
|
|
|
|
BOOL (WINAPI *fpEndDocPrinter)(HANDLE hPrinter);
|
|
|
|
BOOL (WINAPI *fpAddJob)(HANDLE hPrinter,
|
|
DWORD Level,
|
|
LPBYTE pData,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded);
|
|
|
|
BOOL (WINAPI *fpScheduleJob)(HANDLE hPrinter,
|
|
DWORD JobId);
|
|
|
|
DWORD (WINAPI *fpGetPrinterData)(HANDLE hPrinter,
|
|
LPTSTR pValueName,
|
|
LPDWORD pType,
|
|
LPBYTE pData,
|
|
DWORD nSize,
|
|
LPDWORD pcbNeeded);
|
|
|
|
DWORD (WINAPI *fpSetPrinterData)(HANDLE hPrinter,
|
|
LPTSTR pValueName,
|
|
DWORD Type,
|
|
LPBYTE pData,
|
|
DWORD cbData);
|
|
|
|
DWORD (WINAPI *fpWaitForPrinterChange)(HANDLE hPrinter, DWORD Flags);
|
|
|
|
BOOL (WINAPI *fpClosePrinter)(HANDLE hPrinter);
|
|
|
|
BOOL (WINAPI *fpAddForm)(HANDLE hPrinter,
|
|
DWORD Level,
|
|
LPBYTE pForm);
|
|
|
|
BOOL (WINAPI *fpDeleteForm)(HANDLE hPrinter,
|
|
LPTSTR pFormName);
|
|
|
|
BOOL (WINAPI *fpGetForm)(HANDLE hPrinter,
|
|
LPTSTR pFormName,
|
|
DWORD Level,
|
|
LPBYTE pForm,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded);
|
|
|
|
BOOL (WINAPI *fpSetForm)(HANDLE hPrinter,
|
|
LPTSTR pFormName,
|
|
DWORD Level,
|
|
LPBYTE pForm);
|
|
|
|
BOOL (WINAPI *fpEnumForms)(HANDLE hPrinter,
|
|
DWORD Level,
|
|
LPBYTE pForm,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded,
|
|
LPDWORD pcReturned);
|
|
|
|
BOOL (WINAPI *fpEnumMonitors)(LPTSTR pName,
|
|
DWORD Level,
|
|
LPBYTE pMonitors,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded,
|
|
LPDWORD pcReturned);
|
|
|
|
BOOL (WINAPI *fpEnumPorts)(LPTSTR pName,
|
|
DWORD Level,
|
|
LPBYTE pPorts,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded,
|
|
LPDWORD pcReturned);
|
|
|
|
BOOL (WINAPI *fpAddPort)(LPTSTR pName,
|
|
HWND hWnd,
|
|
LPTSTR pMonitorName);
|
|
|
|
BOOL (WINAPI *fpConfigurePort)(LPTSTR pName,
|
|
HWND hWnd,
|
|
LPTSTR pPortName);
|
|
|
|
BOOL (WINAPI *fpDeletePort)(LPTSTR pName,
|
|
HWND hWnd,
|
|
LPTSTR pPortName);
|
|
|
|
HANDLE (WINAPI *fpCreatePrinterIC)(HANDLE hPrinter,
|
|
LPDEVMODE pDevMode);
|
|
|
|
BOOL (WINAPI *fpPlayGdiScriptOnPrinterIC)(HANDLE hPrinterIC,
|
|
LPBYTE pIn,
|
|
DWORD cIn,
|
|
LPBYTE pOut,
|
|
DWORD cOut,
|
|
DWORD ul);
|
|
|
|
BOOL (WINAPI *fpDeletePrinterIC)(HANDLE hPrinterIC);
|
|
|
|
BOOL (WINAPI *fpAddPrinterConnection)(LPTSTR pName);
|
|
|
|
BOOL (WINAPI *fpDeletePrinterConnection)(LPTSTR pName);
|
|
|
|
DWORD (WINAPI *fpPrinterMessageBox)(HANDLE hPrinter,
|
|
DWORD Error,
|
|
HWND hWnd,
|
|
LPTSTR pText,
|
|
LPTSTR pCaption,
|
|
DWORD dwType);
|
|
|
|
BOOL (WINAPI *fpAddMonitor)(LPTSTR pName,
|
|
DWORD Level,
|
|
LPBYTE pMonitorInfo);
|
|
|
|
BOOL (WINAPI *fpDeleteMonitor)(LPTSTR pName,
|
|
LPTSTR pEnvironment,
|
|
LPTSTR pMonitorName);
|
|
|
|
} PRINTPROVIDOR, FAR *LPPRINTPROVIDOR;
|
|
|
|
BOOL
|
|
WINAPI
|
|
InitializePrintProvidor(
|
|
LPPRINTPROVIDOR pPrintProvidor,
|
|
DWORD cbPrintProvidor,
|
|
LPTSTR pFullRegistryPath
|
|
);
|
|
|
|
typedef struct _PRINTPROCESSORDOCUMENTDATA
|
|
{
|
|
LPDEVMODE pDevMode;
|
|
LPTSTR pDatatype;
|
|
LPTSTR pParameters;
|
|
LPTSTR pDocumentName;
|
|
DWORD JobId;
|
|
LPTSTR pOutputFile; // ccteng add these for chicago
|
|
LPTSTR pSpoolFileName; // full path + filename
|
|
LPTSTR pSepFile; // Separator file
|
|
} PRINTPROCESSORDOCUMENTDATA, FAR *PPRINTPROCESSORDOCUMENTDATA, FAR *LPPRINTPROCESSORDOCUMENTDATA;
|
|
|
|
typedef struct _PRINTPROCESSOR
|
|
{
|
|
BOOL (WINAPI *fpEnumDatatypes)
|
|
(
|
|
LPTSTR pName,
|
|
LPTSTR pPrintProcessorName,
|
|
DWORD Level,
|
|
LPSTR pDatatypes,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded,
|
|
LPDWORD pcReturned
|
|
);
|
|
|
|
HANDLE (WINAPI *fpOpenPrintProcessor)
|
|
(
|
|
LPTSTR pPrinterName
|
|
);
|
|
|
|
BOOL (WINAPI *fpPrintDocument)
|
|
(
|
|
HANDLE hPrintProcessor,
|
|
PPRINTPROCESSORDOCUMENTDATA pDoc
|
|
);
|
|
|
|
BOOL (WINAPI *fpClosePrintProcessor)
|
|
(
|
|
HANDLE hPrintProcessor
|
|
);
|
|
|
|
BOOL (WINAPI *fpControlPrintProcessor)
|
|
(
|
|
HANDLE hPrintProcessor,
|
|
DWORD Command,
|
|
DWORD JobId,
|
|
LPTSTR pDatatype,
|
|
LPTSTR pSpoolFile
|
|
);
|
|
} PRINTPROCESSOR, FAR *LPPRINTPROCESSOR;
|
|
|
|
BOOL
|
|
WINAPI
|
|
InitializePrintProcessor
|
|
(
|
|
LPPRINTPROCESSOR pPrintProcessor,
|
|
DWORD cbPrintProcessor
|
|
);
|
|
|
|
/*
|
|
BOOL
|
|
WINAPI
|
|
PrintDocumentOnPrintProcessor(
|
|
HANDLE hPrintProcessor,
|
|
LPTSTR pDocumentName
|
|
);
|
|
|
|
BOOL
|
|
WINAPI
|
|
ClosePrintProcessor(
|
|
HANDLE hPrintProcessor
|
|
);
|
|
|
|
BOOL
|
|
WINAPI
|
|
ControlPrintProcessor(
|
|
HANDLE hPrintProcessor,
|
|
DWORD Command
|
|
);
|
|
|
|
*/
|
|
BOOL
|
|
WINAPI
|
|
InstallPrintProcessor(
|
|
HWND hWnd
|
|
);
|
|
|
|
|
|
typedef struct _MONITOR
|
|
{
|
|
BOOL (WINAPI *pfnEnumPorts)
|
|
(
|
|
LPTSTR pName,
|
|
DWORD Level,
|
|
LPBYTE pPorts,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded,
|
|
LPDWORD pcReturned
|
|
);
|
|
|
|
BOOL (WINAPI *pfnOpenPort)
|
|
(
|
|
LPTSTR pName,
|
|
PHANDLE pHandle
|
|
);
|
|
|
|
BOOL (WINAPI *pfnOpenPortEx)
|
|
(
|
|
LPTSTR pPortName,
|
|
LPTSTR pPrinterName,
|
|
PHANDLE pHandle,
|
|
struct _MONITOR FAR *pMonitor
|
|
);
|
|
|
|
|
|
BOOL (WINAPI *pfnStartDocPort)
|
|
(
|
|
HANDLE hPort,
|
|
LPTSTR pPrinterName,
|
|
DWORD JobId,
|
|
DWORD Level,
|
|
LPBYTE pDocInfo
|
|
);
|
|
|
|
BOOL (WINAPI *pfnWritePort)
|
|
(
|
|
HANDLE hPort,
|
|
LPBYTE pBuffer,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbWritten
|
|
);
|
|
|
|
BOOL (WINAPI *pfnReadPort)
|
|
(
|
|
HANDLE hPort,
|
|
LPBYTE pBuffer,
|
|
DWORD cbBuffer,
|
|
LPDWORD pcbRead
|
|
);
|
|
|
|
BOOL (WINAPI *pfnEndDocPort)
|
|
(
|
|
HANDLE hPort
|
|
);
|
|
|
|
BOOL (WINAPI *pfnClosePort)
|
|
(
|
|
HANDLE hPort
|
|
);
|
|
|
|
BOOL (WINAPI *pfnAddPort)
|
|
(
|
|
LPTSTR pName,
|
|
HWND hWnd,
|
|
LPTSTR pMonitorName
|
|
);
|
|
|
|
BOOL (WINAPI *pfnConfigurePort)
|
|
(
|
|
LPTSTR pName,
|
|
HWND hWnd,
|
|
LPTSTR pPortName
|
|
);
|
|
|
|
BOOL (WINAPI *pfnDeletePort)
|
|
(
|
|
LPTSTR pName,
|
|
HWND hWnd,
|
|
LPTSTR pPortName
|
|
);
|
|
|
|
BOOL (WINAPI *pfnGetPrinterDataFromPort)
|
|
(
|
|
HANDLE hPort,
|
|
DWORD ControlID,
|
|
LPTSTR pValueName,
|
|
LPTSTR lpInBuffer,
|
|
DWORD cbInBuffer,
|
|
LPTSTR lpOutBuffer,
|
|
DWORD cbOutBuffer,
|
|
LPDWORD lpcbReturned
|
|
);
|
|
|
|
BOOL (WINAPI *pfnSetPortTimeOuts)
|
|
(
|
|
HANDLE hPort,
|
|
LPCOMMTIMEOUTS lpCTO,
|
|
DWORD reserved // must be set to 0
|
|
);
|
|
|
|
|
|
|
|
} MONITOR, FAR *LPMONITOR;
|
|
|
|
BOOL
|
|
WINAPI
|
|
InitializeMonitorEx(
|
|
LPTSTR pRegisterRoot,
|
|
LPMONITOR pMonitor
|
|
);
|
|
|
|
|
|
HANDLE
|
|
WINAPI
|
|
CreatePrinterIC(
|
|
HANDLE hPrinter,
|
|
LPDEVMODE pDevMode
|
|
);
|
|
|
|
BOOL
|
|
WINAPI
|
|
PlayGdiScriptOnPrinterIC(
|
|
HANDLE hPrinterIC,
|
|
LPBYTE pIn,
|
|
DWORD cIn,
|
|
LPBYTE pOut,
|
|
DWORD cOut,
|
|
DWORD ul
|
|
);
|
|
|
|
BOOL
|
|
WINAPI
|
|
DeletePrinterIC(
|
|
HANDLE hPrinterIC
|
|
);
|
|
|
|
BOOL
|
|
WINAPI
|
|
DevQueryPrint(
|
|
HANDLE hPrinter,
|
|
LPDEVMODE pDevMode,
|
|
DWORD FAR *pResID
|
|
);
|
|
|
|
#if 0 // ccteng we don't need this in chicago
|
|
|
|
HANDLE
|
|
WINAPI
|
|
RevertToPrinterSelf(
|
|
VOID
|
|
);
|
|
|
|
BOOL
|
|
WINAPI
|
|
ImpersonatePrinterClient(
|
|
HANDLE hToken
|
|
);
|
|
|
|
#else
|
|
|
|
#define RevertToPrinterSelf() 0
|
|
#define ImpersonatePrinterClient(a) TRUE
|
|
|
|
#endif
|
|
|
|
#endif // _WINSPLP_
|