summaryrefslogtreecommitdiffstats
path: root/public/oak/inc/winsplp.h
diff options
context:
space:
mode:
Diffstat (limited to 'public/oak/inc/winsplp.h')
-rw-r--r--public/oak/inc/winsplp.h723
1 files changed, 723 insertions, 0 deletions
diff --git a/public/oak/inc/winsplp.h b/public/oak/inc/winsplp.h
new file mode 100644
index 000000000..bfeb54591
--- /dev/null
+++ b/public/oak/inc/winsplp.h
@@ -0,0 +1,723 @@
+/*++
+
+Copyright (c) 1990 Microsoft Corporation
+
+Module Name:
+
+ WinSplp.h
+
+Abstract:
+
+ Internal Header file for Print APIs
+
+Author:
+
+ Dave Snipp (DaveSn) 15-Mar-1991
+
+Revision History:
+
+--*/
+
+#ifndef _WINSPLP_
+#define _WINSPLP_
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#define PRINTER_NOTIFY_STATUS_ENDPOINT 1
+#define PRINTER_NOTIFY_STATUS_POLL 2
+#define PRINTER_NOTIFY_STATUS_INFO 4
+
+
+#define ROUTER_UNKNOWN 0
+#define ROUTER_SUCCESS 1
+#define ROUTER_STOP_ROUTING 2
+
+
+typedef struct _PRINTER_NOTIFY_INIT {
+ DWORD Size;
+ DWORD Reserved;
+ DWORD PollTime;
+} PRINTER_NOTIFY_INIT, *PPRINTER_NOTIFY_INIT, *LPPRINTER_NOTIFY_INIT;
+
+typedef struct _SPLCLIENT_INFO_1{
+ DWORD dwSize;
+ LPWSTR pMachineName;
+ LPWSTR pUserName;
+ DWORD dwBuildNum;
+ DWORD dwMajorVersion;
+ DWORD dwMinorVersion;
+ WORD wProcessorArchitecture;
+} SPLCLIENT_INFO_1, *PSPLCLIENT_INFO_1, *LPSPLCLIENT_INFO_1;
+
+
+typedef struct _PRINTPROVIDOR {
+
+ BOOL (*fpOpenPrinter)(LPWSTR pPrinterName,
+ LPHANDLE phPrinter,
+ LPPRINTER_DEFAULTS pDefault);
+
+ BOOL (*fpSetJob)(HANDLE hPrinter,
+ DWORD JobId,
+ DWORD Level,
+ LPBYTE pJob,
+ DWORD Command);
+
+ BOOL (*fpGetJob)(HANDLE hPrinter,
+ DWORD JobId,
+ DWORD Level,
+ LPBYTE pJob,
+ DWORD cbBuf,
+ LPDWORD pcbNeeded);
+
+ BOOL (*fpEnumJobs)(HANDLE hPrinter,
+ DWORD FirstJob,
+ DWORD NoJobs,
+ DWORD Level,
+ LPBYTE pJob,
+ DWORD cbBuf,
+ LPDWORD pcbNeeded,
+ LPDWORD pcReturned);
+
+ HANDLE (*fpAddPrinter)(LPWSTR pName,
+ DWORD Level,
+ LPBYTE pPrinter);
+
+ BOOL (*fpDeletePrinter)(HANDLE hPrinter);
+
+ BOOL (*fpSetPrinter)(HANDLE hPrinter,
+ DWORD Level,
+ LPBYTE pPrinter,
+ DWORD Command);
+
+ BOOL (*fpGetPrinter)(HANDLE hPrinter,
+ DWORD Level,
+ LPBYTE pPrinter,
+ DWORD cbBuf,
+ LPDWORD pcbNeeded);
+
+ BOOL (*fpEnumPrinters)(DWORD Flags,
+ LPWSTR Name,
+ DWORD Level,
+ LPBYTE pPrinterEnum,
+ DWORD cbBuf,
+ LPDWORD pcbNeeded,
+ LPDWORD pcReturned);
+
+ BOOL (*fpAddPrinterDriver)(LPWSTR pName,
+ DWORD Level,
+ LPBYTE pDriverInfo);
+
+ BOOL (*fpEnumPrinterDrivers)(LPWSTR pName,
+ LPWSTR pEnvironment,
+ DWORD Level,
+ LPBYTE pDriverInfo,
+ DWORD cbBuf,
+ LPDWORD pcbNeeded,
+ LPDWORD pcReturned);
+
+ BOOL (*fpGetPrinterDriver)(HANDLE hPrinter,
+ LPWSTR pEnvironment,
+ DWORD Level,
+ LPBYTE pDriverInfo,
+ DWORD cbBuf,
+ LPDWORD pcbNeeded);
+
+ BOOL (*fpGetPrinterDriverDirectory)(LPWSTR pName,
+ LPWSTR pEnvironment,
+ DWORD Level,
+ LPBYTE pDriverDirectory,
+ DWORD cbBuf,
+ LPDWORD pcbNeeded);
+
+ BOOL (*fpDeletePrinterDriver)(LPWSTR pName,
+ LPWSTR pEnvironment,
+ LPWSTR pDriverName);
+
+ BOOL (*fpAddPrintProcessor)(LPWSTR pName,
+ LPWSTR pEnvironment,
+ LPWSTR pPathName,
+ LPWSTR pPrintProcessorName);
+
+ BOOL (*fpEnumPrintProcessors)(LPWSTR pName,
+ LPWSTR pEnvironment,
+ DWORD Level,
+ LPBYTE pPrintProcessorInfo,
+ DWORD cbBuf,
+ LPDWORD pcbNeeded,
+ LPDWORD pcReturned);
+
+ BOOL (*fpGetPrintProcessorDirectory)(LPWSTR pName,
+ LPWSTR pEnvironment,
+ DWORD Level,
+ LPBYTE pPrintProcessorInfo,
+ DWORD cbBuf,
+ LPDWORD pcbNeeded);
+
+ BOOL (*fpDeletePrintProcessor)(LPWSTR pName,
+ LPWSTR pEnvironment,
+ LPWSTR pPrintProcessorName);
+
+ BOOL (*fpEnumPrintProcessorDatatypes)(LPWSTR pName,
+ LPWSTR pPrintProcessorName,
+ DWORD Level,
+ LPBYTE pDataypes,
+ DWORD cbBuf,
+ LPDWORD pcbNeeded,
+ LPDWORD pcReturned);
+
+ DWORD (*fpStartDocPrinter)(HANDLE hPrinter,
+ DWORD Level,
+ LPBYTE pDocInfo);
+
+ BOOL (*fpStartPagePrinter)(HANDLE hPrinter);
+
+ BOOL (*fpWritePrinter)(HANDLE hPrinter,
+ LPVOID pBuf,
+ DWORD cbBuf,
+ LPDWORD pcWritten);
+
+ BOOL (*fpEndPagePrinter)(HANDLE hPrinter);
+
+ BOOL (*fpAbortPrinter)(HANDLE hPrinter);
+
+ BOOL (*fpReadPrinter)(HANDLE hPrinter,
+ LPVOID pBuf,
+ DWORD cbBuf,
+ LPDWORD pNoBytesRead);
+
+ BOOL (*fpEndDocPrinter)(HANDLE hPrinter);
+
+ BOOL (*fpAddJob)(HANDLE hPrinter,
+ DWORD Level,
+ LPBYTE pData,
+ DWORD cbBuf,
+ LPDWORD pcbNeeded);
+
+ BOOL (*fpScheduleJob)(HANDLE hPrinter,
+ DWORD JobId);
+
+ DWORD (*fpGetPrinterData)(HANDLE hPrinter,
+ LPWSTR pValueName,
+ LPDWORD pType,
+ LPBYTE pData,
+ DWORD nSize,
+ LPDWORD pcbNeeded);
+
+ DWORD (*fpSetPrinterData)(HANDLE hPrinter,
+ LPWSTR pValueName,
+ DWORD Type,
+ LPBYTE pData,
+ DWORD cbData);
+
+ DWORD (*fpWaitForPrinterChange)(HANDLE hPrinter, DWORD Flags);
+
+ BOOL (*fpClosePrinter)(HANDLE hPrinter);
+
+ BOOL (*fpAddForm)(HANDLE hPrinter,
+ DWORD Level,
+ LPBYTE pForm);
+
+ BOOL (*fpDeleteForm)(HANDLE hPrinter,
+ LPWSTR pFormName);
+
+ BOOL (*fpGetForm)(HANDLE hPrinter,
+ LPWSTR pFormName,
+ DWORD Level,
+ LPBYTE pForm,
+ DWORD cbBuf,
+ LPDWORD pcbNeeded);
+
+ BOOL (*fpSetForm)(HANDLE hPrinter,
+ LPWSTR pFormName,
+ DWORD Level,
+ LPBYTE pForm);
+
+ BOOL (*fpEnumForms)(HANDLE hPrinter,
+ DWORD Level,
+ LPBYTE pForm,
+ DWORD cbBuf,
+ LPDWORD pcbNeeded,
+ LPDWORD pcReturned);
+
+ BOOL (*fpEnumMonitors)(LPWSTR pName,
+ DWORD Level,
+ LPBYTE pMonitors,
+ DWORD cbBuf,
+ LPDWORD pcbNeeded,
+ LPDWORD pcReturned);
+
+ BOOL (*fpEnumPorts)(LPWSTR pName,
+ DWORD Level,
+ LPBYTE pPorts,
+ DWORD cbBuf,
+ LPDWORD pcbNeeded,
+ LPDWORD pcReturned);
+
+ BOOL (*fpAddPort)(LPWSTR pName,
+ HWND hWnd,
+ LPWSTR pMonitorName);
+
+ BOOL (*fpConfigurePort)(LPWSTR pName,
+ HWND hWnd,
+ LPWSTR pPortName);
+
+ BOOL (*fpDeletePort)(LPWSTR pName,
+ HWND hWnd,
+ LPWSTR pPortName);
+
+ HANDLE (*fpCreatePrinterIC)(HANDLE hPrinter,
+ LPDEVMODEW pDevMode);
+
+ BOOL (*fpPlayGdiScriptOnPrinterIC)(HANDLE hPrinterIC,
+ LPBYTE pIn,
+ DWORD cIn,
+ LPBYTE pOut,
+ DWORD cOut,
+ DWORD ul);
+
+ BOOL (*fpDeletePrinterIC)(HANDLE hPrinterIC);
+
+ BOOL (*fpAddPrinterConnection)(LPWSTR pName);
+
+ BOOL (*fpDeletePrinterConnection)(LPWSTR pName);
+
+ DWORD (*fpPrinterMessageBox)(HANDLE hPrinter,
+ DWORD Error,
+ HWND hWnd,
+ LPWSTR pText,
+ LPWSTR pCaption,
+ DWORD dwType);
+
+ BOOL (*fpAddMonitor)(LPWSTR pName,
+ DWORD Level,
+ LPBYTE pMonitorInfo);
+
+ BOOL (*fpDeleteMonitor)(LPWSTR pName,
+ LPWSTR pEnvironment,
+ LPWSTR pMonitorName);
+
+ BOOL (*fpResetPrinter)(HANDLE hPrinter,
+ LPPRINTER_DEFAULTS pDefault);
+
+ BOOL (*fpGetPrinterDriverEx)(HANDLE hPrinter,
+ LPWSTR pEnvironment,
+ DWORD Level,
+ LPBYTE pDriverInfo,
+ DWORD cbBuf,
+ LPDWORD pcbNeeded,
+ DWORD dwClientMajorVersion,
+ DWORD dwClientMinorVersion,
+ PDWORD pdwServerMajorVersion,
+ PDWORD pdwServerMinorVersion);
+
+ BOOL (*fpFindFirstPrinterChangeNotification)(
+ HANDLE hPrinter,
+ DWORD fdwFlags,
+ DWORD fdwOptions,
+ HANDLE hNotify,
+ PDWORD pfdwStatus,
+ PVOID pPrinterNotifyOptions,
+ PVOID pPrinterNotifyInit);
+
+ BOOL (*fpFindClosePrinterChangeNotification)(HANDLE hPrinter);
+
+
+ BOOL (*fpAddPortEx)(LPWSTR pName,
+ DWORD Level,
+ LPBYTE lpBuffer,
+ LPWSTR lpMonitorName);
+
+ BOOL (*fpShutDown)(LPVOID pvReserved);
+
+ BOOL (*fpRefreshPrinterChangeNotification)(HANDLE hPrinter,
+ DWORD Reserved,
+ PVOID pvReserved,
+ PVOID pPrinterNotifyInfo);
+
+ BOOL (*fpOpenPrinterEx)(LPWSTR pPrinterName,
+ LPHANDLE phPrinter,
+ LPPRINTER_DEFAULTS pDefault,
+ LPBYTE pClientInfo,
+ DWORD Level);
+
+ HANDLE (*fpAddPrinterEx)(LPWSTR pName,
+ DWORD Level,
+ LPBYTE pPrinter,
+ LPBYTE pClientInfo,
+ DWORD ClientInfoLevel);
+
+ BOOL (*fpSetPort)(LPWSTR pName,
+ LPWSTR pPortName,
+ DWORD Level,
+ LPBYTE pPortInfo);
+
+ DWORD (*fpEnumPrinterData)(HANDLE hPrinter,
+ DWORD dwIndex,
+ LPWSTR pValueName,
+ DWORD cbValueName,
+ LPDWORD pcbValueName,
+ LPDWORD pType,
+ LPBYTE pData,
+ DWORD cbData,
+ LPDWORD pcbData);
+
+ DWORD (*fpDeletePrinterData)(HANDLE hPrinter,
+ LPWSTR pValueName);
+
+ } PRINTPROVIDOR, *LPPRINTPROVIDOR;
+
+BOOL
+InitializePrintProvidor(
+ LPPRINTPROVIDOR pPrintProvidor,
+ DWORD cbPrintProvidor,
+ LPWSTR pFullRegistryPath
+);
+
+typedef struct _PRINTPROCESSOROPENDATA {
+ PDEVMODE pDevMode;
+ LPWSTR pDatatype;
+ LPWSTR pParameters;
+ LPWSTR pDocumentName;
+ DWORD JobId;
+ LPWSTR pOutputFile;
+ LPWSTR pPrinterName;
+} PRINTPROCESSOROPENDATA, *PPRINTPROCESSOROPENDATA, *LPPRINTPROCESSOROPENDATA;
+
+HANDLE
+OpenPrintProcessor(
+ LPWSTR pPrinterName,
+ PPRINTPROCESSOROPENDATA pPrintProcessorOpenData
+);
+
+BOOL
+PrintDocumentOnPrintProcessor(
+ HANDLE hPrintProcessor,
+ LPWSTR pDocumentName
+);
+
+BOOL
+ClosePrintProcessor(
+ HANDLE hPrintProcessor
+);
+
+BOOL
+ControlPrintProcessor(
+ HANDLE hPrintProcessor,
+ DWORD Command
+);
+
+BOOL
+InstallPrintProcessor(
+ HWND hWnd
+);
+
+
+BOOL
+InitializeMonitor(
+ LPWSTR pRegistryRoot
+);
+
+BOOL
+OpenPort(
+ LPWSTR pName,
+ PHANDLE pHandle
+);
+
+BOOL
+WritePort(
+ HANDLE hPort,
+ LPBYTE pBuffer,
+ DWORD cbBuf,
+ LPDWORD pcbWritten
+);
+
+BOOL
+ReadPort(
+ HANDLE hPort,
+ LPBYTE pBuffer,
+ DWORD cbBuffer,
+ LPDWORD pcbRead
+);
+
+BOOL
+ClosePort(
+ HANDLE hPort
+);
+
+typedef struct _MONITOR
+{
+ BOOL (WINAPI *pfnEnumPorts)
+ (
+ LPWSTR pName,
+ DWORD Level,
+ LPBYTE pPorts,
+ DWORD cbBuf,
+ LPDWORD pcbNeeded,
+ LPDWORD pcReturned
+ );
+
+ BOOL (WINAPI *pfnOpenPort)
+ (
+ LPWSTR pName,
+ PHANDLE pHandle
+ );
+
+ BOOL (WINAPI *pfnOpenPortEx)
+ (
+ LPWSTR pPortName,
+ LPWSTR pPrinterName,
+ PHANDLE pHandle,
+ struct _MONITOR FAR *pMonitor
+ );
+
+
+ BOOL (WINAPI *pfnStartDocPort)
+ (
+ HANDLE hPort,
+ LPWSTR 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)
+ (
+ LPWSTR pName,
+ HWND hWnd,
+ LPWSTR pMonitorName
+ );
+
+ BOOL (WINAPI *pfnAddPortEx)
+ (
+ LPWSTR pName,
+ DWORD Level,
+ LPBYTE lpBuffer,
+ LPWSTR lpMonitorName
+ );
+
+ BOOL (WINAPI *pfnConfigurePort)
+ (
+ LPWSTR pName,
+ HWND hWnd,
+ LPWSTR pPortName
+ );
+
+ BOOL (WINAPI *pfnDeletePort)
+ (
+ LPWSTR pName,
+ HWND hWnd,
+ LPWSTR pPortName
+ );
+
+ BOOL (WINAPI *pfnGetPrinterDataFromPort)
+ (
+ HANDLE hPort,
+ DWORD ControlID,
+ LPWSTR pValueName,
+ LPWSTR lpInBuffer,
+ DWORD cbInBuffer,
+ LPWSTR lpOutBuffer,
+ DWORD cbOutBuffer,
+ LPDWORD lpcbReturned
+ );
+
+ BOOL (WINAPI *pfnSetPortTimeOuts)
+ (
+ HANDLE hPort,
+ LPCOMMTIMEOUTS lpCTO,
+ DWORD reserved // must be set to 0
+ );
+
+} MONITOR, FAR *LPMONITOR;
+
+typedef struct _MONITOREX
+{
+ DWORD dwMonitorSize;
+ MONITOR Monitor;
+
+} MONITOREX, FAR *LPMONITOREX;
+
+HANDLE
+CreatePrinterIC(
+ HANDLE hPrinter,
+ LPDEVMODEW pDevMode
+);
+
+BOOL
+PlayGdiScriptOnPrinterIC(
+ HANDLE hPrinterIC,
+ LPBYTE pIn,
+ DWORD cIn,
+ LPBYTE pOut,
+ DWORD cOut,
+ DWORD ul
+);
+
+BOOL
+DeletePrinterIC(
+ HANDLE hPrinterIC
+);
+
+BOOL
+DevQueryPrint(
+ HANDLE hPrinter,
+ LPDEVMODE pDevMode,
+ DWORD *pResID
+);
+
+HANDLE
+RevertToPrinterSelf(
+ VOID
+);
+
+BOOL
+ImpersonatePrinterClient(
+ HANDLE hToken
+);
+
+BOOL
+OpenPrinterToken(
+ PHANDLE phToken
+);
+
+BOOL
+SetPrinterToken(
+ HANDLE hToken
+);
+
+BOOL
+ClosePrinterToken(
+ HANDLE hToken
+);
+
+
+BOOL
+ReplyPrinterChangeNotification(
+ HANDLE hNotify,
+ DWORD fdwFlags,
+ PDWORD pdwResult,
+ PVOID pPrinterNotifyInfo
+);
+
+BOOL
+PartialReplyPrinterChangeNotification(
+ HANDLE hNotify,
+ PPRINTER_NOTIFY_INFO_DATA pInfoDataSrc
+);
+
+PPRINTER_NOTIFY_INFO
+RouterAllocPrinterNotifyInfo(
+ DWORD cPrinterNotifyInfoData
+);
+
+BOOL
+RouterFreePrinterNotifyInfo(
+ PPRINTER_NOTIFY_INFO pInfo
+);
+
+
+#define PRINTER_NOTIFY_INFO_DATA_COMPACT 1
+
+BOOL
+AppendPrinterNotifyInfoData(
+ PPRINTER_NOTIFY_INFO pInfoDest,
+ PPRINTER_NOTIFY_INFO_DATA pInfoDataSrc,
+ DWORD fdwFlags
+);
+
+
+DWORD
+CallRouterFindFirstPrinterChangeNotification(
+ HANDLE hPrinter,
+ DWORD fdwFlags,
+ DWORD fdwOptions,
+ HANDLE hNotify,
+ PVOID pvReserved);
+
+BOOL
+ProvidorFindFirstPrinterChangeNotification(
+ HANDLE hPrinter,
+ DWORD fdwFlags,
+ DWORD fdwOptions,
+ HANDLE hNotify,
+ PVOID pvReserved0,
+ PVOID pvReserved1);
+
+BOOL
+ProvidorFindClosePrinterChangeNotification(
+ HANDLE hPrinter);
+
+
+
+BOOL
+SpoolerFindFirstPrinterChangeNotification(
+ HANDLE hPrinter,
+ DWORD fdwFlags,
+ DWORD fdwOptions,
+ PHANDLE phEvent,
+ PVOID pPrinterNotifyOptions,
+ PVOID pvReserved);
+
+BOOL
+SpoolerFindNextPrinterChangeNotification(
+ HANDLE hPrinter,
+ LPDWORD pfdwChange,
+ PVOID pvReserved0,
+ PVOID ppPrinterNotifyInfo);
+
+VOID
+SpoolerFreePrinterNotifyInfo(
+ PPRINTER_NOTIFY_INFO pInfo);
+
+BOOL
+SpoolerFindClosePrinterChangeNotification(
+ HANDLE hPrinter);
+
+BOOL
+WINAPI
+InitializeMonitorEx(
+ LPWSTR pRegistryRoot,
+ LPMONITOR pMonitor
+);
+
+LPMONITOREX
+WINAPI
+InitializePrintMonitor(
+ LPWSTR pRegistryRoot
+);
+
+
+#ifdef __cplusplus
+} /* End of extern "C" { */
+#endif /* __cplusplus */
+
+#endif // _WINSPLP_