#if !defined(AFX_AWCCCHECK_H__A88F21AF_250E_4762_86D8_7366A3C67F76__INCLUDED_)
#define AFX_AWCCCHECK_H__A88F21AF_250E_4762_86D8_7366A3C67F76__INCLUDED_

// {A88F21AF-250E-4762-86D8-7366A3C67F76}

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <windows.h>
#include <string>
using namespace std;

class AwCcConfig
{
public:
	AwCcConfig();
	virtual ~AwCcConfig();
	static string getDevPath(void);
	static string getDevPath(int device);
	static string getDevPath(const string & filename);	
	static int getInt(int device, const string & section, const string & key, int	def, bool createOnDefault = false);
	static int getInt(const string & file, const string & section, const string & key, int	def, bool createOnDefault = false);
	static string getString(const string & file, const string & section, const string & key, const string & def, bool createOnDefault = false);
	static string getString(int device, const string & section, const string & key, const string & def, bool createOnDefault = false);
	static bool isV3Based(void);
	static bool isV4Based(void);
	static void setString(const string & file, const string & section, const string & key, const string & value);
	static void setString(int device, const string & section, const string & key, const string & value);
	static int AwCcConfig::workstation(void);

private:
	static void findBNCSproperties(void);

	static bool pathsSet;				// Need to set this value before make use of the functions 
	static bool sysTypeKnown;
	static bool sysTypeV3;
	static bool sysTypeV4;
	static char myCCRoot[MAX_PATH];		// Holds the value of the BNCS V4.5 Root path
	static char myCCSystem[MAX_PATH];	// Holds the value of the BNCS V4.5 System Environment Variable	
	static char myV3Path[MAX_PATH];		// Used in testing for a V3 environment
	static char myWinDir[MAX_PATH];
};

#endif // !defined(AFX_AWCCCHECK_H__A88F21AF_250E_4762_86D8_7366A3C67F76__INCLUDED_)
