345 lines
6.2 KiB
C++
345 lines
6.2 KiB
C++
/*++
|
|
|
|
Copyright (C) Microsoft Corporation, 1998 - 1998
|
|
All rights reserved.
|
|
|
|
Module Name:
|
|
|
|
prndata.cxx
|
|
|
|
Abstract:
|
|
|
|
Type safe printer data class
|
|
|
|
Author:
|
|
|
|
Steve Kiraly (SteveKi) 24-Aug-1998
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
#ifndef _PRNDATA_HXX
|
|
#define _PRNDATA_HXX
|
|
|
|
class TPrinterDataAccess
|
|
{
|
|
public:
|
|
|
|
enum EResourceType
|
|
{
|
|
kResourceServer,
|
|
kResourcePrinter,
|
|
kResourceUnknown,
|
|
};
|
|
|
|
enum EAccessType
|
|
{
|
|
kAccessFull,
|
|
kAccessRead,
|
|
kAccessUnknown,
|
|
};
|
|
|
|
TPrinterDataAccess::
|
|
TPrinterDataAccess(
|
|
IN LPCTSTR pszPrinter,
|
|
IN EResourceType eResourceType,
|
|
IN EAccessType eAccessType
|
|
);
|
|
|
|
TPrinterDataAccess::
|
|
TPrinterDataAccess(
|
|
IN HANDLE hPrinter
|
|
);
|
|
|
|
TPrinterDataAccess::
|
|
~TPrinterDataAccess(
|
|
VOID
|
|
);
|
|
|
|
BOOL
|
|
TPrinterDataAccess::
|
|
Init(
|
|
VOID
|
|
) const;
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
Get(
|
|
IN LPCTSTR pszValue,
|
|
IN OUT BOOL &bData
|
|
);
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
Get(
|
|
IN LPCTSTR pszValue,
|
|
IN OUT DWORD &dwData
|
|
);
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
Get(
|
|
IN LPCTSTR pszValue,
|
|
IN OUT TString &strString
|
|
);
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
Get(
|
|
IN LPCTSTR pszValue,
|
|
IN OUT TString **pstrString,
|
|
IN OUT UINT &nItemCount
|
|
);
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
Get(
|
|
IN LPCTSTR pszValue,
|
|
IN OUT PVOID pData,
|
|
IN UINT nSize
|
|
);
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
Get(
|
|
IN LPCTSTR pszKey,
|
|
IN LPCTSTR pszValue,
|
|
IN OUT BOOL &bData
|
|
);
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
Get(
|
|
IN LPCTSTR pszKey,
|
|
IN LPCTSTR pszValue,
|
|
IN OUT DWORD &dwData
|
|
);
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
Get(
|
|
IN LPCTSTR pszKey,
|
|
IN LPCTSTR pszValue,
|
|
IN OUT TString &strString
|
|
);
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
Get(
|
|
IN LPCTSTR pszKey,
|
|
IN LPCTSTR pszValue,
|
|
IN OUT PVOID pData,
|
|
IN UINT nSize
|
|
);
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
Get(
|
|
IN LPCTSTR pszKey,
|
|
IN LPCTSTR pszValue,
|
|
IN OUT TString **pstrString,
|
|
IN OUT UINT &nItemCount
|
|
);
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
Set(
|
|
IN LPCTSTR pszValue,
|
|
IN BOOL bData
|
|
);
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
Set(
|
|
IN LPCTSTR pszValue,
|
|
IN DWORD dwData
|
|
);
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
Set(
|
|
IN LPCTSTR pszValue,
|
|
IN TString &strString
|
|
);
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
Set(
|
|
IN LPCTSTR pszValue,
|
|
IN OUT PVOID pData,
|
|
IN UINT nSize
|
|
);
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
Set(
|
|
IN LPCTSTR pszKey,
|
|
IN LPCTSTR pszValue,
|
|
IN BOOL bData
|
|
);
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
Set(
|
|
IN LPCTSTR pszKey,
|
|
IN LPCTSTR pszValue,
|
|
IN DWORD dwData
|
|
);
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
Set(
|
|
IN LPCTSTR pszKey,
|
|
IN LPCTSTR pszValue,
|
|
IN TString &strString
|
|
);
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
Set(
|
|
IN LPCTSTR pszKey,
|
|
IN LPCTSTR pszValue,
|
|
IN OUT PVOID pData,
|
|
IN UINT nSize
|
|
);
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
Delete(
|
|
IN LPCTSTR pszValue
|
|
);
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
Delete(
|
|
IN LPCTSTR pszKey,
|
|
IN LPCTSTR pszValue
|
|
);
|
|
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
GetDataSize(
|
|
IN LPCTSTR pszValue,
|
|
IN DWORD dwType,
|
|
IN DWORD &nSize
|
|
);
|
|
|
|
VOID
|
|
TPrinterDataAccess::
|
|
RelaxReturnTypeCheck(
|
|
IN BOOL bCheckState
|
|
);
|
|
|
|
private:
|
|
|
|
enum EDataType
|
|
{
|
|
kDataTypeBool,
|
|
kDataTypeDword,
|
|
kDataTypeString,
|
|
kDataTypeStruct,
|
|
kDataTypeMultiString,
|
|
kDataTypeUnknown,
|
|
};
|
|
|
|
struct ClassTypeMap
|
|
{
|
|
DWORD Reg;
|
|
EDataType Class;
|
|
};
|
|
|
|
ACCESS_MASK
|
|
TPrinterDataAccess::
|
|
PrinterAccessFlags(
|
|
IN EResourceType eResourceType,
|
|
IN EAccessType eAccessType
|
|
) const;
|
|
|
|
DWORD
|
|
TPrinterDataAccess::
|
|
ClassTypeToRegType(
|
|
IN EDataType eDataType
|
|
) const;
|
|
|
|
TPrinterDataAccess::EDataType
|
|
TPrinterDataAccess::
|
|
RegTypeToClassType(
|
|
IN DWORD dwDataType
|
|
) const;
|
|
|
|
VOID
|
|
TPrinterDataAccess::
|
|
InitializeClassVariables(
|
|
VOID
|
|
);
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
GetDataSizeHelper(
|
|
IN LPCTSTR pszKey,
|
|
IN LPCTSTR pszValue,
|
|
IN DWORD dwType,
|
|
IN LPDWORD dwNeeded
|
|
);
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
GetDataHelper(
|
|
IN LPCTSTR pszKey,
|
|
IN LPCTSTR pszValue,
|
|
IN EDataType eDataType,
|
|
IN PVOID pData,
|
|
IN UINT nSize,
|
|
IN LPDWORD pdwNeeded
|
|
);
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
SetDataHelper(
|
|
IN LPCTSTR pszKey,
|
|
IN LPCTSTR pszValue,
|
|
IN EDataType eDataType,
|
|
IN PVOID pData,
|
|
IN UINT nSize
|
|
);
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
DeleteDataHelper(
|
|
IN LPCTSTR pszKey,
|
|
IN LPCTSTR pszValue
|
|
);
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
GetDataStringHelper(
|
|
IN LPCTSTR pszKey,
|
|
IN LPCTSTR pszValue,
|
|
IN OUT TString &strString
|
|
);
|
|
|
|
HRESULT
|
|
TPrinterDataAccess::
|
|
GetDataMuliSzStringHelper(
|
|
IN LPCTSTR pszKey,
|
|
IN LPCTSTR pszValue,
|
|
IN OUT TString **pstrString,
|
|
IN UINT &nItemCount
|
|
);
|
|
|
|
HANDLE m_hPrinter;
|
|
EAccessType m_eAccessType;
|
|
BOOL m_bAcceptedHandle;
|
|
BOOL m_bRelaxReturnedTypeCheck;
|
|
|
|
};
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|