add: } else if (DwStrcasecmp(aStr, "related") == 0) { type = DwMime::kSubtypeRelated;
context: int DwSubtypeStrToEnum(const DwString& aStr){    if (aStr == "") {        return DwMime::kSubtypeNull;    }    int type = DwMime::kSubtypeUnknown;    int ch = aStr[0];    switch (ch) {    case 'A':    case 'a':        if (DwStrcasecmp(aStr, "alternative") == 0) {            type = DwMime::kSubtypeAlternative;        }        break;    case 'B':    case 'b':        if (DwStrcasecmp(aStr, "basic") == 0) {            type = DwMime::kSubtypeBasic;        }        break;    case 'C':    case 'c':        if (DwStrcasecmp(aStr, "calendar") == 0) {            type = DwMime::kSubtypeVCal;        }        break;    case 'D':    case 'd':        if (DwStrcasecmp(aStr, "digest") == 0) {            type = DwMime::kSubtypeDigest;        }	else if (DwStrcasecmp(aStr, "disposition-notification") == 0 ) {	    type = DwMime::kSubtypeDispositionNotification;	}        break;    case 'E':    case 'e':        if (DwStrcasecmp(aStr, "enriched") == 0) {            type = DwMime::kSubtypeEnriched;        }        else if (DwStrcasecmp(aStr, "external-body") == 0) {            type = DwMime::kSubtypeExternalBody;        }        else if (DwStrcasecmp(aStr, "encrypted") == 0) {            type = DwMime::kSubtypeEncrypted;        }        break;    case 'G':    case 'g':        if (DwStrcasecmp(aStr, "gif") == 0) {            type = DwMime::kSubtypeGif;        }        break;    case 'H':    case 'h':        if (DwStrcasecmp(aStr, "html") == 0) {            type = DwMime::kSubtypeHtml;        }        break;    case 'J':    case 'j':        if (DwStrcasecmp(aStr, "jpeg") == 0) {            type = DwMime::kSubtypeJpeg;        }        break;    case 'M':    case 'm':        if (DwStrcasecmp(aStr, "mixed") == 0) {            type = DwMime::kSubtypeMixed;        }        else if (DwStrcasecmp(aStr, "mpeg") == 0) {            type = DwMime::kSubtypeMpeg;        }        else if (DwStrcasecmp(aStr, "ms-tnef") == 0) {            type = DwMime::kSubtypeMsTNEF;        }        break;    case 'O':    case 'o':        if (DwStrcasecmp(aStr, "octet-stream") == 0) {            type = DwMime::kSubtypeOctetStream;        }        break;    case 'P':    case 'p':        if (DwStrcasecmp(aStr, "plain") == 0) {            type = DwMime::kSubtypePlain;        }        else if (DwStrcasecmp(aStr, "parallel") == 0) {            type = DwMime::kSubtypeParallel;        }        else if (DwStrcasecmp(aStr, "partial") == 0) {            type = DwMime::kSubtypePartial;        }        else if (DwStrcasecmp(aStr, "postscript") == 0) {            type = DwMime::kSubtypePostscript;        }        else if (DwStrcasecmp(aStr, "pgp-signature") == 0) {            type = DwMime::kSubtypePgpSignature;        }        else if (DwStrcasecmp(aStr, "pgp-encrypted") == 0) {            type = DwMime::kSubtypePgpEncrypted;        }        else if (DwStrcasecmp(aStr, "pgp") == 0) {            type = DwMime::kSubtypePgpClearsigned;        }        else if (DwStrcasecmp(aStr, "pkcs7-signature") == 0) {            type = DwMime::kSubtypePkcs7Signature;        }        else if (DwStrcasecmp(aStr, "pkcs7-mime") == 0) {            type = DwMime::kSubtypePkcs7Mime;        }        break;    case 'R':    case 'r':        if (DwStrcasecmp(aStr, "richtext") == 0) {            type = DwMime::kSubtypeRichtext;        }        else if (DwStrcasecmp(aStr, "rfc822") == 0) {            type = DwMime::kSubtypeRfc822;        }	else if (DwStrcasecmp(aStr, "report") == 0) {	    type = DwMime::kSubtypeReport;	}        else if (DwStrcasecmp(aStr, "rtf") == 0) {            type = DwMime::kSubtypeRtf;        }        break;    case 'S':    case 's':        if (DwStrcasecmp(aStr, "signed") == 0) {            type = DwMime::kSubtypeSigned;        }        break;    case 'X':    case 'x':        if (DwStrcasecmp(aStr, "x-vcard") == 0) {            type = DwMime::kSubtypeXVCard;        }        else if (DwStrcasecmp(aStr, "x-pkcs7-signature") == 0) {            type = DwMime::kSubtypePkcs7Signature;        }        else if (DwStrcasecmp(aStr, "x-pkcs7-mime") == 0) {            type = DwMime::kSubtypePkcs7Mime;        }        if (DwStrcasecmp(aStr, "x-diff") == 0) {            type = DwMime::kSubtypeXDiff;        }        break;    }    return type;}