|
|
/*++
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
#define MIN_UNC_PRINTER_NAME 5
// 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; extern PrintSpoolerServerExports *gpServerExports;
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; */ DWORD cchScratchLen /* 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; */ DWORD cchScratchLen /* 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 );
|