# fpGetMainFileInfo()

This function determines whether a file is a container file—that is, whether it contains subfiles—and should be extracted further.

## Syntax

    int (pascal *fpGetMainFileInfo) (
        void               *pFile,
        KVMainFileInfo     *fileInfo);

## Arguments

`pFile` | The identifier of the file. This is a file handle returned from fpOpenFile().
`fileInfo` | A pointer to the structure KVMainFileInfo. This structure contains information about the file.

## Returns

- If the file information is retrieved, the return value is `KVERR_Success`.

- If the file information is not retrieved, the return value is an error code.

## Discussion

- After the file information is retrieved, call fpFreeStruct() to free the memory allocated by this function.
- If the file is a container (`fileInfo->numSubFiles` is non-zero), call fpGetSubFileInfo() and fpExtractSubFile() for each subfile.
- If the file is not a container (`fileInfo->numSubFiles` is `0`) and contains text (`fileInfo->infoFlag` is set to `KVMainFileInfoFlag_HasContent)`, pass the file directly to the conversion functions.

## Example

    KVMainFileInfo   fileInfo    = NULL;
    if( (error=extractInterface->fpGetMainFileInfo(pFile,&fileInfo)))
    {
        /* Free result object allocated in fileInfo */
        extractInterface->fpFreeStruct(pFile,fileInfo);
        fileInfo = NULL;
    }

_FT_HTML5_bannerTitle.htm