### Method

# Camel MimeParser step

#### Declaration [src]

    CamelMimeParserState
    camel_mime_parser_step (
      CamelMimeParser* parser,
      gchar** databuffer,
      gsize* datalength
    )

#### Description [src]

Parse the next part of the MIME message. If `camel_mime_parser_unstep()` has been called, then continue to return the same state for that many calls.

If the step is CAMEL_MIME_PARSER_STATE_BODY then the databuffer and datalength pointers will be setup to point to the internal data buffer of the scanner and may be processed as required. Any filters will have already been applied to this data.

Refer to the state diagram elsewhere for a full listing of the states an application is gauranteed to get from the scanner.

#### Parameters

`databuffer`

  Type: An array of `guint8`

  Pointer to accept a pointer to the data associated with this step (if any). May be `NULL`, in which case datalength is also ingored.

  The argument will be modified by the function.
  The argument can be `NULL`.
  The length of the array is specified in the `datalength` argument.
  The caller of the method takes ownership of the returned data, and is responsible for freeing it.

`datalength`

  Type: `gsize*`

  Pointer to accept a pointer to the data length associated with this step (if any).

  The argument will be modified by the function.
  The argument can be `NULL`.

#### Return value

Type: `CamelMimeParserState`

The current new state of the parser is returned.