📄 orgdll.h
字号:
///CPY v3.98 1/15/95 EGO_MESSAGE, remove below
//#ifndef EGO_CMD
/* return codes for set_value, get_value */
#define EGOR_NO 0
#define EGOR_YES 1
#define EGOR_ERR 2
#define EGO_SET_VALUE 17 /* set single value */
#define EGO_GET_VALUE 18 /* get single value */
#define EGO_SET_STR 19
#define EGO_GET_STR 20
///CPY v3.98 1/15/95 EGO_MESSAGE, move here from labgobj.h
//#define EGO_CMD 21
///EJP v3.98 01-02-96 UIM_OBJ_HANDLING
///sth v4.09 5/21/96 REMOVING_DOUBLE_EGO_CMD_DEFINITION
//#ifdef WNDBASED_UIM_OBJ
///end REMOVING_DOUBLE_EGO_CMD_DEFINITION
//CPY v3.98 1/16/95 EGO_MSG_CONSISTANT
//#define EGO_CMD (21 + (MASK_COMMON_MSG | MASK_MSG_NEED_CALLBACK))
//#define EGO_CMD_INIT (22 + (MASK_COMMON_MSG))
#define EGO_CMD (1 + (MASK_COMMON_MSG | MASK_MSG_NEED_CALLBACK))
#define EGO_CMD_INIT (2 + (MASK_COMMON_MSG))
///
///sth v4.09 5/21/96 REMOVING_DOUBLE_EGO_CMD_DEFINITION
//#else
//#define EGO_CMD 21
//#define EGO_CMD_INIT 22
//#endif // NO_WNDBASED_UIM_OBJ
///end REMOVING_DOUBLE_EGO_CMD_DEFINITION
///end UIM_OBJ_HANDLING
//#endif //EGO_CMD
///CPY v3.98 VECTOR_ASSIGNMENT, can not use 22 and 23
///EJP v3.98 UIM_OBJ_HANDLING, add common mask for wndbased uim objs.
///#define EGO_GET_VECTOR_SIZE 37
///#define EGO_SET_VECTOR_SIZE 38
#define EGO_GET_VECTOR_SIZE (3 + (MASK_COMMON_MSG)) //CPY v3.98 1/16/95 EGO_MSG_CONSISTANT, after EGO_CMD_INIT
#define EGO_SET_VECTOR_SIZE (4 + (MASK_COMMON_MSG))
/// see labgobj.h for range of other numbers
#ifndef LFS_NOT_IN_LIST
/* copied from labstr.h on 7/28/93 */
typedef struct STRLIST {
USHORT id;
LPSTR str;
}STRLIST,FAR *LPSTRLIST;
int FAR PASCAL LABUTIL_FindString(LPSTRLIST lpList,LPSTR lpstr);
#define LFS_NOT_IN_LIST 32764
#endif
/*******************
* LabCntrl definitions and messages
*******************/
typedef ULONG (FAR PASCAL *LPFNPROCESS)(HWND,USHORT,LPSTR,LPSTR,LPCALLBK);
#define LABCNTRL_PROCESS 2
#define LABCNTRL_STATE_CHANGE 3
#define LABCNTRL_WIN_OPEN 4/* any window opens */
#define LABCNTRL_WIN_CLOSE 5
#define LABCNTRL_BEGIN_EDIT 6
#define LABCNTRL_END_EDIT 7
#define LABCNTRL_START 10
#define LABCNTRL_STOP 11
#ifdef DDE_DATA_STRING
/******** lpwks processing ********/
int ProcessOneCol(LPDATAWKS lpWks,int nCol,FARPROC lpfn,ULONG lParam1,ULONG lParam2);
#define POC_BEGIN 0
#define POC_END 1
#define POC_PROCESS 2
/** callback function has the following form
int FAR PASCAL callback(LPSTR lpData,USHORT wFormat,ULONG lParam1,ULONG lParam2,USHORT msg);
**/
#endif
/* process info function
* ULONG FAR PASCAL ProcInfo(int type,int msg,LPSTR lpstr)
* and msg is defined below
*/
#define PIF_LPFN_BY_TYPE 0
#define PIF_LPFN_BY_NAME 1
/* get function ptr of specified type */
#define PIF_GET_TOTAL_OBJS 2 /* number of objects */
#define PIF_GET_BMP 3 /* get the bmp of the specified obj */
#define PIF_RELEASE_BMP 4
#define PIF_GET_NAME 5 /* get the name of the spec obj */
/// Module Error codes 12/6/94
// error message groups
#define ERRGP_ORIGIN 0x0000 // from A
#define ERRGP_SETTING 0x2000
#define ERRGP_ARGUMENT 0x4000
#define ERRGP_HARDWARE 0x6000
#define ERRGP_EXTERNAL 0x8000
#define ERRGP_MEMORY 0xA000
#define ERRGP_MISC 0xC000
// 12/28 km, the above errors are all in a module error
//#define ERRGP_MODULE 0xC000 /// interface to Origin
// 0xE000 reserved for later use
// error message handling methods, IN .errout
enum {
ERROUT_NO_OUTPUT,
ERROUT_SCRIPT_WINDOW,
ERROUT_SAVE_FILE,
ERROUT_DIALOG_BOX,
ERROUT_STATIS_WINDOW,
};
//------------- CPY v5.036 1/22/98 t3479 MODATA_SET_RANGE_CHANGE
// constants for when data is changed in a series(dataset), what kind of redraw should take place
// used mainly in the SET_RANGE_REDRAW callback function
#define SR_REDRAW_NONE 0x8000 /// for debug purpose to ensure proper calling parameter range
#define SR_REDRAW_REALTIME 0x8001
#define SR_REDRAW_REFRESH 0x8002
#define SR_REDRAW_REALTIME_WKS (SR_REDRAW_REALTIME | 0x8004)
#define SR_REDRAW_REALTIME_SCOPE (SR_REDRAW_REALTIME |0x8008) // CPY v6.0187 4/22/99 OPP_SCOPE_MODE
#define SR_MASK_REALTIME_ON_IDLE 0x0010 ///---- CPY v5.039 b3558 REALTIME_DRAW_BUFFERRING
//------------- MODATA_SET_RANGE_CHANGE
/// ML v4.09 4/26/96 MOVED_TO_PSDLL_H
/*
#ifdef ORG_DATA_MASK
/// ML 3.981 1/23/96 MOVED_FROM_MARK_H_TO_ORGDLL_H
#define MAX_NUM_MASKS 255
#define MASK_VARIABLE_NAME_SIZE WORD_SIZE
/// end MOVED_FROM_MARK_H_TO_ORGDLL_H
/// ML v4.00 1/25/96 TO_PROVIDE_COMMUNICATION_WITH_LABMASK
/// ML v4.08 4/11/96 NAME_OF_SUBJECT_COLUMN_PLUS_ADDITIONAL_STILL_UNUSED_MEMBERS
// Must be a multiple of 8, because it will be in a structure
#define TW_COLUMN_NAME_SIZE 32
/// end NAME_OF_SUBJECT_COLUMN_PLUS_ADDITIONAL_STILL_UNUSED_MEMBERS
#define TWOWAYMEMOBJNAME "_TWY"
typedef struct tagTwoWayMemObjHeader {
ULONG ulSizeOfThisHeader; // it has to be set to the size of this header when created.
DWORD dwKindOfWorksheet; // 0 for the original (masked) worksheet (it should be when object is
// created),
// 1 for the fully (two-way) extracted cells
// 2 for the twoway-ANOVA arranged worksheet (after 'mark.BoxesToCols()')
ULONG ulNumLevsFirstWay;
ULONG ulNumLevsSecondWay;
DWORD dwOnlyNumTextSize; // HIWORD contains the size of the strings
// used to store formatted numeric levels for
// the first way if it is numeric (otherwise it has to be zero)
// LOWORD for the second way.
/// ML v4.08 4/7/96 STORE_GAPSIZE_IN_MEMORY_OBJECT
//DWORD dwNotUsed;
DWORD dwGapSize; // Used by MARK object (Boxes To Cols) to store the size
// of the gap.
/// end STORE_GAPSIZE_IN_MEMORY_OBJECT
DWORD dwKinds; // first bit for first way, second bit for second way
DWORD dwSizes; // HIWORD contains the size of the first way variable
// (for example: for double it will be eight (which is automatic
// if the kind is numeric), for textual it will be the string
// length).
// LOWORD contains the size of the second way variable
ULONG ulTotNumMasks;
ULONG dwNumCellObservations; // the size of the cell with the maximum number of observations
/// ML v4.08 4/11/96 NAME_OF_SUBJECT_COLUMN_PLUS_ADDITIONAL_STILL_UNUSED_MEMBERS
// The two character buffers are used to store the names of the two columns
// to which the masks are set. The first one must be the name of the subject
// column, the second one the name of the response column.
// If these two are empty, then it is not any of the two repeated measurement
// cases (subject column is relevant only if it is a repeated measurements case).
char szSubjectColumnName[TW_COLUMN_NAME_SIZE]; // multiple of 8
char szResponseColumnName[TW_COLUMN_NAME_SIZE]; // multiple of 8
/// ML v4.08 4/17/96 STORE_THE_NAME_OF_THE_SECOND_FACTOR_COLUMN
// We need to store the name of the second factor column so that we can
// know those names when transforming the worksheet in mark object
char szSecFactColumnName[TW_COLUMN_NAME_SIZE];
/// end STORE_THE_NAME_OF_THE_SECOND_FACTOR_COLUMN
DWORD dwUnusedOne;
DWORD dwUnusedTwo;
DWORD dwUnusedThree;
DWORD dwUnusedFour;
DWORD dwUnusedFive;
DWORD dwUnusedSix;
DWORD dwUnusedSeven;
DWORD dwUnusedEight;
/// end NAME_OF_SUBJECT_COLUMN_PLUS_ADDITIONAL_STILL_UNUSED_MEMBERS
} TWHEADER, FAR * LPTWHEADER;
// Total size of the memory that follows the header must be:
// HIWORD(dwSizes) * ulNumLevsFirstWay + LOWORD(dwSizes) * ulNumLevsSecondWay +
// + HIWORD(dwOnlyNumTextSize) * ulNumLevsFirstWay +
// + LOWORD(dwOnlyNumTextSize) * ulNumLevsSecondWay +
// + ulTotNumMasks * [ HIWORD(dwSizes) + LOWORD(dwSizes) ]
// The first row stores the levels for both ways, while the second stores the
// associations for each mask (starting with mask number 1).
//
// The memory structure that follows the header looks like this:
// 1) a series of ulNumLevsFirstWay elements of size HIWORD(dwSizes),
// 2) a series of ulNumLevsSecondWay elements of size LOWORD(dwSizes),
// 3) a series of ulNumLevsFirstWay elements of size HIWORD(dwOnlyNumTextSize)
// (does not exist if the first way is textual).
// 4) a series of ulNumLevsSecondWay elements of size LOWORD(dwOnlyNumTextSize)
// (does not exist if the second way is textual).
// 5) a series of ulTotNumMasks elements of the size [ HIWORD(dwSizes) + LOWORD(dwSizes) ].
//
// The purposes are the following:
// 1) and 2) store the levels for the first and second factor. If any of these factors
// is numeric, they are stored as numbers (not text).
// 3) and 4) are used to store according to the numeric format
// of the orginal column the numeric levels (they do not exist for textual).
// 5) stores the mask associations (beginning with the mask number one).
//
/// end TO_PROVIDE_COMMUNICATION_WITH_LABMASK
///sth v4.08 4/8/96 DOUBLE_ANOVA_WKS
#define TWH_TWO_ANOVA_ARRANGED 2
///end DOUBLE_ANOVA_WKS
/// ML 4/20/96 ONE_WAY_MEMORY_OBJECT_FOR_ONEWAY_REPEATED_MEASUREMENT_PURPOSES
#define OW_COLUMN_NAME_SIZE TW_COLUMN_NAME_SIZE
#define ONEWAYMEMOBJNAME "_OWY"
typedef struct tagOWHEADER {
ULONG ulSizeOfThisHeader;
DWORD dwKindOfWorksheet; // 0 for the original worksheet (with masks set), 1 for fully extracted
DWORD dwNumLevels;
DWORD dwUnused;
char szSubjectColumnName[OW_COLUMN_NAME_SIZE]; // multiple of 8
char szResponseColumnName[OW_COLUMN_NAME_SIZE]; // multiple of 8
DWORD dwUnusedOne;
DWORD dwUnusedTwo;
} OWHEADER, FAR *LPOWHEADER;
/// end ONE_WAY_MEMORY_OBJECT_FOR_ONEWAY_REPEATED_MEASUREMENT_PURPOSES
#endif // ORG_DATA_MASK
*/
///JLIU nad DSC v4.982 5/7/97 MOVE_FROM_ORGDLL_TO_MODLL for the ati modll
///#ifdef POWER_STAT
/// #include "psdll.h"
///#endif
/// end MOVE_FROM_ORGDLL_TO_MODLL
/// end MOVED_TO_PSDLL_H
///CPY v4.10 6/11/96 WKS_DLL_MODI_ADD_CALLBACK, add last argument as lpCallBack, define this as a separate one for used in Origin
#define ORG_WKS_DLL_MODI_PARAMS HWND hWnd,UINT msg,LONG nParam,DWORD lParam
///CPY v4.10 6/10/96 WKS_DLL_MODIFICATION_SUPPORT
/// DLL export this function as ORDINAL number 30
#define WKS_DLL_MODI_PARAMS ORG_WKS_DLL_MODI_PARAMS, LPCALLBK lpOriginCallBack
typedef DWORD (CALLBACK* O_WKS_DLL_MODI)(WKS_DLL_MODI_PARAMS);
///hWnd=wks window for all messages
/// messages are defined as
/// All the messages should return this if no handling:
#define DLL_DID_NOT_HANDLE 0xEDCBABCD
#define WDM_BEGIN 0x1000 /// nParam=0, lParam = (LPSTR) wksName, return 0 if OK, DLL_DID_NOT_HANDLE if no handling
#define WDM_END (WDM_BEGIN + 1) /// nParam=lParam=0, hWnd=wks window, return 0 if OK, 1 if error
#define WDM_START_MSG 0x0100
#define WDM_GET_CELL_COLOR_INDEX (WDM_START_MSG + 1)
/// lParam = lpLong is pointer to two LONGs:
/////// lpLong[0] = col number, 1,2,3,..., lpLong[1] =row num. = 0,1,2,...,
// lpLong[0] = col number, 0,1,2,3,..., lpLong[1] =row num. = 0,1,2,..., // ML v4.11 7/8/96 CHANGE_OFFSET (only comment changes)
// nParam shoould contain the color number which needs to be skipped
// return color index :0,1,2,.., or -1 for the particular cell not to be colored
// WDM_WILL_COLOR should be sent first to see if the DLL will
// bother to color at all.
#define WDM_WILL_COLOR (WDM_START_MSG + 2)
// returns FALSE if nothing colored
#define WDM_COLUMN_DLG (WDM_START_MSG + 3)
// when doubleclicking on a column header. nParam = col. number 1-offset
///CPY: lParam contains the Origin instance handle HINSTANCE
// returns DLL_DID_NOT_HANDLE to indicate proceeding as usual
// 0 if handled.
/// more messages are defined with base id + n
/// end WKS_DLL_MODIFICATION_SUPPORT
/// ML v4.133 9/24/96 EXE_CALLING_DLL_FOR_GRAPH
#ifdef EXE_CALLING_DLL_FOR_GRAPH
#define ORG_GRAPH_DLL_ACCESS_PARAMS HWND hWnd, UINT msg, DWORD dwParam, LPARAM lParam
#define GRAPH_DLL_ACCESS_PARAMS ORG_GRAPH_DLL_ACCESS_PARAMS, LPCALLBK lpOriginCallBack
// the function must be exported at ID_EXPORT_GRAPH_ACCESS:
typedef DWORD (CALLBACK* O_GRAPH_DLL_ACCESS)(GRAPH_DLL_ACCESS_PARAMS);
// Possible values of msg:
#define GDA_MESSAGE_START 1
enum {
GDA_BOXCHARTS_ETC = GDA_MESSAGE_START,
/// ML v4.133 9/27/96 IDS_OF_BASIC_POWERSTAT_METHODS
GDA_GET_METHOD_TEMPL_SUBDIR,
/// end IDS_OF_BASIC_POWERSTAT_METHODS
};
/// YN 11/18/96 ADD_CONDITIONAL_COMPILATION
#else // ! EXE_CALLING_DLL_FOR_GRAPH
#define ORG_GRAPH_DLL_ACCESS_PARAMS
#define GRAPH_DLL_ACCESS_PARAMS
/// end ADD_CONDITIONAL_COMPILATION
#endif // EXE_CALLING_DLL_FOR_GRAPH
/// end EXE_CALLING_DLL_FOR_GRAPH
/// ML 7/20/98 SCRIPT_RESOURCE_DLL_DIALOGS
#ifdef SCRIPT_RESOURCE_DLL_DIALOGS /// added by CPY 8/11/98
typedef double FAR *LPDOUBLE;///CPY 4/19/99 added for compile release problem
/// ML 4/19/99 t4345 ADDING_SUPPORT_FOR_SCRIPT_BASED_RESOURCE_DLLS
//#define ORESPRDLLENTRYARGUMENTS DWORD dwMsg, LPSTR lpszFirst, LPSTR lpszSecond, LPSTR lpszThird, LPSTR lpszArg, LPDOUBLE lpValue
// dwCtrl:
#define OKSCRIPTRESDLL_EXECUTE 1UL
#define OKSCRIPTRESDLL_UNINIT 2UL
#define OKSCRIPTRESDLL_SET_CALLBACK 3UL
#define OKSCRIPTRESDLL_SET_TEXTCALLBACK 4UL
#define OKSCRIPTRESDLL_OBJEXECUTE 5UL
#define ORESPRDLLENTRYARGUMENTS DWORD dwCtrl, DWORD dwMsg, LPSTR lpszFirst, LPSTR lpszSecond, LPSTR lpszThird, LPSTR lpszArg, LPDOUBLE lpValue
/// end ADDING_SUPPORT_FOR_SCRIPT_BASED_RESOURCE_DLLS
typedef LONG (WINAPI *PFNORESPRDLL)(ORESPRDLLENTRYARGUMENTS);
#endif //SCRIPT_RESOURCE_DLL_DIALOGS
/// end SCRIPT_RESOURCE_DLL_DIALOGS
/// DSB v3.980 12/15/95 TITLE_DEFS
#define ORIGIN_EXE_TITLE "ORIGIN40.EXE"
#define LABENG_DLL_TITLE "LABENG40.DLL"
/// End TITLE_DEFS
///sth v4.982 b2083 5/7/97 RIGHT_MOUSE_DOWN_CODE_BLOCK
#define SM_WPARAM_DO_NOT_PROCESS_LBUP_SCRIPT 99
///end RIGHT_MOUSE_DOWN_CODE_BLOCK
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
#ifdef __cplusplus
} /* end of __cplusplus */
#endif
/////////////////////////////////////////////////////////////////////////////////
#endif //#ifndef _ORGDLL_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -