⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dsacdobject.h

📁 dsacd_ivr 的实现
💻 H
📖 第 1 页 / 共 2 页
字号:
// dsACDObject.h: interface for the dsACDObject class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DSACDOBJECT_H__86EF7403_D4ED_4C15_B024_FB094E8E76F6__INCLUDED_)
#define AFX_DSACDOBJECT_H__86EF7403_D4ED_4C15_B024_FB094E8E76F6__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "dsACDStruct.h"

/***********************************************************************
						所有策略语句类的基类
***********************************************************************/
class dsACDObjectBase
{
public:
	dsACDObjectBase(int id) : nID(id) { }
	virtual ~dsACDObjectBase() {}

	virtual	PVOID Read() const = 0;
	virtual void Write(PVOID p) = 0;
	virtual void WritetoFile (CStdioFile& m_IOFile, int flag) = 0;

public:	
	int			nID;
};

/***********************************************************************
					处理链表结构中结点信息的类
***********************************************************************/
class dsMapHTreeToObj
{
public:
	dsMapHTreeToObj() {pListHead = pListTail = NULL;}
	~dsMapHTreeToObj() {
		while (pListHead!=NULL)
		{
			ListMapItem *pTemp = pListHead;
			pListHead = pListHead->pListNext;
			delete pTemp->pACDObj;
			delete pTemp;		
		}
	}

	struct ListMapItem {
		HTREEITEM	hTree;
		dsACDObjectBase * pACDObj;
		ListMapItem * pListNext;
	} * pListHead, * pListTail;

//	在界面上增加一条语句时,在ListMapItem链表中添加一条对应的结点信息
	void AddMapItem(HTREEITEM h, dsACDObjectBase *pObj);

//	在界面上删除一条语句时,在ListMapItem链表中去掉对应的结点信息
	void RemoveMapItem(HTREEITEM h);

//	删除ListMapItem链表中所有结点的信息
	void RemoveAllListItem();

	void SetAt(HTREEITEM h, dsACDObjectBase *pObj);

//	在ListMapItem链表中把HTREEITEM hOldTree改成hNewTree
	void SetTreeItem(HTREEITEM hOldTree, HTREEITEM hNewTree);

//	在ListMapItem链表中寻找对应于HTREEITEM h的结点
	ListMapItem * Find(HTREEITEM h);

//	在ListMapItem链表中寻找pItem结点的前一个结点
	ListMapItem * GetPreItem(ListMapItem *pItem);

//	在ListMapItem链表中获取对应于HTREEITEM h的结点的具体信息(即:该结点是什么类型的对象)
	dsACDObjectBase * FindObj(HTREEITEM h);
};

extern dsMapHTreeToObj	g_MapObj;

/***********************************************************************
							数据定义语句
***********************************************************************/
class dsACDDataDefine : public dsACDObjectBase
{
public:
	dsACDDataDefine() : dsACDObjectBase(0X101) {}
	~dsACDDataDefine() {}

	virtual	PVOID Read() const {return NULL;}
	virtual void Write(PVOID p) {}
	virtual void WritetoFile (CStdioFile& m_IOFile, int flag);
};

/***********************************************************************
							返回值语句
***********************************************************************/
class dsACDReturnValue : public dsACDObjectBase
{
public:
	dsACDReturnValue() : dsACDObjectBase(0X102) {}
	~dsACDReturnValue() {}

	virtual	PVOID Read() const {return NULL;}
	virtual void Write(PVOID p) {}
	virtual void WritetoFile (CStdioFile& m_IOFile, int flag);
};

/***********************************************************************
							流程开始语句
***********************************************************************/
class dsACDFlowBegin : public dsACDObjectBase
{
public:
	dsACDFlowBegin() : dsACDObjectBase(0X301) {}
	~dsACDFlowBegin() {}

	virtual	PVOID Read() const {return NULL;}
	virtual void Write(PVOID p) {}
	virtual void WritetoFile (CStdioFile& m_IOFile, int flag);
};

/***********************************************************************
							流程结束语句
***********************************************************************/
class dsACDFlowEnd : public dsACDObjectBase
{
public:
	dsACDFlowEnd() : dsACDObjectBase(0X302) {}
	~dsACDFlowEnd() {}

	virtual	PVOID Read() const {return NULL;}
	virtual void Write(PVOID p) {}
	virtual void WritetoFile (CStdioFile& m_IOFile, int flag);
};

/***********************************************************************
							变量定义语句
***********************************************************************/
class dsACDObjVariable : public dsACDObjectBase
{
public:
	dsACDObjVariable() : dsACDObjectBase(0X103) { pInfo = NULL;}
	~dsACDObjVariable() {if (pInfo != NULL)  delete pInfo;}

	virtual	PVOID Read() const {return pInfo;}
	virtual void Write(PVOID p) {pInfo = (dsVD_INFO *)p;}
	virtual void WritetoFile (CStdioFile& m_IOFile, int flag);
	void ReadformFile (const CString & buf, dsVD_INFO *pInfo, CString &csItemText);

private:
	dsVD_INFO *	pInfo;
};

/***********************************************************************
							数据分类语句
***********************************************************************/
class dsACDObjDataSort : public dsACDObjectBase
{
public:
	dsACDObjDataSort() : dsACDObjectBase(0X104) { pInfo = NULL;}
	~dsACDObjDataSort() {if (pInfo != NULL)  delete pInfo;}

	virtual	PVOID Read() const {return pInfo;}
	virtual void Write(PVOID p) {pInfo = (dsDS_INFO *)p;}
	virtual void WritetoFile (CStdioFile& m_IOFile, int flag);
	void ReadformFile (const CString & buf, dsDS_INFO *pInfo, CString &csItemText);

private:
	dsDS_INFO *	pInfo;
};

/***********************************************************************
							数据库连接语句
***********************************************************************/
class dsACDDBConnect : public dsACDObjectBase
{
public:
	dsACDDBConnect() : dsACDObjectBase(0X105) { pInfo = NULL;}
	~dsACDDBConnect() {if (pInfo != NULL)  delete pInfo;}

	virtual	PVOID Read() const {return pInfo;}
	virtual void Write(PVOID p) {pInfo = (dsDBConn_INFO *)p;}
	virtual void WritetoFile (CStdioFile& m_IOFile, int flag);
	void ReadformFile (const CString & buf, dsDBConn_INFO *pInfo, CString &csItemText);

private:
	dsDBConn_INFO *	pInfo;
};

/***********************************************************************
							条件控制语句
***********************************************************************/
class dsACDConControl : public dsACDObjectBase
{
public:
	dsACDConControl() : dsACDObjectBase(0X303) { pInfo = NULL;}
	~dsACDConControl() {if (pInfo != NULL)  delete pInfo;}

	virtual	PVOID Read() const {return pInfo;}
	virtual void Write(PVOID p) {pInfo = (dsCC_INFO *)p;}
	virtual void WritetoFile (CStdioFile& m_IOFile, int flag);
	void ReadformFile (const CString & buf, dsCC_INFO *pInfo, CString &csItemText);

private:
	dsCC_INFO *	pInfo;
};

/***********************************************************************
							条件为真语句
***********************************************************************/
class dsACDConTrue : public dsACDObjectBase
{
public:
	dsACDConTrue() : dsACDObjectBase(0X304) {}
	~dsACDConTrue() {}

	virtual	PVOID Read() const {return NULL;}
	virtual void Write(PVOID p) {}
	virtual void WritetoFile (CStdioFile& m_IOFile, int flag);
};

/***********************************************************************
							条件为假语句
***********************************************************************/
class dsACDConFalse : public dsACDObjectBase
{
public:
	dsACDConFalse() : dsACDObjectBase(0X305) {}
	~dsACDConFalse() {}

	virtual	PVOID Read() const {return NULL;}
	virtual void Write(PVOID p) {}
	virtual void WritetoFile (CStdioFile& m_IOFile, int flag);
};

/***********************************************************************
							多路分支语句
***********************************************************************/
class dsACDSwitch : public dsACDObjectBase
{
public:
	dsACDSwitch() : dsACDObjectBase(0X306) { pInfo = NULL;}
	~dsACDSwitch() {if (pInfo != NULL)  delete pInfo;}

	virtual	PVOID Read() const {return pInfo;}
	virtual void Write(PVOID p) {pInfo = (dsSM_INFO *)p;}
	virtual void WritetoFile (CStdioFile& m_IOFile, int flag);
	void ReadformFile (const CString & buf, dsSM_INFO *pInfo, CString &csItemText);

private:
	dsSM_INFO *	pInfo;
};

/***********************************************************************
							缺省匹配语句
***********************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -