132 lines
3.2 KiB
C++
132 lines
3.2 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// 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_
|