178 lines
2.9 KiB
C++
178 lines
2.9 KiB
C++
/*++
|
|
|
|
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
|