Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/////////////////////////////////////////////////////////////////////////////
//
// 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_
|