Windows NT 4.0 source code leak
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

/****************************************************************************
* *
* 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_