ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

winsplp.h
Go to the documentation of this file.
00001 /*
00002  * winsplp.h
00003  *
00004  * This file is part of the ReactOS PSDK package.
00005  *
00006  * Contributors:
00007  *   Created by Amine Khaldi.
00008  *
00009  * THIS SOFTWARE IS NOT COPYRIGHTED
00010  *
00011  * This source code is offered for use in the public domain. You may
00012  * use, modify or distribute it freely.
00013  *
00014  * This code is distributed in the hope that it will be useful but
00015  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
00016  * DISCLAIMED. This includes but is not limited to warranties of
00017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00018  *
00019  */
00020 
00021 #pragma once
00022 
00023 #ifdef __cplusplus
00024 extern "C" {
00025 #endif
00026 
00027 #if (STRICT && (NTDDI_VERSION >= NTDDI_VISTA))
00028 #define HKEYMONITOR HKEY
00029 #else
00030 #define HKEYMONITOR HANDLE
00031 #endif
00032 
00033 #define PRINTER_NOTIFY_STATUS_ENDPOINT  1
00034 #define PRINTER_NOTIFY_STATUS_POLL      2
00035 #define PRINTER_NOTIFY_STATUS_INFO      4
00036 
00037 #define ROUTER_UNKNOWN      0
00038 #define ROUTER_SUCCESS      1
00039 #define ROUTER_STOP_ROUTING 2
00040 
00041 #if (NTDDI_VERSION >= NTDDI_WINXP)
00042 #define MONITOR2_SIZE_WIN2K (sizeof(DWORD) + (sizeof(PVOID)*18))
00043 #endif
00044 
00045 #define COPYFILE_EVENT_SET_PRINTER_DATAEX           1
00046 #define COPYFILE_EVENT_DELETE_PRINTER               2
00047 #define COPYFILE_EVENT_ADD_PRINTER_CONNECTION       3
00048 #define COPYFILE_EVENT_DELETE_PRINTER_CONNECTION    4
00049 #define COPYFILE_EVENT_FILES_CHANGED                5
00050 
00051 #define COPYFILE_FLAG_CLIENT_SPOOLER             0x00000001
00052 #define COPYFILE_FLAG_SERVER_SPOOLER             0x00000002
00053 
00054 #define PRINTER_NOTIFY_INFO_DATA_COMPACT         1
00055 
00056 typedef struct _PRINTER_NOTIFY_INIT {
00057   DWORD Size;
00058   DWORD Reserved;
00059   DWORD PollTime;
00060 } PRINTER_NOTIFY_INIT, *LPPRINTER_NOTIFY_INIT, *PPRINTER_NOTIFY_INIT;
00061 
00062 typedef struct _SPLCLIENT_INFO_1 {
00063   DWORD dwSize;
00064   LPWSTR pMachineName;
00065   LPWSTR pUserName;
00066   DWORD dwBuildNum;
00067   DWORD dwMajorVersion;
00068   DWORD dwMinorVersion;
00069   WORD wProcessorArchitecture;
00070 } SPLCLIENT_INFO_1, *LPSPLCLIENT_INFO_1, *PSPLCLIENT_INFO_1;
00071 
00072 typedef struct _SPLCLIENT_INFO_2_V1{
00073   ULONG_PTR hSplPrinter;
00074 } SPLCLIENT_INFO_2_W2K;
00075 
00076 typedef struct _SPLCLIENT_INFO_2_V2{
00077 #ifdef _WIN64
00078   DWORD64 hSplPrinter;
00079 #else
00080   DWORD32 hSplPrinter;
00081 #endif
00082 } SPLCLIENT_INFO_2_WINXP;
00083 
00084 typedef struct _SPLCLIENT_INFO_2_V3{
00085   UINT64 hSplPrinter;
00086 } SPLCLIENT_INFO_2_LONGHORN;
00087 
00088 typedef struct _PRINTPROVIDOR {
00089   BOOL (WINAPI *fpOpenPrinter)(PWSTR lpPrinterName, HANDLE *phPrinter,
00090                                PPRINTER_DEFAULTSW pDefault);
00091   BOOL (WINAPI *fpSetJob)(HANDLE hPrinter, DWORD JobID, DWORD Level,
00092                           LPBYTE pJob, DWORD Command);
00093   BOOL (WINAPI *fpGetJob)(HANDLE hPrinter, DWORD JobID, DWORD Level,
00094                           LPBYTE pJob, DWORD cbBuf, LPDWORD pcbNeeded);
00095   BOOL (WINAPI *fpEnumJobs)(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs,
00096                             DWORD Level, LPBYTE pJob, DWORD cbBuf, LPDWORD pcbNeeded,
00097                             LPDWORD pcReturned);
00098   HANDLE (WINAPI *fpAddPrinter)(LPWSTR pName, DWORD Level, LPBYTE pPrinter);
00099   BOOL (WINAPI *fpDeletePrinter)(HANDLE hPrinter);
00100   BOOL (WINAPI *fpSetPrinter)(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
00101                               DWORD Command);
00102   BOOL (WINAPI *fpGetPrinter)(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
00103                               DWORD cbBuf, LPDWORD pcbNeeded);
00104   BOOL (WINAPI *fpEnumPrinters)(DWORD dwType, LPWSTR lpszName, DWORD dwLevel,
00105                                 LPBYTE lpbPrinters, DWORD cbBuf, LPDWORD lpdwNeeded,
00106                                 LPDWORD lpdwReturned);
00107   BOOL (WINAPI *fpAddPrinterDriver)(LPWSTR pName, DWORD Level, LPBYTE pDriverInfo);
00108   BOOL (WINAPI *fpEnumPrinterDrivers)(LPWSTR pName, LPWSTR pEnvironment,
00109                                       DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf,
00110                                       LPDWORD pcbNeeded, LPDWORD pcbReturned);
00111   BOOL (WINAPI *fpGetPrinterDriver)(HANDLE hPrinter, LPWSTR pEnvironment,
00112                                     DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf,
00113                                     LPDWORD pcbNeeded);
00114   BOOL (WINAPI *fpGetPrinterDriverDirectory)(LPWSTR pName, LPWSTR pEnvironment,
00115                                              DWORD Level, LPBYTE pDriverDirectory,
00116                                              DWORD cbBuf, LPDWORD pcbNeeded);
00117   BOOL (WINAPI *fpDeletePrinterDriver)(LPWSTR pName, LPWSTR pEnvironment,
00118                                        LPWSTR pDriverName);
00119   BOOL (WINAPI *fpAddPrintProcessor)(LPWSTR pName, LPWSTR pEnvironment,
00120                                      LPWSTR pPathName, LPWSTR pPrintProcessorName);
00121   BOOL (WINAPI *fpEnumPrintProcessors)(LPWSTR pName, LPWSTR pEnvironment,
00122                                        DWORD Level, LPBYTE pPrintProcessorInfo,
00123                                        DWORD cbBuf, LPDWORD pcbNeeded,
00124                                        LPDWORD pcbReturned);
00125   BOOL (WINAPI *fpGetPrintProcessorDirectory)(LPWSTR pName, LPWSTR pEnvironment,
00126                                               DWORD Level, LPBYTE pPrintProcessorInfo,
00127                                               DWORD cbBuf, LPDWORD pcbNeeded);
00128   BOOL (WINAPI *fpDeletePrintProcessor)(LPWSTR pName, LPWSTR pEnvironment,
00129                  LPWSTR pPrintProcessorName);
00130   BOOL (WINAPI *fpEnumPrintProcessorDatatypes)(LPWSTR pName,
00131                                                LPWSTR pPrintProcessorName,
00132                                                DWORD Level, LPBYTE pDatatypes,
00133                                                DWORD cbBuf, LPDWORD pcbNeeded,
00134                                                LPDWORD pcbReturned);
00135   DWORD (WINAPI *fpStartDocPrinter)(HANDLE hPrinter, DWORD Level, LPBYTE pDocInfo);
00136   BOOL (WINAPI *fpStartPagePrinter)(HANDLE hPrinter);
00137   BOOL (WINAPI *fpWritePrinter)(HANDLE hPrinter, LPVOID pBuf, DWORD cbBuf,
00138                                 LPDWORD pcWritten);
00139   BOOL (WINAPI *fpEndPagePrinter)(HANDLE hPrinter);
00140   BOOL (WINAPI *fpAbortPrinter)(HANDLE hPrinter);
00141   BOOL (WINAPI *fpReadPrinter)(HANDLE hPrinter, LPVOID pBuf, DWORD cbBuf,
00142                                LPDWORD pNoBytesRead);
00143   BOOL (WINAPI *fpEndDocPrinter)(HANDLE hPrinter);
00144   BOOL (WINAPI *fpAddJob)(HANDLE hPrinter, DWORD Level, LPBYTE pData,
00145                           DWORD cbBuf, LPDWORD pcbNeeded);
00146   BOOL (WINAPI *fpScheduleJob)(HANDLE hPrinter, DWORD JobID);
00147   DWORD (WINAPI *fpGetPrinterData)(HANDLE hPrinter, LPWSTR pValueName,
00148                                    LPDWORD pType, LPBYTE pData, DWORD nSize,
00149                                    LPDWORD pcbNeeded);
00150   DWORD (WINAPI *fpSetPrinterData)(HANDLE hPrinter, LPWSTR pValueName,
00151                                    DWORD Type, LPBYTE pData, DWORD cbData);
00152   DWORD (WINAPI *fpWaitForPrinterChange)(HANDLE hPrinter, DWORD Flags);
00153   BOOL (WINAPI *fpClosePrinter)(HANDLE phPrinter);
00154   BOOL (WINAPI *fpAddForm)(HANDLE hPrinter, DWORD Level, LPBYTE pForm);
00155   BOOL (WINAPI *fpDeleteForm)(HANDLE hPrinter, LPWSTR pFormName);
00156   BOOL (WINAPI *fpGetForm)(HANDLE hPrinter, LPWSTR pFormName, DWORD Level,
00157                            LPBYTE pForm, DWORD cbBuf, LPDWORD pcbNeeded);
00158   BOOL (WINAPI *fpSetForm)(HANDLE hPrinter, LPWSTR pFormName, DWORD Level,
00159                            LPBYTE pForm);
00160   BOOL (WINAPI *fpEnumForms)(HANDLE hPrinter, DWORD Level, LPBYTE pForm,
00161                              DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
00162   BOOL (WINAPI *fpEnumMonitors)(LPWSTR pName, DWORD Level, LPBYTE pMonitors,
00163                                 DWORD cbBuf, LPDWORD pcbNeeded,
00164                                 LPDWORD pcReturned);
00165   BOOL (WINAPI *fpEnumPorts)(LPWSTR pName, DWORD Level, LPBYTE pPorts,
00166                              DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
00167   BOOL (WINAPI *fpAddPort)(LPWSTR pName, HWND hWnd, LPWSTR pMonitorName);
00168   BOOL (WINAPI *fpConfigurePort)(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
00169   BOOL (WINAPI *fpDeletePort)(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
00170   HANDLE (WINAPI *fpCreatePrinterIC)(HANDLE hPrinter, LPDEVMODEW pDevMode);
00171   BOOL (WINAPI *fpPlayGdiScriptOnPrinterIC)(HANDLE hPrinterIC, LPBYTE pIn,
00172                                             DWORD cIn, LPBYTE pOut, DWORD cOut,
00173                                             DWORD ul);
00174   BOOL (WINAPI *fpDeletePrinterIC)(HANDLE hPrinterIC);
00175   BOOL (WINAPI *fpAddPrinterConnection)(LPWSTR pName);
00176   BOOL (WINAPI *fpDeletePrinterConnection)(LPWSTR pName);
00177   DWORD (WINAPI *fpPrinterMessageBox)(HANDLE hPrinter, DWORD Error, HWND hWnd,
00178                                       LPWSTR pText, LPWSTR pCaption,
00179                                       DWORD dwType);
00180   BOOL (WINAPI *fpAddMonitor)(LPWSTR pName, DWORD Level, LPBYTE pMonitors);
00181   BOOL (WINAPI *fpDeleteMonitor)(LPWSTR pName, LPWSTR pEnvironment,
00182                                  LPWSTR pMonitorName);
00183   BOOL (WINAPI *fpResetPrinter)(HANDLE hPrinter, LPPRINTER_DEFAULTSW pDefault);
00184   BOOL (WINAPI *fpGetPrinterDriverEx)(HANDLE hPrinter, LPWSTR pEnvironment,
00185                                       DWORD Level, LPBYTE pDriverInfo,
00186                                       DWORD cbBuf, LPDWORD pcbNeeded,
00187                                       DWORD dwClientMajorVersion,
00188                                       DWORD dwClientMinorVersion,
00189                                       PDWORD pdwServerMajorVersion,
00190                                       PDWORD pdwServerMinorVersion);
00191   HANDLE (WINAPI *fpFindFirstPrinterChangeNotification)(HANDLE hPrinter,
00192                                                         DWORD fdwFlags,
00193                                                         DWORD fdwOptions,
00194                                                         LPVOID pPrinterNotifyOptions);
00195   BOOL (WINAPI *fpFindClosePrinterChangeNotification)(HANDLE hChange);
00196   BOOL (WINAPI *fpAddPortEx)(HANDLE hMonitor, LPWSTR pName, DWORD Level,
00197                              LPBYTE lpBuffer, LPWSTR lpMonitorName);
00198   BOOL (WINAPI *fpShutDown)(LPVOID pvReserved);
00199   BOOL (WINAPI *fpRefreshPrinterChangeNotification)(HANDLE hPrinter,
00200                                                     DWORD Reserved,
00201                                                     PVOID pvReserved,
00202                                                     PVOID pPrinterNotifyInfo);
00203   BOOL (WINAPI *fpOpenPrinterEx)(LPWSTR pPrinterName, LPHANDLE phPrinter,
00204                                  LPPRINTER_DEFAULTSW pDefault, LPBYTE pClientInfo,
00205                                  DWORD Level);
00206   HANDLE (WINAPI *fpAddPrinterEx)(LPWSTR pName, DWORD Level, LPBYTE pPrinter,
00207                                   LPBYTE pClientInfo, DWORD ClientInfoLevel);
00208   BOOL (WINAPI *fpSetPort)(LPWSTR pName, LPWSTR pPortName, DWORD dwLevel,
00209                            LPBYTE pPortInfo);
00210   DWORD (WINAPI *fpEnumPrinterData)(HANDLE hPrinter, DWORD dwIndex,
00211                                     LPWSTR pValueName, DWORD cbValueName,
00212                                     LPDWORD pcbValueName, LPDWORD pType,
00213                                     LPBYTE pData, DWORD cbData, LPDWORD pcbData);
00214   DWORD (WINAPI *fpDeletePrinterData)(HANDLE hPrinter, LPWSTR pValueName);
00215   DWORD (WINAPI *fpClusterSplOpen)(LPCWSTR pszServer, LPCWSTR pszResource,
00216                                    PHANDLE phSpooler, LPCWSTR pszName,
00217                                    LPCWSTR pszAddress);
00218   DWORD (WINAPI *fpClusterSplClose)(HANDLE hSpooler);
00219   DWORD (WINAPI *fpClusterSplIsAlive)(HANDLE hSpooler);
00220   DWORD (WINAPI *fpSetPrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
00221                                      LPCWSTR pValueName, DWORD Type,
00222                                      LPBYTE pData, DWORD cbData);
00223   DWORD (WINAPI *fpGetPrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
00224                                      LPCWSTR pValueName, LPDWORD pType,
00225                                      LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded);
00226   DWORD (WINAPI *fpEnumPrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
00227                                       LPBYTE pEnumValues, DWORD cbEnumValues,
00228                                       LPDWORD pcbEnumValues, LPDWORD pnEnumValues);
00229   DWORD (WINAPI *fpEnumPrinterKey)(HANDLE hPrinter, LPCWSTR pKeyName,
00230                                    LPWSTR pSubkey, DWORD cbSubkey, LPDWORD pcbSubkey);
00231   DWORD (WINAPI *fpDeletePrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
00232                                         LPCWSTR pValueName);
00233   DWORD (WINAPI *fpDeletePrinterKey)(HANDLE hPrinter, LPCWSTR pKeyName);
00234   BOOL (WINAPI *fpSeekPrinter)(HANDLE hPrinter, LARGE_INTEGER liDistanceToMove,
00235                                PLARGE_INTEGER pliNewPointer, DWORD dwMoveMethod,
00236                                BOOL bWrite);
00237   BOOL (WINAPI *fpDeletePrinterDriverEx)(LPWSTR pName, LPWSTR pEnvironment,
00238                                          LPWSTR pDriverName, DWORD dwDeleteFlag,
00239                                          DWORD dwVersionNum);
00240   BOOL (WINAPI *fpAddPerMachineConnection)(LPCWSTR pServer,
00241                                            LPCWSTR pPrinterName, LPCWSTR pPrintServer,
00242                                            LPCWSTR pProvider);
00243   BOOL (WINAPI *fpDeletePerMachineConnection)(LPCWSTR pServer,
00244                                               LPCWSTR pPrinterName);
00245   BOOL (WINAPI *fpEnumPerMachineConnections)(LPCWSTR pServer,
00246                                              LPBYTE pPrinterEnum, DWORD cbBuf,
00247                                              LPDWORD pcbNeeded,
00248                  LPDWORD pcReturned);
00249   BOOL (WINAPI *fpXcvData)(HANDLE hXcv, LPCWSTR pszDataName, PBYTE pInputData,
00250                            DWORD cbInputData, PBYTE pOutputData, DWORD cbOutputData,
00251                            PDWORD pcbOutputNeeded, PDWORD pdwStatus);
00252   BOOL (WINAPI *fpAddPrinterDriverEx)(LPWSTR pName, DWORD Level,
00253                                       LPBYTE pDriverInfo, DWORD dwFileCopyFlags);
00254   BOOL (WINAPI *fpSplReadPrinter)(HANDLE hPrinter, LPBYTE *pBuf, DWORD cbBuf);
00255   BOOL (WINAPI *fpDriverUnloadComplete)(LPWSTR pDriverFile);
00256   BOOL (WINAPI *fpGetSpoolFileInfo)(HANDLE hPrinter, LPWSTR *pSpoolDir,
00257                                     LPHANDLE phFile, HANDLE hSpoolerProcess,
00258                                     HANDLE hAppProcess);
00259   BOOL (WINAPI *fpCommitSpoolData)(HANDLE hPrinter, DWORD cbCommit);
00260   BOOL (WINAPI *fpCloseSpoolFileHandle)(HANDLE hPrinter);
00261   BOOL (WINAPI *fpFlushPrinter)(HANDLE hPrinter, LPBYTE pBuf, DWORD cbBuf,
00262                                 LPDWORD pcWritten, DWORD cSleep);
00263   DWORD (WINAPI *fpSendRecvBidiData)(HANDLE hPort, LPCWSTR pAction,
00264                                      LPBIDI_REQUEST_CONTAINER pReqData,
00265                                      LPBIDI_RESPONSE_CONTAINER *ppResData);
00266   BOOL (WINAPI *fpAddDriverCatalog)(HANDLE hPrinter, DWORD dwLevel,
00267                                     VOID *pvDriverInfCatInfo, DWORD dwCatalogCopyFlags);
00268 } PRINTPROVIDOR, *LPPRINTPROVIDOR;
00269 
00270 typedef struct _PRINTPROCESSOROPENDATA {
00271   PDEVMODEW pDevMode;
00272   LPWSTR pDatatype;
00273   LPWSTR pParameters;
00274   LPWSTR pDocumentName;
00275   DWORD JobId;
00276   LPWSTR pOutputFile;
00277   LPWSTR pPrinterName;
00278 } PRINTPROCESSOROPENDATA, *LPPRINTPROCESSOROPENDATA, *PPRINTPROCESSOROPENDATA;
00279 
00280 typedef struct _MONITORREG {
00281   DWORD cbSize;
00282   LONG (WINAPI *fpCreateKey)(HANDLE hcKey, LPCWSTR pszSubKey, DWORD dwOptions,
00283                              REGSAM samDesired,
00284                              PSECURITY_ATTRIBUTES pSecurityAttributes,
00285                              PHANDLE phckResult, PDWORD pdwDisposition,
00286                              HANDLE hSpooler);
00287   LONG (WINAPI *fpOpenKey)(HANDLE hcKey, LPCWSTR pszSubKey, REGSAM samDesired,
00288                            PHANDLE phkResult, HANDLE hSpooler);
00289   LONG (WINAPI *fpCloseKey)(HANDLE hcKey, HANDLE hSpooler);
00290   LONG (WINAPI *fpDeleteKey)(HANDLE hcKey, LPCWSTR pszSubKey, HANDLE hSpooler);
00291   LONG (WINAPI *fpEnumKey)(HANDLE hcKey, DWORD dwIndex, LPWSTR pszName,
00292                            PDWORD pcchName, PFILETIME pftLastWriteTime,
00293                            HANDLE hSpooler);
00294   LONG (WINAPI *fpQueryInfoKey)(HANDLE hcKey, PDWORD pcSubKeys, PDWORD pcbKey,
00295                                 PDWORD pcValues, PDWORD pcbValue, PDWORD pcbData,
00296                                 PDWORD pcbSecurityDescriptor,
00297                                 PFILETIME pftLastWriteTime,
00298                                 HANDLE hSpooler);
00299   LONG (WINAPI *fpSetValue)(HANDLE hcKey, LPCWSTR pszValue, DWORD dwType,
00300                 const BYTE* pData, DWORD cbData, HANDLE hSpooler);
00301   LONG (WINAPI *fpDeleteValue)(HANDLE hcKey, LPCWSTR pszValue, HANDLE hSpooler);
00302   LONG (WINAPI *fpEnumValue)(HANDLE hcKey, DWORD dwIndex, LPWSTR pszValue,
00303                              PDWORD pcbValue, PDWORD pType, PBYTE pData, PDWORD pcbData,
00304                              HANDLE hSpooler);
00305   LONG (WINAPI *fpQueryValue)(HANDLE hcKey, LPCWSTR pszValue, PDWORD pType,
00306                               PBYTE pData, PDWORD pcbData, HANDLE hSpooler);
00307 } MONITORREG, *PMONITORREG;
00308 
00309 typedef struct _MONITORINIT {
00310   DWORD cbSize;
00311   HANDLE hSpooler;
00312   HKEYMONITOR hckRegistryRoot;
00313   PMONITORREG pMonitorReg;
00314   BOOL bLocal;
00315   LPCWSTR pszServerName;
00316 } MONITORINIT, *PMONITORINIT;
00317 
00318 typedef struct _MONITOR {
00319   BOOL (WINAPI *pfnEnumPorts)(LPWSTR pName, DWORD Level, LPBYTE pPorts,
00320                               DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
00321   BOOL (WINAPI *pfnOpenPort)(LPWSTR pName, PHANDLE pHandle);
00322   BOOL (WINAPI *pfnOpenPortEx)(LPWSTR pPortName, LPWSTR pPrinterName,
00323                                PHANDLE pHandle, struct _MONITOR *pMonitor);
00324   BOOL (WINAPI *pfnStartDocPort)(HANDLE hPort, LPWSTR pPrinterName,
00325                                  DWORD JobId, DWORD Level, LPBYTE pDocInfo);
00326   BOOL (WINAPI *pfnWritePort)(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuf,
00327                               LPDWORD pcbWritten);
00328   BOOL (WINAPI *pfnReadPort)(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuffer,
00329                              LPDWORD pcbRead);
00330   BOOL (WINAPI *pfnEndDocPort)(HANDLE hPort);
00331   BOOL (WINAPI *pfnClosePort)(HANDLE hPort);
00332   BOOL (WINAPI *pfnAddPort)(LPWSTR pName, HWND hWnd, LPWSTR pMonitorName);
00333   BOOL (WINAPI *pfnAddPortEx)(LPWSTR pName, DWORD Level, LPBYTE lpBuffer,
00334                               LPWSTR lpMonitorName);
00335   BOOL (WINAPI *pfnConfigurePort)(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
00336   BOOL (WINAPI *pfnDeletePort)(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
00337   BOOL (WINAPI *pfnGetPrinterDataFromPort)(HANDLE hPort, DWORD ControlID,
00338                                            LPWSTR pValueName, LPWSTR lpInBuffer,
00339                                            DWORD cbInBuffer, LPWSTR lpOutBuffer,
00340                                            DWORD cbOutBuffer, LPDWORD lpcbReturned);
00341   BOOL (WINAPI *pfnSetPortTimeOuts)(HANDLE hPort, LPCOMMTIMEOUTS lpCTO,
00342                                     DWORD reserved);
00343   BOOL (WINAPI *pfnXcvOpenPort)(LPCWSTR pszObject, ACCESS_MASK GrantedAccess, PHANDLE phXcv);
00344   DWORD (WINAPI *pfnXcvDataPort)(HANDLE hXcv, LPCWSTR pszDataName,
00345                                  PBYTE pInputData, DWORD cbInputData,
00346                                  PBYTE pOutputData, DWORD cbOutputData,
00347                                  PDWORD pcbOutputNeeded);
00348   BOOL (WINAPI *pfnXcvClosePort)(HANDLE hXcv);
00349 } MONITOR, *LPMONITOR;
00350 
00351 typedef struct _MONITOREX {
00352   DWORD dwMonitorSize;
00353   MONITOR Monitor;
00354 } MONITOREX, *LPMONITOREX;
00355 
00356 typedef struct _MONITOR2 {
00357   DWORD cbSize;
00358   BOOL (WINAPI *pfnEnumPorts)(LPWSTR pName, DWORD Level, LPBYTE pPorts,
00359                               DWORD cbBuf, LPDWORD pcbNeeded,
00360                               LPDWORD pcReturned);
00361   BOOL (WINAPI *pfnOpenPort)(LPWSTR pName, PHANDLE pHandle);
00362   BOOL (WINAPI *pfnOpenPortEx)(LPWSTR pPortName, LPWSTR pPrinterName,
00363                                PHANDLE pHandle, struct _MONITOR2 *pMonitor2);
00364   BOOL (WINAPI *pfnStartDocPort)(HANDLE hPort, LPWSTR pPrinterName,
00365                                  DWORD JobId, DWORD Level, LPBYTE pDocInfo);
00366   BOOL (WINAPI *pfnWritePort)(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuf,
00367                               LPDWORD pcbWritten);
00368   BOOL (WINAPI *pfnReadPort)(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuffer,
00369                              LPDWORD pcbRead);
00370   BOOL (WINAPI *pfnEndDocPort)(HANDLE hPort);
00371   BOOL (WINAPI *pfnClosePort)(HANDLE hPort);
00372   BOOL (WINAPI *pfnAddPort)(LPWSTR pName, HWND hWnd, LPWSTR pMonitorName);
00373   BOOL (WINAPI *pfnAddPortEx)(LPWSTR pName, DWORD Level, LPBYTE lpBuffer,
00374                               LPWSTR lpMonitorName);
00375   BOOL (WINAPI *pfnConfigurePort)(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
00376   BOOL (WINAPI *pfnDeletePort)(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
00377   BOOL (WINAPI *pfnGetPrinterDataFromPort)(HANDLE hPort, DWORD ControlID,
00378                                            LPWSTR pValueName, LPWSTR lpInBuffer,
00379                                            DWORD cbInBuffer, LPWSTR lpOutBuffer,
00380                                            DWORD cbOutBuffer, LPDWORD lpcbReturned);
00381   BOOL (WINAPI *pfnSetPortTimeOuts)(HANDLE hPort, LPCOMMTIMEOUTS lpCTO,
00382                                     DWORD reserved);
00383   BOOL (WINAPI *pfnXcvOpenPort)(HANDLE hMonitor, LPCWSTR pszObject,
00384                                 ACCESS_MASK GrantedAccess, PHANDLE phXcv);
00385   DWORD (WINAPI *pfnXcvDataPort)(HANDLE hXcv, LPCWSTR pszDataName,
00386                                  PBYTE pInputData, DWORD cbInputData,
00387                                  PBYTE pOutputData, DWORD cbOutputData,
00388                                  PDWORD pcbOutputNeeded);
00389   BOOL (WINAPI *pfnXcvClosePort)(HANDLE hXcv);
00390   VOID (WINAPI *pfnShutdown)(HANDLE hMonitor);
00391 #if (NTDDI_VERSION >= NTDDI_WINXP)
00392  DWORD (WINAPI *pfnSendRecvBidiDataFromPort)(HANDLE hPort, DWORD dwAccessBit,
00393                                              LPCWSTR pAction,
00394                                              PBIDI_REQUEST_CONTAINER pReqData,
00395                                              PBIDI_RESPONSE_CONTAINER *ppResData);
00396 #endif
00397 #if (NTDDI_VERSION >= NTDDI_WIN7)
00398   DWORD (WINAPI *pfnNotifyUsedPorts)(HANDLE hMonitor, DWORD cPorts,
00399                                    PCWSTR *ppszPorts);
00400 
00401   DWORD (WINAPI *pfnNotifyUnusedPorts)(HANDLE hMonitor, DWORD cPorts,
00402                                        PCWSTR *ppszPorts);
00403 #endif
00404 } MONITOR2, *LPMONITOR2, *PMONITOR2;
00405 
00406 typedef struct _MONITORUI {
00407   DWORD dwMonitorUISize;
00408   BOOL (WINAPI *pfnAddPortUI)(PCWSTR pszServer, HWND hWnd,
00409                               PCWSTR pszPortNameIn, PWSTR *ppszPortNameOut);
00410   BOOL (WINAPI *pfnConfigurePortUI)(PCWSTR pName, HWND hWnd, PCWSTR pPortName);
00411   BOOL (WINAPI *pfnDeletePortUI)(PCWSTR pszServer, HWND hWnd, PCWSTR pszPortName);
00412 } MONITORUI, *PMONITORUI;
00413 
00414 #if (NTDDI_VERSION >= NTDDI_WINXP)
00415 
00416 typedef enum {
00417   kMessageBox = 0
00418 } UI_TYPE;
00419 
00420 typedef struct {
00421   DWORD cbSize;
00422   LPWSTR pTitle;
00423   LPWSTR pMessage;
00424   DWORD Style;
00425   DWORD dwTimeout;
00426   BOOL bWait;
00427 } MESSAGEBOX_PARAMS, *PMESSAGEBOX_PARAMS;
00428 
00429 typedef struct {
00430   UI_TYPE UIType;
00431   MESSAGEBOX_PARAMS MessageBoxParams;
00432 } SHOWUIPARAMS, *PSHOWUIPARAMS;
00433 
00434 #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
00435 
00436 #if (NTDDI_VERSION >= NTDDI_WS03)
00437 #ifndef __ATTRIBUTE_INFO_3__
00438 #define __ATTRIBUTE_INFO_3__
00439 typedef struct _ATTRIBUTE_INFO_3 {
00440   DWORD dwJobNumberOfPagesPerSide;
00441   DWORD dwDrvNumberOfPagesPerSide;
00442   DWORD dwNupBorderFlags;
00443   DWORD dwJobPageOrderFlags;
00444   DWORD dwDrvPageOrderFlags;
00445   DWORD dwJobNumberOfCopies;
00446   DWORD dwDrvNumberOfCopies;
00447   DWORD dwColorOptimization;
00448   short dmPrintQuality;
00449   short dmYResolution;
00450 } ATTRIBUTE_INFO_3, *PATTRIBUTE_INFO_3;
00451 #endif /* __ATTRIBUTE_INFO_3__ */
00452 #endif /* (NTDDI_VERSION >= NTDDI_WS03) */
00453 
00454 #if (NTDDI_VERSION >= NTDDI_VISTA)
00455 
00456 typedef BOOL
00457 (CALLBACK *ROUTER_NOTIFY_CALLBACK)(
00458   IN DWORD dwCommand,
00459   IN PVOID pContext,
00460   IN DWORD dwColor,
00461   IN PPRINTER_NOTIFY_INFO pNofityInfo,
00462   IN DWORD fdwFlags,
00463   OUT PDWORD pdwResult);
00464 
00465 typedef enum _NOTIFICATION_CALLBACK_COMMANDS {
00466   NOTIFICATION_COMMAND_NOTIFY,
00467   NOTIFICATION_COMMAND_CONTEXT_ACQUIRE,
00468   NOTIFICATION_COMMAND_CONTEXT_RELEASE
00469 } NOTIFICATION_CALLBACK_COMMANDS;
00470 
00471 typedef struct _NOTIFICATION_CONFIG_1 {
00472   UINT cbSize;
00473   DWORD fdwFlags;
00474   ROUTER_NOTIFY_CALLBACK pfnNotifyCallback;
00475   PVOID pContext;
00476 } NOTIFICATION_CONFIG_1, *PNOTIFICATION_CONFIG_1;
00477 
00478 typedef enum _NOTIFICATION_CONFIG_FLAGS {
00479   NOTIFICATION_CONFIG_CREATE_EVENT = 1 << 0,
00480   NOTIFICATION_CONFIG_REGISTER_CALLBACK = 1 << 1,
00481   NOTIFICATION_CONFIG_EVENT_TRIGGER = 1 << 2,
00482   NOTIFICATION_CONFIG_ASYNC_CHANNEL = 1 << 3
00483 } NOTIFICATION_CONFIG_FLAGS;
00484 
00485 typedef struct _SPLCLIENT_INFO_3 {
00486   UINT cbSize;
00487   DWORD dwFlags;
00488   DWORD dwSize;
00489   PWSTR pMachineName;
00490   PWSTR pUserName;
00491   DWORD dwBuildNum;
00492   DWORD dwMajorVersion;
00493   DWORD dwMinorVersion;
00494   WORD wProcessorArchitecture;
00495   UINT64 hSplPrinter;
00496 } SPLCLIENT_INFO_3, *PSPLCLIENT_INFO_3, *LPSPLCLIENT_INFO_3;
00497 
00498 #ifndef __ATTRIBUTE_INFO_4__
00499 #define __ATTRIBUTE_INFO_4__
00500 
00501 typedef struct _ATTRIBUTE_INFO_4 {
00502   DWORD dwJobNumberOfPagesPerSide;
00503   DWORD dwDrvNumberOfPagesPerSide;
00504   DWORD dwNupBorderFlags;
00505   DWORD dwJobPageOrderFlags;
00506   DWORD dwDrvPageOrderFlags;
00507   DWORD dwJobNumberOfCopies;
00508   DWORD dwDrvNumberOfCopies;
00509   DWORD dwColorOptimization;
00510   short dmPrintQuality;
00511   short dmYResolution;
00512   DWORD dwDuplexFlags;
00513   DWORD dwNupDirection;
00514   DWORD dwBookletFlags;
00515   DWORD dwScalingPercentX;
00516   DWORD dwScalingPercentY;
00517 } ATTRIBUTE_INFO_4, *PATTRIBUTE_INFO_4;
00518 
00519 #define REVERSE_PAGES_FOR_REVERSE_DUPLEX (0x00000001)
00520 #define DONT_SEND_EXTRA_PAGES_FOR_DUPLEX (0x00000001 << 1)
00521 
00522 #define RIGHT_THEN_DOWN                  (0x00000001)
00523 #define DOWN_THEN_RIGHT                  (0x00000001 << 1)
00524 #define LEFT_THEN_DOWN                   (0x00000001 << 2)
00525 #define DOWN_THEN_LEFT                   (0x00000001 << 3)
00526 
00527 #define BOOKLET_EDGE_LEFT                0x00000000
00528 #define BOOKLET_EDGE_RIGHT               0x00000001
00529 
00530 #endif /* __ATTRIBUTE_INFO_4__ */
00531 
00532 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
00533 
00534 #if (OSVER(NTDDI_VERSION) == NTDDI_W2K)
00535 typedef SPLCLIENT_INFO_2_W2K SPLCLIENT_INFO_2, *PSPLCLIENT_INFO_2, *LPSPLCLIENT_INFO_2;
00536 #elif ((OSVER(NTDDI_VERSION) == NTDDI_WINXP) || (OSVER(NTDDI_VERSION) == NTDDI_WS03))
00537 typedef SPLCLIENT_INFO_2_WINXP SPLCLIENT_INFO_2, *PSPLCLIENT_INFO_2, *LPSPLCLIENT_INFO_2;
00538 #else
00539 typedef SPLCLIENT_INFO_2_LONGHORN SPLCLIENT_INFO_2, *PSPLCLIENT_INFO_2, *LPSPLCLIENT_INFO_2;
00540 #endif /* (OSVER(NTDDI_VERSION) == NTDDI_W2K) */
00541 
00542 BOOL
00543 WINAPI
00544 InitializePrintProvidor(
00545   OUT LPPRINTPROVIDOR pPrintProvidor,
00546   IN DWORD cbPrintProvidor,
00547   IN LPWSTR pFullRegistryPath OPTIONAL);
00548 
00549 HANDLE
00550 WINAPI
00551 OpenPrintProcessor(
00552   IN LPWSTR pPrinterName,
00553   IN PPRINTPROCESSOROPENDATA pPrintProcessorOpenData);
00554 
00555 BOOL
00556 WINAPI
00557 PrintDocumentOnPrintProcessor(
00558   IN HANDLE hPrintProcessor,
00559   IN LPWSTR pDocumentName);
00560 
00561 BOOL
00562 WINAPI
00563 ClosePrintProcessor(
00564   IN OUT HANDLE hPrintProcessor);
00565 
00566 BOOL
00567 WINAPI
00568 ControlPrintProcessor(
00569   IN HANDLE hPrintProcessor,
00570   IN DWORD Command);
00571 
00572 DWORD
00573 WINAPI
00574 GetPrintProcessorCapabilities(
00575   IN LPTSTR pValueName,
00576   IN DWORD dwAttributes,
00577   OUT LPBYTE pData,
00578   IN DWORD nSize,
00579   OUT LPDWORD pcbNeeded);
00580 
00581 BOOL
00582 WINAPI
00583 InitializeMonitor(
00584   IN LPWSTR pRegistryRoot);
00585 
00586 BOOL
00587 WINAPI
00588 OpenPort(
00589   IN LPWSTR pName,
00590   OUT PHANDLE pHandle);
00591 
00592 BOOL
00593 WINAPI
00594 WritePort(
00595   HANDLE hPort,
00596   LPBYTE pBuffer,
00597   DWORD cbBuf,
00598   LPDWORD pcbWritten);
00599 
00600 BOOL
00601 WINAPI
00602 ReadPort(
00603   HANDLE hPort,
00604   LPBYTE pBuffer,
00605   DWORD cbBuffer,
00606   LPDWORD pcbRead);
00607 
00608 BOOL
00609 WINAPI
00610 ClosePort(
00611   IN HANDLE hPort);
00612 
00613 BOOL
00614 WINAPI
00615 XcvOpenPort(
00616   LPCWSTR pszObject,
00617   ACCESS_MASK GrantedAccess,
00618   PHANDLE phXcv);
00619 
00620 DWORD
00621 WINAPI
00622 XcvDataPort(
00623   HANDLE hXcv,
00624   LPCWSTR pszDataName,
00625   PBYTE pInputData,
00626   DWORD cbInputData,
00627   PBYTE pOutputData,
00628   DWORD cbOutputData,
00629   PDWORD pcbOutputNeeded);
00630 
00631 BOOL
00632 WINAPI
00633 XcvClosePort(
00634   IN HANDLE hXcv);
00635 
00636 BOOL
00637 WINAPI
00638 AddPortUI(
00639   IN PCWSTR pszServer OPTIONAL,
00640   IN HWND hWnd,
00641   IN PCWSTR pszMonitorNameIn,
00642   OUT PWSTR *ppszPortNameOut OPTIONAL);
00643 
00644 BOOL
00645 WINAPI
00646 ConfigurePortUI(
00647   IN PCWSTR pszServer,
00648   IN HWND hWnd,
00649   IN PCWSTR pszPortName);
00650 
00651 BOOL
00652 WINAPI
00653 DeletePortUI(
00654   IN PCWSTR pszServer,
00655   IN HWND hWnd,
00656   IN PCWSTR pszPortName);
00657 
00658 BOOL
00659 WINAPI
00660 SplDeleteSpoolerPortStart(
00661   IN PCWSTR pPortName);
00662 
00663 BOOL
00664 WINAPI
00665 SplDeleteSpoolerPortEnd(
00666   IN PCWSTR pName,
00667   IN BOOL bDeletePort);
00668 
00669 BOOL
00670 WINAPI
00671 SpoolerCopyFileEvent(
00672   IN LPWSTR pszPrinterName,
00673   IN LPWSTR pszKey,
00674   IN DWORD dwCopyFileEvent);
00675 
00676 DWORD
00677 WINAPI
00678 GenerateCopyFilePaths(
00679   IN LPCWSTR pszPrinterName,
00680   IN LPCWSTR pszDirectory,
00681   IN LPBYTE pSplClientInfo,
00682   IN DWORD dwLevel,
00683   IN OUT LPWSTR pszSourceDir,
00684   IN OUT LPDWORD pcchSourceDirSize,
00685   IN OUT LPWSTR pszTargetDir,
00686   IN OUT LPDWORD pcchTargetDirSize,
00687   IN DWORD dwFlags);
00688 
00689 HANDLE WINAPI CreatePrinterIC(HANDLE hPrinter, LPDEVMODEW pDevMode);
00690 BOOL WINAPI PlayGdiScriptOnPrinterIC(HANDLE hPrinterIC, LPBYTE pIn,
00691                                      DWORD cIn, LPBYTE pOut, DWORD cOut, DWORD ul);
00692 BOOL WINAPI DeletePrinterIC(HANDLE hPrinterIC);
00693 BOOL WINAPI DevQueryPrint(HANDLE hPrinter, LPDEVMODEW pDevMode, DWORD *pResID);
00694 HANDLE WINAPI RevertToPrinterSelf(VOID);
00695 BOOL WINAPI ImpersonatePrinterClient(HANDLE hToken);
00696 BOOL WINAPI ReplyPrinterChangeNotification(HANDLE hNotify, DWORD fdwFlags,
00697                                            PDWORD pdwResult, PVOID pPrinterNotifyInfo);
00698 BOOL WINAPI ReplyPrinterChangeNotificationEx(HANDLE hNotify, DWORD dwColor,
00699                                              DWORD fdwFlags, PDWORD pdwResult,
00700                                              PVOID pPrinterNotifyInfo);
00701 BOOL WINAPI PartialReplyPrinterChangeNotification(HANDLE hNotify,
00702                                                   PPRINTER_NOTIFY_INFO_DATA pInfoDataSrc);
00703 PPRINTER_NOTIFY_INFO WINAPI RouterAllocPrinterNotifyInfo(DWORD cPrinterNotifyInfoData);
00704 BOOL WINAPI RouterFreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO pInfo);
00705 
00706 BOOL WINAPI AppendPrinterNotifyInfoData(PPRINTER_NOTIFY_INFO pInfoDest,
00707                                         PPRINTER_NOTIFY_INFO_DATA pInfoDataSrc,
00708                                         DWORD fdwFlags);
00709 DWORD WINAPI CallRouterFindFirstPrinterChangeNotification(HANDLE hPrinter,
00710                                                           DWORD fdwFlags,
00711                                                           DWORD fdwOptions,
00712                                                           HANDLE hNotify,
00713                                                           PPRINTER_NOTIFY_OPTIONS pPrinterNotifyOptions);
00714 BOOL WINAPI ProvidorFindFirstPrinterChangeNotification(HANDLE hPrinter,
00715                                                        DWORD fdwFlags,
00716                                                        DWORD fdwOptions,
00717                                                        HANDLE hNotify,
00718                                                        PVOID pvReserved0,
00719                                                        PVOID pvReserved1);
00720 BOOL WINAPI ProvidorFindClosePrinterChangeNotification(HANDLE hPrinter);
00721 
00722 /* Spooler */
00723 BOOL WINAPI SpoolerFindFirstPrinterChangeNotification(HANDLE hPrinter,
00724                                                       DWORD fdwFlags,
00725                                                       DWORD fdwOptions,
00726                                                       PHANDLE phEvent,
00727                                                       PVOID pPrinterNotifyOptions,
00728                                                       PVOID pvReserved);
00729 BOOL WINAPI SpoolerFindNextPrinterChangeNotification(HANDLE hPrinter,
00730                                                      LPDWORD pfdwChange,
00731                                                      PVOID pvReserved0,
00732                                                      PVOID ppPrinterNotifyInfo);
00733 VOID WINAPI SpoolerFreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO pInfo);
00734 BOOL WINAPI SpoolerFindClosePrinterChangeNotification(HANDLE hPrinter);
00735 
00736 /* Port monitor / Language monitor / Print monitor */
00737 LPMONITOR2 WINAPI InitializePrintMonitor2(PMONITORINIT pMonitorInit,
00738                                           PHANDLE phMonitor);
00739 PMONITORUI WINAPI InitializePrintMonitorUI(VOID);
00740 LPMONITOREX WINAPI InitializePrintMonitor(LPWSTR pRegistryRoot);
00741 BOOL WINAPI InitializeMonitorEx(LPWSTR pRegistryRoot, LPMONITOR pMonitor);
00742 
00743 #if (NTDDI_VERSION >= NTDDI_WINXP)
00744 
00745 PBIDI_RESPONSE_CONTAINER WINAPI RouterAllocBidiResponseContainer(DWORD Count);
00746 PVOID WINAPI RouterAllocBidiMem(size_t NumBytes);
00747 DWORD WINAPI RouterFreeBidiResponseContainer(PBIDI_RESPONSE_CONTAINER pData);
00748 VOID WINAPI RouterFreeBidiMem(PVOID pMemPointer);
00749 
00750 BOOL
00751 WINAPI
00752 SplPromptUIInUsersSession(
00753   IN HANDLE hPrinter,
00754   IN DWORD JobId,
00755   IN PSHOWUIPARAMS pUIParams,
00756   OUT DWORD *pResponse);
00757 
00758 DWORD
00759 WINAPI
00760 SplIsSessionZero(
00761   IN HANDLE hPrinter,
00762   IN DWORD JobId,
00763   OUT BOOL *pIsSessionZero);
00764 
00765 #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
00766 
00767 #if (NTDDI_VERSION >= NTDDI_WS03)
00768 BOOL
00769 WINAPI
00770 GetJobAttributes(
00771   IN LPWSTR pPrinterName,
00772   IN LPDEVMODEW pDevmode,
00773   OUT PATTRIBUTE_INFO_3 pAttributeInfo);
00774 #endif
00775 
00776 #if (NTDDI_VERSION >= NTDDI_VISTA)
00777 
00778 #define FILL_WITH_DEFAULTS   0x1
00779 
00780 BOOL
00781 WINAPI
00782 GetJobAttributesEx(
00783   IN LPWSTR pPrinterName,
00784   IN LPDEVMODEW pDevmode,
00785   IN DWORD dwLevel,
00786   OUT LPBYTE pAttributeInfo,
00787   IN DWORD nSize,
00788   IN DWORD dwFlags);
00789 
00790 BOOL WINAPI SpoolerRefreshPrinterChangeNotification(HANDLE hPrinter,
00791                                                     DWORD dwColor,
00792                                                     PPRINTER_NOTIFY_OPTIONS pOptions,
00793                                                     PPRINTER_NOTIFY_INFO *ppInfo);
00794 
00795 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
00796 
00797 /* FIXME : The following declarations are not present in the official header */
00798 
00799 BOOL WINAPI OpenPrinterToken(PHANDLE phToken);
00800 BOOL WINAPI SetPrinterToken(HANDLE hToken);
00801 BOOL WINAPI ClosePrinterToken(HANDLE hToken);
00802 BOOL WINAPI InstallPrintProcessor(HWND hWnd);
00803 
00804 #ifdef __cplusplus
00805 }
00806 #endif

Generated on Sun May 27 2012 04:32:49 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.