Click here to Skip to main content
15,893,644 members
Articles / Desktop Programming / MFC

Include File Hierarchy Viewer

Rate me:
Please Sign up or sign in to vote.
4.84/5 (108 votes)
29 Jul 2003CPOL8 min read 384.7K   4.5K   151  
A tool to view the include file hierarchy of your source code.
//====================================================================
// Although great care has gone into developing this software,
// it is provided without any guarantee of reliability, accuracy
// of information, or correctness of operation.  I am not responsible
// for any damages that may occur as a result of using this software.
// Use this software entirely at your own risk.
// Copyright 2003, Chris Richardson
//
// Description: Classes used to read VC7 projects and solutions.
//
//====================================================================

#if !defined( _VC_7_OBJECTS_H_DEFINED_ )
#define _VC_7_OBJECTS_H_DEFINED_

#include "DSObjects.h"

class CPugXmlBranch;

//////////////////////////////////////////////////////////////////////
// CVC7Settings - Stores the compile settings that we are interested in,
//                for each configuration, and can read version 7 cmd line.
//////////////////////////////////////////////////////////////////////

class CVC7Settings : public CDSSettings
{
public:
   CVC7Settings();
   virtual ~CVC7Settings();
   
   virtual void            ParseSettings( CDSSettings * p_poFileSettings, CDSParsedSettings & p_roSettings ) const;
   
   ParseStatus             ReadFromXml( CPugXmlBranch * p_poBranch );
};

//////////////////////////////////////////////////////////////////////
// CDSConfigurationHolder - Stores a map of configuration names to
//                          compiler settings objects, and can
//                          read version 7 configuration nodes.
//////////////////////////////////////////////////////////////////////

class CVC7ConfigurationHolder : public CDSConfigurationHolder
{
public:
   CVC7ConfigurationHolder();
   virtual ~CVC7ConfigurationHolder();
   
   ParseStatus             ReadFromXml( CPugXmlBranch * p_poBranch,
                                        const TCHAR *   p_pszChildName );
};

//////////////////////////////////////////////////////////////////////
// CVC7File - Represents one source file.
//            Stores the compiler settings for per-file configuration changes,
//            and can read version 7 "File" nodes.
//////////////////////////////////////////////////////////////////////

class CVC7File : public CDSFile
{
public:
   CVC7File();
   virtual ~CVC7File();
   
   ParseStatus             ReadFromXml( const TCHAR *    p_pszProjectDir,
                                        CPugXmlBranch *  p_poBranch );
};

//////////////////////////////////////////////////////////////////////
// CVC7Project - Represents one project.
//               Stores the list of files and configurations,
//               and can read version 7 project files.
//////////////////////////////////////////////////////////////////////

class CVC7Project : public CDSProject
{
public:
   CVC7Project();
   virtual ~CVC7Project();
   
   virtual ParseStatus     ReadProject( const TCHAR * p_pszPath );
};

//////////////////////////////////////////////////////////////////////
// CVC7Workspace - Represents one workspace.
//                 Stores the list of projects,
//                 and can read version 7 workspaces (solutions).
//////////////////////////////////////////////////////////////////////

class CVC7Workspace : public CDSWorkspace
{
public:
   CVC7Workspace();
   virtual ~CVC7Workspace();

   virtual ParseStatus     ReadOneProject( const TCHAR * p_pszProjectPath );
   
protected:
   virtual ParseStatus     ParseLine( TCHAR * p_pszLine );

   static bool             s_bHaveStandardIncludes;
};


#endif // _VC_7_OBJECTS_H_DEFINED_

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior)
United States United States
I like to program, I like to sail.

Comments and Discussions