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
|