📄 mocadef.h
字号:
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 + -