#define PROG_CMD_LEN 256 //定義程序命令行長度
#define PROG_RES_LEN 128
#define PROG_VAL_LEN 256
#define PROG_TYPE 0x0F //類型
#define PROG_TYPE_COMMAND 0x01 //命令類型
#define PROG_TYPE_ASM 0x02 //彙編類型
#define PROG_TYPE_LABEL 0x04 //標籤類型
#define PROG_TYPE_COMMENT 0x08 //註釋類型
#define PROG_ATTR 0xF0
#define PROG_ATTR_EXECUTED 0x10
#define PROG_ATTR_ERROR 0x80
// 腳本執行表This is the table for Script Execution
typedef struct t_wndprog_data {
unsigned long line; //行
unsigned long size; // 地址空間大小Size occupied by element in address space
unsigned long type; //類型 Type of data element, TY_xxx
char command[PROG_CMD_LEN]; //命令
char result[PROG_RES_LEN]; //返回值
char values[PROG_VAL_LEN]; //值
unsigned long eip; // eip before execution
unsigned char pause; // 腳本斷點script breakpoint
int jumpto; // 跳轉到to display jumps in script window
} t_wndPROG_data;
LRESULT CALLBACK wndprog_winproc(HWND hw,UINT msg,WPARAM wp,LPARAM lp); //囘調函數窗口程序窗口過程
void initProgTable(); //初始化程序表
int wndprog_sort_function(const t_sortheader *p1,const t_sortheader *p2,const int sort); //分類函數
int wndprog_get_text(char *s, char *mask, int *select, t_sortheader *ph, int column); //獲取文本
void InvalidateProgWindow(void); //廢止窗口
void FocusProgWindow(void); //焦點窗口
int addProgLine(int line, string & command, int type=false); //添加行
int setProgLineEIP(int line, int eip); //設置行得eip
int setProgLineValue(int line, string& value); //設置行的值
int setProgLineValue(int line, DWORD value); //設置行的值
int setProgLineValueFloat(int line, long double value); //設置行值float
int setProgLineResult(int line, var& result); //設置行返回值
int setProgLineResult(int line, string& result);
int setProgLineResult(int line, DWORD result);
int setProgLineResultFloat(int line, long double result);
int isProgLineBP(int line); //判斷行斷點
int isProgLineComment(int line); //判斷行註釋
int getProgLineType(int line); //判斷行類型
int setProgLineAttr(int line,int type) ;
void clearProgLines(); //清除行
void resetProgLines(); //重設行
bool editProgLine(t_wndprog_data *ppl) ; //編輯行
没有评论:
发表评论