/*+ Copyright (C) Microsoft Corporation, 1996 - 1999 All rights reserved. Module Name: portslv.hxx Abstract: Ports List View header Author: Albert Ting (AlbertT) 17-Aug-1995 Steve Kiraly (SteveKi) 29-Mar-1996 Revision History: --*/ #ifndef _PORTLV_HXX #define _PORTLV_HXX /******************************************************************** Ports list view control. ********************************************************************/ class TPortsLV { SIGNATURE( 'ptlv' ) SAFE_NEW ALWAYS_VALID public: TPortsLV:: TPortsLV( VOID ); TPortsLV:: ~TPortsLV( VOID ); BOOL bSetUI( IN HWND hwndLV, IN BOOL bTwoColumnMode, IN BOOL bSelectionState, IN BOOL bAllowSelectionChange, IN HWND hwnd = NULL, IN WPARAM wmDoubleClickMsg = 0, IN WPARAM wmSingleClickMsg = 0, IN WPARAM wmDeleteKeyMsg = 0 ); BOOL bReadUI( IN TString &strPortString, IN BOOL bSelectedPort = FALSE ); BOOL bReloadPorts( IN LPCTSTR pszServerName, IN BOOL bSelect = FALSE ); VOID vCheckPorts( LPTSTR strPortString ); VOID vSelectPort( IN LPCTSTR strPortString ); COUNT cSelectedPorts( VOID ); COUNT cSelectedItems( VOID ); VOID vEnable( IN BOOL bRetainSelection ); VOID vDisable( IN BOOL bRetainSelection ); BOOL bLocateAddedPort( IN LPCTSTR pszServerName, IN TString &strNewPort ); BOOL bHandleNotifyMessage( IN LPARAM lParam ); VOID vSelectItem( IN INT iItem ); BOOL bDeletePorts( IN HWND hDlg, IN LPCTSTR pszServerName ); BOOL bConfigurePort( IN HWND hDlg, IN LPCTSTR pszServer ); VOID vSetSingleSelection( IN BOOL bSingleSelection ); BOOL bGetSingleSelection( VOID ); VOID vSetFocus( VOID ); VOID vGetPortList( OUT LPTSTR pszPortList, IN COUNT cchSpaceLeft ); VOID vRemoveAllChecks( VOID ); private: enum _CONSTANTS { // // Listview and column header fromat // kListViewSBWidth = 16, kPortHeaderTitleMax = 80, kPortHeaderMax = 3, kPortHeaderWidthDefault = 125, // // Listview item states. Bit 12-15 hold the image state. // kStateUnchecked = 1 << 12, kStateChecked = 2 << 12, kStateMask = kStateChecked | kStateUnchecked | LVIS_STATEIMAGEMASK, // // Max port string, // kPortNameMax = MAX_PATH, // // Max ports list. // kPortListMax = kPortNameMax * 16 }; // // Port datahelper class need for sorting the list view. // class TPortData { public: TPortData( IN LPCTSTR pszName, IN LPCTSTR pszMonitor, IN LPCTSTR pszDescription, IN LPCTSTR pszPrinters ); ~TPortData( VOID ); BOOL bValid( VOID ); DLINK( TPortData, PortData ); TString _strName; TString _strMonitor; TString _strDescription; TString _strPrinters; private: // // Copying and assignment are not defined. // TPortData( const TPortData & ); TPortData & operator =( const TPortData & ); }; TPortsLV::TPortData * AddPortDataList( IN LPCTSTR pszName, IN LPCTSTR pszMonitor, IN LPCTSTR pszDescription, IN LPCTSTR pszPrinters ); BOOL DeletePortDataList( IN LPCTSTR pszName ); BOOL bListViewSort( IN UINT uColumn ); static INT CALLBACK iCompareProc( IN LPARAM lParam1, IN LPARAM lParam2, IN LPARAM RefData ); VOID vCreatePortDataList( VOID ); VOID vDestroyPortDataList( VOID ); VOID vAddPortToListView( IN LPCTSTR pszName, IN LPCTSTR pszMonitor, IN LPCTSTR pszDescription, IN LPCTSTR pszPrinters ); VOID vDeletePortFromListView( LPCTSTR pszName ); INT iFindPort( IN LPCTSTR pszPort ); INT iCheckPort( LPCTSTR pszPort ); INT iSelectPort( IN LPCTSTR pszPort ); BOOL bLocateAddedPort( IN OUT TString &strPort, IN PPORT_INFO_2 pPorts, IN DWORD cPorts, IN DWORD dwLevel ); VOID vItemClicked( INT iItem ); INT iGetPorts( VOID ); VOID vPrintersUsingPort( IN OUT TString &strPrinters, IN PRINTER_INFO_2 *pPrinterInfo, IN DWORD cPrinterInfo, IN LPCTSTR pszPortName ); BOOL bGetSelectedPort( IN LPTSTR pszPort, IN COUNT cchPort ); BOOL bGetSelectedPort( IN LPTSTR pszPort, IN COUNT cchPort, INT *pItem ); VOID vHandleItemClicked( IN LPARAM lParam ); VOID vInsertPortsByMask( IN UINT cPorts, IN PORT_INFO_2 pPorts[], IN UINT cPrinters, IN PRINTER_INFO_2 pPrinters[], IN DWORD dwLevel, IN LPCTSTR pszTemplate = NULL, IN LPCTSTR pszDescription = NULL ); COUNT _cLVPorts; HWND _hwndLV; BOOL _bSelectionState; BOOL _bSingleSelection; BOOL _bTwoColumnMode; INT _iSelectedItem; UINT _uCurrentColumn; TBitArray _ColumnSortState; BOOL _bAllowSelectionChange; BOOL _bHideFaxPorts; HWND _hwnd; WPARAM _wmDoubleClickMsg; WPARAM _wmSingleClickMsg; WPARAM _wmDeleteKeyMsg; DLINK_BASE( TPortData, PortDataList, PortData ); }; #endif