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

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
);