📄 mocascript.h
字号:
/// end OBJECT_PROPERTY_ACCESS
/// end TREE_IN_OC
//////////////////////////////////////////////////////////////////////////////
//
// Symbolic constatnts -- Flags for the exported function MOCA_XPORT_CREATEOBJ
//
#define MOCA_CREATE_FROM_LPCSTR 0x0000/// TD 12/18/2000 ALLOW_COMPILATION_OF_VAR_INITIALIZATION
#define MOCA_CREATE_SET_CALLBACK 0x0001
#define MOCA_CREATE_FROM_LPDOUBLE 0x0002/// TD 12/18/2000 ALLOW_COMPILATION_OF_VAR_INITIALIZATION
#define MOCA_CREATE_FROM_LPSCRPTOBJ 0x0003/// TD 12/18/2000 ALLOW_COMPILATION_OF_VAR_INITIALIZATION
#define MOCA_CREATE_UPDATE_DEBUGMODE 0x0004/// TD 2-12-02 QA70-771 v6.9211 ORIGINC_DEBUG_MODE
#define MOCA_SET_CREATION_ERROR_CALLBK 0x0005/// TD 5-24-02 QA70-1882 v7.0310 TEMPLATE_DATA_ATTACHMENT_FAILURE_TREATED_AS_RUN_TIME_ERROR
#define MOCA_SET_NAG_RELATED_CALLBACKS 0x0006 // AW 06/26/02 v7.0328 QA70-2116 MOCABASETYPE_NAG_DLL_SUPPORT
#define MOCA_SET_GET_LTVECTOR_CALLBK 0x0007 /// TD 7-01-02 QA70-2181 v7.0331 LABTALK_STRING_VECTORS_TO_OCVECTORS
/// TD 5-24-02 QA70-1882 v7.0310 TEMPLATE_DATA_ATTACHMENT_FAILURE_TREATED_AS_RUN_TIME_ERROR
//typedef CArray<UINT, UINT> Index;
typedef int MoCreateErr;
typedef void (*LPFNSetLtErr)(MoCreateErr&);
typedef int (CALLBACK * CBkLTVect)(CStringArray*, LPSTR, bool); /// TD 7-01-02 QA70-2181 v7.0331 LABTALK_STRING_VECTORS_TO_OCVECTORS
/// end TEMPLATE_DATA_ATTACHMENT_FAILURE_TREATED_AS_RUN_TIME_ERROR
/// YuI 3/25/2 QA70-1043 v7.0255 GET_ROI_DATA
///// YuI 3/13/2 QA70-1043 v7.0233 GET_ROI_DATA
//typedef enum tagGETROIDATACNTRL
//{
// GET_ROI_DATA = 0,
// GET_ROI_I,
// GET_ROI_J,
//} GETROIDATACNTRL;
//
//typedef enum tagOCGRAPHOBJGETINFOMSG
//{
// OCGIM_GetROIData = 0,
//} OCGRAPHOBJGETINFOMSG;
///// end GET_ROI_DATA
/// end GET_ROI_DATA
/// TD 2/29/2001 UNUSED_CODES
/*
////////////////////////////////////////////////////////////////////////////
// COperationInfo header/body class
//
class COperationInfo : public CObject
{
DECLARE_DYNAMIC(COperationInfo);
public:
COperationInfo(char cOperator, DWORD dwValidBits, DWORD dwValidReturns);
COperationInfo(COperationInfo& oOperationInfo);
~COperationInfo();
BOOL IsTypeBitValid(DWORD dwTypeBit);
BOOL IsOperator(char cOperator);
private:
DWORD m_dwValidBits;
char m_cOperator;
public:
DWORD m_dwValidReturns;
};
////////////////////////////////////////////////////////////////////////////
// COPCompatTable header/body class
//
class COPCompatTable : public CObject
{
DECLARE_DYNAMIC(COPCompatTable);
public:
COPCompatTable();
~COPCompatTable();
public:
DWORD CanOperate(char cOperator, int nLType, int nRType);
private:
CMap<DWORD, DWORD, COperationInfo*, COperationInfo*> m_GrpOIMap;
};
*/
/// end----------------TD 2/29/2001 UNUSED_CODES
/// ML 7/11/2001 MUST_CHECK_FOR_ZERO_DENOMINATOR
///// ML 6/6/2001 SAFE_FLOATING_DIVIDE_FIX
////#define MOCA_SAFE_DOUBLE_DIVIDE(_rNum, _rDen) ( (1. <= (_rDen) || fabs(_rNum) < (_rDen) * 1.7E+308) ? (_rNum) / (_rDen) : NANUM )
//#define MOCA_SAFE_DOUBLE_DIVIDE(_rNum, _rDen) ( (1. <= fabs(_rDen) || fabs(_rNum) < fabs(_rDen) * 1.7E+308) ? (_rNum) / (_rDen) : NANUM )
///// end SAFE_FLOATING_DIVIDE_FIX
/// end MUST_CHECK_FOR_ZERO_DENOMINATOR
/// TD 8-17-02 QA70-2715 v7.0374 GETDATAOBJECTC_IN_APPLICATION
#define DISPL_INVALID_WRAPPER _T("Invalid Object")
/// end GETDATAOBJECTC_IN_APPLICATION
/// ML 1/24/2000 EXPRESSION_HANDLING_USING_OBJECT
typedef struct tagSMOOPERATECTXT {
DWORD dwParam;
/// ML 5/11/2001 PTR_COMPARISONS
// Possible bits:
#define DWORDSMOOPERATECTXT_TRUE 0x00010000UL
/// end PTR_COMPARISONS
/// ML 6/22/2001 VECTOR_OR_MATRIX_ASSIGNMENT_LHS_TEMPORARY_BUG
#define DWORDSMOOPERATECTXT_KEEP_DEST_SOURCE_SIZE_IF_NO_SOURCE_VECTOR_OR_MATRIX 0x00020000UL
/// end VECTOR_OR_MATRIX_ASSIGNMENT_LHS_TEMPORARY_BUG
/// ML 10/2/2001 MULTIPLE_MEMORY_PTR_DEREFERENCING_IMPROVEMENTS
#define DWORDSMOOPERATECTXT_PTR_DEREF 0x00040000UL
/// end MULTIPLE_MEMORY_PTR_DEREFERENCING_IMPROVEMENTS
/// ML 2/21/2002 QA70-965 APPENDING_TO_VECTORS_AND_DATASETS
#define DWORDSMOOPERATECTXT_APPEND 0x00080000UL
/// ML end QA70-965 APPENDING_TO_VECTORS_AND_DATASETS
/// ML 5/6/2003 QA70-4373 BETTER_CURVE_ARITHMETICS
#define DWORDSMOOPERATECTXT_TEMP_FOR_FIRST_BINARY_OPERAND 0x00100000UL
/// end QA70-4373 BETTER_CURVE_ARITHMETICS
/// AW 06/25/03 QA70-4714 v7.0606 SUPPORT_REF_RETURN
#define DWORDSMOOPERATECTXT_CALLED_FROM_RETURN 0x00200000UL
/// END SUPPORT_REF_RETURN
/// ML 10/12/2001 MORE_WORK_SUBTRACTING_PTRS
PUINT pnPtrSubtractSizeOfOne; // in: double *p1, *p2; ...; int nn = p2 - p1;
/// TD 8-26-03 QA70-NEEDTRACKER POINTER_CREATION_AND_ASSIGNMENT_BUG
#define DWORDSMOOPERATECTXT_PTR_ACTUAL_TARGET 0x00400000UL
/// end POINTER_CREATION_AND_ASSIGNMENT_BUG
// pnPtrSubtractSizeOfOne will point at sizeof(double)
/// end MORE_WORK_SUBTRACTING_PTRS
} SMOOPERATECTXT, FAR *LPSMOOPERATECTXT;
/// ML 5/11/2001 PTR_COMPARISONS
#define SET_DWORDSMOOPERATECTXT_TRUE(_lpOperctxt, _bSet) ((_bSet) ? ((_lpOperctxt)->dwParam |= DWORDSMOOPERATECTXT_TRUE) : ((_lpOperctxt)->dwParam &= ~DWORDSMOOPERATECTXT_TRUE))
#define IS_DWORDSMOOPERATECTXT_TRUE(_lpOperctxt) (((_lpOperctxt)->dwParam & DWORDSMOOPERATECTXT_TRUE) ? TRUE : FALSE)
/// end PTR_COMPARISONS
// dwOperator in 'OperateEx()'
#define CSMOOPERATOR_MASK_NO_OTHER 0x00000080UL // those that do not require the other term (pSMO)
/// ML 5/11/2001 PTR_COMPARISONS
/// ML 6/11/2001 CORRECT_TYPES_FOR_RELATIONAL_COMPARISONS
//#define CSMOOPERATOR_RELATIONAL_MASK 0x00000100UL
#define CSMOOPERATOR_RELATIONAL_MASK 0x00000040UL // must be within CSMOOP_GET_BASIC_OPERATOR()
/// end CORRECT_TYPES_FOR_RELATIONAL_COMPARISONS
/// end PTR_COMPARISONS
/// ML 1/29/2000 ARRAY_MORE_WORK
#define CSMOOPERATOR_APPLY_INDEX_TO_SOURCE 0x00010000UL // the source should be indexed, rather than the destination
/// end ARRAY_MORE_WORK
/// ML 2/21/2001 OPERATIONS_WITH_SIMPLE_UNARY
#define CSMOOPERATOR_CHANGE_SOURCE_SIGN 0x00020000UL // unary "-"
#define CSMOOPERATOR_NOT_SOURCE 0x00040000UL // unary "!"
#define CSMOOPERATOR_BINARY_NOT_SOURCE 0x00080000UL // unary "~"
/// ML 5/11/2001 IT_HAS_TO_CALL_OperateMultiDim
#define CSMOOPERATOR_ARRAY_TO_PTR 0x00100000UL
/// end IT_HAS_TO_CALL_OperateMultiDim
/// ML 5/11/2001 INITIALIZING_CHAR_ARRAY_FROM_ANOTHER_CHAR_ARRAY
#define CSMOOPERATOR_INIT_VARIABLE_COMPILE 0x00200000UL // not really used inside the types DLL, only in compiler
/// end INITIALIZING_CHAR_ARRAY_FROM_ANOTHER_CHAR_ARRAY
/// ML 5/11/2001 MEMORY_POINTER_RETURNING_FROM_FUNCTIONS
#define CSMOOPERATOR_INIT_RETURN_TYPE 0x00400000UL // not really used inside the types DLL
/// end MEMORY_POINTER_RETURNING_FROM_FUNCTIONS
/// ML 6/8/2001 PASSING_PTR_DEREFERENCE_TO_REFERENCE
#define CSMOOPERATOR_SET_TO_MEM_POINTER_TARGET 0x00800000UL // must be a bit, instead of a value
/// end PASSING_PTR_DEREFERENCE_TO_REFERENCE
/// ML 7/5/2001 STRING_TO_CHARACTER_PTR
#define CSMOOPERATOR_STRING_TO_CHARMEM_POINTER 0x01000000UL
/// end STRING_TO_CHARACTER_PTR
#define CSMOOPERATOR_SIMPLE_UNARY_MASK (CSMOOPERATOR_CHANGE_SOURCE_SIGN | CSMOOPERATOR_NOT_SOURCE | CSMOOPERATOR_BINARY_NOT_SOURCE)
#define CSMOOP_GET_SIMPLE_UNARY(_dwOperator) (CSMOOPERATOR_SIMPLE_UNARY_MASK & (_dwOperator))
/// end OPERATIONS_WITH_SIMPLE_UNARY
/// TD 7-30-03 EXPLICIT_DOWNCAST
#define CSMOOPERATOR_MASK_EC_PTR_DOWNCAST 0x02000000UL
/// end EXPLICIT_DOWNCAST
// Basic operators:
enum {
CSMOOPERATOR_SET_VALUE = 1,
CSMOOPERATOR_PLUS,
CSMOOPERATOR_MINUS,
CSMOOPERATOR_MULTIPLY,
CSMOOPERATOR_DIVIDE,
CSMOOPERATOR_REMAINDER, // a % b
CSMOOPERATOR_BIT_OR,
CSMOOPERATOR_BIT_XOR,
CSMOOPERATOR_BIT_AND,
CSMOOPERATOR_BIT_SHIFT_LEFT,
CSMOOPERATOR_BIT_SHIFT_RIGHT,
/// ML 2/21/2001 POINTERS_FIRST_PHASE
CSMOOPERATOR_SET_POINTER_TARGET, // it sets to the pointer object what it should point to
/// end POINTERS_FIRST_PHASE
/// ML 6/8/2001 PASSING_PTR_DEREFERENCE_TO_REFERENCE
///// ML 5/8/2001 MEMORY_PTR_FURTHER_WORK
//CSMOOPERATOR_SET_TO_MEM_POINTER_TARGET,
///// end MEMORY_PTR_FURTHER_WORK
/// end PASSING_PTR_DEREFERENCE_TO_REFERENCE
/// ML 6/27/2001 t9281 ORIGINC_EXPLICIT_CASTS
CSMOOPERATOR_EC_NUMERIC_TO_PTR, // "EC" in the name stands for "explicit cast".
/// end ORIGINC_EXPLICIT_CASTS
/// ML 7/3/2001 EXPLICITLY_CASTING_PTRS_TO_SIMPLE_NUMERIC_TYPES_AND_TO_STRUCTURES_TO_SIMPLE_NUMERIC_TYPES
CSMOOPERATOR_EC_STRUCT_PTR_TO_PTR, // "EC" in the name stands for "explicit cast".
CSMOOPERATOR_EC_SIMPLE_NUMERIC_PTR_TO_PTR, // "EC" in the name stands for "explicit cast".
/// end EXPLICITLY_CASTING_PTRS_TO_SIMPLE_NUMERIC_TYPES_AND_TO_STRUCTURES_TO_SIMPLE_NUMERIC_TYPES
/// TD 11-20-01 ALLOW_EXPLICIT_CAST_OF_CATMAP_TO_VECTORSTRING
CSMOOPERATOR_EC_CATMAP_TO_VECSTR, // "EC" in the name stands for "explicit cast".
/// end ALLOW_EXPLICIT_CAST_OF_CATMAP_TO_VECTORSTRING
/// TD 7-1-03 QA70-4490 POINTER_TO_DWORD_TO_POINTER
CSMOOPERATOR_EC_PTR_TO_NUMERIC,
CSMOOPERATOR_EC_NUMERIC_TO_OCPTR,
/// end POINTER_TO_DWORD_TO_POINTER
/// TD 8-22-03 QA70-5050 FUNCTION_POINTERS_TO_DWORD
CSMOOPERATOR_EC_PFN_TO_PINT,
CSMOOPERATOR_EC_PINT_TO_PFN,
/// end FUNCTION_POINTERS_TO_DWORD
CSMOOPERATOR_EXPONENTIATION,//-------- CPY 3/27/01 t9012 OPTION_TO_SWITCH_EXPONENENT_XOR
/// ML 12/5/2002 QA70-3458 CASTING_LPVOID_TO_DOUBLE_MEMORY_PTR
CSMOOPERATOR_EC_VOIDPTR_TO_SIMPLE_NUMERIC_PTR_PTR,
/// end CASTING_LPVOID_TO_DOUBLE_MEMORY_PTR
CSMOOPERATOR_INCREMENT = CSMOOPERATOR_MASK_NO_OTHER,
CSMOOPERATOR_DECREMENT,
/// ML 5/11/2001 PTR_COMPARISONS
CSMOOPERATOR_RELATIONAL_EQUAL = CSMOOPERATOR_RELATIONAL_MASK,
CSMOOPERATOR_RELATIONAL_NOT_EQUAL,
CSMOOPERATOR_RELATIONAL_LESS_THAN,
CSMOOPERATOR_RELATIONAL_LESS_THAN_OR_EQUAL_TO,
CSMOOPERATOR_RELATIONAL_GREATER_THAN,
CSMOOPERATOR_RELATIONAL_GREATER_THAN_OR_EQUAL_TO,
/// end PTR_COMPARISONS
};
/// ML 2/27/2001 GETTING_EXPRESSION_TYPES
#define IS_INTEGER_ONLY_BASIC_OPERATOR(_nBasicOp) (CSMOOPERATOR_REMAINDER == (_nBasicOp) || CSMOOPERATOR_BIT_OR == (_nBasicOp) || CSMOOPERATOR_BIT_XOR == (_nBasicOp)\
|| CSMOOPERATOR_BIT_AND == (_nBasicOp) || CSMOOPERATOR_BIT_SHIFT_LEFT == (_nBasicOp) || CSMOOPERATOR_BIT_SHIFT_RIGHT == (_nBasicOp)\
|| CSMOOPERATOR_INCREMENT == (_nBasicOp) || CSMOOPERATOR_DECREMENT == (_nBasicOp))
/// end GETTING_EXPRESSION_TYPES
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -