/* Base Windows Control for CTL*/
/**/
/* YB*/
/*//////////////////////////////////*/
#ifndef _CTL_BASE_WINDOWS_CONTROL_
#define _CTL_BASE_WINDOWS_CONTROL_
 
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000*/
 
#include "ACP_Base.h"
#include "CTL\Others\CTL_ClBk.hpp"
 
class CTL_Editor_Control;
 
class CPA_EXPORT CTL_BaseWindowsControl
{
public:
	CTL_BaseWindowsControl(CTL_Editor_Control *_pclParentControl,
												 CWnd *_pclParentWnd,
												 long _lUserDefinedType = 0,
												 long _lUserDefinedCode = 0);
	~CTL_BaseWindowsControl();
 
/*Attributes*/
public:
 
protected:
 
private:
	/*This type will be passed as parameters of CallBacks*/
	long m_pri_lUserDefinedType;
	/*This code will be passed as parameters of CallBacks*/
	long m_pri_lUserDefinedCode;
	
	CTL_Editor_Control *m_pri_pclParentControl;
	CWnd *m_pri_pclParentWnd;
 
	CWnd *m_pri_pclWnd;
 
/*Functions*/
public:
	long m_pub_fn_lGetUserDefinedType();
	long m_pub_fn_lGetUserDefinedCode();
	
	CTL_Editor_Control *m_pub_fn_pclGetParentControl();
	CWnd *m_pub_fn_pclGetParentWnd();
 
	/*For TUT registration*/
	virtual void m_pub_fn_vRegisterWindowsControl(CString _csAdditionnalInfo) = 0;
 
protected:
#ifndef CTL_WITH_NO_TUT
	void m_pro_fn_vRegisterWindowsControl(CString _csAdditionnalInfo,
																				enum TUT_eControlType_ _eType,
																				CString _csControlString,
																				CWnd *_pclWnd);
#endif /*CTL_WITH_NO_TUT*/
 
private:
#ifndef CTL_WITH_NO_TUT
	void m_pri_fn_vBuildNameForTUT(CString _csAdditionnalInfo,
																 enum TUT_eControlType_ _eType,
																 CString _csControlString,
																 CWnd *_pclWnd);
#endif /*CTL_WITH_NO_TUT*/
 
};
 
 
#endif /*_CTL_BASE_WINDOWS_CONTROL_*/
