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

📄 myvc.h

📁 170话费查询系统
💻 H
📖 第 1 页 / 共 3 页
字号:
// myvc.h : main header file for the MYVC DLL
//

#if !defined(AFX_MYVC_H__012CCB86_D68E_11D4_8775_000103027259__INCLUDED_)
#define AFX_MYVC_H__012CCB86_D68E_11D4_8775_000103027259__INCLUDED_

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

#ifndef __AFXWIN_H__
	#error include 'stdafx.h' before including this file for PCH
#endif

#include "resource.h"		// main symbols
/////////////////////////////////////////////////////////////////////////////
//导出函数说明

#define	  TheControlAppName			"湘潭电信 - 170 受理监控系统"
#define	  TheServerAppName			"170 - 数据服务程序"
#define	  TheClientAppName			"170 - 语音受理程序"
#define	  TheCuiJiaoAppName			"湘潭 - 话费催缴"

//用户消息
#define   WM_QueryDone				1126		//查询结束消息
#define   WM_ShowSysMessage			WM_COPYDATA		//消息显示请求
#define   WM_OneVoiceChainPlayed    1128		//一条语音链播放完毕
#define   WM_VoiceChainProduct		1129		//语音链生产完毕
#define   WM_ResetVoiceChain	    1130		//重新产生语音链
#define   WM_ResetVoiceDone		    1131		//语音链重新产生

#define   WM_StartWork				1132		//启动服务
#define   WM_StopWork				1133		//结束服务(包括停止和退出)
#define   WM_ShowMyWin				1134		//显示窗口
#define   WM_HideMyWin				1135		//隐藏窗口
#define   WM_MyAppStarted			1136		//应用程序已启动
#define   WM_MyAppClosed			1137		//应用程序已启动
#define   WM_UpdateMonth			1138		//更新查询月份
#define   WM_UpdateQfTable			1139		//当前欠费表

#define   WM_DataOperate			WM_COPYDATA		//数据操作(OP_WriteLog,OP_PleaseQuery)
#define   OP_PleaseQuery			10				//数据查询请求
#define   OP_WriteLog				11				//写日志请求


//6种查询的语法名
#define		MaxQueryDemand      10              //最多的解析种

#define     Query_CTXD		"Query_CTXD"	//长途详单查询语法名
#define     Query_BDWXD		"Query_BDWXD"	//长途详单查询语法名
#define     Query_168XD		"Query_168XD"	//声讯详单查询语法名
#define     Query_DJDY		"Query_DJDY"	//单机话费查询语法名
#define     Query_TSHOU		"Query_TSHOU"	//托收话费查询语法名
#define     Query_QF		"Query_QF"	//欠费查询语法名

//用户动作
#define     Demand_CTXD		"长途详单"	//长途详单查询语法名
#define     Demand_BDWXD	"本地详单"	//长途详单查询语法名
#define     Demand_168XD	"声讯详单"	//声讯详单查询语法名
#define     Demand_DJDY		"单机单月"	//单机话费查询语法名
#define     Demand_TSHOU	"托收话费"	//托收话费查询语法名
#define     Demand_QF		"欠费"		//欠费查询语法名
#define     Demand_HELP		"了解业务"		//欠费查询语法名

//7种语音解析方法名
#define 	EXP_DATE		"EXP_DATE"			//日期型:
#define 	EXP_TIME		"EXP_TIME"			//时间型:
#define 	EXP_SECOND		"EXP_SECOND"		//秒型时间
#define 	EXP_DIGITSTR	"EXP_DIGITSTR"		//数字串:
#define 	EXP_MONEY_YUAN	"EXP_MONEY_YUAN"	//货币型:
#define 	EXP_MONEY_FEN	"EXP_MONEY_FEN"		//货币型:
#define 	EXP_REAL		"EXP_REAL"			//数字型	
#define 	EXP_NULL		"EXP_NULL"			//空解析型

//数字发音索引名
#define     V_DIAN		"点"		//.
#define     V_GE		"个"		//个
#define     V_SHI		"十"		//十
#define     V_BAI		"百"		//百
#define     V_QIAN		"千"		//千
#define     V_WAN		"万"		//万
#define     V_YI		"亿"		//亿
//时间发音索引名
#define     V_YEAR      "年"
#define     V_MONTH     "月"
#define     V_DAY       "日"
#define     V_HH        "点"
#define     V_MM		"分"
#define     V_SS		"秒"
#define     V_XIAOSHI	"小时"

#define		V_CONG		"从"
#define		V_ZHI		"至"
//货币发音索引名
#define		V_YUAN		"元"
#define     V_JIAO		"角" 
#define     V_FEN		"分"


#define     SEP_Digit   '%'         //数字解析符
#define     SEP_Delay   '~'         //延时解析符

//共享资源(内存文件)
#define GlobalCommuAreaName			"xt170_app_Gca"		//全局通讯区名,名称固定,DLL内部封装
#define SemaphoreFileName			"xt170_sem_300"		//共享文件名
#define SQLCmdFilePrex				"xt170_sqlcmd"		//SQL Command文件名前缀
#define QuerySyntaxStructAreaName	"xt170_qssa"		//查询语法结构区名
#define VoiceFileIndexTableName		"xt170_vfit"		//语音索引文件表名
#define ChannelVoiceChainAreaName	"xt170_cvca"		//通道语音链表区名
//资源锁(互斥体mutex)
#define	MUTEX_GCA					"my_mutex_gca"		//GCA资源锁
#define	MUTEX_SEMAPHORE				"my_mutex_sem"		//信号灯资源锁
#define	MUTEX_SQLCMD				"my_mutex_sqlcmd"	//SQLCMD资源锁
#define	MUTEX_QSSA					"my_mutex_qssa"	//QSSA资源锁
#define	MUTEX_VFIT					"my_mutex_vfit"	//VFIT资源锁
#define	MUTEX_CVCA					"my_mutex_cvca"	//CVCA资源锁


#define TXT_LEN						2048
#define MaxRefuseCall				200

#define	MaxVoiceIndexNameLen		16					//语音索引名长度
#define VoiceChainContentLen		20					//语音节点的内容长度
#define MaxVoiceChainNode			512					//语音链表最大长度
#define MaxVFIT					    512		            //vfit语音索引的个数



//语音文件索引表
typedef  struct  VocieFileIndexTable_st{
     		char  indexname[MaxVoiceIndexNameLen];       //语音索引名
     		char  vocfile[20];				     //语音文件名
     		char  io_offset[10];			     //偏移量     		
     		char  io_length[10];			     //长度
     		char  filehandle[10];			     //语音文件打开后得到的文件句柄
}VFIT;

//语音链表节点
typedef struct VoiceChainNode_st {

       char NodeType[6];                       //节点类型 = INDEX|DELAY|DIGIT|EOV
       char Content[VoiceChainContentLen];     //节点值

}type_VoiceChainNode;

//通道语音链表区
typedef struct ChannelVocieChainArea_st{
            char RecordNum[5];           //需要解析的链表数(记录数)。
     		char ExpNum[5];              //已经解析的链表数,初始化=0
     		char PlayNum[5];	     //已经播报的链表数,初始化=0     		
	 		type_VoiceChainNode    	VoiceChain[2][MaxVoiceChainNode];    //2条语音链
}CVCA;


//查询语法结构区
typedef struct QuerySyntaxStructArea_st{
     
        char     Active[2];               //本结构块是否启用。Y/N
        char     QuerySyntaxName[20];     //查询语法名,与表T_SYS_SQLEXP.QuerySyntaxName对应。
        char     BaseSQLSyntax[1024];     //基本查询语句,与通讯结构SQLCMD.SQLCommand对应。
        char     DestTable[512];          //目标数据表
        char     VoiceExpTable[2048];     //和查询字段对应的语音解析表
}QSSA;


//全局通讯区
typedef struct  GlobalCommuArea_st{

        char  ChannelNumber[4];             //通道个数,对应 t_sys_config.VC_P_NUM.
        char  SemaphoreName[20];  			//信号等文件名,对应 T_SYS_CONFIG.VC_MAP        
        char  SQLCommandName[20];           //SQL Command文件名,对应 T_SYS_CONFIG.VC_SQL_COMMU
        char  SQLResultName[20];            //数据结果文件名 与 T_SYS_CONFIG.VC_SQL_DATAFILE 对应。
        char  SQLResultSaved[80];           //数据结果存放路径,与 T_SYS_CONFIG.VC_SQL_DATASAVE。
        
        char  ControlAppName[60];           //主控程序名名(主窗口名),用于发消息
                                            //对应数据库  T_SYS_CONFIG.VC_CONTROL_APP
        char  DBServerAppName[60];          //数据服务程序名(主窗口名),用于发消息
                                            //对应数据库  T_SYS_CONFIG.VC_DBSERVER_APP
        char  DBClientAppName[60];          //数据请求程序(语音受理程序)名,用于发消息。
                                            //对应数据库  T_SYS_CONFIG.VC_DBCLIENT_APP

        char  CuiJiaoAppName[60];           //催缴程序名,用于发消息。

        
        char  StartQueryMonth[3];           //起始查询月,对应数据库T_SYS_CONFIG.StartQueryMonth
        char  EndQueryMonth[3];             //终止查询月,对应数据库T_SYS_CONFIG.EndQueryMonth
		char  CurQfTable[3];				//当前欠费表
        
        char  RefuseCall[MaxRefuseCall][15];//禁止呼入的主叫号码表,与t_data_invalidcall对应。

        char  Log_Utpt[160];                //查询程序日志目录
        char  InitStatus[10];               //查询程序窗口大小
        char  InitHide[6];                  //查询程序窗口显示状态    
		char  VFIT_LEN[6];                  //语音列表的长度。

		char  vox_path[160];				//vox 文件目录
		char  txt[TXT_LEN];					//系统屏显字段
                
}GCA;

//信号灯

typedef struct sem_st {                //信号灯单元结构

       char  chn_value[10];            //语音卡通道(端口)状态值    
       char  app_id[10];               //应用程序ID
       char  txt[TXT_LEN];             //屏显信息

} SEMAPHORE;


//SQL Command通讯文件
typedef struct  sql_cmd_st{        
        char      File_ID[6];           // 文件序列号,和端口号相同
        char      Command_ID[20];       // 查询方法名
        char      SQLCommand[2048];     // SQL 命令 
        char      ExecuteStatus[20];    // 执行状态   'SQL_Request', 'SQL_Running', 'SQL_Done', 'Idel' 

		char      DATA_filed[1024];       // 查询结果标题 "name:sex:age:",每个字段名以:分隔。
		char      DATA_found[20];       // 查询结果   "NODATA | FOUND | NOFOUND | NOUSER | SQLERROR"
        char      DATA_filename[80];        // 数据结果文件名        
        char      DATA_separator[6];    // 字段分隔符
        char      DATA_rowsnumber[6];   // 记录条数  
}SQLCMD;

///////////////////////////////////////////////////////////////////////////////////////////////
//                 
//   函数  int PASCAL ReplaceStr(char * str, char *ch_1, char *ch_2, char *n, char * rep, char *outstr)
//   
//   功能:将 str中的第 n个以ch_1开头,ch_2结尾的子串替换成rep, 然后返回outstr.
//   参数:
//         str		: 字符串, 如 "我喜欢<红与白>,不喜欢<老人与海>"
//         ch_1		: 起始字符,如 '<'
//         ch_2		: 终止字符,如 '>'
//		   num		: 第n个以ch_1开头,ch_2结尾的字符串。n = 2.
//		   rep      : 替换字符串,如 "<飘>"
//		   outstr   : 结果字符串,如以上参数则返回: "我喜欢<红与白>,不喜欢<飘>"
//         如果 ch_2 为空字符串,则将 ch_1位置的字符视做一个字符串进行替换。
//
//   返回:被替换的字符串个数
//
///////////////////////////////////////////////////////////////////////////////////////////////
extern "C" _declspec ( dllexport ) int PASCAL ReplaceStr(char * str, char *ch_1, char *ch_2, char *num, char * rep, char *outstr);

/************************************************************
 *        NAME: ChnPrintf(int cn, char *field, char *szFormat, ...))
 * DESCRIPTION: 向主控程序发送通道显示信息
 * 参数		cn		: 通道号 (1...MAXCHAN)
 *          field	: 显示字段(_USER|_STATE|_TELE|_BEGIN|_END)
 ************************************************************/
extern "C" _declspec ( dllexport ) int ChnPrintf(int cn, char *field, char *szFormat, ...);

extern "C" _declspec ( dllexport ) void WinPrintf(char *szFormat, ...);
/*************************************************************
 Function: trimstr()
 删除字符串前后的空格
*************************************************************/
extern "C" _declspec ( dllexport ) void trimstr(char * str, char * output);

/*************************************************************
 Function: upstring()
 将字符串转换成大写
*************************************************************/
extern "C" _declspec ( dllexport ) void upstring(char * str, char * output);

/***************************************************************
*
*    函数 CreateVFIT(char * s_number)
*    说明:在内存中创建VFIT
* 
***************************************************************/
extern "C" _declspec ( dllexport ) int PASCAL CreateVFIT(char * s_number);
/****************************************************************************
 函数: int SetVFIT(char *  v_index, char *   key, char *   v_value)
 说明:给初始化文件赋值
 index    : 信号灯位置(取值 1 .. 30)
 key      : 项目 (取值 "indexname", "vocfile", "io_offset")
 value    : 用于复制的变量
****************************************************************************/
extern "C" _declspec ( dllexport ) int PASCAL SetVFIT(char *  v_index, char *   skey, char *  v_value);
/****************************************************************************
函数: int  ReadVFIT(char * v_index, char * v_key, LPSTR  v_value)
 说明:给初始化文件赋值
 filename : 内存文件名
 index    : 信号灯位置(取值 1 .. 30)
 key      : 项目 (取值 "indexname", "vocfile", "io_offset","io_length", "filehandle")
 value    : 用于复制的变量
****************************************************************************/
extern "C" _declspec ( dllexport ) LPVOID PASCAL ReadVFIT(char * v_index, char * v_key);
/****************************************************************************
*
函数: int  CloseVFIT()
说明: 删除语音文件索引表
*
* 目前还不能关闭文件
*

⌨️ 快捷键说明

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