diff options
Diffstat (limited to '')
-rw-r--r-- | public/oak/inc/winsplp.h | 723 |
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_ |