void MultipartMessage::AddBodyPart(const MultipartBodyPart& aPart) { DwBodyPart* part = DwBodyPart::NewBodyPart(mEmptyString, 0); const DwString& type = aPart.TypeStr(); const DwString& subtype = aPart.SubtypeStr(); const DwString& cte = aPart.CteStr(); const DwString& contDesc = aPart.ContentDescription(); const DwString& contDisp = aPart.ContentDisposition(); const DwString& bodyStr = aPart.Body(); DwHeaders& headers = part->Headers(); if (type != "" && subtype != "") { headers.ContentType().SetTypeStr(type); headers.ContentType().SetSubtypeStr(subtype); } if (cte != "") { headers.Cte().FromString(cte); } if (contDesc != "") { headers.ContentDescription().FromString(contDesc); } if (contDisp != "") { headers.ContentDisposition().FromString(contDisp); } part->Body().FromString(bodyStr); mMessage->Body().AddBodyPart(part); }
void MultipartMessage::SetBodyPart(int aIdx, const MultipartBodyPart& aPart) { DwBody& body = mMessage->Body(); int numParts = NumberOfParts(); DwBodyPart* part = 0; // If indexed part exists already, just replace its values if (0 <= aIdx && aIdx < numParts) { part = body.FirstBodyPart(); for (int curIdx=0; curIdx < aIdx; ++curIdx) { part = part->Next(); } } // Otherwise, add as many new parts as necessary. else if (numParts <= aIdx) { while (numParts <= aIdx) { part = DwBodyPart::NewBodyPart(mEmptyString, 0); body.AddBodyPart(part); ++numParts; } } else /* if (aIdx < 0) */ { // error! return; } const DwString& type = aPart.TypeStr(); const DwString& subtype = aPart.SubtypeStr(); const DwString& cte = aPart.CteStr(); const DwString& contDesc = aPart.ContentDescription(); const DwString& contDisp = aPart.ContentDisposition(); const DwString& bodyStr = aPart.Body(); DwHeaders& headers = part->Headers(); if (type != "" && subtype != "") { headers.ContentType().SetTypeStr(type); headers.ContentType().SetSubtypeStr(subtype); } if (cte != "") { headers.Cte().FromString(cte); } if (contDesc != "") { headers.ContentDescription().FromString(contDesc); } if (contDisp != "") { headers.ContentDisposition().FromString(contDisp); } part->Body().FromString(bodyStr); }