//Copyright (c) 1998 - 1999 Microsoft Corporation #include"stdafx.h" #include"rnodes.h" #include"resource.h" //---------------------------------------------------------------------------------- CResultNode::CResultNode( ) { m_pszConnectionName = NULL; m_pszTransportTypeName = NULL; m_pszTypeName = NULL; m_pszComment = NULL; m_pCfgcomp = NULL; SetNodeType( RESULT_NODE ); m_bEditMode = FALSE; } //CResultNode( CResultNode& x ); //---------------------------------------------------------------------------------- CResultNode::~CResultNode( ) { ODS( L"CResultNode::dtor -- Deleting result node\n" ); if( m_pszConnectionName != NULL ) { delete[] m_pszConnectionName; } if( m_pszTransportTypeName != NULL ) { delete[] m_pszTransportTypeName; } if( m_pszTypeName != NULL ) { delete[] m_pszTypeName; } if( m_pszComment != NULL ) { delete[] m_pszComment; } } //---------------------------------------------------------------------------------- LPTSTR CResultNode::GetConName( ) { return m_pszConnectionName; } //---------------------------------------------------------------------------------- LPTSTR CResultNode::GetTTName( ) { return m_pszTransportTypeName; } //---------------------------------------------------------------------------------- LPTSTR CResultNode::GetTypeName( ) { return m_pszTypeName; } //---------------------------------------------------------------------------------- LPTSTR CResultNode::GetComment( ) { return m_pszComment; } //---------------------------------------------------------------------------------- DWORD CResultNode::GetImageIdx( ) { return m_dwImageidx; } //---------------------------------------------------------------------------------- int CResultNode::SetConName( LPTSTR psz , int cwSz ) { if( IsBadReadPtr( psz , cwSz * sizeof( TCHAR ) ) ) { return 0; } if( m_pszConnectionName != NULL ) { delete[] m_pszConnectionName; m_pszConnectionName = NULL; } m_pszConnectionName = ( LPTSTR ) new TCHAR[ cwSz + 1]; if( m_pszConnectionName == NULL ) { return 0; } lstrcpy( m_pszConnectionName , psz ); return cwSz; } //---------------------------------------------------------------------------------- int CResultNode::SetTTName( LPTSTR psz , int cwSz ) { if( IsBadReadPtr( psz , cwSz * sizeof( TCHAR ) ) ) { return 0; } m_pszTransportTypeName = ( LPTSTR ) new TCHAR[ cwSz + 1]; if( m_pszTransportTypeName == NULL ) { return 0; } lstrcpy( m_pszTransportTypeName , psz ); return cwSz; } //---------------------------------------------------------------------------------- int CResultNode::SetTypeName( LPTSTR psz , int cwSz) { if( IsBadReadPtr( psz , cwSz * sizeof( TCHAR ) ) ) { return 0; } m_pszTypeName = ( LPTSTR ) new TCHAR[ cwSz + 1]; if( m_pszTypeName == NULL ) { return 0; } lstrcpy( m_pszTypeName , psz ); return cwSz; } //---------------------------------------------------------------------------------- int CResultNode::SetComment( LPTSTR psz , int cwSz ) { if( IsBadReadPtr( psz , cwSz * sizeof( TCHAR ) ) ) { return 0; } if( m_pszComment != NULL ) { delete[] m_pszComment; m_pszComment = NULL; } m_pszComment = ( LPTSTR ) new TCHAR[ cwSz + 1]; if( m_pszComment == NULL ) { return 0; } lstrcpy( m_pszComment , psz ); return cwSz; } //---------------------------------------------------------------------------------- int CResultNode::SetImageIdx( DWORD dwIdx ) { // Check for invalid dwIdx m_dwImageidx = dwIdx; return dwIdx; } //---------------------------------------------------------------------------------- BOOL CResultNode::EnableConnection( BOOL bSet ) { m_bEnableConnection = bSet; return TRUE; } //---------------------------------------------------------------------------------- int CResultNode::SetServer( ICfgComp *pCfgcomp ) { if( pCfgcomp == NULL ) { return 0; } if( m_pCfgcomp != NULL ) { m_pCfgcomp->Release( ); } m_pCfgcomp = pCfgcomp; return m_pCfgcomp->AddRef( ); } //---------------------------------------------------------------------------------- int CResultNode::GetServer( ICfgComp **ppCfgcomp ) { if( m_pCfgcomp != NULL ) { *ppCfgcomp = m_pCfgcomp; return ( ( ICfgComp * )*ppCfgcomp )->AddRef( ); } return 0; } //---------------------------------------------------------------------------------- int CResultNode::FreeServer( ) { if( m_pCfgcomp != NULL ) { return m_pCfgcomp->Release( ); } return 0; } //---------------------------------------------------------------------------------- BOOL CResultNode::AddMenuItems( LPCONTEXTMENUCALLBACK pcmc , PLONG pl ) { HRESULT hr; TCHAR tchName[ 80 ]; TCHAR tchStatus[ 256 ]; CONTEXTMENUITEM cmi; if( GetConnectionState( ) ) { VERIFY_E( 0 , LoadString( _Module.GetResourceInstance( ) , IDS_DISABLECON , tchName , SIZE_OF_BUFFER( tchName ) ) ); cmi.strName = tchName; VERIFY_E( 0 , LoadString( _Module.GetResourceInstance( ) , IDS_DISABLECON_STATUS , tchStatus , SIZE_OF_BUFFER( tchStatus ) ) ); cmi.strStatusBarText = tchStatus; } else { VERIFY_E( 0 , LoadString( _Module.GetResourceInstance( ) , IDS_ENABLECON , tchName , SIZE_OF_BUFFER( tchName ) ) ); cmi.strName = tchName; VERIFY_E( 0 , LoadString( _Module.GetResourceInstance( ) , IDS_ENABLECON_STATUS , tchStatus , SIZE_OF_BUFFER( tchStatus ) ) ); cmi.strStatusBarText = tchStatus; } cmi.lCommandID = IDM_ENABLE_CONNECTION; cmi.lInsertionPointID = CCM_INSERTIONPOINTID_PRIMARY_TASK; cmi.fFlags = cmi.fSpecialFlags = 0; *pl |= CCM_INSERTIONALLOWED_TASK; hr = pcmc->AddItem( &cmi ); if( SUCCEEDED( hr ) ) { VERIFY_E( 0 , LoadString( _Module.GetResourceInstance( ) , IDS_RENAMECON , tchName , SIZE_OF_BUFFER( tchName ) ) ); cmi.strName = tchName; VERIFY_E( 0 , LoadString( _Module.GetResourceInstance( ) , IDS_RENAMECON_STATUS , tchStatus , SIZE_OF_BUFFER( tchStatus ) ) ); cmi.strStatusBarText = tchStatus; cmi.lCommandID = IDM_RENAME_CONNECTION; hr = pcmc->AddItem( &cmi ); } return ( SUCCEEDED( hr ) ? TRUE : FALSE ); }