|
|
/*++
Copyright (C) Microsoft Corporation, 1996 - 1998 All rights reserved.
Module Name:
Archlv.hxx
Abstract:
Arch List View Header
Author:
Steve Kiraly (SteveKi) 19-Nov-1996
Revision History:
--*/ #ifndef _ARCHLV_HXX
#define _ARCHLV_HXX
/********************************************************************
Architecture list view control.
********************************************************************/
class TArchLV {
SIGNATURE( 'arlv' ) ALWAYS_VALID
public:
enum EConstants { kHeaderMax = 3, kDefaultHeaderWidth = 40, };
enum { kArchitectureColumn, kVersionColumn, kInstalledColumn, kMaxColumns, };
enum { //
// Listview item states. Bit 12-15 hold the image state.
//
kStateUnchecked = 1 << 12, kStateChecked = 2 << 12, kStateDisabled = 3 << 12, kStateMask = kStateChecked | kStateUnchecked | kStateDisabled | LVIS_STATEIMAGEMASK, };
enum { kDriverWIN95 = 1 << 0, kDriverX86_0 = 1 << 1, kDriverX86_1 = 1 << 2, kDriverX86_2 = 1 << 3, kDriverX86_3 = 1 << 4, kDriverMIPS_0 = 1 << 5, kDriverMIPS_1 = 1 << 6, kDriverMIPS_2 = 1 << 7, kDriverALPHA_0 = 1 << 8, kDriverALPHA_1 = 1 << 9, kDriverALPHA_2 = 1 << 10, kDriverALPHA_3 = 1 << 11, kDriverPPC_1 = 1 << 12, kDriverPPC_2 = 1 << 13, };
struct ArchEncode { INT ArchId; INT VersionId; LPWSTR NonLocalizedEnvironment; LPWSTR NonLocalizedVersion; DWORD Encode; };
TArchLV( VOID );
~TArchLV( VOID );
BOOL bSetUI( HWND hwnd, WPARAM wmDblClickMsg = 0, WPARAM wmSingleClickMsg = 0 );
BOOL bRefreshListView( IN LPCTSTR pszServerName, IN LPCTSTR pszDriverName );
BOOL bHandleNotifyMessage( IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam );
UINT uGetCheckedItemCount( VOID );
BOOL bGetCheckedItems( IN UINT uIndex, IN BOOL *pbInstalled, IN DWORD *pdwEncode );
BOOL bSetCheckDefaultArch( IN LPCTSTR pszServerName );
VOID vSelectItem( IN UINT iIndex );
VOID vNoItemCheck( VOID );
static BOOL bEncodeToArchAndVersion( IN DWORD dwEncode, OUT TString &strArch, OUT TString &strVersion );
static BOOL bArchAndVersionToEncode( OUT DWORD *pdwEncode, IN LPCTSTR pszArchitecture, IN LPCTSTR pszVersion, IN BOOL bUseNonLocalizedStrings = FALSE ); static BOOL bGetEncodeFromIndex( IN UINT uIndex, OUT DWORD *pdwEncode );
private:
//
// Architecture data this is a helper class need for
// sorting the list view.
//
class TArchData {
public:
TArchData( IN LPCTSTR pszArchitecture, IN LPCTSTR pszVersion, IN LPCTSTR pszInstalled, IN DWORD Encode, IN BOOL bInstalled );
~TArchData( VOID );
BOOL bValid( VOID ); DLINK( TArchData, ArchData );
TString _strArchitecture; TString _strVersion; TString _strInstalled; DWORD _Encode; DWORD _bInstalled;
private:
//
// Copying and assignment are not defined.
//
TArchData( const TArchData & );
TArchData & operator =( const TArchData & ); };
//
// Copying and assignment are not defined.
//
TArchLV( const TArchLV & );
TArchLV & operator =( const TArchLV & );
BOOL bFillListView( IN LPCTSTR pszServerName, IN LPCTSTR pszDriverName );
LRESULT iAddToListView( IN LPCTSTR pszArchitecture, IN LPCTSTR pszVersion, IN LPCTSTR pszInstalled, IN LPARAM lParam );
VOID vRelease( VOID );
BOOL bListViewSort( UINT uColumn );
static INT CALLBACK iCompareProc( IN LPARAM lParam1, IN LPARAM lParam2, IN LPARAM RefData );
BOOL bGetItemData( IN INT iItem, IN TArchData **ppArchData ) const;
BOOL bListVeiwKeydown( IN LPARAM lParam );
VOID TArchLV:: vItemClicked( IN INT iItem );
BOOL TArchLV:: vCheckItemClicked( IN LPNMHDR pnmh );
VOID vCheckItem( IN INT iItem, IN BOOL bCheckState );
HWND _hwnd; HWND _hwndLV; WPARAM _wmDoubleClickMsg; WPARAM _wmSingleClickMsg; TBitArray _ColumnSortState; UINT _uCurrentColumn; BOOL _bNoItemCheck;
DLINK_BASE( TArchData, ArchDataList, ArchData );
};
#endif
|