windows-nt/Source/XPSP1/NT/printscan/print/spooler/spoolss/client/wlkprn.hxx
2020-09-26 16:20:57 +08:00

161 lines
2.5 KiB
C++

/*++
Copyright (C) Microsoft Corporation, 1998 - 1998
All rights reserved.
Module Name:
walkreg.hxx
Abstract:
Printer data walking class declaration.
Author:
Adina Trufinescu (AdinaTru) 15-Oct-1998
Revision History:
--*/
#ifndef _WALKPRNDATA_HXX_
#define _WALKPRNDATA_HXX_
#include "memory.hxx"
class WalkPrinterData : public TAllocator
{
public:
enum EResourceType
{
kResourceServer,
kResourcePrinter,
kResourceUnknown,
};
enum EAccessType
{
kAccessFull,
kAccessRead,
kAccessUnknown,
};
WalkPrinterData::
WalkPrinterData(
VOID
);
WalkPrinterData::
WalkPrinterData(
IN TString& pszPrinter,
IN WalkPrinterData::EResourceType eResourceType,
IN WalkPrinterData::EAccessType eAccessType
);
WalkPrinterData::
WalkPrinterData(
IN HANDLE hPrinter
);
WalkPrinterData::
~WalkPrinterData (
VOID
);
BOOL
WalkPrinterData::
bValid (
VOID
) const;
VOID
WalkPrinterData::
BindToPrinter(
IN HANDLE hPrinter
);
BOOL
WalkPrinterData::
bInternalWalk (
IN TString& pszKey,
OUT LPDWORD lpcItems
);
protected:
virtual
BOOL
WalkPrinterData::
bWalkPre (
IN TString& pszKey,
OUT LPDWORD lpcItems
);
virtual
BOOL
WalkPrinterData::
bWalkPost (
IN TString& pszKey,
OUT LPDWORD lpcItems
);
virtual
BOOL
WalkPrinterData::
bWalkIn (
IN TString& pszKey,
OUT LPDWORD lpcItems
);
LPTSTR
WalkPrinterData::
NextStrT(
IN LPCTSTR lpszStr
);
TString m_strPrnName;
HANDLE m_hPrinter;
EAccessType m_eAccessType;
BOOL m_bAcceptedHandle;
enum EDataType
{
kDataTypeBool,
kDataTypeDword,
kDataTypeString,
kDataTypeStruct,
kDataTypeMultiString,
kDataTypeUnknown,
};
ACCESS_MASK
WalkPrinterData::
PrinterAccessFlags(
IN EResourceType eResourceType,
IN EAccessType eAccessType
) const;
VOID
WalkPrinterData::
InitializeClassVariables(
VOID
);
BOOL
WalkPrinterData::
bHasSubKeys(
IN TString& lpszKey,
OUT LPTSTR* aszSubKeys
);
};
#endif // end _PRNDATAWALK_HXX_