void CMMSEncoder::setMMSHead(char *pFrom,char *pTo,char *pSubject,int nMultipartRelated,int nChoiceType)
{
memset(m_szFrom,0,sizeof(m_szFrom));
if(pFrom)
{
strcpy(m_szFrom,pFrom);
}
memset(m_szTo,0,sizeof(m_szTo));
if(pTo)
{
strcpy(m_szTo,pTo);
}
memset(m_szSubject,0,sizeof(m_szSubject));
if(pSubject)
{
strcpy(m_szSubject,pSubject);
}
m_nIsMultipartRelated=nMultipartRelated;
m_nChoiceType=nChoiceType;
}
int CMMSEncoder::encodeHead(char *pHeader,char *pFrom,char *pTo,char *pSubject)
{
int nIndex=0;
pHeader[nIndex++]=0x8C; // X-Mms-Message-Type
if(m_nChoiceType) //m-send-req
{
pHeader[nIndex++]=0x80; //m-send-req
}
else
{
pHeader[nIndex++]=0x84; // m-retrieve-conf
}
pHeader[nIndex++]=0x98; // transaction-id mms header
char szMessageId[12]={0};
m_MessageTransactionId=time(NULL);
nIndex=nIndex+sprintf(&pHeader[nIndex],"%08X",m_MessageTransactionId);
pHeader[nIndex++]=0x00;
pHeader[nIndex++]=0x8D; // X-Mms-Version
pHeader[nIndex++]=0x90; // 1.0
if(pFrom)
{
if(pFrom[0])
{
int iFromLen=strlen(pFrom);
pHeader[nIndex++]=0x89; // From mms header
pHeader[nIndex++]=iFromLen+2; //