📄 templateex.h
字号:
//sunwangme@hotmail.com
#pragma once
#include <atlstr.h>
#include <vector>
#include <map>
#include<string>
#include "iocs.h"
#define SCRIPT_INIT_FOO "init"
struct CCallBackTag
{
CString strPatternTask;
CString strPatternContent;
CString strFunction;
};
static CIOCriticalSection s_csJsCall;
class CTemplateEx
{
public:
//将脚本和相关回调全部准备在内存
static void Load(const CString& strPath);
static void LoadScript(const CString& strPath);
static void SetStoreCallback(LPCSTR lpszPatternTask,LPCSTR lpszFoo)
{
CCallBackTag tag;
tag.strFunction=lpszFoo;
tag.strPatternTask=lpszPatternTask;
s_arrStoreCallback.push_back(tag);
}
static void SetStoreCallbackEx(LPCSTR lpszPatternTask,LPCSTR lpszPatternContent,LPCSTR lpszFoo)
{
CCallBackTag tag;
tag.strFunction=lpszFoo;
tag.strPatternTask=lpszPatternTask;
tag.strPatternContent=lpszPatternContent;
s_arrStoreCallbackEx.push_back(tag);
}
static void SetStoreCallbackEx2(LPCSTR lpszPatternTask,LPCSTR lpszPatternContent,LPCSTR lpszFoo)
{
CCallBackTag tag;
tag.strFunction=lpszFoo;
tag.strPatternTask=lpszPatternTask;
tag.strPatternContent=lpszPatternContent;
s_arrStoreCallbackEx2.push_back(tag);
}
static void SetReplaceCallback(LPCSTR lpszPatternTask,LPCSTR lpszFoo)
{
CCallBackTag tag;
tag.strFunction=lpszFoo;
tag.strPatternTask=lpszPatternTask;
s_arrReplaceCallback.push_back(tag);
}
public:
//每次调用首先初始一个独立的vm,然后在vm将函数注册然后执行调用
static void CallStoreCallback(LPCSTR lpszTask);
static void CallReplaceCallback(LPCSTR lpszTask);
static void CallStoreCallbackEx(LPCSTR lpszTask,LPCSTR lpszContent);
static void CallStoreCallbackEx2(LPCSTR lpszTask,LPCSTR lpszHttpHeader,LPCSTR lpszContent);
static void CallInit();
static std::map<std::string,std::string> s_arrMapConstant;
private:
//内部函数
static BOOL CheckTask(LPCSTR lpszPattern,LPCSTR lpszString);
public:
static BOOL CheckContent(LPCSTR lpszPattern,LPCSTR lpszString,CString& strResult);
private:
//保存脚本到内存
static CString s_strScript;
static std::vector<CCallBackTag> s_arrStoreCallback;
static std::vector<CCallBackTag> s_arrStoreCallbackEx;
static std::vector<CCallBackTag> s_arrStoreCallbackEx2;
static std::vector<CCallBackTag> s_arrReplaceCallback;
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -