# xxxOpenStream()

This function is required when initiating processing of peripheral elements such as document headers, footers, footnotes, and endnotes.

## Syntax

    int pascal _export xxxOpenStream(
        void    *pCFContext,
        int      type,
        int      nOrdinal)

## Arguments

`pCFContext` | A pointer to the global context structure for the custom reader.
`type` | An integer identifying a specific header, footer, footnote, or endnote. Options are defined in `kvcfsr.h`.
`nOrdinal` | An integer identifying a specific header, footer, footnote, or endnote. See the associated macros in `kvtoken.h`.

## Returns

- Upon success, `KVERR_Success`.
- Upon error, a non-zero error code.

## Discussion

A call to this function results in a call to `xxxFillBuffer()`. The function `xxxFillBuffer()` provides a new empty output buffer and a new token stream input buffer to process the alternate stream for peripheral elements. In this alternate stream, paragraph and character style properties are likely different from the main body. Therefore, as the document is parsed, the existing values from the main body must be saved. When the processing of the alternate stream is completed and processing of the main body resumes, these values must be restored in `xxxCloseStream()`.

_FT_HTML5_bannerTitle.htm