⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mocadef.h

📁 图像处理的压缩算法
💻 H
📖 第 1 页 / 共 2 页
字号:
typedef	CTypedPtrArray<CObArray, CMOCAObjBase*>	CMOCAObjBaseArray;

#define		MOCA_SUBOBJ_ARRAY_ENTRY(_subobj, _lpcszName) \
{(CMOCAObjBase *)&(_subobj), (_lpcszName), 0, NULL, NULL, NULL, NULL, (double)(-1.0) },

// END:	TD 3/22/2000    ADD_SUPPORT_FOR_SUBOBJ_ARRAYS							*


/////////////////////////////////////////////////////////////////////////////////////////////
////////////MACROS FOR METHODS - THE FOLLOWING  ENTRIES DEFINE THE METHOD ENTRIES IN MOCATABLE
////////////AND THE FUNCTION TYPES USED FOR HANDLING METHODS////////////////////////////////
////////////METHODFN TAKES TWO ARGUMENTS A STRING AND A REAL THAT IS RETURNED WHEN CALLED///
////////////MORETURN ( CObject::*MOCA_METHODFN)(LPMOREAL lpValue, LPOKSTR lpstrArg)
//////////////////////////////////////////////////////////////////////////////////////////////

//#define		MOCA_METH_ENTRY(lpfn, lpszString) {NULL, lpszString, NULL, (MOCA_PPROPFN)(MORETURN ( CObject::*)(LPOKSTR lpnValue))lpfn, (MOCA_PPROPFN)NULL, NULL, NULL, (double)0.0},
#define		MOCA_METH_ENTRY(lpfn, lpszString) {NULL, lpszString, NULL, (MOCA_PPROPFN)(BOOL ( CObject::*)(LPSTR lpnValue))lpfn, (MOCA_PPROPFN)NULL, NULL, NULL, (double)0.0},
//MOCA_STR_METH_ENTRY is a method entry stores a function pointer to  MOCA_STR_METHODFN
#define		MOCA_STR_METH_ENTRY(lpfn, lpszString) {NULL, lpszString, NULL, (MOCA_PPROPFN)(BOOL ( CObject::*)(LPSTR lpnValue))lpfn, (MOCA_PPROPFN)NULL, NULL, NULL, (double)1},

//typedef MORETURN ( CObject::*MOCA_METHODFN)(LPMOREAL lpValue, LPOKSTR lpstrArg);
//typedef MORETURN ( CObject::*MOCA_METHODFN)(LPMOREAL lpValue, CStringArray &argarray);
//
//#define		MOCA_METHENTRY_TO_FUNC(_lpEntry)	((MOCA_METHODFN)((_lpEntry)->pfnGet))

//typedef MORETURN ( CObject::*MOCA_METHODFN)(LPMOREAL lpValue, LPOKSTR lpstrArg);
typedef BOOL ( CObject::*MOCA_METHODFN)(double & rValue, CStringArray &argarray);
//MOCA_STR_METHODFN is pointer to a function which returns string values to origin 
typedef BOOL ( CObject::*MOCA_STR_METHODFN)(LPTSTR lpszBuffer, CStringArray &argarray);



//////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////MACROS FOR  METHODS---- NOTE METHODS TABLE AND GET METHODS ARE DEFINED IN THE
////////////////PROPERTIES TABLE MACROS///////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////

#define		MOCA_DECLARE_METH_MAP(_theClass)\
				protected: BOOL	InitMethodsTable();


#define		MOCA_BEGIN_METH_MAP(_theClass, _theBaseClass)	\
	BOOL	_theClass::InitMethodsTable() {\
	MOCATABLEENTRY _MethodsTable[] = {


#define		MOCA_END_METH_MAP(_theClass, _theBaseClass)		MOCA_PROP_LAST_ENTRY };\
						   m_lpMethodFnMap = MocaCopyTable((LPCMOCATABLEENTRY)_MethodsTable);\
						   return _theBaseClass::InitMethodsTable();}


/////////////////////////////////////////////////////////////////////////////////////////////
////////////MACROS FOR SIMPLE PROPERTIES - THE FOLLOWING  ENTRIES DEFINE THE SIMPLE PROPERTIES ENTRIES IN MOCATABLE
////////////AND THE VARIABLE TYPES USED FOR HANDLING THOSE SIMPLE PROPERTIES////////////////////////////////
////////////SIMPLE PROPERTIES ACCEPTS ONE ARGUMENTS OF TYPES DOUBLE, INT OR CSTRING AND CAN BE OF///
////////////MORETURN ( CObject::*MOCA_METHODFN)(LPMOREAL lpValue, LPOKSTR lpstrArg)
//////////////////////////////////////////////////////////////////////////////////////////////

enum
{
	//int unprotected
	MOCASig_SP_iu = 11,
	//int protected
	MOCASig_SP_ip = 12,
	//double unprotected
	MOCASig_SP_du = 13,
	//double protected
	MOCASig_SP_dp = 14,
	//CString unprotected
	MOCASig_SP_lpszu = 15,
	//CString protected
	MOCASig_SP_lpszp = 16,
	//Cstring Array Unprotected
	MOCASig_SP_lpszaru = 17,
	//CString Array  protected
	MOCASig_SP_lpszarp = 18
};

#define		MOCA_SIMPLE_PROP_ENTRY(_var, _lpszString, _Sig)		{(CMOCAObjBase *)&(_var), (char *)_lpszString, (MOCASIG)_Sig, (MOCA_PPROPFN)NULL, (MOCA_PPROPFN)NULL, (MOCA_PPROPFN)NULL, (MOCA_PPROPFN)NULL, (double)0.0},

#define		MOCA_SIMPLE_PROP_INT(_var, _lpszString)				MOCA_SIMPLE_PROP_ENTRY(_var, _lpszString, MOCASig_SP_iu) 
#define		MOCA_SIMPLE_PROP_REAL(_var, _lpszString)			MOCA_SIMPLE_PROP_ENTRY(_var, _lpszString, MOCASig_SP_du) 
#define		MOCA_SIMPLE_PROP_STR(_var, _lpszString)				MOCA_SIMPLE_PROP_ENTRY(_var, _lpszString, MOCASig_SP_lpszu) 
#define		MOCA_SIMPLE_PROP_STR_ARRAY(_var, _lpszString)		MOCA_SIMPLE_PROP_ENTRY(_var, _lpszString, MOCASig_SP_lpszaru) 
#define		MOCA_SIMPLE_PROP_INT_GET(_var, _lpszString)			MOCA_SIMPLE_PROP_ENTRY(_var, _lpszString, MOCASig_SP_ip) 
#define		MOCA_SIMPLE_PROP_REAL_GET(_var, _lpszString)		MOCA_SIMPLE_PROP_ENTRY(_var, _lpszString, MOCASig_SP_dp) 
#define		MOCA_SIMPLE_PROP_STR_GET(_var, _lpszString)			MOCA_SIMPLE_PROP_ENTRY(_var, _lpszString, MOCASig_SP_lpszp) 
#define		MOCA_SIMPLE_PROP_STR_ARRAY_GET(_var, _lpszString)	MOCA_SIMPLE_PROP_ENTRY(_var, _lpszString, MOCASig_SP_lpszarp) 

#define		MOCA_SIMPLE_PROP_INT_DEF(_var, _lpszString, _defVal)		{(CMOCAObjBase *)&(_var), _lpszString, MOCASig_SP_iu,		NULL, NULL, NULL, (MOCA_PPROPFN)(BOOL	( CObject::*)(int))DummyDefault, (double)_defVal}, 
#define		MOCA_SIMPLE_PROP_REAL_DEF(_var, _lpszString, _defVal)		{(CMOCAObjBase *)&(_var), _lpszString, MOCASig_SP_du,		NULL, NULL, NULL, (MOCA_PPROPFN)(BOOL	( CObject::*)(int))DummyDefault, (double)_defVal}, 
#define		MOCA_SIMPLE_PROP_STR_DEF(_var, _lpszString, _defVal)		{(CMOCAObjBase *)&(_var), _lpszString, MOCASig_SP_lpszu,	NULL, NULL, NULL, (MOCA_PPROPFN)(BOOL	( CObject::*)(int))DummyDefault, (double)(DWORD)(LPCSTR)_defVal},
#define		MOCA_SIMPLE_PROP_INT_GET_DEF(_var, _lpszString, _defVal)	{(CMOCAObjBase *)&(_var), _lpszString, MOCASig_SP_ip,		NULL, NULL, NULL, (MOCA_PPROPFN)(BOOL	( CObject::*)(int))DummyDefault, (double)_defVal}, 
#define		MOCA_SIMPLE_PROP_REAL_GET_DEF(_var, _lpszString, _defVal)	{(CMOCAObjBase *)&(_var), _lpszString, MOCASig_SP_dp,		NULL, NULL, NULL, (MOCA_PPROPFN)(BOOL	( CObject::*)(int))DummyDefault, (double)_defVal},
#define		MOCA_SIMPLE_PROP_STR_GET_DEF(_var, _lpszString, _defVal)	{(CMOCAObjBase *)&(_var), _lpszString, MOCASig_SP_lpszp,	NULL, NULL, NULL, (MOCA_PPROPFN)(BOOL	( CObject::*)(int))DummyDefault, (double)(DWORD)(LPCSTR)_defVal}, 


/////////////////////////////////////////////////////////////////////////////////////////////////
/////BEGIN_MOCA_TABLE_ENTRIES_REDEFINED_FROM_ODLL
//--------------------------------------------------------------------------
// MOCA_PROP_REAL:
//--------------------------------------------------------------------------

#define MOCA_PROP_REAL_DEF(lpfnGet, lpfnSet, lpszString, dDefValue) \
{NULL, lpszString, MOCASig_bpr, (MOCA_PPROPFN)(BOOL ( CObject::*)(double & lpValue))lpfnGet, (MOCA_PPROPFN)(BOOL ( CObject::*)(double dValue))lpfnSet, NULL, (MOCA_PPROPFN)(BOOL	( CObject::*)(int))DummyDefault, dDefValue },

#define MOCA_PROP_REAL(lpfnGet, lpfnSet, lpszString) \
{NULL, lpszString, MOCASig_bpr, (MOCA_PPROPFN)(BOOL ( CObject::*)(double & lpValue))lpfnGet, (MOCA_PPROPFN)(BOOL ( CObject::*)(double dValue))lpfnSet, NULL, NULL, (double)0.0 },
		
#define		MOCA_PROP_REAL_GET(lpfnGet, lpszString)				MOCA_PROP_REAL(lpfnGet, NULL, lpszString)

//--------------------------------------------------------------------------
//	MOCA_PROP_INT:
//--------------------------------------------------------------------------

#define MOCA_PROP_INT_DEF(lpfnGet, lpfnSet, lpszString, nDefValue) \
{NULL, lpszString, MOCASig_bpn, (MOCA_PPROPFN)(BOOL ( CObject::*)(int & lpnValue))lpfnGet, (MOCA_PPROPFN)(BOOL ( CObject::*)(int nValue))lpfnSet, NULL, (MOCA_PPROPFN)(BOOL	( CObject::*)(int))DummyDefault, (double)nDefValue },

#define MOCA_PROP_INT(lpfnGet, lpfnSet, lpszString) \
{NULL, lpszString, MOCASig_bpn, (MOCA_PPROPFN)(BOOL ( CObject::*)(int & lpnValue))lpfnGet, (MOCA_PPROPFN)(BOOL ( CObject::*)(int nValue))lpfnSet, NULL, NULL, (double)0.0 },

#define		MOCA_PROP_INT_GET(lpfnGet, lpszString)				MOCA_PROP_INT(lpfnGet, NULL, lpszString)
/// end INTEGER_VALUES_SETTING_AND_GETTING



//--------------------------------------------------------------------------
//	MOCA_PROP_STR:
//--------------------------------------------------------------------------
#define MOCA_PROP_STR_DEF(lpfnGet, lpfnSet, lpszString, lpcstrDefValue) \
{NULL, lpszString, MOCASig_bpsz, (MOCA_PPROPFN)(BOOL ( CObject::*)(LPSTR lpValue))lpfnGet, (MOCA_PPROPFN)(BOOL ( CObject::*)(LPCSTR lpValue))lpfnSet, NULL, (MOCA_PPROPFN)(BOOL	( CObject::*)(int))DummyDefault, (double)(DWORD)(LPCSTR)lpcstrDefValue },

#define MOCA_PROP_STR(lpfnGet, lpfnSet, lpszString) \
{NULL, lpszString, MOCASig_bpsz, (MOCA_PPROPFN)(BOOL ( CObject::*)(LPSTR lpValue))lpfnGet, (MOCA_PPROPFN)(BOOL ( CObject::*)(LPCSTR lpValue))lpfnSet, NULL, NULL, (double)0.0},

#define		MOCA_PROP_STR_GET(lpfnGet, lpszString)			MOCA_PROP_STR(lpfnGet, NULL, lpszString)


//--------------------------------------------------------------------------
//	MOCA_PROP_?_VECTOR:
//--------------------------------------------------------------------------
// vectors:
#define		MOCA_PROP_REAL_VECTOR(lpfnGet, lpfnSet, lpfnGetSize, lpfnSetSize, lpszString)	{ NULL,\
																								lpszString,\
																								MOCASig_brvec,\
																								(MOCA_PPROPFN)(BOOL	( CObject::*)(double & lpValue, int))lpfnGet,\
																								(MOCA_PPROPFN)(BOOL	( CObject::*)(double dValue, int))lpfnSet,\
																								(MOCA_PPROPFN)(BOOL	( CObject::*)(int &))lpfnGetSize,\
																								(MOCA_PPROPFN)(BOOL	( CObject::*)(int))lpfnSetSize,\
																								},    

#define		MOCA_PROP_REAL_VECTOR_GET(lpfnGet, lpfnGetSize, lpszString)		MOCA_PROP_REAL_VECTOR(lpfnGet, NULL, lpfnGetSize, NULL, lpszString)

#define		MOCA_PROP_STR_VECTOR(lpfnGet, lpfnSet, lpfnGetSize, lpfnSetSize, lpszString)	{ NULL,\
																								lpszString,\
																								MOCASig_bszvec,\
																								(MOCA_PPROPFN)(BOOL	( CObject::*)(LPSTR lpValue, int))lpfnGet,\
																								(MOCA_PPROPFN)(BOOL	( CObject::*)(LPCSTR lpValue, int))lpfnSet,\
																								(MOCA_PPROPFN)(BOOL	( CObject::*)(int &))lpfnGetSize,\
																								(MOCA_PPROPFN)(BOOL	( CObject::*)(int))lpfnSetSize,\
																								},    

#define		MOCA_PROP_STR_VECTOR_GET(lpfnGet, lpfnGetSize, lpszString)		MOCA_PROP_STR_VECTOR(lpfnGet, NULL, lpfnGetSize, NULL, lpszString)

/////////////////////////////////////////////////////////////////////////////////////////////////
/////END_MOCA_TABLE_ENTRIES_REDEFINED_FROM_ODLL


//#define		MOCAENTRY_SUBOBJ(_subobj, _lpcszName) \
//{&(_subobj), _lpcszName, 0, NULL, NULL, NULL, NULL, NULL },





			
class	MOCA_EXP_CLASS	CMOCAObjBase : public MOCAObj
{
	MOCA_DECLARE_DYNAMIC(CMOCAObjBase);
		
public:
	CMOCAObjBase();
	~CMOCAObjBase();

private:
	static LPCMOCATABLEENTRY		GetPropertyMap();
	static LPCMOCATABLEENTRY		GetSubObjectMap();
	
	BOOL						DoProperty(LPSTR lpStr1, LPSTR lpStr2, LPDOUBLE lpValue, MOMSG momsg);
	BOOL						DoMethod(LPSTR lpStr1, LPSTR lpStr2, LPMOREAL lpValue, int nMethEntryType, BOOL bPropAsMeth = FALSE);
	BOOL						InitiateListTable(LPSTR lpStr1);
	BOOL						Do_Simple_Properties(LPMOREAL lpValue, MOMSG momsg, LPCMOCATABLEENTRY	lpTheEntry, int index = -1);


protected:
	LPCMOCATABLEENTRY			FindMapEntryInTable(LPCSTR lpcszName, LPCMOCATABLEENTRY lpTable, int nSearchEntryFlag);
	LPCMOCATABLEENTRY			FindMapEntryInTable(LPSTR lpcszSubObjectName, LPCSTR lpcszName,
												  LPCMOCATABLEENTRY lpTable, LPCMOCATABLEENTRY lpSubObjTable,
												  CMOCAObjBase **ppEntryOwner, int iSearchTableFlag, int nSearchEntryFlag);
	LPMOCATABLEENTRY			MocaCopyTable(LPCMOCATABLEENTRY lpTable);
	void						MocaReleaseTable(LPMOCATABLEENTRY lpGlobalTable);

	BOOL						InitSubObjectsInTable(LPCMOCATABLEENTRY lpTable);
	virtual				BOOL	InitPropertyTable();
	virtual				BOOL	InitSubObjectTable();
	virtual				BOOL	InitSubObjects();
	virtual				BOOL	InitMethodsTable();
	virtual				BOOL	ListTable(LPCSTR lpcszPrefix);
	virtual				BOOL	ListMethods(LPCSTR  lpcszPrefix, LPCMOCATABLEENTRY lpPropTable);
	virtual				BOOL	ListProperties(LPCSTR  lpcszPrefix,	LPCMOCATABLEENTRY lpPropTable);
	virtual				BOOL	ListSubObjects(LPCSTR  lpcszPrefix, LPCMOCATABLEENTRY lpSubTable);
	virtual				BOOL	InitPropDef();
	virtual				BOOL	MocaInitPropDef(LPCMOCATABLEENTRY lpPropTable);
	virtual				BOOL	MocaInitSubPropDef(LPCMOCATABLEENTRY lpSubTable);
	virtual		CMOCAObjBase*	GetSpecialSubObjectPtr();

	void						DummyDefault();

protected:

	enum	{PROP_SEARCH_FLAG = 0,
			METH_SEARCH_FLAG  = 1};   

protected:

	/// TD 6/9/2000		LABTALK_VARNAME_CHECK
	static				int		m_nCheckNameFailedLevel;// (-1:no checking; 0:checking & success (> 0):failure level)
	CString						m_strTmpSubObjName;
	CString						m_strTmpName;
	/// end LABTALK_VARNAME_CHECK
	BOOL						ReleaseSubObjectsInTable(LPCMOCATABLEENTRY lpTable);
	virtual				BOOL	ReleasePropTable();
	virtual				BOOL	ReleaseSubObjectTable();
	/// Handling Runtime Overridable SubObject Allocation
	virtual		CMOCAObjBase*	InitSubobjectPointer(LPCSTR lpcszSubObjName);
	CMOCAObjBase*				CreateSubobject(LPCSTR	lpcszSubObjName);//Called First --Higher Presedence	, Automatically Calls Base class Functions for the ones not overriden in the derived class
	virtual				BOOL	InitAllocatedSubObjects();//Initializations thats needed from the parent objects -- call base class before or after or never depending on the situation

public:
	virtual		LPCMOCATABLEENTRY		FindPropertyEntry(LPSTR lpszSubObjectName, LPCSTR lpcszName, CMOCAObjBase **ppEntryOwner, int nSearchEntryFlag);
	virtual		LPCMOCATABLEENTRY		FindMethodsEntry(LPSTR lpszSubObjectName, LPCSTR lpcszName, CMOCAObjBase **ppEntryOwner, int nSearchEntryFlag);
	virtual		LPCMOCATABLEENTRY		LookUpSubObjectTables(CMOCAObjBase *pSubObj, LPSTR lpcszSubObjectName, LPCSTR lpcszName, int iSearchTableFlag, int nSearchEntryFlag, CMOCAObjBase	**ppEntryOwner); /// BORROWING_TABLES_FROM_SUBOJECT_SELECTED_DYNAMICALLY

	virtual		void					OnUnloadDLL(void);/// This Gets Called Only from the Main Object for Safe exit	DEF_ONUNLOAD_FOR_MOCA_MAINOBJECT_FOR_SAFE_EXIT

	MORETURN						ScriptEntry(HWND hWnd, LPSTR lpStr1, LPSTR lpStr2, LPMOREAL lpValue, LPCALLBK lpProc, WORD msg);

	BOOL							InitAllTables();
	BOOL							ReleaseAllTables();
	BOOL							InitAllProps();

};

// *	TD 3/22/2000    ADD_SUPPORT_FOR_SUBOBJ_ARRAYS							*

class  MOCA_EXP_CLASS	CMOCAAarray : public CMOCAObjBaseArray
{

public:

	CMOCAAarray();
	~CMOCAAarray();
public:
	BOOL	Cleanup();
	void RemoveAtDelete(int nIndex, int nCount = 1);
	void RemoveAt(int nIndex, int nCount = 1);
	void RemoveAll();
	void InsertAt(int nIndex, CMOCAObjBase* newElement, int nCount = 1);
	int Add(CMOCAObjBase* newElement);

};

// END:	TD 3/22/2000    ADD_SUPPORT_FOR_SUBOBJ_ARRAYS							*
//-------END OF FILE
#endif //_MOCADEF_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -