windows-nt/Source/XPSP1/NT/base/cluster/admin/common/atlbaseapp.h

132 lines
3.2 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1998 Microsoft Corporation
//
// Module Name:
// AtlBaseApp.h
//
// Description:
// Definition of the CBaseApp class.
//
// Author:
// Galen Barbee (galenb) May 21, 1998
//
// Revision History:
//
// Notes:
//
/////////////////////////////////////////////////////////////////////////////
#ifndef __ATLBASEAPP_H_
#define __ATLBASEAPP_H_
/////////////////////////////////////////////////////////////////////////////
// Forward Class Declarations
/////////////////////////////////////////////////////////////////////////////
class CBaseApp;
/////////////////////////////////////////////////////////////////////////////
// External Class Declarations
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// Include Files
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// Type Definitions
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
//++
//
// class CBaseApp
//
// Description:
// Base application class. The following functionality is provided:
// -- Help file support.
//
// Inheritance:
// CBaseApp
// CComModule
//
//--
/////////////////////////////////////////////////////////////////////////////
class CBaseApp : public CComModule
{
public:
//
// Construction.
//
// Default constructor
CBaseApp( void )
: m_pszHelpFilePath( NULL )
{
} //*** CBaseApp()
// Destructor
~CBaseApp( void )
{
delete m_pszHelpFilePath;
} //*** ~CBaseApp()
// Return the path to the help file, generate if necessary
virtual LPCTSTR PszHelpFilePath( void )
{
//
// If no help file path has been specified yet, generate
// it from the module path name.
//
if ( m_pszHelpFilePath == NULL )
{
TCHAR szPath[_MAX_PATH];
TCHAR szDrive[_MAX_PATH]; // not _MAX_DRIVE so we can support larger device names
TCHAR szDir[_MAX_DIR];
//
// Get the path to this module. Split out the drive and
// directory and set the help file path to that combined
// with the help file name.
//
if ( ::GetModuleFileName( GetModuleInstance(), szPath, _MAX_PATH ) > 0 )
{
_tsplitpath( szPath, szDrive, szDir, NULL, NULL );
_tmakepath( szPath, szDrive, szDir, PszHelpFileName(), NULL );
m_pszHelpFilePath = new TCHAR [lstrlen( szPath ) + 1];
ATLASSERT( m_pszHelpFilePath != NULL );
if ( m_pszHelpFilePath != NULL )
{
lstrcpy( m_pszHelpFilePath, szPath );
} // if: buffer allocated successfully
} // if: module path obtained successfully
} // if: no help file path specified yet
return m_pszHelpFilePath;
} //*** PszHelpFilePath()
// Return the name of the help file
virtual LPCTSTR PszHelpFileName( void )
{
//
// Override this method or no help file name will
// be specified for this application.
//
return NULL;
} //*** PszHelpFileName()
private:
LPTSTR m_pszHelpFilePath;
}; //*** class CBaseApp
/////////////////////////////////////////////////////////////////////////////
#endif // __ATLBASEAPP_H_