|
|
/*++
Copyright (C) Microsoft Corporation, 1996 - 1999 All rights reserved.
Module Name:
driverlv.hxx
Abstract:
Driver List View Header
Author:
Steve Kiraly (SteveKi) 19-Nov-1996
Revision History:
--*/ #ifndef _DRIVERLV_HXX
#define _DRIVERLV_HXX
/********************************************************************
Forward reference.
********************************************************************/
class TDriversLVNotify;
/********************************************************************
Drivers list view control.
********************************************************************/
class TDriversLV {
SIGNATURE( 'drlv' ) ALWAYS_VALID
public:
enum EConstants { kEnumDriversLevel = 3, kDriverHeaderMax = 3, kDriverDefaultHeaderWidth = 40, kMaxDriverInfo = 4, };
enum EColumns { kDriverNameColumn, kEnvironmentColumn, kVersionColumn, kMaxColumn, };
enum EOrder { kAscending, kDecending, };
class THandle{
public: THandle( VOID ) : _iIndex( -1 ) { } VOID vReset( VOID ) { _iIndex = -1; } INT Index( VOID ) { return _iIndex; } VOID Index( INT iIndex ) { _iIndex = iIndex; }
private: INT _iIndex; };
TDriversLV( VOID );
~TDriversLV( VOID );
BOOL bSetUI( IN LPCTSTR pszServerName, IN HWND hwnd, IN WPARAM wmDblClickMsg = 0, IN WPARAM wmSingleClickMsg = 0, IN WPARAM wmDeleteKeyMsg = 0 );
BOOL bIsAnyItemSelcted( VOID ) const;
BOOL bHandleMessage( IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam );
BOOL bRefresh( VOID );
BOOL bGetSelectedDriverInfo( IN TDriverInfo **ppDriverInfo, IN TDriversLV::THandle &Handle ) const;
BOOL bGetSelectedDriverInfo( IN TDriverTransfer &DriverTransfer, IN UINT *pnCount = NULL );
VOID vDeleteDriverInfoFromListView( IN TDriverInfo *pDriverInfo );
VOID vDeleteDriverInfoFromListView( IN TDriverTransfer &DriverTransfer );
BOOL bAddDriverInfoToListView( IN TDriverInfo *pDriverInfo, IN BOOL bCheckForDuplicates = TRUE );
BOOL bAddDriverInfoToListView( IN TDriverTransfer &DriverTransfer );
VOID vDeleteAllListViewItems( VOID );
BOOL bSendDriverInfoNotification( IN TDriversLVNotify &Notify ) const;
UINT uGetListViewItemCount( VOID ) const;
VOID vSelectItem( IN UINT iIndex );
BOOL bSortColumn( IN const EColumns Column, IN const EOrder Order = kAscending );
BOOL bGetFullDriverList( IN TDriverTransfer &DriverTransfer, IN UINT *pnCount = NULL );
VOID vDumpList( VOID );
VOID vReturnDriverInfoToListView( IN TDriverInfo *pDriverInfo );
VOID vReturnDriverInfoToListView( IN TDriverTransfer &DriverTransfer );
UINT uGetSelectedDriverInfoCount( VOID ) const;
private:
//
// Copying and assignment are not defined.
//
TDriversLV( const TDriversLV & );
TDriversLV & operator =( const TDriversLV & );
BOOL bLoadDrivers( VOID );
VOID vRelease( VOID );
BOOL bGetItemData( IN INT iItem, IN TDriverInfo **ppDriverInfo ) const;
VOID vAddDriverToListView( IN TDriverInfo *pDriverInfo );
BOOL bDriverListViewSort( UINT uColumn );
static INT CALLBACK iCompareProc( IN LPARAM lParam1, IN LPARAM lParam2, IN LPARAM lParamSort );
INT iFindDriver( IN TDriverInfo *pDriverInfo ) const;
BOOL bFindDriverInfo( IN TDriverInfo *pDriverInfo, IN TDriverInfo **ppDriverInfo ) const;
BOOL bGetSelectedItem( IN INT *pIndex ) const;
VOID vAddInSortedOrder( IN TDriverInfo *pDriverInfo );
HWND _hwnd; HWND _hwndLV; UINT _cLVDrivers; WPARAM _wmDoubleClickMsg; WPARAM _wmSingleClickMsg; WPARAM _wmDeleteKeyMsg; TBitArray _ColumnSortState; UINT _uCurrentColumn; TString _strServerName;
DLINK_BASE( TDriverInfo, DriverInfoList, DriverInfo ); };
/********************************************************************
Drivers list view callback
********************************************************************/ class TDriversLVNotify {
SIGNATURE( 'dlvn' ) ALWAYS_VALID
public:
TDriversLVNotify( VOID ); virtual ~TDriversLVNotify( VOID );
virtual BOOL bNotify( IN TDriverInfo *pDriverInfo ) = 0;
private:
//
// Operator = and copy are not defined.
//
TDriversLVNotify & operator =( const TDriversLVNotify & );
TDriversLVNotify( const TDriversLVNotify & );
};
#endif
|