Interface nsIMIMEHeaderParamType

Hierarchy

Methods

  • Increases the reference count for this interface. The associated instance will not be deleted unless the reference count is returned to zero.

    Returns

    The resulting reference count.

    Returns number

  • Parameters

    • aIID: object
    • Optional aInstancePtr: object

    Returns any

  • A run time mechanism for interface discovery.

    Returns

    NS_OK if the interface is supported by the associated instance, NS_NOINTERFACE if it is not.

    aInstancePtr must not be null.

    Parameters

    • aIID: object

      [in] A requested interface IID

    • aInstancePtr: object

      [out] A pointer to an interface pointer to receive the result.

    Returns void

  • Decreases the reference count for this interface. Generally, if the reference count returns to zero, the associated instance is deleted.

    Returns

    The resulting reference count.

    Returns number

  • Given a header parameter, decodes RFC 2047 style encoding (if it's not obtained from RFC 2231 encoding), converts it to UTF-8 and returns the result in UTF-8 if an attempt to extract charset info. from a few different sources succeeds. Otherwise, returns the input header value (in whatever encoding) as it is except that RFC 822 (using backslash) quotation is stripped off.

    For internal use only. The only other place where this needs to be invoked is mime_decode_filename in mailnews/mime/src/mimehdrs.cpp defined as char * mime_decode_filename(char *name, const char *charset, MimeDisplayOptions *opt)

    Returns

    decoded parameter

    Parameters

    • aParamValue: string

      the value of a parameter to decode and convert

    • aCharset: string

      charset obtained from RFC 2231 decoding in which aParamValue is encoded. If null, indicates that it needs to try RFC 2047, instead.

    • aDefaultCharset: string

      MIME charset to use when aCharset is null and cannot be obtained per RFC 2047 (most likely because 'bare' string is used.) Besides, it overrides aCharset/MIME charset obtained from RFC 2047 if aOverrideCharset is set.

    • aOverrideCharset: boolean

      When set, overrides MIME charset specified in RFC 2047 style encoding with aDefaultCharset

    Returns string

  • Given a header value, decodes RFC 2047-style encoding and returns the decoded header value in UTF-8 if either it's RFC-2047-encoded or aDefaultCharset is given. Otherwise, returns the input header value (in whatever encoding) as it is except that RFC 822 (using backslash) quotation and CRLF (if aEatContinuation is set) are stripped away

    For internal use only. The only other place where this needs to be invoked is MIME_DecodeMimeHeader in mailnews/mime/src/mimehdrs.cpp defined as char * Mime_DecodeMimeHeader(char *header_val, const char *charset, bool override, bool eatcontinuation)

    Returns

    decoded header value

    Parameters

    • aHeaderVal: string

      a header value to decode

    • aDefaultCharset: string

      MIME charset to use in place of MIME charset specified in RFC 2047 style encoding when aOverrideCharset is set.

    • aOverrideCharset: boolean

      When set, overrides MIME charset specified in RFC 2047 style encoding with aDefaultCharset

    • aEatContinuation: boolean

      When set, removes CR/LF

    Returns string

  • Given the value of a header field parameter using the encoding defined in RFC 5987, decode the value into a Unicode string, and extract the optional language parameter.

    This function is purposefully picky; it will abort for all (most?) invalid inputs. This is by design. In particular, it does not support any character encodings other than UTF-8, in order not to promote non-interoperable usage.

    Code that parses HTTP header fields (as opposed to MIME header fields) should use this function.

    Returns

    the decoded parameter value.

    Parameters

    • aParamVal: string

      a header field parameter to decode.

    • aLang: string

      will be set to the language part (possibly empty).

    Returns string

  • Given the value of a single header field (such as Content-Disposition and Content-Type) and the name of a parameter (e.g. filename, name, charset), returns the value of the parameter. The value is obtained by decoding RFC 2231/5987-style encoding, RFC 2047-style encoding, and converting to UniChar(UTF-16) from charset specified in RFC 2231/2047 encoding, UTF-8, aFallbackCharset, the locale charset as fallback if TryLocaleCharset is set, and null-padding as last resort if all else fails.

    This method internally invokes getParameterInternal, However, it does not stop at decoding RFC 2231 (the task for getParameterInternal but tries to cope with several non-standard-compliant cases mentioned below.

    Note that a lot of MUAs put RFC 2047-encoded parameters. Unfortunately, this includes Mozilla as of 2003-05-30. Even more standard-ignorant MUAs, web servers and application servers put 'raw 8bit characters'. This will try to cope with all these cases as gracefully as possible. Additionally, it returns the language tag if the parameter is encoded per RFC 2231 and includes lang.

    Note that GetParameterHTTP skips some of the workarounds used for mail (MIME) header fields, and thus SHOULD be used from non-mail code.

    Returns

    the value of aParamName in Unichar(UTF-16).

    Parameters

    • aHeaderVal: string

      a header string to get the value of a parameter from.

    • aParamName: string

      the name of a MIME header parameter (e.g. filename, name, charset). If empty, returns the first (possibly) unnamed 'parameter'.

    • aFallbackCharset: string

      fallback charset to try if the string after RFC 2231/2047 decoding or the raw 8bit string is not UTF-8

    • aTryLocaleCharset: boolean

      If set, makes yet another attempt with the locale charset.

    • aLang: string

      If non-null, assigns it to a pointer to a string containing the value of language obtained from RFC 2231 parsing. Caller has to free it.

    Returns string

  • Like getParameter, but disabling encodings and workarounds specific to MIME (as opposed to HTTP).

    Parameters

    • aHeaderVal: string
    • aParamName: string
    • aFallbackCharset: string
    • aTryLocaleCharset: boolean
    • aLang: string

    Returns string

  • Given the value of a single header field (such as Content-Disposition and Content-Type) and the name of a parameter (e.g. filename, name, charset), returns the value of the parameter after decoding RFC 2231-style encoding.

    For internal use only. The only other place where this needs to be invoked is |MimeHeaders_get_parameter| in mailnews/mime/src/mimehdrs.cpp defined as char * MimeHeaders_get_parameter (const char *header_value, const char *parm_name, char **charset, char **language)

    Otherwise, this method would have been made static.

    Returns

    the value of aParamName after RFC 2231 decoding but without charset conversion.

    Parameters

    • aHeaderVal: string

      a header string to get the value of a parameter from.

    • aParamName: string

      the name of a MIME header parameter (e.g. filename, name, charset). If empty, returns the first (possibly) unnamed 'parameter'.

    • aCharset: string

      If non-null, it gets assigned a new pointer to a string containing the value of charset obtained from RFC 2231 parsing. Caller has to free it.

    • aLang: string

      If non-null, it gets assigned a new pointer to a string containing the value of language obtained from RFC 2231 parsing. Caller has to free it.

    Returns string

Generated using TypeDoc