📄 plxmmsmessage.c
字号:
}
/***************************************************************************
* Function mmsmsg_IsEmptyMessage
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
BOOL mmsmsg_IsEmptyMessage(MmsMessage* msg)
{
int i;
PMMSECONTENT content;
#ifdef MMS_DEBUG
PlxTrace("mmsmsg_IsEmptyMessage\r\n");
#endif
if(!msg || !msg->mmse || !msg->msg)
return TRUE;
i = 1;
content = MMSE_GetContent(msg->mmse, msg->msg, i);
while(content)
{
#ifdef MMS_DEBUG
PlxTrace("in will, type=%s\r\n", content->type);
#endif
if(MMS_Strstr(content->type, "/smil"))
{
i++;
content = MMSE_GetContent(msg->mmse, msg->msg, i);
continue;
}
i++;
if(i > 1)
{
#ifdef MMS_DEBUG
PlxTrace("no empty\r\n");
#endif
return FALSE;
}
content = MMSE_GetContent(msg->mmse, msg->msg, i);
}
#ifdef MMS_DEBUG
PlxTrace("empty\r\n");
#endif
return TRUE;
}
/***************************************************************************
* Function mmsmsg_IsContentEmpty
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
BOOL mmsmsg_IsContentEmpty(MmsMessage* msg)
{
int i;
PMMSECONTENT content;
if(!msg || !msg->mmse || !msg->msg)
return TRUE;
i = 1;
content = MMSE_GetContent(msg->mmse, msg->msg, i);
while(content)
{
if(MMS_Strstr(content->type, "/smil"))
{
i++;
content = MMSE_GetContent(msg->mmse, msg->msg, i);
continue;
}
if(!content->bAttachment)
return FALSE;
i++;
content = MMSE_GetContent(msg->mmse, msg->msg, i);
}
return TRUE;
}
/***************************************************************************
* Function mmsmsg_IsTooBig
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
BOOL mmsmsg_IsTooBig(MmsMessage* msg, long size)
{
long msg_len;
long max_len;
if(!msg)
return TRUE;
msg_len = mmsmsg_GetMessageSize(msg);
max_len = mmsmsg_GetMaxMessageSize(msg);
return (msg_len+size) > max_len;
}
/***************************************************************************
* Function mmsmsg_IsMessageModified
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
BOOL mmsmsg_IsMessageModified(MmsMessage* msg)
{
if(!msg)
return FALSE;
return msg->message_modified;
}
/***************************************************************************
* Function mmsmsg_IsImageModified
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
BOOL mmsmsg_IsImageModified(MmsMessage* msg)
{
if(!msg)
return FALSE;
return msg->image_modified;
}
/***************************************************************************
* Function mmsmsg_IsSoundModified
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
BOOL mmsmsg_IsSoundModified(MmsMessage* msg)
{
if(!msg)
return FALSE;
return msg->sound_modified;
}
/***************************************************************************
* Function mmsmsg_IsTextModified
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
BOOL mmsmsg_IsTextModified(MmsMessage* msg)
{
if(!msg)
return FALSE;
return msg->text_modified;
}
/***************************************************************************
* Function mmsmsg_SetMessageModified
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
void mmsmsg_SetMessageModified(MmsMessage* msg, BOOL modified)
{
if(!msg)
return;
msg->message_modified = modified;
}
/***************************************************************************
* Function mmsmsg_SetImageModified
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
void mmsmsg_SetImageModified(MmsMessage* msg, BOOL modified)
{
if(!msg)
return;
msg->image_modified = modified;
}
/***************************************************************************
* Function mmsmsg_SetSoundModified
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
void mmsmsg_SetSoundModified(MmsMessage* msg, BOOL modified)
{
if(!msg)
return;
msg->sound_modified = modified;
}
/***************************************************************************
* Function mmsmsg_SetTextModified
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
void mmsmsg_SetTextModified(MmsMessage* msg, BOOL modified)
{
if(!msg)
return;
msg->text_modified = modified;
}
/***************************************************************************
* Function mmsmsg_SetPhoneNum
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
void mmsmsg_SetPhoneNum(MmsMessage* msg, const char* phonenums,
int len, int type)
{
char* p;
if(!msg)
return;
switch(type)
{
case 0: //to
p = msg->to;
break;
case 1://cc
p = msg->cc;
break;
case 2: //bcc
p = msg->bcc;
break;
default:
return;
}
if(!phonenums)
{
//msg->to[0] = 0;
p[0] = 0;
return;
}
if(len >= MAX_TO_LEN)
{
MMS_Memcpy((void*)/*msg->to*/p, phonenums, MAX_TO_LEN-1);
//msg->to[MAX_TO_LEN-1] = 0;
p[MAX_TO_LEN-1] = 0;
}
else
{
MMS_Memcpy((void*)/*msg->to*/p, phonenums, len);
//msg->to[len] = 0;
p[len] = 0;
}
}
/***************************************************************************
* Function mmsmsg_GetPhoneNum
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
char* mmsmsg_GetPhoneNum(MmsMessage* msg, int type)
{
if(!msg)
return NULL;
switch(type)
{
case 0:
return msg->to;
case 1:
return msg->cc;
case 2:
return msg->bcc;
}
return NULL;
}
//for subject
/***************************************************************************
* Function mmsmsg_GetSub
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
char* mmsmsg_GetSub(MmsMessage* msg)
{
if(!msg || !msg->sub)
{
return NULL;
}
return msg->sub;
}
/***************************************************************************
* Function mmsmsg_SetSub
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
void mmsmsg_SetSub(MmsMessage* msg, char* sub, int len)
{
if(!msg || !sub)
return;
if(msg->sub)
{
MMS_Free((void*)msg->sub);
msg->sub = NULL;
}
msg->sub_len = 0;
/*
if(len >= MAX_SUB_LEN)
{
MMS_Memcpy((void*)msg->sub, (void*)sub, MAX_SUB_LEN-1);
msg->sub[MAX_SUB_LEN - 1] = 0;
}
else
{
if(len == 0)
{
msg->sub[0] = 0;
}
else
{
MMS_Memcpy((void*)msg->sub, (void*)sub, len);
msg->sub[len] = 0;
}
}
*/
msg->sub = (char*)MMS_Malloc(len+MMS_Strlen(SUB_CHARSET)+1);
if(!msg->sub)
return;
MMS_Strcpy(msg->sub, sub);
msg->sub_len = len;
}
/***************************************************************************
* Function mmsmsg_SaveMmsMessage
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
int mmsmsg_SaveMmsMessage(MmsMessage* msg, enum SaveType save_type)
{
int nReturn = 0;
MMSEOPTION option;
#ifdef MMS_DEBUG
PlxTrace("mmsmsg_SaveMmsMessage\r\n");
#endif
if(!msg || !msg->mmse || !msg->msg)
{
nReturn = SAVE_ERR_FAILED;
goto SaveMsgError;
}
//no phone number
if(msg->to[0] == 0 &&
msg->cc[0] == 0 &&
msg->bcc[0] == 0 &&
save_type == SendSave)
{
nReturn = SAVE_ERR_NONUM;
goto SaveMsgError;
}
//set phone number
if(!mmsmsg_SavePhoneNum(msg))
{
nReturn = SAVE_ERR_FAILED;
goto SaveMsgError;
}
if(!mmsmsg_IsSubValide(msg))
{
nReturn = SAVE_ERR_INVALIDSUB;
goto SaveMsgError;
}
if(!mmsmsg_SaveSub(msg))
{
nReturn = SAVE_ERR_FAILED;
goto SaveMsgError;
}
MMSE_GetOption(msg->mmse, &option);
if(mmsmsg_GetMessageSize(msg) > option.MaxSendSize*1024)
{
nReturn = SAVE_ERR_TOOBIG;
goto SaveMsgError;
}
//save message
if(save_type == DraftSave || save_type == SendSave)
{
MMSE_SelectFolder(msg->mmse, MMSE_FOLDER_DRAFT);
MMSE_ChangeMode(msg->mmse, MMSE_ACCESS_WRITE);
#ifdef MMS_DEBUG
PlxTrace("will MMSE_Save\r\n");
#endif
msg->id = MMSE_Save(msg->mmse, msg->msg, 0);
#ifdef MMS_DEBUG
PlxTrace("MMSE_Save end\r\n");
#endif
MMSE_ChangeMode(msg->mmse, MMSE_ACCESS_READ);
if(msg->id < 0)
{
#ifdef MMS_DEBUG
PlxTrace("save err\r\n");
#endif
if(msg->id == MMSE_NO_SPACE)
{
nReturn = SAVE_ERR_NOSPACE;
goto SaveMsgError;
}
nReturn = SAVE_ERR_FAILED;
goto SaveMsgError;
}
#ifdef MMS_DEBUG
PlxTrace("save ok\r\n");
#endif
//smil_SetModified(msg->m_smil, FALSE);
}
else if(save_type == TempSave) //for other box
{
MMSE_SelectFolder(msg->mmse, MMSE_FOLDER_TEMPLATE);
MMSE_ChangeMode(msg->mmse, MMSE_ACCESS_WRITE);
msg->id = MMSE_Save(msg->mmse, msg->msg, 1);
MMSE_ChangeMode(msg->mmse, MMSE_ACCESS_READ);
if(msg->id < 0)
{
nReturn = SAVE_ERR_FAILED;
goto SaveMsgError;
}
//smil_SetModified(msg->m_smil, FALSE);
}
msg->message_modified = FALSE;
msg->image_modified = FALSE;
msg->text_modified = FALSE;
msg->sound_modified = FALSE;
return SAVE_ERR_OK;
SaveMsgError:
MMSE_ChangeMode(msg->mmse, MMSE_ACCESS_READ);
return nReturn;
}
/***************************************************************************
* Function mmsmsg_GetMmse
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
void* mmsmsg_GetMmse(MmsMessage* msg)
{
if(!msg)
return NULL;
return msg->mmse;
}
/***************************************************************************
* Function mmsmsg_GetMsg
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
void* mmsmsg_GetMsg(MmsMessage* msg)
{
if(!msg)
return NULL;
return msg->msg;
}
/***************************************************************************
* Function mmsmsg_GetMsgId
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
long mmsmsg_GetMsgId(MmsMessage* msg)
{
if(!msg)
return -1;
return msg->id;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -