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

160 lines
2.6 KiB
C

/*++
Copyright (c) 1990-1994 Microsoft Corporation
All rights reserved
Module Name:
Client.h
Abstract:
Holds Client Spooler types and prototypes
Author:
Environment:
User Mode -Win32
Revision History:
Steve Wilson (NT) (swilson) 1-Jun-95 Ported from spoolss\client\client.h
--*/
typedef int (FAR WINAPI *INT_FARPROC)();
typedef struct _GENERIC_CONTAINER {
DWORD Level;
LPBYTE pData;
} GENERIC_CONTAINER, *PGENERIC_CONTAINER, *LPGENERIC_CONTAINER ;
typedef struct _SPOOL *PSPOOL;
typedef struct _NOTIFY *PNOTIFY;
typedef struct _NOTIFY {
PNOTIFY pNext;
HANDLE hEvent; // event to trigger on notification
DWORD fdwFlags; // flags to watch for
DWORD fdwOptions; // PRINTER_NOTIFY_*
DWORD dwReturn; // used by WPC when simulating FFPCN
PSPOOL pSpool;
} NOTIFY;
typedef struct _SPOOL {
DWORD signature;
HANDLE hPrinter;
DWORD Status;
LONG cThreads; // InterlockedDecrement/Increment variable for thread synch
HANDLE hModule; // Driver UM DLL Module Handle
DWORD (*pfnWrite)();
HANDLE (*pfnStartDoc)();
VOID (*pfnEndDoc)();
VOID (*pfnClose)();
BOOL (*pfnStartPage)();
BOOL (*pfnEndPage)();
VOID (*pfnAbort)();
HANDLE hDriver; // supplied to us by driver UI dll
DWORD JobId;
} SPOOL;
//
// Change the RPC buffer size to 64K
//
#define BUFFER_SIZE 0x10000
#define SP_SIGNATURE 0x6767
#define SPOOL_STATUS_STARTDOC 0x00000001
#define SPOOL_STATUS_ADDJOB 0x00000002
#define SPOOL_STATUS_ANSI 0x00000004
#define SPOOL_FLAG_FFPCN_FAILED 0x1
#define SPOOL_FLAG_LAZY_CLOSE 0x2
DWORD
TranslateExceptionCode(
DWORD ExceptionCode
);
PNOTIFY
WPCWaitFind(
HANDLE hFind);
BOOL
ValidatePrinterHandle(
HANDLE hPrinter
);
VOID
FreeSpool(
PSPOOL pSpool);
LPVOID
DllAllocSplMem(
DWORD cb
);
BOOL
DllFreeSplMem(
LPVOID pMem
);
BOOL
FlushBuffer(
PSPOOL pSpool
);
PSECURITY_DESCRIPTOR
BuildInputSD(
PSECURITY_DESCRIPTOR pPrinterSD,
PDWORD pSizeSD
);
typedef struct _KEYDATA {
DWORD cb;
DWORD cTokens;
LPWSTR pTokens[1];
} KEYDATA, *PKEYDATA;
PKEYDATA
CreateTokenList(
LPWSTR pKeyData
);
LPWSTR
GetPrinterPortList(
HANDLE hPrinter
);
LPWSTR
FreeUnicodeString(
LPWSTR pUnicodeString
);
LPWSTR
AllocateUnicodeString(
LPSTR pPrinterName
);
LPWSTR
StartDocDlgW(
HANDLE hPrinter,
DOCINFO *pDocInfo
);
LPSTR
StartDocDlgA(
HANDLE hPrinter,
DOCINFOA *pDocInfo
);