📄 mocascript.h
字号:
/*------------------------------------------------------------------------------*
* File Name: MOCASCRIPT.H *
* Purpose: Header of script object class *
* *
* *
* Author: RVD *
* Creation: 10/06/2000 *
* Copyright (c) Microcal Software Inc. 1996, 1997, 1998, 1999, 2000 *
* *
* Modification log *
* TD 12/18/2000 ALLOW_COMPILATION_OF_VAR_INITIALIZATION *
* TD 01/17/2001 t8820 USE_NUMERIC_IDS_FOR_TYPE_NAMES *
* ML 1/24/2000 EXPRESSION_HANDLING_USING_OBJECT *
* 1/25/2001 EXTEND_COMPILER_BEYOND_DOUBLES *
* ML 1/26/2000 IMPLEMENTING_ARRAYS *
* ML 1/29/2000 ARRAY_MORE_WORK *
* ML 1/31/2000 MULTIDIMENSION_DEREFERENCING *
* ML 2/1/2001 STRING_ARRAYS *
* TD 2/12/2001 EFFICIENT_BASE_TYPES_HANDLING *
* TD 2/15/2001 NEW_BASECLASS_FOR_TYPE_OBJECTS *
* ML 2/19/2001 COMPILING_REFERENCES *
* ML 2/21/2001 OPERATIONS_WITH_SIMPLE_UNARY *
* ML 2/21/2001 POINTERS_FIRST_PHASE *
* ML 2/22/2001 CLEANINING_UP_DEPRECATED_STUFF *
* ML 2/23/2001 VECTOR_TYPING_ETC *
* ML 2/22/2001 VECTOR_WORK *
* ML 2/26/2001 MORE_DEREFERENCING_IMPROVEMENTS *
* ML 2/27/2001 GETTING_EXPRESSION_TYPES *
* CPY 2/27/01 v6.1096 ADD_TYPE_DEF *
* ML 3/5/2001 POINTERS_POINTERS *
* ML 3/7/2001 MORE_FRIENDLY_WAY_TO_GET_BUFFER *
* TD 3/7/2001 SEPERATE_CREATION_OF_OBJECT_FROME_ADDING_THEM_TO_STACK *
* EJP 03-12-2001 t8865 IMPLEMENT_IDE_VARIABLE_WINDOW *
* TD 03/21/2001 IMPLEMENT_VOID *
* ML 3/28/2001 OVECTOR_WORK *
* EJP 03-30-2001 t9018 IMPLEMENT_FUNCTION_OVERLOAD *
* CPY 03-31-2001 t9030 WORKSHEET_CLASS_IN_ORIGIN_C *
* ML 4/3/2001 MORE_STRUCTURE_WORK *
* CPY 4/4/01 ADD_ORGIIN_C_OBJECT_AS_BASE_CLASS *
* TD 4-10-2001 t9050 ADD_FUNCTION_TO_ACCESS_UNDERLYING_DATA_STRUCTURE *
* ML 4/12/2001 POINTERS_ASSIGNMENT *
* ML 4/13/2001 POINTER_ARITHMETICS *
* ML 4/15/2001 CALLING_EXTERNAL_FUNCTION_OF_ARBIRARY_PROTOTYPE *
* TD 4-19-2001 t9054 MULTIMEMBER_ACCESS_TO_CLASS_N_STRUCT *
* TD 4-23-01 ADD_COLUMN_TYPE_IN_ORIGIN_C *
* TD 05-04-01 v6.9012 STRUCTS_WITH_SIMPLE_MEMBER_TYPE_CREATED_THE_C_WAY *
* ML 5/8/2001 MEMORY_PTR_FURTHER_WORK *
* TD 5-09-01 t9062 v6.9012 ADD_SUPPORT_FOR_ANSI_CONSATNTS_IN_ORIGIN_C *
* ML 5/11/2001 PTR_COMPARISONS *
* ML 5/11/2001 IT_HAS_TO_CALL_OperateMultiDim *
* ML 5/11/2001 INITIALIZING_CHAR_ARRAY_FROM_ANOTHER_CHAR_ARRAY *
* ML 5/11/2001 MEMORY_POINTER_RETURNING_FROM_FUNCTIONS *
* ML 5/15/2001 MUST_CHECK_TARGET_TYPE_WHEN_CASTING_POINTER_TO_POINTER *
* ML 5/15/2001 PASSING_SCRIPT_MOCA_OBJECTS_TO_EXTERNAL_FUNCTIONS *
* TD 5-17-01 t9153 CREATE_A_TEMP_SERIES_WHEN_ANY_VETOR_ASSIGNED_TO_DATASET_UNATTACHED
* ML 5/22/2001 t9074 VECTOR_TO_SIMPLE_TYPE_FUNCTION_CALL_MORE_WORK *
* ML 5/29/2001 t9168 ENUM_IMPLEMENTATION *
* ML 6/1/2001 MATRIX_WORK *
* ML 6/6/2001 SAFE_FLOATING_DIVIDE_FIX *
* ML 6/6/2001 MATRIX_TYPES *
* ML 6/8/2001 PASSING_PTR_DEREFERENCE_TO_REFERENCE *
* ML 6/11/2001 CORRECT_TYPES_FOR_RELATIONAL_COMPARISONS *
* ML 6/18/2001 t9260 MULTIPLE_POINTERS *
* AW 6/21/2001 Array_Initialization *
* ML 6/22/2001 VECTOR_OR_MATRIX_ASSIGNMENT_LHS_TEMPORARY_BUG *
* ML 6/22/2001 t9264 MEMORY_PTRS_AS_STRUCTURE_MEMBERS_PASSED_TO_FUNCS *
* AW 6/27/2001 t9137 VECTOR_DISPLAY *
* AW 6/28/2001 t9137 VARIABLE_DISPLAY *
* ML 6/27/2001 t9281 ORIGINC_EXPLICIT_CASTS *
* TD 6-28-01 t9243 SUPPORT_USER_DEFINED_ORIGINC_CLASSES *
* ML 7/3/2001 EXPLICITLY_CASTING_PTRS_TO_SIMPLE_NUMERIC_TYPES_AND_TO_STRUCTURES_TO_SIMPLE_NUMERIC_TYPES
* ML 7/5/2001 STRING_TO_CHARACTER_PTR *
* ML 7/6/2001 t9283 COMPLEX_TYPES *
* CPY v6.9037 6/25/01 t9247 ORIGIN_C_COMPILED_FUNC_RETURN_TEMP_SERIES *
* AW 07/08/2001 t8989 complex_class *
* TD 7-11-01 t9298 CALLBACK_FUNCTIONS_IN_ORIGINC *
* ML 7/6/2001 t9283 COMPLEX_TYPES *
* ML 7/11/2001 MUST_CHECK_FOR_ZERO_DENOMINATOR *
* AW 7/16/2001 UPDATE_CVT_EXPRESSION_NUMERIC *
* TD 7-23-01 ATTACH_2_SERIES_TO_A_CURVE *
* TD 7-24-01 ALLOW_GETTING_UNDERLYING_CPP_ARRAY_OBJECT_FROM_ARG *
* ML 8/3/2001 USE_ALWAYS_MEMORY_PTR_FOR_SIMPLE_TYPES *
* ML 8/6/2001 t9309 COM_SUPPORT_IN_ORIGIN_C *
* ML 8/8/2001 t9309 MORE_COM_ACCESS_WORK *
* ML 8/9/2001 ORIGIN_C_VARIANT *
* ML 8/13/2001 t9309 IMPLEMENTING_bool_FOR_COM *
* ML 8/14/2001 t9309 COM_METHODS *
* ML 8/21/2001 t9309 ASSIGNING_COM_VARIANT_ARRAYS_TO_VECTORS_OR_MATRICES *
* TD 8-22-01 t9463 IMPLEMENT_BITFIELDS_SUPPORT *
* TD t9407 CONSISTENT_CASTING_USE_CSTYLE_AND_CONCATENATE *
* CPY v6.9084 9/7/01 GET_STR_NEED_SEPARATE_DISPLAY_AND_ASSIGNMENT *
* TD 9-10-01 GETTING_TARGET_FROM_REFERNCE_OBJECT_INSIDE_METHODS *
* TD 9-13-01 t9514 ORIGIN_C_COLLECTION *
* ML 9/14/2001 GETTING_VECTOR_DATA_INTO_VARIANT_AS_ONEDIMENSIONAL_SAFEARRAY *
* ML 9/17/2001 GETTING_SPCBLOB_INTO_WORKSHEET *
* ML 9/25/2001 GROBJ_COLLECTION *
* TD 9-28-01 t9553 GET_ACTIVE_PAGE *
* ML 10/2/2001 MULTIPLE_MEMORY_PTR_DEREFERENCING_IMPROVEMENTS *
* ML 10/11/2001 HANDLE_ASSIGNING_ARRAY_PTRS_TO_MULTIPLE_PTR *
* ML 10/12/2001 MORE_WORK_SUBTRACTING_PTRS *
* ML 10/16/2001 t9596 ORIGINC_ROI_ACCESS *
* ML 10/23/2001 t9629 PROJECT_EXPLORER_ORIGINC_INTERFACE *
* ML 10/26/2001 HANDLING_WRONG_ARGUMENT_VARIANT_TYPES_IN_COM_EVENT_HANDLERS *
* TD 10-29-01 CATEGORICAL_DATA *
* ML 11/2/2001 CANNOT_RESET_STRING_AS_RETURNVALUE_AFTER_EXTERNAL_FUNCTION_CALL*
* TD 11-07-01 t9619 v6.9119 USING_IN_OC *
* TD 11-13-01 ADD_ATTACH_USING_WORKSHEET_AND_COLUMN_REF *
* TD 11-14-01 ORGANIZE_ORIGINC_CLASSES *
* TD 10-54-01 CONDITIONALLY_COMPILE_OUT_NON_DOUBLE_TEMPLATE_CREATION *
* YuI 11/17/01 v6.9128 t9727 OCPOINT_AND_OCRECT_CLASSES_IMPLEMENTATION *
* TD 11-26-01 CSHARP_STYLE_CONSIDERATION_OF_WRAPPER_OBJECTS_AS_BOOL *
* ML 12/17/2001 t9814 CREATING_GRAPH_FROM_TEMPLATE_IN_ORIGINC *
* TD 12-20-01 ADD_BASEPAGE_AS_BASE_OF_PAGE *
* TD 1-4-02 t9809 MATRIX_OBJECT_BASED_ON_COLUMN_OBJECT *
* TD 1-29-02 QA70-592 v6.9197 PROPER_HANDLING_OF_DATASET_RANGE_FROM_KERNEL *
* TD 2-12-02 QA70-771 v6.9211 ORIGINC_DEBUG_MODE *
* TD 2-15-02 INITIALIZE_OCDATA_TO_ZERO *
* ML 2/21/2002 QA70-965 APPENDING_TO_VECTORS_AND_DATASETS *
* TD 2-22-02 QA70-945 v7.0221 ASK_LABTALKMGR_IF_ORIGIN_CAN_CLOSE *
* TD 3-5-02 QA70-696 v7.0235 NEW_SCALE_CLASS_IN_OC *
* TD 3-7-02 BUFFER_SIZE_SET_GET_EXPOSED *
* YuI 3/13/2 QA70-1043 v7.0233 GET_ROI_DATA *
* TD 3-15-02 QA70-1145 NON_TEMPLATE_ABSTRACT_BASE_FOR_MATRICES_AND_VECTORS *
* AW 03/18/02 QA70-1105 DEBUG_VARIABLE_DISPLAY_IMPROVEMENT *
* YuI 3/25/2 QA70-1043 v7.0255 GET_ROI_DATA *
* ML 4/9/2002 QA70-929 ORIGINC_FUNCTION_POINTERS *
* AW 04/16/02 ADD_UPDATE_FLAG *
* YuI 4/29/02 v.70295 QA70-1642 DISPLAY_ELEMET_FUNCTION_FOR_EACH_OC_CLASS *
* AW 04/29/02 QA70-1636 DATASET_COPY_IN_ORIGINC *
* TD 5-04-02 KEY_INFO_PROPERTY_OF_WRAPPERS_WITH_DYNAMIC_SUBPROPERTIES *
* AW 05/05/02 v7.0302 QA70-1655 POINT_POINTF_POINTC_SUPPORT *
* ML 5/20/2001 QA70-1851 GETTING_SELECTED_COLUMNS_ORIGIN_C *
* TD 5-24-02 QA70-1882 v7.0310 TEMPLATE_DATA_ATTACHMENT_FAILURE_TREATED_AS_RUN_TIME_ERROR*
* RVD 6/13/2002 QA70-1955 v7.0318 ORIGIN_OBJECT_SHOW_METHOD *
* AW 06/18/02 v7.0323 QA70-2055 MORE_WORK_ON_GETAS_VECTOR *
* AW 06/26/02 v7.0328 QA70-2116 MOCABASETYPE_NAG_DLL_SUPPORT *
* TD 7-01-02 QA70-2181 v7.0331 LABTALK_STRING_VECTORS_TO_OCVECTORS *
* TD 7-5-02 QA70-2223 v7.0332 DIALOG_CLASS_FOR_DB_EVENT_CATCHING *
* AW 07/19/02 v7.0345 QA70-2397 ADD_OCDATAOBJECTBASE_CLASS *
* TD 7-26-02 QA70-2424 v7.0352 ORIGINC_WRAPPER_OBJECTS_CRASH_AFTER_CLOSING_PROJECT *
* TD 7-29-02 QA70-1882 @BC_AND_@BCM_FOR_OC_MEM_EXCEPTION *
* TCZ 07/6/02 QA70-2187 v7.0337 MATRIX_BASIC_OPERATION *
* TD 8-17-02 QA70-2715 v7.0374 GETDATAOBJECTC_IN_APPLICATION (Cleanup) *
* TD 8-23-02 QA70-2780 v7.0381 WRITING_ACROSS_BDRY_PROTECTION_DEF_WITH_SIZE_10*
* ML 8/24/2002 QA70-2805 PASSING_DISPINTERFACES_AS_ARGUMENTS_OF_EVENT_HANDLERS*
* TD 8-26-02 QA70-2780 v7.0384 SEPERATE_VARS_FOR_DEBUG_AND_EXTRA_MEMORY *
* TD 10-4-02 QA70-2177 v7.0408 ORIGIN_C_ACCESS_TO_STORAGE *
* TD 10-21-02 QA70-3181 ORIGINC_CLASSES_FOR_DIALOG_MEMBERS *
* CPY 10/28/02 v7.0423 MAKING_RELEASE_CONDITIONAL_ON_OC_CONTROLS_IN_DDK *
* TD 10/29/02 QA70-3182 v7.0424 OCDIALOG_MSG_MAP_IMPLEMENT *
* TD 11-12-02 QA70-1644 v7.0433 MULTIPLE_GRAPHS_WITH_DIALOG_BUILDER *
* CPY 11/15/02 v7.0434 QA70-3212 BASIC_CWND_SUPPORT_SIMPLE *
* CPY 11/5/02 v7.0428 QA70-3213 ADD_FONT_INIT_TO_TREE_EDITOR *
* AW 12/03/02 QA70-2196 v7.0477 POINTER_OBJECT_VARIABLE_DISPLAY *
* ML 12/5/2002 QA70-3458 CASTING_LPVOID_TO_DOUBLE_MEMORY_PTR *
* TD 12-12-02 QA70-3133 v7.0452 NO_OC_BUILD_REQUEST_WHILE_EXECUTION *
* DVT 12/18/02 QA70-3537 v7.0467 ADD_MATLAB_CLASS_FOR_COMMUNICATION *
* ML 12/20/2002 QA760-3535 TEMPORARY_ACTIVEX_CONTROL_FIX_BETTER *
* TD 12-23-02 TREE_CLASS_IN_EXTERNAL_DLL_SHARE_STRUCTURE_DETAILS *
* AW 12/24/02 QA70-3477 v7.0473 CASTING_ORIGINCOBJECT_TO_DERIVED_CLASS *
* TD 1-14-03 QA70-3671 v7.0487 LIMTED_ACCESS_TO_ACTIVEX_CONTROLS *
* TD 1-27-02 TREE_CLASS_IN_EXTERNAL_DLL_SHARE_STRUCTURE_DETAOILS *
* TD 2-3-03 QA70-3681 ALLOW_DOTTED_ACCESS_TO_OBJECT_FORMAT_AND_TREENODE *
* DVT 2/11/03 QA70-3684 v7.0510 ORIGIN_AUTOMATION_SERVER *
* JCG 03/10/03 QA70-4013 v7.0531 CLEAN_UP_OC_MTX_AND_RECT_COODINATES *
* ML 3/14/2003 QA70-4067 PASSING_DATASETS_FROM_LABTALK_TO_STRING_VECTORS_AND_RETURNING_STRING_VECTORS
* ML 3/23/2003 QA70-4113 INITIALIZING_VECTOR_FROM_COLUMN_FOR_WRITEBACK *
* DVT 3/26/03 QA70-4139 v7.0545 OC_CATEGORICAL_INFORMATION_METHOD *
* YuI 3/31/03 v7.0550 QA70-4160 NEW_OC_OPERATION_HANDLING *
* ML 4/14/2003 QA70-4264 GETTING_ARGUMENT_PTR_IF_NULL_AS_NULL *
* DVT 4/14/03 QA70-4257 v7.0560 OC_ORIGINOBJECT_GETNAME_MATHOD *
* DVT 4/21/03 ADD_DOTTED_OIDE_TOOLTIPS *
* ML 5/6/2003 QA70-4373 BETTER_CURVE_ARITHMETICS *
* YuI 5/05/03 v7.0578 QA70-4357 CURVE_AS_INPUT_OF_OPERATION *
* CPY 5/28/03 QA70-3737 v7.0594 VEC_SET_SUB_VEC_MUST_CHECK_MIXED *
* TD 5-30-03 QA70-4563 REFERNCES_TO_WRAPPER_DATA_NEEDS_DETACHMENT_AFTER_DETACHED_FROM_ALL_REFS*
* ML 5/29/2003 QA70-4562 CURVE_EXTENSION_WITH_RELATED_DATASETS *
* RVD 6/13/2003 QA70-4650 v7.0601 OBJECT_PROPERTY_ACCESS *
* AW 06/29/03 QA70-4733 v7.0612 SMART_COUNT_NUMBER_FOR_REF *
* TD 7-30-03 EXPLICIT_DOWNCAST *
* ML 10/15/2003 QA70-5361 UPDATING_WKS_FROM_EXCEL_FOR_GETTING_INTO_MATRIX *
* TD 11-3-03 QA70-5067 MESSAGE_HANDLING_FROM_BASE_CLASS_OF_WINDOW *
*------------------------------------------------------------------------------*/
#ifndef _MOCASCRIPT_H
#define _MOCASCRIPT_H
//-------- CPY 10/28/02 v7.0423 MAKING_RELEASE_CONDITIONAL_ON_OC_CONTROLS_IN_DDK
//#include "stdafx.h"
//--------
#include "mocadef.h" // Required header file
#include "LTtype.h"
////////////////////////////////////////////////////////////////////////////
////
//// THE Following constants are enumerated types
//// every string type must have a unique numeric type 0...32
//// the limitation on the range comes from our use of these
//// constatnts as a bit in DWORD
////
/// TD 10-54-01 CONDITIONALLY_COMPILE_OUT_NON_DOUBLE_TEMPLATE_CREATION
//#define CONDITIONALLY_COMPILE_OUT_NON_DOUBLE_TEMPLATE_CREATION
/// end CONDITIONALLY_COMPILE_OUT_NON_DOUBLE_TEMPLATE_CREATION
/// TD 01/17/2001 t8820 USE_NUMERIC_IDS_FOR_TYPE_NAMES
/*
enum{
LTT_ID_INT = 1,
LTT_ID_DOUBLE,
LTT_ID_COMPLEX,
LTT_ID_STRING,
LTT_ID_VECTOR,
LTT_ID_POINTER,
LTT_ID_FUNCTION,
LTT_ID_USER
};*/
#include "OClassIDs.h" //CPY 11/19/02 move all const into this separate file
/// TD 11-26-01 CSHARP_STYLE_CONSIDERATION_OF_WRAPPER_OBJECTS_AS_BOOL
#define IS_WRAPPER_CLASS_ID(_nID) IsWrapperClassID((_nID))
BOOL IsWrapperClassID(UINT nId); //Declaration in MOCascript.cpp shared by the dll
/// end CSHARP_STYLE_CONSIDERATION_OF_WRAPPER_OBJECTS_AS_BOOL
/// end USE_NUMERIC_IDS_FOR_TYPE_NAMES
/// AW 12/24/02 QA70-3477 v7.0473 CASTING_ORIGINCOBJECT_TO_DERIVED_CLASS
#define IS_OKWRAPPER_CLASS_ID(_nID) IsOKWrapperClassID((_nID))
BOOL IsOKWrapperClassID( UINT nId );
/// END CASTING_ORIGINCOBJECT_TO_DERIVED_CLASS
/// TD 10-21-02 QA70-3181 ORIGINC_CLASSES_FOR_DIALOG_MEMBERS
#define MIN_CONTROL_ID LTT_ID_CONTROL
//#define MAX_CONTROL_ID LTT_ID_CONTROL_EDIT
#define MAX_CONTROL_ID LTT_ID_CONTRO_END
#define IS_CONTROL_ID(_ID) ((_ID) >= MIN_CONTROL_ID && MAX_CONTROL_ID >= (_ID))
/// TD 1-10-03 There are two types of Window derived calsses, The ones that's derived from the control class, are in DDK
//#define IS_CWND_WRAPPER(_ID) (LTT_ID_UD_CLASS == (_ID )|| LTT_ID_CWND == (_ID) || LTT_ID_WNDCTRL_ORIGIN_GRAPH == (_ID))
#define IS_CWND_WRAPPER(_ID) (LTT_ID_UD_CLASS == (_ID )|| (LTT_ID_CWND_WRAPPER_BEGIN <(_ID) && LTT_ID_CWND_WRAPPER_END > (_ID)))
/// end ORIGINC_CLASSES_FOR_DIALOG_MEMBERS
/// TD 12-15-02 QA70-3183 v7.0464 TREE_IN_OC
/// RVD 6/13/2003 QA70-4650 v7.0601 OBJECT_PROPERTY_ACCESS
//#define IS_TREE_TYPE_ID(_ID) ((_ID) >= LTT_ID_TREE_NODE && LTT_ID_TREE >= (_ID))
#define IS_TREE_TYPE_ID(_ID) ((_ID) >= LTT_ID_PROPERTYNODE && LTT_ID_TYPEDTREE >= (_ID))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -