Author: dchapyshev
Date: Sat Dec 6 05:18:08 2008
New Revision: 37892
URL:
http://svn.reactos.org/svn/reactos?rev=37892&view=rev
Log:
- Update headers
- Add more stubs for winspool
Added:
trunk/reactos/include/ddk/winsplp.h (with props)
Modified:
trunk/reactos/dll/win32/winspool/stubs.c
trunk/reactos/dll/win32/winspool/winspool.spec
trunk/reactos/include/psdk/winspool.h
Modified: trunk/reactos/dll/win32/winspool/stubs.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/winspool/stubs.c…
==============================================================================
--- trunk/reactos/dll/win32/winspool/stubs.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/winspool/stubs.c [iso-8859-1] Sat Dec 6 05:18:08 2008
@@ -1453,3 +1453,292 @@
return FALSE;
}
+
+
+/*
+ * @unimplemented
+ */
+BOOL
+WINAPI
+XcvDataW(HANDLE hXcv,
+ LPCWSTR pszDataName,
+ PBYTE pInputData,
+ DWORD cbInputData,
+ PBYTE pOutputData,
+ DWORD cbOutputData,
+ PDWORD pcbOutputNeeded,
+ PDWORD pdwStatus)
+{
+ OutputDebugStringW(L"winspool XcvDataW stub called\n");
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return FALSE;
+}
+
+/*
+ * @unimplemented
+ */
+BOOL
+WINAPI
+SetDefaultPrinterA(LPCSTR pszPrinter)
+{
+ OutputDebugStringW(L"winspool SetDefaultPrinterA stub called\n");
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return FALSE;
+}
+
+/*
+ * @unimplemented
+ */
+BOOL
+WINAPI
+SetDefaultPrinterW(LPCWSTR pszPrinter)
+{
+ OutputDebugStringW(L"winspool SetDefaultPrinterW stub called\n");
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return FALSE;
+}
+
+/*
+ * @unimplemented
+ */
+BOOL
+WINAPI
+AddPortExA(LPSTR pName,
+ DWORD dwLevel,
+ LPBYTE pBuffer,
+ LPSTR pMonitorName)
+{
+ OutputDebugStringW(L"winspool AddPortExA stub called\n");
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return FALSE;
+}
+
+/*
+ * @unimplemented
+ */
+BOOL
+WINAPI
+AddPortExW(LPWSTR pName,
+ DWORD dwLevel,
+ LPBYTE pBuffer,
+ LPWSTR pMonitorName)
+{
+ OutputDebugStringW(L"winspool AddPortExW stub called\n");
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return FALSE;
+}
+
+/*
+ * @unimplemented
+ */
+BOOL
+WINAPI
+AddPrinterDriverExA(LPSTR pName,
+ DWORD dwLevel,
+ LPBYTE pDriverInfo,
+ DWORD dwFileCopyFlags)
+{
+ OutputDebugStringW(L"winspool AddPrinterDriverExA stub called\n");
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return FALSE;
+}
+
+/*
+ * @unimplemented
+ */
+BOOL
+WINAPI
+AddPrinterDriverExW(LPWSTR pName,
+ DWORD dwLevel,
+ LPBYTE pDriverInfo,
+ DWORD dwFileCopyFlags)
+{
+ OutputDebugStringW(L"winspool AddPrinterDriverExW stub called\n");
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return FALSE;
+}
+
+/*
+ * @unimplemented
+ */
+DWORD
+WINAPI
+DeletePrinterDataExA(HANDLE hPrinter,
+ LPCSTR pKeyName,
+ LPCSTR pValueName)
+{
+ OutputDebugStringW(L"winspool DeletePrinterDataExA stub called\n");
+ return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+DWORD
+WINAPI
+DeletePrinterDataExW(HANDLE hPrinter,
+ LPCWSTR pKeyName,
+ LPCWSTR pValueName)
+{
+ OutputDebugStringW(L"winspool DeletePrinterDataExW stub called\n");
+ return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+BOOL
+WINAPI
+DeletePrinterDriverExA(LPSTR pName,
+ LPSTR pEnvironment,
+ LPSTR pDriverName,
+ DWORD dwDeleteFlag,
+ DWORD dwVersionFlag)
+{
+ OutputDebugStringW(L"winspool DeletePrinterDriverExA stub called\n");
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return FALSE;
+}
+
+/*
+ * @unimplemented
+ */
+BOOL
+WINAPI
+DeletePrinterDriverExW(LPWSTR pName,
+ LPWSTR pEnvironment,
+ LPWSTR pDriverName,
+ DWORD dwDeleteFlag,
+ DWORD dwVersionFlag)
+{
+ OutputDebugStringW(L"winspool DeletePrinterDriverExW stub called\n");
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return FALSE;
+}
+
+/*
+ * @unimplemented
+ */
+DWORD
+WINAPI
+EnumPrinterDataExA(HANDLE hPrinter,
+ LPCSTR pKeyName,
+ LPBYTE pEnumValues,
+ DWORD cbEnumValues,
+ LPDWORD pcbEnumValues,
+ LPDWORD pnEnumValues)
+{
+ OutputDebugStringW(L"winspool EnumPrinterDataExA stub called\n");
+ return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+DWORD
+WINAPI
+EnumPrinterDataExW(HANDLE hPrinter,
+ LPCWSTR pKeyName,
+ LPBYTE pEnumValues,
+ DWORD cbEnumValues,
+ LPDWORD pcbEnumValues,
+ LPDWORD pnEnumValues)
+{
+ OutputDebugStringW(L"winspool EnumPrinterDataExW stub called\n");
+ return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+LONG
+WINAPI
+ExtDeviceMode(HWND hWnd,
+ HANDLE hInst,
+ LPDEVMODEA pDevModeOutput,
+ LPSTR pDeviceName,
+ LPSTR pPort,
+ LPDEVMODEA pDevModeInput,
+ LPSTR pProfile,
+ DWORD fMode)
+{
+ OutputDebugStringW(L"winspool ExtDeviceMode stub called\n");
+ return -1;
+}
+
+/*
+ * @unimplemented
+ */
+DWORD
+WINAPI
+GetPrinterDataExA(HANDLE hPrinter,
+ LPCSTR pKeyName,
+ LPCSTR pValueName,
+ LPDWORD pType,
+ LPBYTE pData,
+ DWORD nSize,
+ LPDWORD pcbNeeded)
+{
+ OutputDebugStringW(L"winspool GetPrinterDataExA stub called\n");
+ return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+DWORD
+WINAPI
+GetPrinterDataExW(HANDLE hPrinter,
+ LPCWSTR pKeyName,
+ LPCWSTR pValueName,
+ LPDWORD pType,
+ LPBYTE pData,
+ DWORD nSize,
+ LPDWORD pcbNeeded)
+{
+ OutputDebugStringW(L"winspool GetPrinterDataExW stub called\n");
+ return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+DWORD
+WINAPI
+SetPrinterDataExA(HANDLE hPrinter,
+ LPCSTR pKeyName,
+ LPCSTR pValueName,
+ DWORD dwType,
+ LPBYTE pData,
+ DWORD cbData)
+{
+ OutputDebugStringW(L"winspool SetPrinterDataExA stub called\n");
+ return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+DWORD
+WINAPI
+SetPrinterDataExW(HANDLE hPrinter,
+ LPCWSTR pKeyName,
+ LPCWSTR pValueName,
+ DWORD dwType,
+ LPBYTE pData,
+ DWORD cbData)
+{
+ OutputDebugStringW(L"winspool SetPrinterDataExW stub called\n");
+ return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+BOOL
+WINAPI
+SpoolerInit(VOID)
+{
+ OutputDebugStringW(L"winspool SpoolerInit stub called\n");
+ return FALSE;
+}
Modified: trunk/reactos/dll/win32/winspool/winspool.spec
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/winspool/winspoo…
==============================================================================
--- trunk/reactos/dll/win32/winspool/winspool.spec [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/winspool/winspool.spec [iso-8859-1] Sat Dec 6 05:18:08 2008
@@ -1,3 +1,43 @@
+100 stub -noname EnumPrinterPropertySheets
+101 stub -noname ClusterSplOpen
+102 stub -noname ClusterSplClose
+103 stub -noname ClusterSplIsAlive
+104 stub PerfClose
+105 stub PerfCollect
+106 stub PerfOpen
+201 stdcall GetDefaultPrinterA(ptr ptr)
+202 stdcall SetDefaultPrinterA(str)
+203 stdcall GetDefaultPrinterW(ptr ptr)
+204 stdcall SetDefaultPrinterW(wstr)
+205 stub -noname SplReadPrinter
+206 stub -noname AddPerMachineConnectionA
+207 stub -noname AddPerMachineConnectionW
+208 stub -noname DeletePerMachineConnectionA
+209 stub -noname DeletePerMachineConnectionW
+210 stub -noname EnumPerMachineConnectionsA
+211 stub -noname EnumPerMachineConnectionsW
+212 stub -noname LoadPrinterDriver
+213 stub -noname RefCntLoadDriver
+214 stub -noname RefCntUnloadDriver
+215 stub -noname ForceUnloadDriver
+216 stub -noname PublishPrinterA
+217 stub -noname PublishPrinterW
+218 stub -noname CallCommonPropertySheetUI
+219 stub -noname PrintUIQueueCreate
+220 stub -noname PrintUIPrinterPropPages
+221 stub -noname PrintUIDocumentDefaults
+222 stub -noname SendRecvBidiData
+223 stub -noname RouterFreeBidiResponseContainer
+224 stub -noname ExternalConnectToLd64In32Server
+226 stub -noname PrintUIWebPnpEntry
+227 stub -noname PrintUIWebPnpPostEntry
+228 stub -noname PrintUICreateInstance
+229 stub -noname PrintUIDocumentPropertiesWrap
+230 stub -noname PrintUIPrinterSetup
+231 stub -noname PrintUIServerPropPages
+232 stub -noname AddDriverCatalog
+
+@ stub ADVANCEDSETUPDIALOG
@ stdcall AbortPrinter(long)
@ stdcall AddFormA(long long ptr)
@ stdcall AddFormW(long long ptr)
@@ -6,11 +46,15 @@
@ stdcall AddMonitorA(str long ptr)
@ stdcall AddMonitorW(wstr long ptr)
@ stdcall AddPortA(str ptr str)
+@ stdcall AddPortExA(str long ptr str)
+@ stdcall AddPortExW(wstr long ptr wstr)
@ stdcall AddPortW(wstr long wstr)
@ stdcall AddPrinterA(str long ptr)
@ stdcall AddPrinterConnectionA(str)
@ stdcall AddPrinterConnectionW(wstr)
@ stdcall AddPrinterDriverA(str long ptr)
+@ stdcall AddPrinterDriverExA(str long ptr long)
+@ stdcall AddPrinterDriverExW(wstr long ptr long)
@ stdcall AddPrinterDriverW(wstr long ptr)
@ stdcall AddPrinterW(wstr long ptr)
@ stdcall AddPrintProcessorA(str str str str)
@@ -19,10 +63,16 @@
@ stdcall AddPrintProvidorW(wstr long ptr)
@ stdcall AdvancedDocumentPropertiesA(long long str ptr ptr)
@ stdcall AdvancedDocumentPropertiesW(long long wstr ptr ptr)
+@ stub AdvancedSetupDialog
@ stdcall ClosePrinter(long)
@ stdcall ConfigurePortA(str long str)
@ stdcall ConfigurePortW(wstr long wstr)
@ stdcall ConnectToPrinterDlg(long long)
+@ stub ConvertAnsiDevModeToUnicodeDevMode
+@ stub ConvertUnicodeDevModeToAnsiDevMode
+@ stub CreatePrinterIC
+@ stub DEVICECAPABILITIES
+@ stub DEVICEMODE
@ stdcall DeleteFormA(long str)
@ stdcall DeleteFormW(long wstr)
@ stdcall DeleteMonitorA(str str str)
@@ -32,19 +82,28 @@
@ stdcall DeletePrinter(long)
@ stdcall DeletePrinterConnectionA(str)
@ stdcall DeletePrinterConnectionW(wstr)
+@ stdcall DeletePrinterDataExA(long str str)
+@ stdcall DeletePrinterDataExW(long wstr wstr)
@ stdcall DeletePrinterDataA(ptr str)
@ stdcall DeletePrinterDataW(ptr wstr)
@ stdcall DeletePrinterDriverA(str str str)
+@ stdcall DeletePrinterDriverExA(str str str long long)
+@ stdcall DeletePrinterDriverExW(wstr wstr wstr long long)
@ stdcall DeletePrinterDriverW(wstr wstr wstr)
+@ stub DeletePrinterIC
+@ stub DevQueryPrint
@ stdcall DeletePrintProcessorA(str str str)
@ stdcall DeletePrintProcessorW(wstr wstr wstr)
@ stdcall DeletePrintProvidorA(str str str)
@ stdcall DeletePrintProvidorW(wstr wstr wstr)
@ stdcall DeviceCapabilitiesA(str str long ptr ptr)
@ stdcall DeviceCapabilitiesW(wstr wstr long ptr ptr)
+@ stub DeviceMode
+@ stub DocumentEvent
@ stdcall DllMain(ptr long ptr)
@ stdcall DocumentPropertiesA(long long ptr ptr ptr long)
@ stdcall DocumentPropertiesW(long long ptr ptr ptr long)
+@ stub EXTDEVICEMODE
@ stdcall EndDocPrinter(long)
@ stdcall EndPagePrinter(long)
@ stdcall EnumFormsA(long long ptr long ptr ptr)
@@ -56,11 +115,14 @@
@ stdcall EnumPortsA(str long ptr ptr ptr ptr)
@ stdcall EnumPortsW(wstr long ptr ptr ptr ptr)
@ stdcall EnumPrinterDataA(long long ptr long ptr ptr ptr long ptr)
+@ stdcall EnumPrinterDataExA(long str ptr long ptr ptr)
+@ stdcall EnumPrinterDataExW(long wstr ptr long ptr ptr)
@ stdcall EnumPrinterDataW(long long ptr long ptr ptr ptr long ptr)
@ stdcall EnumPrinterDriversA(str str long ptr long ptr ptr)
@ stdcall EnumPrinterDriversW(wstr wstr long ptr long ptr ptr)
@ stdcall EnumPrintersA(long ptr long ptr long ptr ptr)
@ stdcall EnumPrintersW(long ptr long ptr long ptr ptr)
+@ stdcall ExtDeviceMode(long long ptr str str ptr str long)
@ stdcall EnumPrintProcessorDatatypesA(str str long ptr long ptr ptr)
@ stdcall EnumPrintProcessorDatatypesW(wstr wstr long ptr long ptr ptr)
@ stdcall EnumPrintProcessorsA(str str long ptr long ptr ptr)
@@ -69,14 +131,14 @@
@ stdcall FindFirstPrinterChangeNotification(long long long ptr)
@ stdcall FindNextPrinterChangeNotification(long ptr ptr ptr)
@ stdcall FreePrinterNotifyInfo(ptr)
-201 stdcall GetDefaultPrinterA(ptr ptr)
-203 stdcall GetDefaultPrinterW(ptr ptr)
@ stdcall GetFormA(long str long ptr long ptr)
@ stdcall GetFormW(long wstr long ptr long ptr)
@ stdcall GetJobA(long long long ptr long ptr)
@ stdcall GetJobW(long long long ptr long ptr)
@ stdcall GetPrinterA(long long ptr long ptr)
@ stdcall GetPrinterDataA(long str ptr ptr long ptr)
+@ stdcall GetPrinterDataExA(long str str ptr ptr long ptr)
+@ stdcall GetPrinterDataExW(long wstr wstr ptr ptr long ptr)
@ stdcall GetPrinterDataW(long wstr ptr ptr long ptr)
@ stdcall GetPrinterDriverA(long str long ptr long ptr)
@ stdcall GetPrinterDriverDirectoryA(str str long ptr long ptr)
@@ -87,6 +149,7 @@
@ stdcall GetPrintProcessorDirectoryW(wstr wstr long ptr long ptr)
@ stdcall OpenPrinterA(str ptr ptr)
@ stdcall OpenPrinterW(wstr ptr ptr)
+@ stub PlayGdiScriptOnPrinterIC
@ stdcall PrinterMessageBoxA(ptr long ptr str str long)
@ stdcall PrinterMessageBoxW(ptr long ptr wstr wstr long)
@ stdcall PrinterProperties(long long)
@@ -94,16 +157,23 @@
@ stdcall ResetPrinterA(long ptr)
@ stdcall ResetPrinterW(long ptr)
@ stdcall ScheduleJob(long long)
+@ stub SetAllocFailCount
@ stdcall SetFormA(long str long ptr)
@ stdcall SetFormW(long wstr long ptr)
@ stdcall SetJobA(long long long ptr long)
@ stdcall SetJobW(long long long ptr long)
@ stdcall SetPrinterA(long long ptr long)
@ stdcall SetPrinterDataA(long str long ptr long)
+@ stdcall SetPrinterDataExA(long str str long ptr long)
+@ stdcall SetPrinterDataExW(long wstr wstr long ptr long)
@ stdcall SetPrinterDataW(long wstr long ptr long)
@ stdcall SetPrinterW(long long ptr long)
+@ stub SpoolerDevQueryPrintW
+@ stdcall SpoolerInit()
+@ stub SpoolerPrinterEvent
@ stdcall StartDocPrinterA(long long ptr)
@ stdcall StartDocPrinterW(long long ptr)
@ stdcall StartPagePrinter(long)
@ stdcall WaitForPrinterChange(ptr long)
@ stdcall WritePrinter(long ptr long ptr)
+@ stdcall XcvDataW(long wstr ptr long ptr long ptr ptr)
Added: trunk/reactos/include/ddk/winsplp.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/winsplp.h?rev=…
==============================================================================
--- trunk/reactos/include/ddk/winsplp.h (added)
+++ trunk/reactos/include/ddk/winsplp.h [iso-8859-1] Sat Dec 6 05:18:08 2008
@@ -1,0 +1,428 @@
+/*
+ * Definitions for print provider, monitor, processor and spooler
+ *
+ * Copyright 2005 Detlef Riekenberg
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ *
+ *
+ * "providor" is not a spelling error in this file. It's the real name.
+ *
+ */
+
+#ifndef _WINSPLP_
+#define _WINSPLP_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* DEFINES */
+
+#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
+
+/*
+ * WARNING: Many Functions are declared as "BOOL", but return ROUTER_*
+ */
+
+
+/* TYPES */
+
+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 *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);
+ BOOL (WINAPI *pfnXcvOpenPort)(LPCWSTR pszObject, ACCESS_MASK GrantedAccess, PHANDLE
phXcv);
+ DWORD (WINAPI *pfnXcvDataPort)(HANDLE hXcv, LPCWSTR pszDataName,
+ PBYTE pInputData, DWORD cbInputData,
+ PBYTE pOutputData, DWORD cbOutputData, PDWORD pcbOutputNeeded);
+ BOOL (WINAPI *pfnXcvClosePort)(HANDLE hXcv);
+} MONITOR, *LPMONITOR;
+
+typedef struct _MONITOR2 {
+ DWORD cbSize;
+ 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 _MONITOR2 *pMonitor2);
+ 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);
+ BOOL (WINAPI *pfnXcvOpenPort)(HANDLE hMonitor, LPCWSTR pszObject,
+ ACCESS_MASK GrantedAccess, PHANDLE phXcv);
+ DWORD (WINAPI *pfnXcvDataPort)(HANDLE hXcv, LPCWSTR pszDataName,
+ PBYTE pInputData, DWORD cbInputData,
+ PBYTE pOutputData, DWORD cbOutputData, PDWORD pcbOutputNeeded);
+ BOOL (WINAPI *pfnXcvClosePort)(HANDLE hXcv);
+ /* Additions from MONITOR to MONITOR2 */
+ VOID (WINAPI *pfnShutdown)(HANDLE hMonitor);
+ DWORD (WINAPI *pfnSendRecvBidiDataFromPort)(HANDLE hPort, DWORD dwAccessBit,
+ LPCWSTR pAction, PBIDI_REQUEST_CONTAINER pReqData,
+ PBIDI_RESPONSE_CONTAINER *ppResData);
+} MONITOR2, *LPMONITOR2, *PMONITOR2;
+
+typedef struct _MONITOREX {
+ DWORD dwMonitorSize;
+ MONITOR Monitor;
+} MONITOREX, *LPMONITOREX;
+
+typedef struct _MONITORREG {
+ DWORD cbSize;
+ LONG (WINAPI *fpCreateKey)(HANDLE hcKey, LPCWSTR pszSubKey, DWORD dwOptions,
+ REGSAM samDesired, PSECURITY_ATTRIBUTES pSecurityAttributes,
+ PHANDLE phckResult, PDWORD pdwDisposition, HANDLE hSpooler);
+ LONG (WINAPI *fpOpenKey)(HANDLE hcKey, LPCWSTR pszSubKey, REGSAM samDesired,
+ PHANDLE phkResult, HANDLE hSpooler);
+ LONG (WINAPI *fpCloseKey)(HANDLE hcKey, HANDLE hSpooler);
+ LONG (WINAPI *fpDeleteKey)(HANDLE hcKey, LPCWSTR pszSubKey, HANDLE hSpooler);
+ LONG (WINAPI *fpEnumKey)(HANDLE hcKey, DWORD dwIndex, LPWSTR pszName,
+ PDWORD pcchName, PFILETIME pftLastWriteTime, HANDLE hSpooler);
+ LONG (WINAPI *fpQueryInfoKey)(HANDLE hcKey, PDWORD pcSubKeys, PDWORD pcbKey,
+ PDWORD pcValues, PDWORD pcbValue, PDWORD pcbData,
+ PDWORD pcbSecurityDescriptor, PFILETIME pftLastWriteTime,
+ HANDLE hSpooler);
+ LONG (WINAPI *fpSetValue)(HANDLE hcKey, LPCWSTR pszValue, DWORD dwType,
+ const BYTE* pData, DWORD cbData, HANDLE hSpooler);
+ LONG (WINAPI *fpDeleteValue)(HANDLE hcKey, LPCWSTR pszValue, HANDLE hSpooler);
+ LONG (WINAPI *fpEnumValue)(HANDLE hcKey, DWORD dwIndex, LPWSTR pszValue,
+ PDWORD pcbValue, PDWORD pType, PBYTE pData, PDWORD pcbData,
+ HANDLE hSpooler);
+ LONG (WINAPI *fpQueryValue)(HANDLE hcKey, LPCWSTR pszValue, PDWORD pType,
+ PBYTE pData, PDWORD pcbData, HANDLE hSpooler);
+} MONITORREG, *PMONITORREG;
+
+typedef struct _MONITORINIT {
+ DWORD cbSize;
+ HANDLE hSpooler;
+ HANDLE hckRegistryRoot;
+ PMONITORREG pMonitorReg;
+ BOOL bLocal;
+} MONITORINIT, *PMONITORINIT;
+
+typedef struct _MONITORUI {
+ DWORD dwMonitorUISize;
+ BOOL (WINAPI *pfnAddPortUI)(PCWSTR pszServer, HWND hWnd,
+ PCWSTR pszPortNameIn, PWSTR *ppszPortNameOut);
+ BOOL (WINAPI *pfnConfigurePortUI)(PCWSTR pName, HWND hWnd, PCWSTR pPortName);
+ BOOL (WINAPI *pfnDeletePortUI)(PCWSTR pszServer, HWND hWnd, PCWSTR pszPortName);
+}MONITORUI, *PMONITORUI;
+
+typedef struct _PRINTER_NOTIFY_INIT {
+ DWORD Size;
+ DWORD Reserved;
+ DWORD PollTime;
+} PRINTER_NOTIFY_INIT, *LPPRINTER_NOTIFY_INIT, *PPRINTER_NOTIFY_INIT;
+
+typedef struct _PRINTPROCESSOROPENDATA {
+ PDEVMODEW pDevMode;
+ LPWSTR pDatatype;
+ LPWSTR pParameters;
+ LPWSTR pDocumentName;
+ DWORD JobId;
+ LPWSTR pOutputFile;
+ LPWSTR pPrinterName;
+} PRINTPROCESSOROPENDATA, *LPPRINTPROCESSOROPENDATA, *PPRINTPROCESSOROPENDATA;
+
+
+/*
+ * WARNING: Many Functions are declared as "BOOL", but return ROUTER_*
+ */
+
+typedef struct _PRINTPROVIDOR {
+ BOOL (WINAPI *fpOpenPrinter)(LPWSTR lpPrinterName, HANDLE *phPrinter,
+ LPPRINTER_DEFAULTSW 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)(LPWSTR 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 dwType, LPWSTR lpszName, DWORD dwLevel,
+ LPBYTE lpbPrinters, DWORD cbBuf, LPDWORD lpdwNeeded,
+ LPDWORD lpdwReturned);
+ BOOL (WINAPI *fpAddPrinterDriver)(LPWSTR pName, DWORD Level,
+ LPBYTE pDriverInfo);
+ BOOL (WINAPI *fpEnumPrinterDrivers)(LPWSTR pName, LPWSTR pEnvironment,
+ DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf,
+ LPDWORD pcbNeeded, LPDWORD pcbReturned);
+ BOOL (WINAPI *fpGetPrinterDriver)(HANDLE hPrinter, LPWSTR pEnvironment,
+ DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf,
+ LPDWORD pcbNeeded);
+ BOOL (WINAPI *fpGetPrinterDriverDirectory)(LPWSTR pName, LPWSTR pEnvironment,
+ DWORD Level, LPBYTE pDriverDirectory, DWORD cbBuf,
+ LPDWORD pcbNeeded);
+ BOOL (WINAPI *fpDeletePrinterDriver)(LPWSTR pName, LPWSTR pEnvironment,
+ LPWSTR pDriverName);
+ BOOL (WINAPI *fpAddPrintProcessor)(LPWSTR pName, LPWSTR pEnvironment,
+ LPWSTR pPathName, LPWSTR pPrintProcessorName);
+ BOOL (WINAPI *fpEnumPrintProcessors)(LPWSTR pName, LPWSTR pEnvironment,
+ DWORD Level, LPBYTE pPrintProcessorInfo, DWORD cbBuf,
+ LPDWORD pcbNeeded, LPDWORD pcbReturned);
+ BOOL (WINAPI *fpGetPrintProcessorDirectory)(LPWSTR pName, LPWSTR pEnvironment,
+ DWORD Level, LPBYTE pPrintProcessorInfo, DWORD cbBuf,
+ LPDWORD pcbNeeded);
+ BOOL (WINAPI *fpDeletePrintProcessor)(LPWSTR pName, LPWSTR pEnvironment,
+ LPWSTR pPrintProcessorName);
+ BOOL (WINAPI *fpEnumPrintProcessorDatatypes)(LPWSTR pName,
+ LPWSTR pPrintProcessorName, DWORD Level, LPBYTE pDatatypes,
+ DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcbReturned);
+ 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, LPWSTR pValueName,
+ LPDWORD pType, LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded);
+ DWORD (WINAPI *fpSetPrinterData)(HANDLE hPrinter, LPWSTR pValueName,
+ DWORD Type, LPBYTE pData, DWORD cbData);
+ DWORD (WINAPI *fpWaitForPrinterChange)(HANDLE hPrinter, DWORD Flags);
+ BOOL (WINAPI *fpClosePrinter)(HANDLE phPrinter);
+ BOOL (WINAPI *fpAddForm)(HANDLE hPrinter, DWORD Level, LPBYTE pForm);
+ BOOL (WINAPI *fpDeleteForm)(HANDLE hPrinter, LPWSTR pFormName);
+ BOOL (WINAPI *fpGetForm)(HANDLE hPrinter, LPWSTR pFormName, DWORD Level,
+ LPBYTE pForm, DWORD cbBuf, LPDWORD pcbNeeded);
+ BOOL (WINAPI *fpSetForm)(HANDLE hPrinter, LPWSTR pFormName, DWORD Level,
+ LPBYTE pForm);
+ BOOL (WINAPI *fpEnumForms)(HANDLE hPrinter, DWORD Level, LPBYTE pForm,
+ DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
+ BOOL (WINAPI *fpEnumMonitors)(LPWSTR pName, DWORD Level, LPBYTE pMonitors,
+ DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
+ BOOL (WINAPI *fpEnumPorts)(LPWSTR pName, DWORD Level, LPBYTE pPorts,
+ DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
+ BOOL (WINAPI *fpAddPort)(LPWSTR pName, HWND hWnd, LPWSTR pMonitorName);
+ BOOL (WINAPI *fpConfigurePort)(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
+ BOOL (WINAPI *fpDeletePort)(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
+ HANDLE (WINAPI *fpCreatePrinterIC)(HANDLE hPrinter, LPDEVMODEW pDevMode);
+ BOOL (WINAPI *fpPlayGdiScriptOnPrinterIC)(HANDLE hPrinterIC, LPBYTE pIn,
+ DWORD cIn, LPBYTE pOut, DWORD cOut, DWORD ul);
+ BOOL (WINAPI *fpDeletePrinterIC)(HANDLE hPrinterIC);
+ BOOL (WINAPI *fpAddPrinterConnection)(LPWSTR pName);
+ BOOL (WINAPI *fpDeletePrinterConnection)(LPWSTR pName);
+ DWORD (WINAPI *fpPrinterMessageBox)(HANDLE hPrinter, DWORD Error, HWND hWnd,
+ LPWSTR pText, LPWSTR pCaption, DWORD dwType);
+ BOOL (WINAPI *fpAddMonitor)(LPWSTR pName, DWORD Level, LPBYTE pMonitors);
+ BOOL (WINAPI *fpDeleteMonitor)(LPWSTR pName, LPWSTR pEnvironment,
+ LPWSTR pMonitorName);
+ BOOL (WINAPI *fpResetPrinter)(HANDLE hPrinter, LPPRINTER_DEFAULTSW pDefault);
+ BOOL (WINAPI *fpGetPrinterDriverEx)(HANDLE hPrinter, LPWSTR pEnvironment,
+ DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf, LPDWORD pcbNeeded,
+ DWORD dwClientMajorVersion, DWORD dwClientMinorVersion,
+ PDWORD pdwServerMajorVersion, PDWORD pdwServerMinorVersion);
+ HANDLE (WINAPI *fpFindFirstPrinterChangeNotification)(HANDLE hPrinter,
+ DWORD fdwFlags, DWORD fdwOptions, LPVOID pPrinterNotifyOptions);
+ BOOL (WINAPI *fpFindClosePrinterChangeNotification)(HANDLE hChange);
+ BOOL (WINAPI *fpAddPortEx)(HANDLE hMonitor, LPWSTR pName, DWORD Level,
+ LPBYTE lpBuffer, LPWSTR lpMonitorName);
+ BOOL (WINAPI *fpShutDown)(LPVOID pvReserved);
+ BOOL (WINAPI *fpRefreshPrinterChangeNotification)(HANDLE hPrinter,
+ DWORD Reserved, PVOID pvReserved, PVOID pPrinterNotifyInfo);
+ BOOL (WINAPI *fpOpenPrinterEx)(LPWSTR pPrinterName, LPHANDLE phPrinter,
+ LPPRINTER_DEFAULTSW pDefault, LPBYTE pClientInfo, DWORD Level);
+ HANDLE (WINAPI *fpAddPrinterEx)(LPWSTR pName, DWORD Level, LPBYTE pPrinter,
+ LPBYTE pClientInfo, DWORD ClientInfoLevel);
+ BOOL (WINAPI *fpSetPort)(LPWSTR pName, LPWSTR pPortName, DWORD dwLevel,
+ LPBYTE pPortInfo);
+ DWORD (WINAPI *fpEnumPrinterData)( HANDLE hPrinter, DWORD dwIndex,
+ LPWSTR pValueName, DWORD cbValueName, LPDWORD pcbValueName,
+ LPDWORD pType, LPBYTE pData, DWORD cbData, LPDWORD pcbData);
+ DWORD (WINAPI *fpDeletePrinterData)(HANDLE hPrinter, LPWSTR pValueName);
+ DWORD (WINAPI *fpClusterSplOpen)(LPCWSTR pszServer, LPCWSTR pszResource,
+ PHANDLE phSpooler, LPCWSTR pszName, LPCWSTR pszAddress);
+ DWORD (WINAPI *fpClusterSplClose)(HANDLE hSpooler);
+ DWORD (WINAPI *fpClusterSplIsAlive)(HANDLE hSpooler);
+ DWORD (WINAPI *fpSetPrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
+ LPCWSTR pValueName, DWORD Type, LPBYTE pData, DWORD cbData);
+ DWORD (WINAPI *fpGetPrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
+ LPCWSTR pValueName, LPDWORD pType, LPBYTE pData, DWORD nSize,
+ LPDWORD pcbNeeded);
+ DWORD (WINAPI *fpEnumPrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
+ LPBYTE pEnumValues, DWORD cbEnumValues, LPDWORD pcbEnumValues,
+ LPDWORD pnEnumValues);
+ DWORD (WINAPI *fpEnumPrinterKey)(HANDLE hPrinter, LPCWSTR pKeyName,
+ LPWSTR pSubkey, DWORD cbSubkey, LPDWORD pcbSubkey);
+ DWORD (WINAPI *fpDeletePrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
+ LPCWSTR pValueName);
+ DWORD (WINAPI *fpDeletePrinterKey)(HANDLE hPrinter, LPCWSTR pKeyName);
+ BOOL (WINAPI *fpSeekPrinter)(HANDLE hPrinter, LARGE_INTEGER liDistanceToMove,
+ PLARGE_INTEGER pliNewPointer, DWORD dwMoveMethod, BOOL bWrite);
+ BOOL (WINAPI *fpDeletePrinterDriverEx)(LPWSTR pName, LPWSTR pEnvironment,
+ LPWSTR pDriverName, DWORD dwDeleteFlag, DWORD dwVersionNum);
+ BOOL (WINAPI *fpAddPerMachineConnection)(LPCWSTR pServer,
+ LPCWSTR pPrinterName, LPCWSTR pPrintServer, LPCWSTR pProvider);
+ BOOL (WINAPI *fpDeletePerMachineConnection)(LPCWSTR pServer,
+ LPCWSTR pPrinterName);
+ BOOL (WINAPI *fpEnumPerMachineConnections)(LPCWSTR pServer,
+ LPBYTE pPrinterEnum, DWORD cbBuf, LPDWORD pcbNeeded,
+ LPDWORD pcReturned);
+ BOOL (WINAPI *fpXcvData)(HANDLE hXcv, LPCWSTR pszDataName, PBYTE pInputData,
+ DWORD cbInputData, PBYTE pOutputData, DWORD cbOutputData,
+ PDWORD pcbOutputNeeded, PDWORD pdwStatus);
+ BOOL (WINAPI *fpAddPrinterDriverEx)(LPWSTR pName, DWORD Level,
+ LPBYTE pDriverInfo, DWORD dwFileCopyFlags);
+ BOOL (WINAPI *fpSplReadPrinter)(HANDLE hPrinter, LPBYTE *pBuf, DWORD cbBuf);
+ BOOL (WINAPI *fpDriverUnloadComplete)(LPWSTR pDriverFile);
+ BOOL (WINAPI *fpGetSpoolFileInfo)(HANDLE hPrinter, LPWSTR *pSpoolDir,
+ LPHANDLE phFile, HANDLE hSpoolerProcess, HANDLE hAppProcess);
+ BOOL (WINAPI *fpCommitSpoolData)(HANDLE hPrinter, DWORD cbCommit);
+ BOOL (WINAPI *fpCloseSpoolFileHandle)(HANDLE hPrinter);
+ BOOL (WINAPI *fpFlushPrinter)(HANDLE hPrinter, LPBYTE pBuf, DWORD cbBuf,
+ LPDWORD pcWritten, DWORD cSleep);
+ DWORD (WINAPI *fpSendRecvBidiData)(HANDLE hPort, LPCWSTR pAction,
+ LPBIDI_REQUEST_CONTAINER pReqData,
+ LPBIDI_RESPONSE_CONTAINER *ppResData);
+ BOOL (WINAPI *fpAddDriverCatalog)(HANDLE hPrinter, DWORD dwLevel,
+ VOID *pvDriverInfCatInfo, DWORD dwCatalogCopyFlags);
+} PRINTPROVIDOR, *LPPRINTPROVIDOR;
+
+typedef struct _SPLCLIENT_INFO_1 {
+ DWORD dwSize;
+ LPWSTR pMachineName;
+ LPWSTR pUserName;
+ DWORD dwBuildNum;
+ DWORD dwMajorVersion;
+ DWORD dwMinorVersion;
+ WORD wProcessorArchitecture;
+} SPLCLIENT_INFO_1, *LPSPLCLIENT_INFO_1, *PSPLCLIENT_INFO_1;
+
+/* DECLARATIONS */
+
+HANDLE WINAPI CreatePrinterIC(HANDLE hPrinter, LPDEVMODEW 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, LPDEVMODEW pDevMode, DWORD *pResID);
+
+/* Security and Access */
+HANDLE WINAPI RevertToPrinterSelf(VOID);
+BOOL WINAPI ImpersonatePrinterClient(HANDLE hToken);
+BOOL WINAPI OpenPrinterToken(PHANDLE phToken);
+BOOL WINAPI SetPrinterToken(HANDLE hToken);
+BOOL WINAPI ClosePrinterToken(HANDLE hToken);
+
+/* Notification */
+BOOL WINAPI ReplyPrinterChangeNotification(HANDLE hNotify, DWORD fdwFlags,
+ PDWORD pdwResult, PVOID pPrinterNotifyInfo);
+BOOL WINAPI PartialReplyPrinterChangeNotification(HANDLE hNotify,
+ PPRINTER_NOTIFY_INFO_DATA pInfoDataSrc);
+PPRINTER_NOTIFY_INFO RouterAllocPrinterNotifyInfo(DWORD cPrinterNotifyInfoData);
+BOOL WINAPI RouterFreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO pInfo);
+BOOL WINAPI AppendPrinterNotifyInfoData(PPRINTER_NOTIFY_INFO pInfoDest,
+ PPRINTER_NOTIFY_INFO_DATA pInfoDataSrc, DWORD fdwFlags);
+DWORD WINAPI CallRouterFindFirstPrinterChangeNotification(HANDLE hPrinter,
+ DWORD fdwFlags, DWORD fdwOptions, HANDLE hNotify, PVOID pvReserved);
+
+/* Port monitor / Language monitor / Print monitor */
+LPMONITOR2 WINAPI InitializePrintMonitor2(PMONITORINIT pMonitorInit,
+ PHANDLE phMonitor);
+PMONITORUI WINAPI InitializePrintMonitorUI(VOID);
+LPMONITOREX WINAPI InitializePrintMonitor(LPWSTR pRegistryRoot);
+BOOL WINAPI InitializeMonitorEx(LPWSTR pRegistryRoot, LPMONITOR pMonitor);
+BOOL WINAPI InitializeMonitor(LPWSTR pRegistryRoot);
+
+BOOL WINAPI OpenPort(LPWSTR pName, PHANDLE pHandle);
+BOOL WINAPI WritePort(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuf,
+ LPDWORD pcbWritten);
+BOOL WINAPI ReadPort(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuffer,
+ LPDWORD pcbRead);
+BOOL WINAPI ClosePort(HANDLE hPort);
+
+/* Print processor */
+HANDLE WINAPI OpenPrintProcessor(LPWSTR pPrinterName,
+ PPRINTPROCESSOROPENDATA pPrintProcessorOpenData);
+BOOL WINAPI PrintDocumentOnPrintProcessor(HANDLE hPrintProcessor,
+ LPWSTR pDocumentName);
+BOOL WINAPI ClosePrintProcessor(HANDLE hPrintProcessor);
+BOOL WINAPI ControlPrintProcessor(HANDLE hPrintProcessor, DWORD Command);
+BOOL WINAPI InstallPrintProcessor(HWND hWnd);
+
+/* Print provider */
+BOOL WINAPI InitializePrintProvidor(LPPRINTPROVIDOR pPrintProvidor,
+ DWORD cbPrintProvidor, LPWSTR pFullRegistryPath);
+BOOL WINAPI ProvidorFindFirstPrinterChangeNotification(HANDLE hPrinter,
+ DWORD fdwFlags, DWORD fdwOptions, HANDLE hNotify,
+ PVOID pvReserved0, PVOID pvReserved1);
+BOOL WINAPI ProvidorFindClosePrinterChangeNotification(HANDLE hPrinter);
+
+/* Spooler */
+BOOL WINAPI SpoolerFindFirstPrinterChangeNotification(HANDLE hPrinter,
+ DWORD fdwFlags, DWORD fdwOptions, PHANDLE phEvent,
+ PVOID pPrinterNotifyOptions, PVOID pvReserved);
+BOOL WINAPI SpoolerFindNextPrinterChangeNotification(HANDLE hPrinter,
+ LPDWORD pfdwChange, PVOID pvReserved0, PVOID ppPrinterNotifyInfo);
+VOID WINAPI SpoolerFreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO pInfo);
+BOOL WINAPI SpoolerFindClosePrinterChangeNotification(HANDLE hPrinter);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* _WINSPLP_ */
Propchange: trunk/reactos/include/ddk/winsplp.h
------------------------------------------------------------------------------
svn:eol-style = native
Modified: trunk/reactos/include/psdk/winspool.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/winspool.h?re…
==============================================================================
--- trunk/reactos/include/psdk/winspool.h [iso-8859-1] (original)
+++ trunk/reactos/include/psdk/winspool.h [iso-8859-1] Sat Dec 6 05:18:08 2008
@@ -715,6 +715,50 @@
LPWSTR pOrder;
} PROVIDOR_INFO_2W, *LPPROVIDOR_INFO_2W;
+typedef struct _BINARY_CONTAINER {
+ DWORD cbBuf;
+ LPBYTE pData;
+} BINARY_CONTAINER, *PBINARY_CONTAINER;
+
+typedef struct _BIDI_DATA {
+ DWORD dwBidiType;
+ union
+ {
+ BOOL bData;
+ INT iData;
+ LPWSTR sData;
+ FLOAT fData;
+ BINARY_CONTAINER biData;
+ } u;
+} BIDI_DATA, *LPBIDI_DATA, *PBIDI_DATA;
+
+typedef struct _BIDI_REQUEST_DATA {
+ DWORD dwReqNumber;
+ LPWSTR pSchema;
+ BIDI_DATA data;
+} BIDI_REQUEST_DATA, *LPBIDI_REQUEST_DATA, *PBIDI_REQUEST_DATA;
+
+typedef struct _BIDI_REQUEST_CONTAINER {
+ DWORD Version;
+ DWORD Flags;
+ DWORD Count;
+ BIDI_REQUEST_DATA aData[1];
+} BIDI_REQUEST_CONTAINER, *LPBIDI_REQUEST_CONTAINER, *PBIDI_REQUEST_CONTAINER;
+
+typedef struct _BIDI_RESPONSE_DATA {
+ DWORD dwResult;
+ DWORD dwReqNumber;
+ LPWSTR pSchema;
+ BIDI_DATA data;
+} BIDI_RESPONSE_DATA, *LPBIDI_RESPONSE_DATA, *PBIDI_RESPONSE_DATA;
+
+typedef struct _BIDI_RESPONSE_CONTAINER {
+ DWORD Version;
+ DWORD Flags;
+ DWORD Count;
+ BIDI_RESPONSE_DATA aData[1];
+} BIDI_RESPONSE_CONTAINER, *LPBIDI_RESPONSE_CONTAINER, *PBIDI_RESPONSE_CONTAINER;
+
BOOL WINAPI AbortPrinter(HANDLE);
BOOL WINAPI AddFormA(HANDLE,DWORD,PBYTE);
BOOL WINAPI AddFormW(HANDLE,DWORD,PBYTE);
@@ -823,6 +867,7 @@
BOOL WINAPI StartPagePrinter(HANDLE);
DWORD WINAPI WaitForPrinterChange(HANDLE,DWORD);
BOOL WINAPI WritePrinter(HANDLE,PVOID,DWORD,PDWORD);
+BOOL WINAPI XcvDataW(HANDLE, LPCWSTR, PBYTE, DWORD, PBYTE, DWORD, PDWORD, PDWORD);
#ifdef UNICODE
typedef JOB_INFO_1W JOB_INFO_1,*PJOB_INFO_1,*LPJOB_INFO_1;