Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

177 lines
3.1 KiB

/*++
Copyright (C) Microsoft Corporation, 1998 - 1998
All rights reserved.
Module Name:
select.hxx
Abstract:
Command/Selection handling.
Command line argument selection
Author:
Steve Kiraly (SteveKi) Feb-26-1998
Revision History:
--*/
#ifndef _SELECT_HXX
#define _SELECT_HXX
class MPrinterClient;
class TPrinter;
/********************************************************************
Command/Selection handling.
********************************************************************/
class TSelection {
SIGNATURE( 'sel' )
public:
enum COMMAND_TYPE {
kCommandTypePrinter = 1, // Printer command argument
kCommandTypeJob = 2, // Print Job command
kCommandTypePrinterAttributes = 3, // Printer command attribute change
};
COUNT _cSelected;
VAR( PIDENT, pid );
DLINK( TSelection, Selection );
COMMAND_TYPE _CommandType;
DWORD _dwCommandAction;
TSelection(
const MPrinterClient* pPrinterClient,
const TPrinter* pPrinter
);
~TSelection(
VOID
);
BOOL
bValid(
VOID
) const
{
return _pid != NULL;
}
};
/********************************************************************
Command line argument selection
********************************************************************/
class TSelect
{
SIGNATURE( 'selt' )
public:
enum EDataType
{
kString,
kInt,
kBitTable,
kValTable,
kNone,
};
enum EOperation
{
kOr,
kNot,
kAnd,
kXor,
kNop,
};
struct Selection
{
UINT iKeyWord;
EDataType eDataType;
PVOID pTable;
UINT iOffset;
};
struct SelectionBit
{
UINT iKeyWord;
UINT uBit;
EOperation Op;
};
struct SelectionVal
{
UINT iKeyWord;
UINT uValue;
UINT iOffset;
};
TSelect(
VOID
);
~TSelect(
VOID
);
BOOL
bValid(
VOID
);
BOOL
bLookup(
IN Selection *pSelection,
IN PVOID pInfo,
IN LPCTSTR pKey,
IN LPCTSTR pValue
);
BOOL
bApplyBitTableToValue(
IN SelectionBit *pBitTable,
IN UINT uBit,
IN LPDWORD pdwBit
);
BOOL
TSelect::
bLookupBitTable(
IN SelectionBit *pBitTable,
IN LPCTSTR pKey
);
BOOL
TSelect::
bLookupValTable(
IN SelectionVal *pValTable,
IN PVOID pInfo,
IN LPCTSTR pKey
);
BOOL
TSelect::
bMatch(
IN LPCTSTR pszString,
IN UINT iResId
);
};
#endif // _SELECT_HXX