297 lines
6.5 KiB
C++
297 lines
6.5 KiB
C++
//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 );
|
|
} |