You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
118 lines
2.3 KiB
118 lines
2.3 KiB
/*++
|
|
|
|
Copyright (c) 1997-1999 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
cliumpd.h
|
|
|
|
Abstract:
|
|
|
|
User-mode printer driver header file
|
|
|
|
Environment:
|
|
|
|
Windows NT 5.0
|
|
|
|
Revision History:
|
|
|
|
06/30/97 -davidx-
|
|
Created it.
|
|
|
|
--*/
|
|
|
|
|
|
#ifndef _UMPD_H_
|
|
#define _UMPD_H_
|
|
|
|
|
|
//
|
|
// Critical section for user-mode printer driver
|
|
//
|
|
|
|
extern RTL_CRITICAL_SECTION semUMPD;
|
|
|
|
|
|
#define UMPDFLAG_DRVENABLEDRIVER_CALLED 0x0001
|
|
|
|
#define UMPDFLAG_METAFILE_DRIVER 0x0002
|
|
|
|
#define UMPDFLAG_NON_METAFILE_DRIVER 0x0004
|
|
|
|
//
|
|
// Data structure signature for debugging purposes
|
|
//
|
|
|
|
#define UMPD_SIGNATURE 0xfedcba98
|
|
#define VALID_UMPD(p) ((p) != NULL && (p)->dwSignature == UMPD_SIGNATURE)
|
|
|
|
//
|
|
// User-mode printer driver support functions
|
|
//
|
|
|
|
BOOL
|
|
LoadUserModePrinterDriver(
|
|
HANDLE hPrinter,
|
|
LPWSTR pwstrPrinterName,
|
|
PUMPD *ppUMPD,
|
|
PRINTER_DEFAULTSW *pdefaults
|
|
);
|
|
|
|
BOOL
|
|
LoadUserModePrinterDriverEx(
|
|
PDRIVER_INFO_5W pDriverInfo5,
|
|
LPWSTR pwstrPrinterName,
|
|
PUMPD *ppUMPD,
|
|
PRINTER_DEFAULTSW *pdefaults,
|
|
HANDLE hPrinter
|
|
);
|
|
|
|
UnloadUserModePrinterDriver(
|
|
PUMPD pUMPD,
|
|
BOOL bNotifySpooler,
|
|
HANDLE hPrinter
|
|
);
|
|
|
|
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
This entrypoint must be exported by a user-mode printer driver DLL.
|
|
GDI calls this function to query various information about the driver.
|
|
|
|
Arguments:
|
|
|
|
dwMode - Specifies what information is being queried
|
|
pBuffer - Points to an output buffer for storing the returned information
|
|
cbBuf - Size of the output buffer in bytes
|
|
pcbNeeded - Returns the expected size of the output buffer
|
|
|
|
Return Value:
|
|
|
|
TRUE if successful, FALSE if there is an error
|
|
|
|
Note:
|
|
|
|
If cbBuf is not large enough to stored the necessary return information,
|
|
the driver should return FALSE from this function and set last error code
|
|
to ERROR_INSUFFICIENT_BUFFER. *pcbNeeded always contains the expected
|
|
size of the output buffer.
|
|
|
|
--*/
|
|
|
|
typedef BOOL (APIENTRY *PFN_DrvQueryDriverInfo)(
|
|
DWORD dwMode,
|
|
PVOID pBuffer,
|
|
DWORD cbBuf,
|
|
PDWORD pcbNeeded
|
|
);
|
|
|
|
PUMPD
|
|
UMPDDrvEnableDriver(
|
|
PWSTR pDriverDllName,
|
|
ULONG iEngineVersion
|
|
);
|
|
|
|
#endif // !_UMPD_H_
|
|
|