// PathRegulation.h: interface for the CPathRegulation class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_PATHREGULATION_H__A3353567_0704_486D_AD65_E6D9CF3A6551__INCLUDED_)
#define AFX_PATHREGULATION_H__A3353567_0704_486D_AD65_E6D9CF3A6551__INCLUDED_

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

#include <string.h>
#include <stdio.h>
#include <stdlib.h>

#include <wtypes.h>
#include <winnt.h>
#include <winsvc.h>
#include <winuser.h>


struct _path_list_;

typedef struct _path_list_{
	char* sPath;
	bool  bKeep;
	struct _path_list_* pNext;
} UniPath_t, * UniPathPtr_t;


class CPathRegulation  
{
private :
	char* sCurrPath;					// ÇöÀç ÀúÀåµÈ Path Á¤º¸
	UniPathPtr_t pRootPath;				// ParsingÇÑ Path Á¤º¸
	HKEY hRootKey;

	char* sGetPath();					// Registry·Î ºÎÅÍ Path Á¤º¸¸¦ °¡Á®¿Â´Ù.
	void  vSetPath( char* sPath );		// Registry¿¡ Path Á¤º¸¸¦ ÀúÀåÇÑ´Ù.
	void  vDivisionItem();				// Path Á¤º¸¸¦ ParsingÇÑ´Ù.
	void  vDestroyList();				// Path Á¤º¸°¡ ParsingµÈ List¸¦ Á¦°ÅÇÑ´Ù.
	bool  bOpenTheRegistry();			// Registry¸¦ OpenÇÑ´Ù.
public:
	char installed_path[1024];
	CPathRegulation( char* spath );
	CPathRegulation();
	virtual ~CPathRegulation();

	void vRemovePathInfo();			// CUBRID°ü·Ã Path Á¤º¸¸¦ Á¦°ÅÇÏ¿©, Path¿¡ Àû¿ëÇÑ´Ù.
};

#endif // !defined(AFX_PATHREGULATION_H__A3353567_0704_486D_AD65_E6D9CF3A6551__INCLUDED_)
