windows-nt/Source/XPSP1/NT/printscan/print/spooler/inetpp2/server/ppprn.h
2020-09-26 16:20:57 +08:00

153 lines
3.3 KiB
C

/*****************************************************************************\
* MODULE: ppprn.h
*
* Prototypes for private funcions in ppprn.c. These functions control the
* printer during the course of a single job.
*
*
* Copyright (C) 1996-1997 Microsoft Corporation
* Copyright (C) 1996-1997 Hewlett Packard
*
* History:
* 07-Oct-1996 HWP-Guys Initiated port from win95 to winNT
*
\*****************************************************************************/
#ifndef _PPPRN_H
#define _PPPRN_H
#define IPO_SIGNATURE 0x5152 // 'RQ' is the signature value
#define IPO_XCV_SIGNATURE 0x5153 // 'SQ' is the signature value
// Mask styles.
//
#define PP_STARTDOC 0x00000001 // To serialize access to the port
#define PP_ENDDOC 0x00000002 // To serialize access to job.
#define PP_FIRSTWRITE 0x00000004 //
#define PP_ZOMBIE 0x00000008 //
#define PP_CANCELLED 0x00000010 //
#define PP_ADDJOB 0x00000020
#if 0
#define PP_LPT 0x00000002 //
#define PP_COM 0x00000004 //
#define PP_FILE 0x00000008 //
#define PP_HARDWARE 0x00000020 //
#define PP_REMOTE 0x00000040 //
#define PP_CURRENT 0x00000080 //
#endif
// hPrinter Structure.
//
typedef struct _INET_HPRINTER {
DWORD dwSignature;
LPTSTR lpszName;
HANDLE hPort;
DWORD dwStatus;
HANDLE hNotify;
#ifdef WINNT32
PCLOGON_USERDATA hUser; // This is used to keep track of the current user logon
#endif
PJOBMAP pjmJob;
} INET_HPRINTER;
typedef INET_HPRINTER *PINET_HPRINTER;
typedef INET_HPRINTER *NPINET_HPRINTER;
typedef INET_HPRINTER *LPINET_HPRINTER;
#ifdef WINNT32
typedef struct _INET_XCV_HPRINTER {
DWORD dwSignature;
LPTSTR lpszName;
} INET_XCV_HPRINTER;
typedef INET_XCV_HPRINTER *PINET_XCV_HPRINTER;
typedef INET_XCV_HPRINTER *NPINET_XCV_HPRINTER;
typedef INET_XCV_HPRINTER *LPINET_XCV_HPRINTER;
typedef struct {
PCINETMONPORT pIniPort;
PJOBMAP pjmJob;
CSid* pSidToken;
} ENDDOCTHREADCONTEXT;
typedef ENDDOCTHREADCONTEXT *PENDDOCTHREADCONTEXT;
#endif
_inline VOID PP_SetStatus(
HANDLE hPrinter,
DWORD dwStatus)
{
((LPINET_HPRINTER)hPrinter)->dwStatus |= dwStatus;
}
_inline VOID PP_ClrStatus(
HANDLE hPrinter,
DWORD dwStatus)
{
((LPINET_HPRINTER)hPrinter)->dwStatus &= ~dwStatus;
}
_inline BOOL PP_ChkStatus(
HANDLE hPrinter,
DWORD dwStatus)
{
return (((LPINET_HPRINTER)hPrinter)->dwStatus & dwStatus);
}
_inline PJOBMAP PP_GetJobInfo(
HANDLE hPrinter)
{
return ((LPINET_HPRINTER)hPrinter)->pjmJob;
}
PJOBMAP PP_OpenJobInfo(HANDLE, HANDLE);
VOID PP_CloseJobInfo(HANDLE);
BOOL PPAbortPrinter(
HANDLE hPrinter);
BOOL PPClosePrinter(
HANDLE hPrinter);
BOOL PPEndDocPrinter(
HANDLE hPrinter);
BOOL PPEndPagePrinter(
HANDLE hPrinter);
BOOL PPOpenPrinter(
LPTSTR lpszPrnName,
LPHANDLE phPrinter,
LPPRINTER_DEFAULTS pDefaults);
DWORD PPStartDocPrinter(
HANDLE hPrinter,
DWORD dwLevel,
LPBYTE pDocInfo);
BOOL PPStartPagePrinter(
HANDLE hPrinter);
BOOL PPWritePrinter(
HANDLE hPrinter,
LPVOID lpvBuf,
DWORD cbBuf,
LPDWORD pcbWr);
BOOL PPSetPrinter(
HANDLE hPrinter,
DWORD dwLevel,
LPBYTE pbPrinter,
DWORD dwCmd);
#endif