www.pudn.com > mms.rar > mmimms_internal.h


/***************************************************************************** 
** File Name:      mmimms_internal.h                                                   * 
** Author:                                                                   * 
** Date:           24/03/2004                                                * 
** Copyright:      2003 Spreatrum, Incoporated. All Rights Reserved.         * 
** Description:													               * 
***************************************************************************** 
**                         Important Edit History                            * 
** --------------------------------------------------------------------------* 
** DATE           NAME				DESCRIPTION                               * 
** 08/2004        Bruce.Chi			Create 
******************************************************************************/ 
 
#ifndef _MMI_MMS_INTERNAL_H_ 
#define _MMI_MMS_INTERNAL_H_  
 
/**--------------------------------------------------------------------------* 
 **                         Include Files                                    * 
 **--------------------------------------------------------------------------*/ 
#include "mmimms.h" 
#include "guianimate.h" 
#include "mmiwap.h" 
#include "mmisms_api.h" 
#include "guilistbox.h" 
#include "ffs.h" 
 
 
#include "Cms_MMSDoc.h" 
#include "Cms_MMSProvide.h" 
#include "Cms_WAPMain.h" 
#include "Mmi_appmsg.h" 
#include "Cms_MMSFilefunc.h" 
#include "mmimpeg4.h" 
#include "cms_sysfun.h" //added liangliu 2006-2-22 
#include "mmiaudio.h"		//fnh add 0320 for play audio 
#include "mms_id.h" 
#include "mms_image.h" 
#include "mms_menutable.h" 
 
 /**--------------------------------------------------------------------------* 
 **                         Compiler Flag                                    * 
 **--------------------------------------------------------------------------*/ 
#ifdef __cplusplus 
    extern   "C" 
    { 
#endif 
 
#define HAVE_MP3	//版本包含MP3 
//#define HAVE_AMR	//版本支持AMR 
#define HAVE_MPEG4	//版本包含MPEG4 
/**--------------------------------------------------------------------------* 
 **                         MACRO DEFINITION                                 * 
 **--------------------------------------------------------------------------*/ 
#define	ONE_KILO							1000 
#define ONE_K_LEN							1024 
#define MMIMMS_MAX_ONE_MMS_SIZE				(100 * ONE_K_LEN)	//单条MMS最大size 
#define MMIMMS_MAX_TOTAL_MMS_SIZE			(MMIMMS_MAX_MMS_NUM * MMIMMS_MAX_ONE_MMS_SIZE)//(2000 * ONE_KILO)	//2000K 
 
#define MMIMMS_ADDRESS_TYPE_NUM				3	//地址类型个数 
#define MMIMMS_MAX_SLIDE					20	//每一条MMS最大的帧数 
#define MMIMMS_MAX_ADDRESS_NUM				60	//每一类目标地址的最大个数 
#define MMIMMS_MAX_ADDRESS_LEN				40	//每一条地址的最大长度 
#define MMIMMS_MAX_SUBJECTS_LEN				64	//每一条MMS主题的最大长度 
#define MMIMMS_MAX_TEXT_LEN					1000//160	//每一条MMS文字内容的最大长度,不要超过MAX_TXT_BUF_SIZE (t9.c) 
#define MMIMMS_MAX_FS_NAME_LEN				32	//每一条MMS文件名的最大长度暂定 
#define MMIMMS_ADDRESS_BTN_WIDTH			44	//添加地址按钮的宽度 
 
#define MMIMMS_SLIDE_DUARATION_MAX			600 //99	//最大slide duaration 
#define MMIMMS_SLIDE_DUARATION_MIN			1	//最小slide duaration 
#define MMIMMS_SLIDE_DUARATION_DEFAULT		15	//5 s 
 
#define MMIMMS_MAX_TRANSACTIONID_LEN		32	//transaction ID最大长度。 
#define MMIMMS_MAX_NOTIFICATION_URL_LEN		512	//彩信通知URL地址的长度。//暂定吧。这个挺关键的,一旦截断了,就没法下载了。 
#define MMIMMS_MAX_RECEIVE_MSG_ID_LEN		64	//这个是干什么的? 
 
 
#define MMS_SIZE_OF_MESSAGE					(100*1024)		 //定义一条MMS的大小 
#define MMS_SINGLE_SLIDE_SIZE				100 
#define EDITMMS_ADDITIONAL_SIZE (3 * 1024) 
 
 
//FNH ADD 
#define MMIMMS_PBNUM_MAX_LEN					( PHONEBOOK_MAX_DN_NUMBER_LEN << 1 ) 
#define MMIMMS_NUMBER_MAX_BCD_LEN	10 
#define MMIMMS_NUMBER_MAX_LEN 	20 
 
#define MMIMMS_DEST_ADDR_MAX_NUM	10 
//FNH ADD 
//liangliu added  
#define MMIMMS_SETTING_WHETHER_NUM    2 
		 
#define MMIMMS_MMSC_MAX_LEN					MMS_MAX_CENTRE_ADDR_LENGTH/2 
#define MMIMMS_GATEWAY_MAX_LEN				MMS_MAX_GATEWAY_LENGTH/2	 
#define MMIMMS_PORT_MAX_LEN					MMS_MAX_PORT_LENGTH/2 
#define MMIMMS_USERNAME_MAX_LEN				MMS_MAX_USERNAME_LENGTH/2 
#define MMIMMS_PASSWORD_MAX_LEN				MMS_MAX_PASSWORD_LENGTH/2 
#define MMIMMS_APN_MAX_LEN					MMS_MAX_APN_LENGTH/2 
 
#define LISTMAXLENGTH                                   40        //added liangliu 2005-12-14 
#define MMS_MAX_NUM                                     100      //the max num of mms in total  added 2005-12-14 
 
//#define     MMIMMS_PROGRESS_BAR_LEFT        12//5 
//#define     MMIMMS_PROGRESS_BAR_TOP         180//144//40//121 
#define     MMIMMS_SCROLL_BAR_LEFT          12//5//6 
#define     MMIMMS_SCROLL_BAR_TOP           159//MMIMMS_PROGRESS_BAR_TOP 
#define     MMIMMS_SCROLL_BAR_RIGHT         (MMIMMS_SCROLL_BAR_LEFT+100) 
#define     MMIMMS_SCROLL_BAR_BOTTOM        (MMIMMS_SCROLL_BAR_TOP+20)		//fnh modify 0323  
#define     MMIMMS_SCROLL_BAR_COLOR         0x523900//0xFCC0 
 
#define MMIMMS_MAX_FILE_NAME_LEN   32  //from the wintable.c to  
#define MMS_MAX_SIZE_OF_MULTIM				(100*1024)		//编辑彩信时限制的多媒体的大小 
 
#define MMIMMS_UNKNOWN_SENDER	""         //无收件人时彩信列表的显示内容 
#define MMIMMS_MMSC_DEFAULT_URL				"http://mmsc.monternet.com/" 
#define MMIMMS_FS_ROOT_DIR	"/MMS/"				//mms directory in file system 
 
#define MMIMMS_FS_ROOT		    "/" 
#define MMIMMS_MMS_DIR		    "MMS" 
#define MMIMMS_MP3_DIR			"MP3" 
#define MMIMMS_VIDEO_DIR               "VIDEO"//added by liangliu for save video 2005-11-29 
#define MMIMMS_DEFAULT_DIR_LEN  5 
//#define MMIMMS_FILE_NAME_PREFIX	"mms_"		//file name prefix 
											//file name is from 1 to 100 
#define MMIMMS_FILE_NAME_SUBFIX ".mms" 
#define MMIMMS_FILE_WILDCARD	"*.mms" 
 
#define MMIMMS_FILE_HEAD "MMS/mms_*" 
 
#define MMIMMS_FILE_ID_INVALID	0xFFFFL 
#define MMIMMS_NV_ID_INVALID	0xFFFFL 
 
 
#define FLAG_MMS_IS_MMS				0x80 
#define FLAG_MMS_NOTIFICATION		0x40 
#define FLAG_MMS_HAVE_DOWNLOADED	0x20 
 
 
#define FLAG_MMS_INBOX_NOT_READ		0x00 
#define FLAG_MMS_INBOX_HAVE_READ	0x02 
#define FLAG_MMS_OUTBOX				0x04 
#define FLAG_MMS_DRAFTBOX			0x05 
#define FLAG_MMS_SENTBOX			0x06 
#define FLAG_MMS_MOMT_STATE			0x07 
		 
 
#define FLAG_MMS_CONTENT_IS_UCS2	0x08 
 
 
 
#define MMIMMS_INVALID_MMS_CONTENT_PDU_SIZE 3	//0x84A300 
 
#define MMS_LOCAL_TIME_ZONE		8	//时区 
#define MMS_100_YEARS			100 
//liangliu added 
#define MMS_MAX_INPUT_TEXT_SIZE					256 /* 彩信文本编辑输入最大长度 */ 
#define MMS_MAX_TEXT_SIZE						MMS_MAX_INPUT_TEXT_SIZE * 3 + 2	/* 彩信文本UNICODE数组(全局)最大长度 */ 
#define MMS_MAX_INPUT_SUBJECT_SIZE				20	/* 彩信主题编辑输入最大长度 */ 
#define MMS_MAX_UTF_SUBJECT_SIZE                MMS_MAX_INPUT_SUBJECT_SIZE*3+1  /* UNICODE(汉字)转为UTF8所需最大长度 */ 
#define MMS_MAX_SUBJECT_SIZE					MMS_MAX_INPUT_SUBJECT_SIZE*3+2 /* 彩信主题UNICODE数组(全局)最大长度 */ 
#define MMS_MAX_INPUT_SEND_TO_SIZE				36		/* 编辑收件人输入的最大长度 */ 
#define MMS_MAX_SEND_TO_SIZE					MMS_MAX_INPUT_SEND_TO_SIZE * 2 + 2 /* 收件人UNICODE数组(全局)最大长度 */ 
 
#define MMS_MAX_FILE_NAME_LENGTH				128		/* 彩信文件名最大长度 */ 
 
#define MMS_MAX_ADDRESS_LENGTH					64		/* 收(发)件人地址(即号码)在文件管理摘要结构中最大长度 */ 
#define MMS_MAX_DATE_LEN						32		/* 文件管理器信息日期最大长度 */ 
#define MMS_MAX_DETAILS_LENGTH					5 * 128	/* 信息详情string长度 */ 
#define MMS_MAX_MSGID_LENGTH					40	/* 信息详情string长度 */ 
 
 
 
		/*  image content type macros   */ 
#define COMPOSER_IMAGE_GIF	"image/gif" 
#define COMPOSER_IMAGE_JPEG	"image/jpeg" 
#define COMPOSER_IMAGE_PNG	"image/png" 
#define COMPOSER_IMAGE_WBMP	"image/vnd.wap.wbmp" 
#define COMPOSER_IMAGE_BMP	"image/bmp" 
 
/* audio content type macros  */ 
 
#define COMPOSER_AUDIO_WAV		"audio/wav" 
#define COMPOSER_AUDIO_IMELODY	"audio/imelody" 
#define COMPOSER_AUDIO_MIDI		"audio/midi" 
#define COMPOSER_AUDIO_AMR		"audio/amr" 
#define COMPOSER_AUDIO_MP3		"audio/mp3" 
 
/*  video content type macros */ 
#define COMPOSER_VIDEO_MPEG		"video/mpeg" 
 
/**--------------------------------------------------------------------------* 
 **                         TYPE AND CONSTANT                                * 
 **--------------------------------------------------------------------------*/ 
#ifndef FILE_HANDLE 
#define FILE_HANDLE int 
#endif 
typedef enum 
{ 
	SEND_MMS_NORMAL, 
	SEND_MMS_FROM_CAIKE, 
	SEND_MMS_INVALID 
}MMIMMS_MMS_OR_CAIKE; 
 
//FNH ADD 发送当前彩信(新彩信OR发件箱中的彩信) 
typedef enum 
{ 
	INBOX, 
	SENTBOX, 
	OUTBOX, 
	DRAFTBOX, 
	ALL_BOX 
}MMIMMS_OPTION_BOX; 
 
//FNH ADD 发送当前彩信(新彩信OR发件箱中的彩信) 
typedef enum 
{ 
	SEND_NEW_MMS, 
	SEND_OUTBOX_MMS 
}MMIMMS_SEND_MMS_STATUS; 
typedef enum 
{ 
	DOWNLOAD_RESULT_SUCCEED, 
	DOWNLOAD_RESULT_FAIL, 
	DOWNLOAD_RESULT_MMS_TOO_BIG 
}MMIMMS_DOWNLOAD_RESULT; 
 
 
/* 显示矩形区域结构  */   /*record display position */ 
typedef struct T_Composer_Rectangle_tag{ 
	T_WORD x; /*x start coordinate of screen*/ 
	T_WORD y;   /*y start coordinate of screen*/ 
	T_WORD width;	/*width of display position*/ 
	T_WORD height;	/*height of display postion*/ 
}T_Composer_Rectangle; 
 
 
/*插入图片的资源信息*/ 
typedef struct T_Composer_Image{ 
	T_UBYTE* ImgBuf;	/*image data*/ 
	T_CHAR*  Type;		/*image type*/ 
	T_WORD	begin;		/*begin time of image display*/ 
	T_WORD	end;		/*end time of image display*/ 
	T_WORD size;		/*size of image data*/ 
	T_Composer_Rectangle region;  /* image's region   */ 
}T_Composer_Image; 
 
 
/*插入文本的资源信息*/ 
typedef struct T_Composer_Text{ 
	T_UBYTE* TxtBuf; 	/*text data*/ 
	T_WORD	begin;		/*begin time of text show*/ 
	T_WORD	end;		/*end time of text show*/ 
	T_WORD size;		/* the size of the text content */ 
	T_Composer_Rectangle region;  /* text's region  */ 
}T_Composer_Text; 
 
 
/*插入声音资源信息*/ 
typedef struct T_Composer_Audio{ 
	T_UBYTE* AudBuf;	/*audio data buffer*/ 
	T_CHAR *Type;		/* audio type  */ 
	T_WORD	begin;		/*begin time of audio play*/ 
	T_WORD	end;		/*end time of audio play*/ 
	T_WORD size;		/*size of audio data*/ 
}T_Composer_Audio; 
 
/*插入声音资源信息*/ 
typedef struct T_Composer_Video{ 
	T_UBYTE* VidBuf;	/*video data buffer*/ 
	MMIMPEG4_TYPE_E Type;		/* video type  */ 
	T_WORD	begin;		/*begin time of video play*/ 
	T_WORD	end;		/*end time of video play*/ 
	T_WORD size;		/*size of video data*/ 
	T_Composer_Rectangle region;  /* video's region  */ 
}T_Composer_Video; 
 
typedef enum 
{ 
	MMSRE, 
	MMSFW, 
	MMSEDIT, 
	MMSREAD 
}MMSSTATE; 
 
typedef enum 
{ 
    MMIMMS_RESULT_SUCCESS,	//函数调用成功 
	MMIMMS_RESULT_ERROR		//函数调用错误 
}MMIMMS_RESULT_E;			//函数的返回结果 
 
 
typedef enum	//give specific number to differ MMIMMS_TYPE and MMIMMS_MAILBOX_TYPE 
{ 
	MMIMMS_MO		= 8,		//发送 
	MMIMMS_MT		= 9,		//接收 
	MMIMMS_MNOTI	= 10,	//彩信通知 
	MMIMMS_TOTAL	= 11 
}MMIMMS_TYPE; 
 
 
typedef struct 
{ 
	uint32		type;						//MMIMMS_TYPE 
	uint32		head_size;					//sizeof(STRUCTURE) 
	uint32		body_size;					//body size 
	BOOLEAN		Delivery_Report;			// 是否需要传送报告标志  
	BOOLEAN		Read_Reply;					//是否需要阅读报告标志  
	BOOLEAN		Sender_Visibility;			// 是否匿名发送标志  
	int8		Transaction_Id[MMIMMS_MAX_TRANSACTIONID_LEN + 1];	//事务ID,由本地产生的随机序列  
	int8		To[MMIMMS_MAX_ADDRESS_NUM * MMIMMS_MAX_ADDRESS_LEN + 1];	//TO接收者,多个用‘;’隔开  
	//int8 Cc[MMIMMS_MAX_ADDRESS_LEN];		//抄送者,多个用‘;’隔开 
	//int8 Bcc[MMIMMS_MAX_ADDRESS_LEN];		//密送者,多个用‘;’隔开 
	int8		Subject[MMIMMS_MAX_SUBJECTS_LEN + 1];		//主题 
	T_WORD		MMS_Priority; 
	T_WORD		MMS_Expiry; 				//expiry time,default use Relative-token value  
	T_WORD		MMS_Delivery_Time;			//Delivery time,default use Relative-token value   
	T_WORD		ContentTypeAndBody_Len;		//彩信数据长度   
	uint8		*ContentTypeAndBody;		//彩信数据  
}MMIMMS_FS_Send_T; 
 
 
typedef struct{ 
	uint32		type;					//MMIMMS_TYPE 
	uint32		head_size;				//sizeof(STRUCTRUE) 
	uint32		body_size; 
	BOOLEAN		Delivery_Report;		//是否需要传送报告标志  
	BOOLEAN		Read_Reply;				//是否需要阅读报告标志  
	uint8		Message_Class;			//消息类型  
	uint8		MMS_Prioity;			//优先级  
	//uint8 Boundary[2];   				//字节对齐 补充位 //先不考虑对齐。 
//	uint8		flag;					//标志已读未读 
	T_WORD		Date;					//彩信的发送时间   
	int8		Transaction_Id[MMIMMS_MAX_TRANSACTIONID_LEN + 1];	//事务id  
	int8		Message_Id[MMIMMS_MAX_RECEIVE_MSG_ID_LEN + 1];		//消息ID  
	int8		From[MMIMMS_MAX_ADDRESS_NUM *MMIMMS_MAX_ADDRESS_LEN + 1];					//发送者  
	int8		To[MMIMMS_MAX_ADDRESS_LEN * MMIMMS_MAX_ADDRESS_NUM + 1];						//接收者  
	int8		Cc[MMIMMS_MAX_ADDRESS_LEN * MMIMMS_MAX_ADDRESS_NUM + 1];						//抄送者   
	int8		Subject[MMIMMS_MAX_SUBJECTS_LEN + 1];				//主题  
	T_WORD		Content_Size;			//彩信数据大小  
	uint8		*ContentTypeAndBody;	//彩信数据指针  
}MMIMMS_FS_Receive_T; 
 
typedef struct{ 
	uint32		type;						//MMIMMS_TYPE 
	uint32		head_size;					//sizeof(STRUCTURE) 
	uint32		body_size; 
	uint8		Message_Class;				//消息类型  
	uint8		MMS_Expiry_TimeType;		//过期时间类型,相对,绝对  
	T_WORD		Message_Size;				//彩信大小   
	T_WORD		MMS_Expiry;					//过期时间  
	int8		Transaction_Id[MMIMMS_MAX_TRANSACTIONID_LEN + 1];		//事务ID  
	int8		From[MMIMMS_MAX_ADDRESS_NUM * MMIMMS_MAX_ADDRESS_LEN + 1];						//发送者  
	int8		Subject[MMIMMS_MAX_SUBJECTS_LEN + 1];					//主题  
	int8		Content_Location[MMIMMS_MAX_NOTIFICATION_URL_LEN + 1];	//彩信存放的URL地址   
}MMIMMS_FS_Notification_T; 
 
 
typedef enum 
{							//lparam:				wparam			param_ptr: 
	MULTIM_IMAGE,			//image type			image buf len	pointer to image buf 
	MTMMS_FORWARD,			//index of MMS			0				0 
	MOMMS_FORWARD,			//index of mms			0				0 
	MOMMS_REEDIT,			//index of mms			0				0 
	NEW_MMS,				//0						0				0 
	SMS_ANSWER_MMS,			//len					0				number buffer 
	MMS_ANSWER_MMS			//index of mms			0				0 
}MMS_EDIT_SRC_TYPE; 
 
 
typedef enum 
{ 
	MMIMMS_AUTODOWNLOAD_ON, 
	MMIMMS_AUTODOWNLOAD_OFF, 
	MMIMMS_AUTODOWNLOAD_TOTAL 
}MMIMMS_SETTING_AUTODOWNLOAD; 
 
typedef enum 
{ 
	MMIMMS_PRIORITY_LOW, 
	MMIMMS_PRIORITY_MIDDLE, 
	MMIMMS_PRIORITY_HIGH, 
	MMIMMS_PRIORITY_TOTAL 
}MMIMMS_SETTING_PRIORITY; 
 
typedef enum 
{ 
	MMIMMS_VALID_PERIOD_1_HOUR, 
	MMIMMS_VALID_PERIOD_6_HOUR, 
	MMIMMS_VALID_PERIOD_24_HOUR, 
	MMIMMS_VALID_PERIOD_72_HOUR, 
	MMIMMS_VALID_PERIOD_1_WEEK, 
	MMIMMS_VALID_PERIOD_LONGEST, 
	MMIMMS_VALID_PERIOD_TOTAL 
}MMIMMS_SETTING_VALID_PERIOD; 
 
 
typedef struct  
{ 
	MMI_STRING_T		subject;		//1.subject string 
										//max is : MMIMMS_MAX_SUBJECTS_LEN 
	 
	uint8				*receiver_ptr;	//2.receiver string, only ASCII string is allowed. its length is strlen(); 
										//max length is : MMIMMS_MAX_ADDRESS_LEN 
 
	MMI_STRING_T		content;	//3.MMS content. if larger than MMIMMS_MAX_TEXT_LEN, I will cut it 
										//max length is : MMIMMS_MAX_TEXT_LEN 
	 
	uint8				*image_ptr;		//4.image buffer. 
	uint16				image_size;		//max is : MMIMMS_MAX_ONE_MMS_SIZE 
	MMIMULTIM_PICTURE_TYPE_E	image_type;	 
}MMIMMS_CAIKE_ITEM_T; 
 
typedef enum 
{ 
	MMIMMS_EDIT_PREVIEW_FROM_MMS, 
	MMIMMS_EDIT_PREVIEW_FROM_CAIKE 
}MMIMMS_EDIT_PREVIEW_FROM; 
 
 
 
 
 
 
 
/*设置定时发送结构*/ 
 
typedef struct TAG_MMS_SEND_ONTIME 
{ 
	uint16 year; 
	uint8  month; 
	uint8 day; 
	uint8 hour; 
	uint8 minute; 
}MMS_SEND_ONTIME_TIME; 
 
 
//fnh add end 
typedef struct  
{ 
    uint16   length; 
    BOOLEAN  is_ucs2; 
    uint8    str_arr[MMIMMS_MAX_ADDRESS_LEN]; 
}TO_STRING_T; 
 
typedef struct  
{ 
	uint32	total_num; 
	TO_STRING_T *addr; 
//	uint8 	*address[MMIMMS_MAX_ADDRESS_NUM];//content should be malloc.less than MMIMMS_MAX_ADDRESS_LEN 
}To_Addr; 
 
typedef struct 
{ 
//	T_BOOL  Delivery_Report; 
//	T_BOOL  Read_Reply; 
//	T_BOOL  Sender_Visibility; 
//	T_BYTE *Transaction_Id; 
	To_Addr		to; 
	To_Addr		cc; 
	To_Addr		bcc; 
//	MMI_STRING_T Cc; 
//	MMI_STRING_T *Bcc; 
	MMI_STRING_T subject; 
	MMI_STRING_T content_text; 
//	T_WORD  MMS_Expiry; /* expiry time,default use Relative-token value */ 
//	T_WORD  MMS_Delivery_Time; /*Delivery time,default use Relative-token value  */ 
//	T_WORD ContentTypeAndBody_Len; 
//	T_UBYTE *ContentTypeAndBody; 
}MMIMMS_MEM_STORE_T; 
 
typedef enum	//give specific number to differ MMIMMS_TYPE and MMIMMS_MAILBOX_TYPE 
{ 
	MMIMMS_INBOX			= 0,			//接收的 
	MMIMMS_SENTBOX			= 1,			//发送成功的 
	MMIMMS_OUTBOX			= 2,			//发送,但是失败的 
	MMIMMS_DRAFTBOX			= 3,			//编辑了,但是没发送的 
	MMIMMS_NOTIFICATION		= 4,			//彩信通知 
	MMIMMS_MAILBOX_TOTAL	= 5 
}MMIMMS_MAILBOX_TYPE; 
 
//liangl  added 2005-10-7 for spread 
 
typedef enum  
{ 
		MMS_MSG_STATE_UNRECEIVED = 0,	/* unreceive */  
		MMS_MSG_STATE_UNREAD,			/* unread*/			 
		MMS_MSG_STATE_READ,				/*read*/ 
		MMS_MSG_STATE_UNSEND,			/*unsend*/ 
		MMS_MSG_STATE_SENDFAILED,		/*send failed*/ 
		MMS_MSG_STATE_SENDED			/*sended*/ 
}MMIMMS_MSG_STATE; 
 
typedef enum _MMS_FOLDER_STATE 
{ 
	       MMS_FOLDER_TYPE_NULL, 
		MMS_FOLDER_TYPE_INBOX,	 
		MMS_FOLDER_TYPE_SENTBOX, 
		MMS_FOLDER_TYPE_OUTBOX, 
		MMS_FOLDER_TYPE_DRAFTBOX 
}MMIMMS_FOLDER_STATE; 
 
typedef struct tagMessagelist MESSAGELIST; 
typedef  MESSAGELIST *pMessageList; 
struct tagMessagelist 
{ 
	uint8 *			filename; 
	uint8 *			subject; 
	uint8 *			date;	 
	uint8 *			to_address; 
	uint8 *                 cc_address; 
	uint8 *                 bcc_address; 
	uint8 *		      sender; 
	uint8 *                 url; 
	uint8 *                 msg_id; 
	uint32                  pritority; 
	uint32                  needreadrpt; 
	uint32					needautodw;		//记录时候需要自动下载。0:不自动下载,1:自动下载第一次,2:自动下载第二次 
	uint32                   state; 
	uint32                   size; 
	uint32					 expiry; 
	pMessageList	next; 
}; 
 
typedef struct tagMessageFolder MESSAGEFOLDER; 
typedef  MESSAGEFOLDER *pMessageFolder; 
struct tagMessageFolder 
{ 
	uint32				messagenumber; 
	uint32				unsettlednumber; 
	uint32                          type; 
	pMessageList	        currentmessage; 
	pMessageList	        root; 
}; 
/*----------------------------------------------------------- 
按照现在展讯对于自动接收的要求,由于重新开机 
不需要下载原来处于自动接收的彩信了,对于 
这个信息不需要记录保存用于开机,因此为了 
尽量不修改原先正常的代码,重新创建一个结构链用于 
记录需要自动下载的彩信条目,注意的是释放这个结 
构的时候,不能释放内部所在的list,因为这里只是指针 
指向,不对于整个结构有影响 
liang.liu@palmsource.com  
2006-4-27 
------------------------------------------------------------*/ 
typedef struct tagautoDownloadMMSList autoDownloadMMSList; 
typedef autoDownloadMMSList * pAutoDownloadMMSList; 
 
struct tagautoDownloadMMSList 
{ 
	pMessageList  autolist; 
	pAutoDownloadMMSList next; 
}; 
 
/* struct define: CmsMMSDocument 
 *  CmsMMSDocument describe a mms pdu 
 */ 
typedef struct _ManagerDocument 
{ 
 
	pMessageFolder	currentfolder; 
	pMessageFolder	inboxfolder; 
	pMessageFolder	outboxfolder; 
	pMessageFolder     sentfolder; 
	pMessageFolder	draftfolder; 
 
}ManagerDocument; 
typedef ManagerDocument *P_ManagerDocument; 
//liangliu added 2005-11-15 for mms setting  
 
typedef enum 
{ 
       MMS_MSG_SAVEFILE_FOR_NULL, 
	MMS_MSG_SAVEFILE_FOR_NOTIFY,  
       MMS_MSG_SAVEFILE_FOR_INBOX_DELETE, 
	MMS_MSG_SAVEFILE_FOR_OUTBOX_DELETE, 
	MMS_MSG_SAVEFILE_FOR_SENTBOX_DELETE, 
	MMS_MSG_SAVEFILE_FOR_DRAFTBOX_DELETE, 
	MMS_MSG_SAVEFILE_FOR_SEND, 
	MMS_MSG_SAVEFILE_FOR_RECV 
}MMIMMS_SAVEMANAGERFILE_STATE; 
 
typedef enum 
{ 
       MMS_MSG_SAVEMMS_FOR_NULL, 
       MMS_MSG_SAVEMMS_FOR_RECV, 
	MMS_MSG_SAVEMMS_FOR_SEND_SUCCESS, 
	MMS_MSG_SAVEMMS_FOR_SEND_FAILED, 
	MMS_MSG_SAVEMMS_FOR_DRAFTSAVE 
}MMIMMS_SAVEMAMMS_STATE; 
 
typedef enum 
{ 
       MMS_MSG_NETUSING_NULL, 
       MMS_MSG_NETUSING_STEP1, 
	MMS_MSG_NETUSING_STEP2, 
	MMS_MSG_NETUSING_STEP3, 
	MMS_MSG_NETUSING_STEP4 
}MMIMMS_NETUSING_STATE; 
 
 
typedef enum 
{ 
       MMS_MSG_INBOX_READ_FOR_NULL, 
	MMS_MSG_INBOX_READ_FOR_PLAY, 
	MMS_MSG_INBOX_READ_FOR_FW, 
	MMS_MSG_INBOX_READ_FOR_SAVEPIC, 
	MMS_MSG_INBOX_READ_FOR_SAVESOUND, 
	MMS_MSG_INBOX_READ_FOR_SAVEVIDEO, 
	MMS_MSG_OUTBOX_READ_FOR_SEND, 
	MMS_MSG_OUTBOX_READ_FOR_PLAY, 
	MMS_MSG_OUTBOX_READ_FOR_EDIT, 
	MMS_MSG_SENTBOX_READ_FOR_PLAY, 
	MMS_MSG_SENTBOX_READ_FOR_FW, 
	MMS_MSG_DRAFTBOX_READ_FOR_EDIT 
}MMIMMS_READ_STATE_CHANGED; 
 
typedef enum 
{ 
	MMS_MSG_READ_SIGN_NULL, 
	MMS_MSG_READ_SIGN_FOR_SET, 
	MMS_MSG_READ_SIGN_FOR_EDIT, 
	MMS_MSG_READ_SIGN_FOR_ANSWER_MMS 
}MMIMMS_READ_STATE_SIGN; 
typedef enum 
{ 
	MMS_MSG_SETTINGS_OFF, 
	MMS_MSG_SETTINGS_ON, 
	NUM_MMS_MSG_SETTINGS_ONOFF 
}MESSAGES_MMS_MSG_SETTINGS_ONOFF; 
 
typedef enum 
{	 
	MMS_MSG_SETTINGS_RETRIEVE_MANUAL, 
	MMS_MSG_SETTINGS_RETRIEVE_AUTO, 
	NUM_MMS_MSG_SETTINGS_RETRIEVE 
}MESSAGES_MMS_MSG_SETTINGS_RETRIEVE; 
 
typedef enum 
{	 
	MMS_MSG_SETTINGS_PRIORITY_HIGH, 
	MMS_MSG_SETTINGS_PRIORITY_NORMAL, 
	MMS_MSG_SETTINGS_PRIORITY_LOW, 
	NUM_MMS_MSG_SETTINGS_PRIORITY 
}MESSAGES_MMS_MSG_SETTINGS_PRIORITY; 
 
typedef enum 
{ 
 
	MMS_MSG_VALID_PERIOD_12_HOUR, 
	MMS_MSG_VALID_PERIOD_1_DAY, 
	MMS_MSG_VALID_PERIOD_1_WEEK, 
	MMS_MSG_VALID_PERIOD_LONGEST, 
	MMS_MSG_VALID_PERIOD_TOTAL 
}MESSAGES_MMS_SETTING_VALID_PERIOD; 
 
//add end 
 
typedef enum 
{ 
	MMIMMS_IMP_SBJ_ADD_NONE,	//对subject不添加其他字符串 
	MMIMMS_IMP_SBJ_RE,			//"Re:" + former subject 
	MMIMMS_IMP_SBJ_FORWARD		//"Fwd:" + former subject 
}IMPORT_SUBJECT_TYPE_E; 
 
typedef struct  
{ 
	uint32 index;	//index should change with value 
	uint32 value;	//sort by value 
}Sort_T; 
 
typedef enum 
{ 
	MMS_SAVE_INBOX,			//保存彩信到收件箱 
	MMS_SAVE_INBOX_PUSH		//保存PUSH到收件箱 
}MMS_SAVE_INBOX_STATUS ;	//保存彩信到收件箱时的状态 
 
typedef enum 
{ 
	SAVE_MMS_TO_INBOX, 
	SAVE_MMS_TO_OUTBOX, 
	SAVE_MMS_TO_SENTBOX, 
	SAVE_MMS_TO_DRAFTBOX, 
	SAVE_MMS_TO_DEFAULT 
}SAVE_MMS_STATUS;	//保存彩信到指定的信箱 
typedef struct  
{ 
	uint16 cur_group; 
	uint16 total_group_num; 
}GSEND_GROUP_NUMBER; 
 
typedef enum 
{ 
	MMIMMS_SEND_MMS, 
	MMIMMS_DOWNLOAD_MMS, 
	MMIMMS_SEND_NTFRESPONSE, 
	MMIMMS_SEND_ACK 
}MMIMMS_WAP_TRANSACTION_E; 
 
 
typedef enum 
{ 
	SENDING_LEAVE, 
	SENDING_SENDING, 
	SENDING_SEND_SUCCESS, 
	SENDING_SEND_FAILED, 
	SENDING_SAVE_SENTBOX_SUCESS, 
	SENDING_SAVE_SENTBOX_FAIL, 
	SENDING_SAVE_SENTBOX_NOT_ENOUGH_SPACE, 
	SENDING_SAVE_OUTBOX_SUCCESS, 
	SENDING_SAVE_OUTBOX_FAIL, 
	SENDING_SAVE_OUTBOX_NOT_ENOUGH_SPACE, 
	SENDING_CANCEL, 
	SENDING_FINISH 
}MMIMMS_SENDING_STATUS_E; 
 
typedef enum 
{	 
	DOWNLOADING_LEAVE, 
	DOWNLOADING_RECEIVE_NTF, 
	DOWNLOADING_SAVENTF_SUCCESS, 
	DOWNLOADING_SAVENTF_FAIL, 
	DOWNLOADING_DOWNLOAD, 
	DOWNLOADING_DOWNLOAD_SUCCESS, 
	DOWNLOADING_DOWNLOAD_FAIL, 
	DOWNLOADING_DOWNLOAD_MMS_TOO_BIG, 
	DOWNLOADING_SEND_NTF_RESPONSE, 
	DOWNLOADING_SEND_NTF_RESPONSE_RETURN, 
	DOWNLOADING_SEND_ACK, 
	DOWNLOADING_SEND_ACK_RETURN, 
	DOWNLOADING_SAVE_SUCCESS, 
	DOWNLOADING_SAVE_FAILED, 
	DOWNLOADING_SAVE_NOT_ENOUGH_SPACE, 
	DOWNLOADING_CHECK_STATUS,	//check whether we have another mms notification 
	DOWNLOADING_FINISH 
}MMIMMS_DOWNLOADING_STATUS_E; 
 
typedef enum 
{ 
	SAVEFS_NOT_ENOUGH_SPACE = 0, 
	SAVEFS_WRITE_FAIL = 1, 
	SAVEFS_WRITE_SUCCEED = 2, 
	SAVEFS_WRITE_PANDING = 3, 
	SAVEFS_WIRTE_INVALID 
}SAVEFS_WRITE_RESULT; 
 
typedef enum 
{ 
	SAVEFS_READ_SUCCEED = 4, 
	SAVEFS_READ_FAIL	= 5 
}SAVEFS_READ_RESULT; 
 
typedef enum 
{ 
	SAVEFS_DELETE_SUCCEED	= 7, 
	SAVEFS_DELETE_FAIL		= 8 
}SAVEFS_DELETE_RESULT; 
 
typedef struct   
{ 
	HEFS				hefs;		//EFS_Close 
	MMIMMS_NV_ID_T		nv_id;		//save in nv 
	MMIMMS_FILE_ID_T	file_id;	//save in nv 
	SAVEFS_WRITE_RESULT	write_result;	//response of EFS task 
	uint8				*buf_ptr;	//to free it 
	uint32				buf_size;	//to save in nv 
	BOOLEAN				is_new_mms;	//to to judge new mms or update old mms 
}FFS_OVERLAPPED_RESULT_T; 
 
#define MMS_GROUP_NAME_LEN	25 
 
typedef struct tag_MMS_GROUP 
{ 
    BOOLEAN is_ucs2;                     // 字符串的编码类型 
    uint8   groupname_len;                   // alpha数组的BYTE个数 
	uint8 groupname[MMIPB_NAME_MAX_LEN]; 
	uint16 groupcount ; 
	p_MMS_RECEPIENT cur_group; 
}MMS_GROUP; 
typedef MMS_GROUP*	p_MMS_GROUP; 
 
typedef struct   
{ 
	HEFS				hefs;		//EFS_Close	 
	//MMI_WINDOW_ID_E		win_id;		//pass to EFS_OVERLAPPED_RESULT_T, to MMK_PostMsg 
	SAVEFS_READ_RESULT	read_result;	//response of EFS task 
	uint32				buf_size;	//to save in nv 
	uint8				*buf_ptr;	//to free it 
}FFS_READFILE_RESULT_T; 
 
typedef struct   
{ 
	HEFS				hefs;		//EFS_Close	 
	FILE_DEV_E_T        dev_type; 
	//MMI_WINDOW_ID_E		win_id;		//pass to EFS_OVERLAPPED_RESULT_T, to MMK_PostMsg 
	SAVEFS_WRITE_RESULT	write_result;	//response of EFS task 
	uint32				buf_size;	//to save in nv 
	uint8				*buf_ptr;	//to free it 
}FFS_SAVEFILE_RESULT_T; 
 
 
typedef struct   
{ 
	uint32	len; 
	uint8	*buf_ptr; 
}UTF8_T; 
 
 
/**--------------------------------------------------------------------------* 
 **                         FUNCTION DEFINITION                              * 
 **--------------------------------------------------------------------------*/ 
/* ---------------------------------------------------------------------------- 
* Function Name: CmsMmsParseRecepient 
* Purpose: 将得到的字符串解析生成地址链表 
* Input:  __head:	地址链表指针 
		  str:	字符串 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void CmsMmsParseRecepient(p_MMS_RECEPIENT __head, char *str); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: mmicms_replymmsforsms 
* Purpose: 电话本和短信回复彩信 
* Input:  telenum:电话号码 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void mmicms_replymmsforsms(char *telenum); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_WriteNewMMS 
* Purpose: 编辑新彩信 
* Input:  void 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
BOOLEAN MMIMMS_WriteNewMMS(void); 
 
/*****************************************************************************/ 
// 	Description : get display string in message box list 
//	Global resource dependence :  
//  Author: Bruce.Chi 
//	Note:	for sms 
///*****************************************************************************/ 
void MMIMMS_GetDispContentInList( 
							uint8			*disp_content_ptr,	//in 
							uint8			length,				//in 
							BOOLEAN			is_ucs2,			//in 
							uint8			status,				//in, not used now. 
							MMI_STRING_T	*out_string_ptr		//out. and the memory is allocated by outer, Length should be larger than MMIMESSAGE_DIAPLAY_LEN(12 now) 
							); 
 
/*****************************************************************************/ 
// 	Description : save caike 
//	Global resource dependence :  
//  Author:Bruce.Chi 
//	Note:  
/*****************************************************************************/ 
BOOLEAN MMIMMS_CaiKeSave(MMIMMS_CAIKE_ITEM_T *caike_item_ptr); 
 
 
/*****************************************************************************/ 
// 	Description : preview caike 
//	Global resource dependence :  
//  Author:Bruce.Chi 
//	Note:  
/*****************************************************************************/ 
BOOLEAN MMIMMS_CaiKePreview(MMIMMS_CAIKE_ITEM_T *caike_item_ptr); 
 
/*****************************************************************************/ 
// 	Description : send and save caike 
//	Global resource dependence :  
//  Author:Bruce.Chi 
//	Note: now, it is the save with send 
/*****************************************************************************/ 
BOOLEAN MMIMMS_CaiKeSendAndSave(MMIMMS_CAIKE_ITEM_T *caike_item_ptr); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_OptionSubject 
* Purpose: 在subject前添加RE或FW 
* Input:  mms状态(转发或回复) 
* Returns: 空,输出的字符串是从第二个字符开始的 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_OptionSubject(MMSSTATE mmsstate); 
 
/*****************************************************************************/ 
// 	Description : 得到一条MMS可以插入Image的最大空间 
//	Global resource dependence :  
//  Author: Great.Tian 
//	Note: 
/*****************************************************************************/ 
uint32 MMIMMS_GetInsertMaxSize( 
    void 
    ); 
 
 
 
 
/************************************************************** 
 * FUNCTION: fnMMS_SaveMmsPushMessage 
 * 
 * PURPOST: Save push message come from sms,the push message may 
 *			be mms notification or delivery/read report,when receive 
 *          these information,agent must do some thing to indicate it 
 *          to the user. 
 * PARAMETER 
 * 		InPut :   
 *			unsigned char *pData -- push information's data content. 
 *			unsigned int Length -- the length of the notify data . 
 *		OutPut: none 
 * 
 *		InOut : none 
 *	 
 * Return Value: if success return 1 ,else return 0.  
 * 
 * Reentrant: none 
 **************************************************************/ 
T_BOOL  fnMMS_SaveMmsPushMessage(unsigned char *pData,unsigned int Length); 
 
 
void EditboxStringToGlobalVariable(MMI_CTRL_ID_T ctrl_id); 
 
/*****************************************************************************/ 
// 	Description : Get mail box message number. 
//	Global resource dependence : none 
//  Author: Bruce.Chi 
//	Input:	mms type 
//	Output:	number of specific mms type		 
//	Note:	 
/*****************************************************************************/ 
uint16 MMIMMS_GetMailboxMsgNum(MMIMSG_MAILBOX_TYPE_E mms_type); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_get_port 
* Purpose: 得到当前的网关和端口号 
* Input:  curgatway:	当前的网关 
		  curport:	当前的端口号 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_get_port(char **curgatway,unsigned short *curport); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_SaveDownloadVideo 
* Purpose:保存彩信内容中的视频 
* Input:  video_data_ptr:视频数据指针 
		  memory_size:视频大小 
		  image_type:视频类型 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_SaveDownloadVideo( 
                               uint8                *video_data_ptr,  
                               uint32               memory_size,    
                               uint32				image_type, 
							   MMIMULTIM_SAVE_FILE_CALLBACK_PFUNC callback_func 
                               ); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_SaveDownloadmp3 
* Purpose:保存彩信内容中的MP3 
* Input:  mp3_data_ptr:MP3数据指针 
		  memory_size:MP3大小 
		  mp3_type:MP3频类型 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_SaveDownloadmp3( 
                               uint8                *mp3_data_ptr,  //in: 
                               uint32               memory_size,    //in: 
                               uint32				mp3_type, 
							   MMIMULTIM_SAVE_FILE_CALLBACK_PFUNC callback_func 
                               ); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_PlayMMSSound 
* Purpose: 播放声音(这里的声音是信息提示音) 
* Input:  void 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_PlayMMSSound(void); 
 
 
BOOLEAN MMIMMS_EditMMS ( 
					MMS_EDIT_SRC_TYPE from_type, 
					uint32	lparam, 
					uint32	wparam, 
					void*	param_ptr 
); 
 
 
/*****************************************************************************/ 
// 	Description : 取得收件人的个数 
//	Global resource dependence : none 
//  Author: NIHONGF 
//	Note:	 
/*****************************************************************************/ 
int32 MmsGetReceiverCount(p_MMS_RECEPIENT p_receiver); 
 
/*****************************************************************************/ 
// 	Description : judge whether subject exist 
//	Global resource dependence : g_mms_save_in_mem 
//  Author: Bruce.Chi 
//	Note:	used in edit and save moduel 
///*****************************************************************************/ 
BOOLEAN Edit_CurSubjectExist(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: Edit_CurContentTextExist 
* Purpose: 判断当前内容是否有文本 
* Input:  pMMS_EDocument,当前编辑文档 
* Returns: 布尔型 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
BOOLEAN Edit_CurContentTextExist(pMMS_EDocument p_cur_doc); 
 
/*****************************************************************************/ 
// 	Description : 删除收件人列表 
//	Global resource dependence :  
//  Author: nihongf 
//	Note:	 
///*****************************************************************************/ 
 
void MmsDelAllReceiver(p_MMS_RECEPIENT* p_receiver); 
 
 
/*****************************************************************************/ 
// 	Description : get subject string 
//	Global resource dependence : g_mms_save_in_mem 
//  Author: Bruce.Chi 
//	Note:	used in edit and save moduel, return pointer pointing to internal memory 
///*****************************************************************************/ 
MMI_STRING_T Edit_GetSubject(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: Edit_GetContentText 
* Purpose:取得当前文本内容 
* Input:  pMMS_EDocument 
* Output: 字符串结构. 
* Returns: 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/ 
MMI_STRING_T Edit_GetContentText(pMMS_EDocument p_cur_doc); 
 
/* ---------------------------------------------------------------------------- 
/* Function Name: CmsGetUnicodeLen 
*  Purpose:取得unicode字符串的长度 
*  Input:  输入的字符串 
*  Output: 长度 
*  Returns: 
*  Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
uint16 CmsGetUnicodeLen(const unsigned char *data); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: GetSubjectStringLen 
* Purpose:得到字符串的具体内容 
* Input:  输入的字符串 
* Output: 输出的字符传及字符串长度,输出的字符串是从第二个字符开始的 
* Returns: 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
uint16 GetSubjectStringLen(char* srcstr,char** decstr); 
 
/*****************************************************************************/ 
// 	Description : delete subject string 
//	Global resource dependence : g_mms_save_in_mem 
//  Author: Bruce.Chi 
//	Note:	used in edit and save moduel 
///*****************************************************************************/ 
MMIMMS_RESULT_E Edit_DeleteSubject(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_IsIPAddress 
* Purpose:判断用户输入的网关地址是否是IP地址 
* Input:  curipaddress:	当前的网关地址 
* Output: BOOLEAN 
		  TRUE: 是IP地址 
		  FALSE:不是IP地址 
* Returns: 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
BOOLEAN MMIMMS_IsIPAddress(char *curipaddress); 
 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_GetCurSlideImage 
* Purpose:得到当前页的图像信息 
* Input:  T_Composer_Image:	图片结构 
		  pMMS_EDocument: 编辑文档 
* Returns:T_WORD 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
T_WORD MMIMMS_GetCurSlideImage(T_Composer_Image*Image,pMMS_EDocument pedoc ); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_GetCurSlideAudio 
* Purpose:得到当前页的音乐信息 
* Input:  T_Composer_Audio:	音乐结构 
		  pMMS_EDocument: 编辑文档 
* Returns:T_WORD 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
T_WORD MMIMMS_GetCurSlideAudio(T_Composer_Audio *audio,pMMS_EDocument pedoc); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_GetCurSlideVideo 
* Purpose:得到当前页的视频信息 
* Input:  T_Composer_Video:	视频结构 
		  pMMS_EDocument: 编辑文档 
* Returns:T_WORD 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
T_WORD MMIMMS_GetCurSlideVideo(T_Composer_Video*Video,pMMS_EDocument p_edoc); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_AddVideo 
* Purpose:在当前页添加视频 
* Input:  T_Composer_Video:	视频结构 
		  pMMS_EDocument: 编辑文档 
* Returns:T_WORD 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
T_WORD MMIMMS_AddVideo(T_Composer_Video*Video,pMMS_EDocument p_cur_doc); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_AddImage 
* Purpose:在当前页添加图像 
* Input:  T_Composer_Image:	图片结构 
		  pMMS_EDocument: 编辑文档 
* Returns:T_WORD 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
T_WORD MMIMMS_AddImage(T_Composer_Image*Image,pMMS_EDocument p_cur_doc); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_AddAudio 
* Purpose:在当前页添加音乐 
* Input:  T_Composer_Audio:	音乐结构 
		  pMMS_EDocument: 编辑文档 
* Returns:T_WORD 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
T_WORD MMIMMS_AddAudio(T_Composer_Audio*Audio,pMMS_EDocument p_cur_doc); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_SetCurSlideDuration 
* Purpose:设置当前页面的延时 
* Input:  T_WORD:	延时时间 
* Returns: 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
T_WORD MMIMMS_SetCurSlideDuration(T_WORD delay); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_DeleteCurImage 
* Purpose:从当前页删除图像 
* Input:  pMMS_EDocument:编辑文档 
* Returns: 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
T_WORD MMIMMS_DeleteCurImage(pMMS_EDocument p_cur_doc); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_DeleteCurVideo 
* Purpose:从当前页删除视频 
* Input:  pMMS_EDocument:编辑文档 
* Returns: 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
T_WORD MMIMMS_DeleteCurVideo(pMMS_EDocument p_cur_doc); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_GetCurText 
* Purpose:得到当前页的文本信息 
* Input:  pMMS_EDocument:编辑文档 
		  T_Composer_Text:文本结构 
* Returns:T_WORD 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
T_WORD MMIMMS_GetCurText(T_Composer_Text*Text,pMMS_EDocument p_cur_doc); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_GetTotalSize 
* Purpose:得到当前编辑彩信的资源大小 
* Input:  T_VOID 
* Returns:T_WORD 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
T_WORD MMIMMS_GetTotalSize(T_VOID); 
 
 
/*****************************************************************************/ 
// 	Description : "add to address" 
//	Global resource dependence : g_mms_save_in_mem 
//  Author: Bruce.Chi 
//	Note:	used in edit and save moduel 
///*****************************************************************************/ 
//			Array 
//				|--| 
//				| 0|-->content0(heap) 
//				|--| 
//				| 1|-->content1(heap) 
//				|--| 
// total_num = 2|  | 
//				|..|	 
BOOLEAN Edit_AddToAddr(uint8 *to_ptr,To_Addr* addr_list); 
 
/*****************************************************************************/ 
// 	Description : delete  "to address" 
//	Global resource dependence : g_mms_save_in_mem 
//  Author: Bruce.Chi 
//	Note:	used in edit and save moduel 
///*****************************************************************************/ 
BOOLEAN Edit_DeleteToAddr(uint32 index,To_Addr* addr_list ); 
 
 
/*****************************************************************************/ 
// 	Description : delete  all "to address" 
//	Global resource dependence : g_mms_save_in_mem 
//  Author: Bruce.Chi 
//	Note:	used in edit and save moduel 
///*****************************************************************************/ 
BOOLEAN Edit_DeleteToAddrAll(To_Addr* addr_list); 
 
/*****************************************************************************/ 
/*****************************************************************************/ 
// 	Description : get "to address" totol number 
//	Global resource dependence : g_mms_save_in_mem 
//  Author: Bruce.Chi 
//	Note:	used in edit and save moduel 
///*****************************************************************************/ 
uint32	Edit_GetToAddTotalNumber(void); 
 
/*****************************************************************************/ 
// 	Description : Begin to send mms 
//	Global resource dependence : s_send_request_ptr, s_send_pdu_ptr, s_wap_send_in_param 
//  Author: Bruce.Chi 
//	Note:	 
///*****************************************************************************/ 
MMIMMS_RESULT_E MMIMMS_BeginToSendMMS(BOOLEAN need_to_init_wap_stack); 
 
/*****************************************************************************/ 
// 	Description : Free memory allcoted by MMIMMS_BeginToSendMMS 
//	Global resource dependence : s_send_request_ptr, s_send_pdu_ptr, s_wap_send_in_param 
//  Author: Bruce.Chi 
//	Note:	 
///*****************************************************************************/ 
void MMIMMS_FreeBeginToSendMMSMem(void); 
 
/*****************************************************************************/ 
// 	Description : create download waiting win 
//	Global resource dependence :  
//  Author: Bruce.chi 
//	Note: 
/*****************************************************************************/ 
BOOLEAN Download_CreateDownloadingWin(MMIMMS_DOWNLOADING_STATUS_E init_stat, MMIMMS_NV_ID_T mms_noti_nv_id); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Download_CreateDownloadingWin 
* Purpose:下载彩信时的等待窗口 
* Input:  void 
* Returns:void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_Download_CreateDownloadingWin(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_SendMMS_CreateSendingWin 
* Purpose:发送彩信时的等待窗口 
* Input:  void 
* Returns:void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void  MMIMMS_SendMMS_CreateSendingWin(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_SendReadRpt_CreateWaitingWin 
* Purpose:发送阅读报告时的等待窗口 
* Input:  void 
* Returns:void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_SendReadRpt_CreateWaitingWin(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_CreateNormalWaitingWin 
* Purpose:删除彩信时的等待窗口 
* Input:  void 
* Returns:void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void  MMIMMS_CreateNormalWaitingWin(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_CreateReadMMSWaitingWin 
* Purpose:读取彩信时的等待窗口 
* Input:  void 
* Returns:void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_CreateReadMMSWaitingWin(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_CreateSaveMMSWaitingWin 
* Purpose:保存彩信时的等待窗口 
* Input:  void 
* Returns:void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void  MMIMMS_CreateSaveMMSWaitingWin(void); 
 
 
/*****************************************************************************/ 
// 	Description : free memory allocated by MMIMMS_BeginToDownloadMMS 
//	Global resource dependence : s_wap_send_in_param 
//  Author: Bruce.Chi 
//	Note:	 
///*****************************************************************************/ 
void MMIMMS_FreeBeginToDownloadMMSMem(void); 
 
/*****************************************************************************/ 
// 	Description : Begin to download mms 
//	Global resource dependence : none 
//  Author: Bruce.Chi 
//	Note:	 
///*****************************************************************************/ 
MMIMMS_RESULT_E MMIMMS_BeginToDownloadMMS(MMIMMS_FS_Notification_T *fs_ntf_ptr, BOOLEAN need_to_init_wap_stack); 
 
/*****************************************************************************/ 
// 	Description : check whether input string contains "@' 
//	Global resource dependence : none 
//  Author: Bruce.Chi 
//	Note:	 
///*****************************************************************************/ 
BOOLEAN MMIMMS_IsEmailAddr(const uint8 *email_ptr); 
 
/*****************************************************************************/ 
// 	Description : check whether input string is digital or '+' 
//	Global resource dependence : none 
//  Author: Bruce.Chi 
//	Note:	 
///*****************************************************************************/ 
BOOLEAN MMIMMS_IsNumberAddr(const uint8 *num_ptr); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_GetPBNameByNumber 
* Purpose:通过电话得到电话所属姓名 
* Input:  uint8 *number_ptr:电话号码指针 
		  MMI_STRING_T *name_pt:姓名结构 
* Output: BOOLEAN. 
* Returns: 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/ 
BOOLEAN MMIMMS_GetPBNameByNumber(uint8 *number_ptr, MMI_STRING_T *name_ptr); 
 
/*****************************************************************************/ 
// 	Description : convert ASC to UCS2 
//	Global resource dependence :  
//  Author: Bruce.Chi 
//	Note:	should free the outer pointer 
///*****************************************************************************/ 
uint8 *ASCtoUCS2(uint8  *src_ptr,		//in 
				uint32  src_len,		//in 
				uint32  *ucs2_len_ptr	//out 
				  ); 
/*****************************************************************************/ 
// 	Description : Get mail box message size. 
//	Global resource dependence : none 
//  Author: Bruce.Chi	 
//	Note:	 
/*****************************************************************************/ 
int MMIMMS_GetMailboxMsgSize(MMIMMS_MAILBOX_TYPE mailbox_type); 
 
 
/*****************************************************************************/ 
// 	Description : cat two string 
//	Global resource dependence :  
//  Author: Bruce.Chi 
//	Note:	should free the dst_ptr->str_ptr 
///*****************************************************************************/ 
BOOLEAN CatString(	MMI_STRING_T *dst_ptr,		//out 
					MMI_STRING_T *src1_ptr,		//in 
					MMI_STRING_T *src2_ptr		//in 
					);	 
 
/*****************************************************************************/ 
// 	Description : cat two string the first is ID 
//	Global resource dependence :  
//  Author: Bruce.Chi 
//	Note:	should free the dst_ptr->str_ptr 
///*****************************************************************************/ 
BOOLEAN CatStringByTextID(	 
					MMI_STRING_T	*dst_ptr,		//out. 
					uint32			text_id,		//in. 
					MMI_STRING_T	*src2_ptr		//in. 
					); 
 
/*****************************************************************************/ 
// 	Description : cat two string 
//	Global resource dependence :  
//  Author: Bruce.Chi 
//	Note:	should free the dst_ptr->str_ptr 
///*****************************************************************************/ 
BOOLEAN CatStringByTextID2(	 
					MMI_STRING_T	*dst_ptr,		//out. 
					uint32			text_id1,		//in. 
					uint32			text_id2		//in. 
					); 
 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_GetMMSC 
* Purpose:得到彩信中心的设定值 
* Input:  void 
* Returns: uint8*:彩信中心号码 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
uint8 *MMIMMS_Setting_GetMMSC(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_GetGATEWAY 
* Purpose:得到网关的设定值 
* Input:  void 
* Returns: uint8*:网关号码 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
uint8 *MMIMMS_Setting_GetGATEWAY(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_GetPORT 
* Purpose:得到端口号的设定值 
* Input:  void 
* Returns: uint8*:端口号值 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
uint8 *MMIMMS_Setting_GetPORT(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_GetUserName 
* Purpose:得到用户名的设定值 
* Input:  void 
* Returns: uint8*:用户名 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
uint8 *MMIMMS_Setting_GetUserName(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_Getpassword 
* Purpose:得到密码的设定值 
* Input:  void 
* Returns: uint8*:密码的值 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
uint8 *MMIMMS_Setting_GetPassword(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_GetAPN 
* Purpose:得到APN的设定值 
* Input:  void 
* Returns: uint8*:APN的设定值 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
uint8 *MMIMMS_Setting_GetAPN(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_GetAutoSign 
* Purpose:得到自动签名的设定值 
* Input:  void 
* Returns: MESSAGES_MMS_MSG_SETTINGS_ONOFF 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
MESSAGES_MMS_MSG_SETTINGS_ONOFF MMIMMS_Setting_GetAutoSign(void);	 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_GetPriority 
* Purpose:得到优先级的设定值 
* Input:  void 
* Returns: MESSAGES_MMS_MSG_SETTINGS_ONOFF 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
MESSAGES_MMS_MSG_SETTINGS_ONOFF MMIMMS_Setting_GetPriority(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_SetPriority 
* Purpose:设定优先级的值 
* Input:  uint16 list_index 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_Setting_SetPriority(uint16 list_index); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_GetValidPeriod 
* Purpose:得到有效期的设定值 
* Input:  void 
* Returns: MESSAGES_MMS_SETTING_VALID_PERIOD 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
MESSAGES_MMS_SETTING_VALID_PERIOD MMIMMS_Setting_GetValidPeriod(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_GetValidPeriod 
* Purpose:设定有效期的值 
* Input:  uint16 list_index 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_Setting_SetValidPeriod(uint16 list_index); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_GetAutoDownload 
* Purpose:得到自动下载的设定值 
* Input:  void 
* Returns: MESSAGES_MMS_MSG_SETTINGS_ONOFF 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
MESSAGES_MMS_MSG_SETTINGS_ONOFF MMIMMS_Setting_GetAutoDownload(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_SetAutoDownload 
* Purpose:设定自动下载的值 
* Input:  uint16 list_index 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_Setting_SetAutoDownload(uint16 list_index); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_GetAnonymous 
* Purpose:得到匿名发送的设定值 
* Input:  void 
* Returns: MESSAGES_MMS_MSG_SETTINGS_ONOFF 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
MESSAGES_MMS_MSG_SETTINGS_ONOFF  MMIMMS_Setting_GetAnonymous(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_SetAnonymous 
* Purpose:设定匿名发送的值 
* Input:  uint16 list_index 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_Setting_SetAnonymous(uint16 list_index); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_GetPlaySoundAble 
* Purpose:得到是否播放声音的设定值 
* Input:  void 
* Returns: MESSAGES_MMS_MSG_SETTINGS_ONOFF 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
MESSAGES_MMS_MSG_SETTINGS_ONOFF  MMIMMS_Setting_GetPlaySoundAble(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_SetPlaySound 
* Purpose:uint16 list_index 
* Input:  void 
* Returns: MESSAGES_MMS_MSG_SETTINGS_ONOFF 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_Setting_SetPlaySound(uint16 list_index); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_GetAdvertisingallowable 
* Purpose:得到是否允许广告的设定值 
* Input:  void 
* Returns: MESSAGES_MMS_MSG_SETTINGS_ONOFF 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
MESSAGES_MMS_MSG_SETTINGS_ONOFF  MMIMMS_Setting_GetAdvertisingallowable(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_SetAdvertising 
* Purpose:设定是否允许广告的值 
* Input:  uint16 list_index 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_Setting_SetAdvertising(uint16 list_index); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_GetDeliveryReport 
* Purpose:得到送达报告的设定值 
* Input:  void 
* Returns: MESSAGES_MMS_MSG_SETTINGS_ONOFF 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
MESSAGES_MMS_MSG_SETTINGS_ONOFF MMIMMS_Setting_GetDeliveryReport(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_SetDeliveryReport 
* Purpose:设定送达报告的值 
* Input:  uint16 list_index 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_Setting_SetDeliveryReport(uint16 list_index); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_GetReadReport 
* Purpose:得到阅读报告的设定值 
* Input:  void 
* Returns: MESSAGES_MMS_MSG_SETTINGS_ONOFF 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
MESSAGES_MMS_MSG_SETTINGS_ONOFF MMIMMS_Setting_GetReadReport(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_SetReadReport 
* Purpose:设定阅读报告的值 
* Input:  uint16 list_index 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_Setting_SetReadReport(uint16 list_index); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_SetMMSC 
* Purpose:设置彩信中心号码 
* Input:  uint8 *:彩信中心号码字符串 
		  uint16: 字符串长度 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_Setting_SetMMSC(uint8 *mmsc_ptr, uint16 mmsc_len); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_SetGATEWAY 
* Purpose:设置网关地址 
* Input:  uint8 *:网关地址字符串 
		  uint16: 字符串长度 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_Setting_SetGATEWAY(uint8 *gateway_ptr, uint16 gateway_len); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_SetPORT 
* Purpose:设置端口号 
* Input:  uint8 *:端口号字符串 
		  uint16: 字符串长度 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_Setting_SetPORT(uint8 *port_ptr, uint16 port_len); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_SetUserName 
* Purpose:设置用户名 
* Input:  uint8 *:字符串 
		  uint16: 字符串长度 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_Setting_SetUserName(uint8 *username_ptr, uint16 username_len); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_SetPassword 
* Purpose:设置密码 
* Input:  uint8 *:字符串 
		  uint16: 字符串长度 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_Setting_SetPassword(uint8 *password_ptr, uint16 password_len); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_SetAPN 
* Purpose:设置APN 
* Input:  uint8 *:字符串 
		  uint16: 字符串长度 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_Setting_SetAPN(uint8 *apn_ptr, uint16 apn_len); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Setting_SetAutoSign 
* Purpose:设置自动签名 
* Input:  uint16: 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_Setting_SetAutoSign(uint16 list_index);	 
 
/*****************************************************************************/ 
// 	Description : write mms setting to nv 
//	Global resource dependence : s_nv_setting_mirror 
//  Author: Bruce.Chi 
//	Note:	 
/*****************************************************************************/ 
void Setting_WriteBack(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMSMMS_SetCurSlideDuration 
* Purpose:设定每祯播放的时间的值 
* Input:  uint32 duaration 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMSMMS_SetCurSlideDuration(uint32 duaration); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_GetCurSlideDuration 
* Purpose:得到当前祯播放的时间的值 
* Input:  pMMS_EDocument p_cur_doc 
* Returns: uint32 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
uint32 MMIMMS_GetCurSlideDuration(pMMS_EDocument p_cur_doc); 
 
 
/*****************************************************************************/ 
// 	Description : get delta mms image type string through multim image type 
//	Global resource dependence :  
//  Author: Bruce.Chi 
//	Note:	 
///*****************************************************************************/ 
T_BYTE *Edit_GetDeltaMMSImageType2(ANIMATE_IMAGE_TYPE_E multim_img_type); 
 
/*****************************************************************************/ 
// 	Description : get mms audio type string through multim audio type 
//	Global resource dependence :  
//  Author: Bruce.Chi 
//	Note:	 
///*****************************************************************************/ 
T_BYTE *Edit_GetDeltaMMSAudioType(MMIMULTIM_MUSIC_TYPE_E multim_audio_type); 
 
/*****************************************************************************/ 
// 	Description : get audio type through delta mms audio type string 
//	Global resource dependence :  
//  Author: Bruce.Chi 
//	Note:	 
///*****************************************************************************/ 
MMIMULTIM_MUSIC_TYPE_E Edit_GetMultimAudioType(char *delta_mms_audio_type_ptr); 
 
/*****************************************************************************/ 
// 	Description : get low layer audio type through delta mms audio type string 
//	Global resource dependence :  
//  Author: Bruce.Chi 
//	Note:	 
///*****************************************************************************/ 
MMIAUDIO_TYPE_E Edit_GetLowLayerAudioType(char *delta_mms_audio_type_ptr); 
 
/*****************************************************************************/ 
// 	Description : get ani type through delta mms type string 
//	Global resource dependence :  
//  Author: Bruce.Chi 
//	Note:	 
///*****************************************************************************/ 
ANIMATE_IMAGE_TYPE_E Edit_GetAniType(char *delta_mms_img_type_ptr); 
 
/*****************************************************************************/ 
// 	Description : when sending is finished, close the input "To" win 
//	Global resource dependence :  
//  Author: Bruce.chi 
//	Note: 
/*****************************************************************************/ 
BOOLEAN Send_FinishThenReturnMenuWin(void); 
 
/*****************************************************************************/ 
// 	Description : when downloading is finished, close waiting win 
//	Global resource dependence :  
//  Author: Bruce.chi 
//	Note: 
/*****************************************************************************/ 
BOOLEAN Download_FinishThenReturnMenuWin(MMIMMS_WAP_TRANSACTION_E type); 
 
/*****************************************************************************/ 
// 	Description : create send waiting win 
//	Global resource dependence :  
//  Author: Bruce.chi 
//	Note: 
/*****************************************************************************/ 
BOOLEAN Send_CreateSendingWin(MMIMMS_MMS_OR_CAIKE mms_from); 
 
/*****************************************************************************/ 
// 	Description : send message to sending waiting win 
//	Global resource dependence :  
//  Author: Bruce.chi 
//	Note: 
/*****************************************************************************/ 
void Send_PostSendingWinMsg(MMIMMS_SENDING_STATUS_E param); 
 
/*****************************************************************************/ 
// 	Description : save mms according to send result 
//	Global resource dependence : s_send_request_ptr, 
//  Author: Bruce.Chi 
//	Note:	returned value : is_save_success 
///*****************************************************************************/ 
SAVEFS_WRITE_RESULT SaveMMS_BySendingResult(BOOLEAN is_send_success, MMS_WINDOW_ID_E win_id); 
 
/*****************************************************************************/ 
// 	Description : get cur group number 
//	Global resource dependence : s_cur_group 
//  Author: Bruce.chi 
//	Note: 
/*****************************************************************************/ 
uint16 Edit_GetCurGroupNumber(void); 
 
/*****************************************************************************/ 
// 	Description : send message to downloading waiting win 
//	Global resource dependence :  
//  Author: Bruce.chi 
//	Note: 
/*****************************************************************************/ 
void Send_PostDownloadingWinMsg(MMIMMS_DOWNLOADING_STATUS_E param); 
 
/*****************************************************************************/ 
// 	Description : downloading send ntf response 
//	Global resource dependence : s_mms_retreive_ptr 
//  Author: Bruce.Chi 
//	Note:	 
///*****************************************************************************/ 
void Download_SendNtfResponse(void); 
 
/*****************************************************************************/ 
// 	Description : downloading send ack 
//	Global resource dependence : s_mms_retreive_ptr 
//  Author: Bruce.Chi 
//	Note:	 
///*****************************************************************************/ 
void Download_SendACK(void); 
 
/*****************************************************************************/ 
// 	Description : save downloaded mms 
//	Global resource dependence : s_mms_retreive_ptr 
//  Author: Bruce.Chi 
//	Note:	 
///*****************************************************************************/ 
SAVEFS_WRITE_RESULT Download_SaveMMS(MMS_WINDOW_ID_E win_id); 
 
/*****************************************************************************/ 
// 	Description : alert new mms notification 
//	Global resource dependence :  
//  Author: bruce.chi 
//	Note:  
/*****************************************************************************/ 
void AlertNewMMSNtf(void); 
 
/*****************************************************************************/ 
// 	Description : MMIMMS construction fuction 
//	Global resource dependence : many 
//  Author: Bruce.Chi 
//	Note: 
/*****************************************************************************/ 
MMIMMS_RESULT_E MMIMMS_Construction(void); 
 
/*****************************************************************************/ 
// 	Description : MMIMMS destruction fuction 
//	Global resource dependence : many 
//  Author: Bruce.Chi 
//	Note: 
/*****************************************************************************/ 
MMIMMS_RESULT_E MMIMMS_Destruction(void); 
 
/*****************************************************************************/ 
// 	Description : get MMI_TM_T through seconds since 1970 
//	Global resource dependence :  
//  Author: Bruce.Chi 
//	Note:	 
///*****************************************************************************/ 
MMI_TM_T Edit_GetTimeFrom1970(uint32 seconds); 
 
/*****************************************************************************/ 
// 	Description : ucs2 -> utf8 
//	Global resource dependence :  
//  Author: Bruce.Chi 
//	Note:	should free the return pointer UTF8_T.buf_ptr 
///*****************************************************************************/ 
UTF8_T Edit_UNICODE2UTF(MMI_STRING_T *str_src_ptr); 
 
/*****************************************************************************/ 
// 	Description : utf8 -> ucs2 
//	Global resource dependence :  
//  Author: Bruce.Chi 
//	Note:	should free the return pointer MMI_STRING_T.str_ptr 
///*****************************************************************************/ 
MMI_STRING_T Edit_UTF2UNICODE(UTF8_T *utf8_str_ptr); 
 
/*****************************************************************************/ 
// 	Description : save current downloading mms notification nv_id 
//	Global resource dependence :  
//  Author: Bruce.chi 
//	Note: 
/*****************************************************************************/ 
void Download_SetDownloadNotiID(MMIMMS_NV_ID_T ntf_nv_id); 
 
 
/****************************************************************************** 
 * 函数定义:	MMIMMS_ReadManagerInboxFile 
 * 函数说明:	读取收件箱的文件 
 * 参数说明:	空 
 * 返回值:		空 
 * 代码编写者:		liangliu 
 * 代码编写日期:	10/17/2005 
********************************************************************************/ 
void   MMIMMS_ReadManagerInboxFile(void); 
 
/****************************************************************************** 
 * 函数定义:	MMIMMS_ReadManagerOutboxFile 
 * 函数说明:	读取发件箱的文件 
 * 参数说明:	空 
 * 返回值:		空 
 * 代码编写者:		liangliu 
 * 代码编写日期:	10/17/2005 
********************************************************************************/ 
void   MMIMMS_ReadManagerOutboxFile(void); 
 
/****************************************************************************** 
 * 函数定义:	MMIMMS_ReadManagerSentboxFile 
 * 函数说明:	读取已发信箱的文件 
 * 参数说明:	空 
 * 返回值:		空 
 * 代码编写者:		liangliu 
 * 代码编写日期:	10/17/2005 
********************************************************************************/ 
void   MMIMMS_ReadManagerSentboxFile(void); 
 
/****************************************************************************** 
 * 函数定义:	MMIMMS_ReadManagerDraftboxFile 
 * 函数说明:	读取草稿箱的文件 
 * 参数说明:	空 
 * 返回值:		空 
 * 代码编写者:		liangliu 
 * 代码编写日期:	10/17/2005 
********************************************************************************/ 
void   MMIMMS_ReadManagerDraftboxFile(void); 
 
/****************************************************************************** 
 * 函数定义:	MMIMMS_SaveManagerInboxFile 
 * 函数说明:	保存收件箱内容 
 * 参数说明:	MMS_SAVE_INBOX_STATUS  
 * 返回值:		空 
 * 代码编写者:		liangliu 
 * 代码编写日期:	10/17/2005 
********************************************************************************/ 
void   MMIMMS_SaveManagerInboxFile(MMS_SAVE_INBOX_STATUS saveinboxfilestate); 
 
/****************************************************************************** 
 * 函数定义:	MMIMMS_SaveManagerOutboxFile 
 * 函数说明:	保存发件箱内容 
 * 参数说明:	空 
 * 返回值:		空 
 * 代码编写者:		liangliu 
 * 代码编写日期:	10/17/2005 
********************************************************************************/ 
void   MMIMMS_SaveManagerOutboxFile(void); 
 
/****************************************************************************** 
 * 函数定义:	MMIMMS_SaveManagerSentboxFile 
 * 函数说明:	保存已发信箱内容 
 * 参数说明:	空 
 * 返回值:		空 
 * 代码编写者:		liangliu 
 * 代码编写日期:	10/17/2005 
********************************************************************************/ 
void   MMIMMS_SaveManagerSentboxFile(void); 
 
/****************************************************************************** 
 * 函数定义:	MMIMMS_SaveManagerDraftboxFile 
 * 函数说明:	保存草稿箱内容 
 * 参数说明:	空 
 * 返回值:		空 
 * 代码编写者:		liangliu 
 * 代码编写日期:	10/17/2005 
********************************************************************************/ 
void   MMIMMS_SaveManagerDraftboxFile(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_GetManagerDocument 
* Purpose:获得当前的彩信管理结构 
* Input:  void 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void  MMIMMS_GetManagerDocument(MMIMMS_OPTION_BOX option_box); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_StoreMangerDocument 
* Purpose:存储当前的管理结构到虚拟文件中 
* Input:  void 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_StoreMangerDocument(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_FreeManagerDocument 
* Purpose:释放当前的管理结构 
* Input:  void 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_FreeManagerDocument(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_ReadFolder 
* Purpose:读取相应文件配置需要操作的文件夹 
* Input:  pMessageFolder:当前需要操作的folder 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_ReadFolder(pMessageFolder folder); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_FreeFolder 
* Purpose:释放当前的文件夹的内存空间 
* Input:  pMessageFolder:当前需要操作的folder 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_FreeFolder(pMessageFolder folder); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_FreeFolderForInit 
* Purpose:初始化释放管理目录 
* Input:  pMessageFolder:当前需要操作的folder 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_FreeFolderForInit(pMessageFolder folder); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_ReadMessageHeads 
* Purpose:从fp中读取彩信列表的头数据,主要是指列表中指针所指向的域 
* Input:  pMessageList:需要操作的msg指针 
          fp:文件句柄 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_ReadMessageHeads(pMessageList mlist,FILE_HANDLE fp); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_ReadTextField 
* Purpose:从fp中读取数据并使field指向该数据. 
* Input:  char **需要操作的指针的地址指针所指向的内容(空间) 
          fp:文件句柄 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void  MMIMMS_ReadTextField(CMS_MMS_S8 **field,FILE_HANDLE fp); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_ReadTextField 
* Purpose:存储相应文件配置需要操作的文件夹存储方案为原来MANAGER中 
* Input:  pMessageFolder:当前需要操作的folder 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_StoreFolder(pMessageFolder folder); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_StoreMessageHeads 
* Purpose:存储其中的指针所指向的数据 
* Input:  pMessageList:  需要操作的msg指针 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_StoreMessageHeads(pMessageList mlist, FILE_HANDLE fp); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_GetListState 
* Purpose:得到传入list的状态 
* Input:  当前list 
* Returns: list所处状态 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
uint32 MMIMMS_GetListState(pMessageList mlist); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_GetManagerTotalNum 
* Purpose:得到总共现在所有彩信数目 
* Input:  void 
* Returns: 所有彩信数目 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
uint32 MMIMMS_GetManagerTotalNum(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_FreeMessage 
* Purpose:释放当前的LIST 
* Input:  pMessageList:需要释放空间的消息list指针 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_FreeMessage(pMessageList mlist); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_DeleteMMS 
* Purpose:删除当前floder的当前管理条目以及对应的彩信 
* Input:  当前操作的文件夹,currentFloder 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_DeleteMMS(pMessageFolder folder); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_DeleteManagerList 
* Purpose:删除当前floder的所有管理条目但不涉及其对应的虚拟文件和flash 
                                          上资源,主要用于发件箱-->已发信箱 
* Input:  当前操作的文件夹,currentFloder 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_DeleteManagerList(pMessageFolder folder); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Receive_MMS 
* Purpose:接受彩信 
* Input:  接受彩信,从list列表中获取filename和url 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_Receive_MMS(pMessageList tlist); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Receive_MMS 
* Purpose:回调函数,主要用于push消息处理 
* Input:  status:消息状态 
		  prompt:消息值 
		  status_value:状态值 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
int sms_handle_callback(int status,void *prompt,int status_value); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Receive_MMS 
* Purpose:彩信网络回调函数 
* Input:  status:	网络返回状态 
          prompt: 返回参数 
		  status_value:当前网络状态 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
int mms_lib_callback(int status,void *prompt,int status_value); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_Receive_MMS 
* Purpose:保存彩信 
* Input:  pMessageList:	当前彩信LIST 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_SaveMMS(pMessageList tlist); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_SaveAutoSign 
* Purpose:保存自动签名页到文件系统 
* Input:  filename:自动签名页的文件名 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_SaveAutoSign(uint8 * filename); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_SaveAutoSignMessage 
* Purpose:将自动签名页的编辑文档保存到文件中 
* Input:  pMMS_EDocument:自动签名页的编辑文档 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_SaveAutoSignMessage(pMMS_EDocument p_cur_edit); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_ReadMMS 
* Purpose:从flash资源中读取彩信 
* Input:  pMessageList:彩信LIST 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_ReadMMS(pMessageList tlist); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_ReadAutosign 
* Purpose:从flash资源中读取自动签名页 
* Input:  void 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void   MMIMMS_ReadAutosign(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_GetMMSMessage 
* Purpose:从对应的 彩信文档中获取对应的管理信息条目 
* Input:  彩信文档 
* Returns: 对应的列表信息 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
pMessageList MMIMMS_GetMMSMessage(MMSHANDLE mmsdoc,int state); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_UpdateRecvMMSMessage 
* Purpose:接受完彩信后更新对应的管理条目 
* Input:  一条管理list 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void  MMIMMS_UpdateRecvMMSMessage(pMessageList tlist); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: CMS_MMSSecond2Tm 
* Purpose:获得当前的时间 
* Input:  1970年标准时间 
* Returns: 当地时间结构 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
MMI_TM_T CMS_MMSSecond2Tm(uint32 second); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_DeleteFLASHMMS 
* Purpose:删除对应的falsh上彩信文件 
* Input:  当前消息list列表 
* Returns: 当地时间结构 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_DeleteFLASHMMS(pMessageList tlist); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_ManagerListCopy 
* Purpose:拷贝生成另外一条彩信信息,另外申请了内存 
* Input:  当前消息list列表 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
pMessageList MMIMMS_ManagerListCopy(pMessageList   tlist); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_AddManagerList 
* Purpose:在指定的目录上增加list信息 
* Input:  folder 当前操作的文件夹,mlist 增加的信息 
* Returns:  
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_AddManagerList(pMessageFolder folder, pMessageList mlist); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_DeleteAllMMS 
* Purpose:删除当前floder的所有管理条目以及对应的彩信 
* Input:  当前操作的文件夹,currentFloder 
* Returns:  
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_DeleteAllMMS(pMessageFolder folder); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_DeleteMMSOneOfAll 
* Purpose:删除当前floder的一条管理条目以及对应的彩信 
* Input:  当前操作的文件夹,currentFloder 
* Returns:  
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_DeleteMMSOneOfAll(pMessageFolder folder); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_GetListSubject 
* Purpose:得到实际的标题内容 
* Input:  pMessageList:彩信LIST 
* Returns:  
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
uint8* MMIMMS_GetListSubject(pMessageList   tlist); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_SaveVideo 
* Purpose: 保存视频文件 
* Input:  videoname:视频文件名 
	      vidoBuf:视频内容指针 
		  videoBufLen:视频内容大小 
* Returns: DOWN_ERROR_TYPE 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
DOWN_ERROR_TYPE MMIMMS_SaveVideo(uint8 * videoname, uint8 *vidoBuf, uint32 vidoBufLen); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_SaveMp3 
* Purpose: 保存MP3文件 
* Input:  mp3name:MP3文件名 
	      mp3Buf:MP3内容指针 
		  mp3BufLen:MP3内容大小 
* Returns: DOWN_ERROR_TYPE 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
DOWN_ERROR_TYPE MMIMMS_SaveMp3(uint8 * mp3name, uint8* mp3Buf, uint32 mp3BufLen);//  [4/6/2006 Hongkui.Kang] 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_DeleteManagerListOneOfAll 
* Purpose: 删除管理目录 
* Input:  pMessageFolder:当前folder 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_DeleteManagerListOneOfAll(pMessageFolder folder); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_SortManagerFolder 
* Purpose: 对于传入的文件列表进行排序,为了更好的节省时间,采取对与传入的LIST先 
                                         进行删除,,再进行插入排序 
* Input:  pMessageFolder:当前folder 
		  pMessageList tlist:当前list 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_SortManagerFolder(pMessageFolder folder,pMessageList tlist); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_AddManagerListBySort 
* Purpose: 将list内容插入管理目录中 
* Input:  pMessageFolder:当前folder 
		  pMessageList tlist:当前list 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_AddManagerListBySort(pMessageFolder folder, pMessageList tlist); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_IsMoreSpace 
* Purpose: 判断是否还有足够空间用以保存彩信 
* Input:  void 
* Returns: BOOLEAN 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
BOOLEAN MMIMMS_IsMoreSpace(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_SendMMSReadRpt 
* Purpose: 发送阅读报告 
* Input:  pMessageList:list 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_SendMMSReadRpt(pMessageList tlist); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_DisplaySendRecvProgress 
* Purpose: 显示进度条 
* Input:  uint32   pos:当前进度 
		  uint32 totalsize:总的大小 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_DisplaySendRecvProgress(uint32   pos,uint32 totalsize); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_UdiskFormat 
* Purpose: U盘格式化时删除指定信箱里的MMS 
* Input:  void 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_UdiskFormat(void);	//fnh add 0327 for udisk 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_FreeAutodownList 
* Purpose: 释放整个自动签名链表 
* Input:  void 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_FreeAutodownList(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_DeleteAutodownList 
* Purpose: 删除自动签名链表的某一接点 
* Input:  void 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void MMIMMS_DeleteAutodownList(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: SaveMmsMessage 
* Purpose: 保存彩信到指定的信箱 
* Input:  folder_id:信箱ID号,从1到5分别为:收件箱、发件箱、已发信箱、草稿箱、 
                当前信箱(可能不需要,暂时加上) 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void SaveMmsMessage(SAVE_MMS_STATUS folder_id, char *filename); 
 
/* ---------------------------------------------------------------------------- 
* Function 发送彩信: CmsSendMessage 
* Purpose: 发送彩信 
* Input:  发送状态 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void CmsSendMessage(MMIMMS_SEND_MMS_STATUS sendstate); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: CmsIsSupportType 
* Purpose:判断是否是支持的数据类型 
* Input:  uint16 type:图片文档 
* Returns:BOOLEAN 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
BOOLEAN CmsIsSupportType(uint16 type); 
 
/*****************************************************************************/ 
// 	Description : EditStringToGlobal 
//	Global resource dependence : none 
//  Author: Bruce.Chi 
//	Input:	memory pointer. 
//	Output:			 
//	Note:	 
/*****************************************************************************/ 
void EditStringToGlobal(MMI_CTRL_ID_T contrl_id, To_Addr* addr_list); 
 
/*****************************************************************************/ 
// Description : to parse the multisend dest address for mms 
// Global resource dependence : 
// Author:yuhua.shi 
// Note: 
/*****************************************************************************/ 
void MMIMMS_ParseDestAddr(TEXTEDIT_STRING_INFO_T* text_info, To_Addr* addr_list); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_ResetConfig 
* Purpose: 重新设置成初始值 
* Input:  void 
* Returns: void 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
void   MMIMMS_ResetConfig(void); 
 
/* ---------------------------------------------------------------------------- 
* Function Name: MMIMMS_IsInit 
* Purpose: MMS是否初始化完毕 
* Input:  void 
* Returns: BOOLEAN 
* Author:nihongf@mobilesoft.com.cn 
* ----------------------------------------------------------------------------*/  
BOOLEAN MMIMMS_IsInit(void); 
/**--------------------------------------------------------------------------* 
 **                         Compiler Flag                                    * 
 **--------------------------------------------------------------------------*/ 
#ifdef   __cplusplus 
    } 
#endif 
 
#endif