160 lines
2.6 KiB
C
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
|
|
);
|