209 lines
3.2 KiB
C
209 lines
3.2 KiB
C
/*++
|
|
|
|
Copyright (c) 1990 - 1995 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
local.h
|
|
|
|
Abstract:
|
|
|
|
Header file for Local Print Providor
|
|
|
|
Author:
|
|
|
|
Dave Snipp (DaveSn) 15-Mar-1991
|
|
|
|
Revision History:
|
|
|
|
Matt Feton (MattFe) Jan 17 1995 add separate heaps
|
|
|
|
--*/
|
|
|
|
|
|
#define ONEDAY 60*24
|
|
|
|
// Timeout to start spooler's phase 2 initialization in milliseconds
|
|
#define SPOOLER_START_PHASE_TWO_INIT 2*60*1000
|
|
|
|
#define offsetof(type, identifier) (DWORD)(&(((type*)0)->identifier))
|
|
|
|
extern char *szDriverIni;
|
|
extern char *szDriverFileEntry;
|
|
extern char *szDriverDataFile;
|
|
extern char *szDriverConfigFile;
|
|
extern char *szDriverDir;
|
|
extern char *szPrintProcDir;
|
|
extern char *szPrinterDir;
|
|
extern char *szPrinterIni;
|
|
extern char *szAllShadows;
|
|
extern char *szNullPort;
|
|
extern char *szComma;
|
|
|
|
extern HANDLE hHeap;
|
|
extern HANDLE HeapSemaphore;
|
|
extern HANDLE InitSemaphore;
|
|
extern BOOL Initialized;
|
|
extern CRITICAL_SECTION SpoolerSection;
|
|
extern DWORD gbFailAllocs;
|
|
|
|
BOOL
|
|
LocalInitialize(
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
EnterSplSem(
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
LeaveSplSem(
|
|
VOID
|
|
);
|
|
|
|
LPVOID
|
|
DllAllocSplMem(
|
|
DWORD cb
|
|
);
|
|
|
|
BOOL
|
|
DllFreeSplMem(
|
|
LPVOID pMem
|
|
);
|
|
|
|
LPVOID
|
|
DllReallocSplMem(
|
|
LPVOID lpOldMem,
|
|
DWORD cbOld,
|
|
DWORD cbNew
|
|
);
|
|
|
|
BOOL
|
|
DllFreeSplStr(
|
|
LPWSTR lpStr
|
|
);
|
|
|
|
BOOL
|
|
ValidateReadPointer(
|
|
PVOID pPoint,
|
|
ULONG Len
|
|
);
|
|
|
|
BOOL
|
|
ValidateWritePointer(
|
|
PVOID pPoint,
|
|
ULONG Len
|
|
);
|
|
|
|
BOOL
|
|
DeleteSubKeyTree(
|
|
HKEY ParentHandle,
|
|
WCHAR SubKeyName[]
|
|
);
|
|
|
|
LPWSTR
|
|
AppendOrderEntry(
|
|
LPWSTR szOrderString,
|
|
DWORD cbStringSize,
|
|
LPWSTR szOrderEntry,
|
|
LPDWORD pcbBytesReturned
|
|
);
|
|
|
|
LPWSTR
|
|
RemoveOrderEntry(
|
|
LPWSTR szOrderString,
|
|
DWORD cbStringSize,
|
|
LPWSTR szOrderEntry,
|
|
LPDWORD pcbBytesReturned
|
|
);
|
|
|
|
LPPROVIDOR
|
|
InitializeProvidor(
|
|
LPWSTR pProvidorName,
|
|
LPWSTR pFullName
|
|
);
|
|
|
|
VOID
|
|
WaitForSpoolerInitialization(
|
|
VOID
|
|
);
|
|
|
|
HKEY
|
|
GetClientUserHandle(
|
|
IN REGSAM samDesired
|
|
);
|
|
|
|
|
|
BOOL
|
|
MyUNCName(
|
|
LPWSTR pNameStart
|
|
);
|
|
|
|
|
|
BOOL
|
|
BuildOtherNamesFromMachineName(
|
|
LPWSTR **ppszMyOtherNames,
|
|
DWORD *cOtherNames
|
|
);
|
|
|
|
BOOL
|
|
bCompatibleDevMode(
|
|
PPRINTHANDLE pPrintHandle,
|
|
PDEVMODE pDevModeBase,
|
|
PDEVMODE pDevModeNew
|
|
);
|
|
|
|
|
|
|
|
LPWSTR
|
|
FormatPrinterForRegistryKey(
|
|
LPCWSTR pSource, /* The string from which backslashes are to be removed. */
|
|
LPWSTR pScratch /* Scratch buffer for the function to write in; */
|
|
); /* must be at least as long as pSource. */
|
|
|
|
LPWSTR
|
|
FormatRegistryKeyForPrinter(
|
|
LPWSTR pSource, /* The string from which backslashes are to be added. */
|
|
LPWSTR pScratch /* Scratch buffer for the function to write in; */
|
|
); /* must be at least as long as pSource. */
|
|
|
|
|
|
|
|
PWSTR
|
|
AutoCat(
|
|
PCWSTR pszInput,
|
|
PCWSTR pszCat
|
|
);
|
|
|
|
BOOL
|
|
bGetDevModePerUserEvenForShares(
|
|
IN HKEY hKeyUser, OPTIONAL
|
|
IN LPCWSTR pszPrinter,
|
|
OUT PDEVMODE *ppDevMode
|
|
);
|
|
|
|
DWORD
|
|
GetAPDPolicy(
|
|
IN HKEY hKey,
|
|
IN LPCWSTR pszRelPath,
|
|
IN LPCWSTR pszValueName,
|
|
IN LPDWORD pValue
|
|
);
|
|
|
|
DWORD
|
|
SetAPDPolicy(
|
|
IN HKEY hKey,
|
|
IN LPCWSTR pszRelPath,
|
|
IN LPCWSTR pszValueName,
|
|
IN DWORD Value
|
|
);
|
|
|
|
DWORD
|
|
IsValidDevmode(
|
|
IN PDEVMODE pDevmode,
|
|
IN size_t DevmodeSize
|
|
);
|
|
|
|
|