# KVExtractInterface

The members of this structure are pointers to the file extraction functions described in File Extraction API Functions. When you call the KVGetExtractInterface() function, this structure assigns pointers to the functions. The structure is defined in `kvxtract.h`.

    typedef struct  tag_KVExtractInterface
    {
    KVStructHeader;
      int  (pascal *fpOpenFile) (void *pContext,KVOpenFileArg openArg, void **pFileHandle);
      int  (pascal *fpCloseFile)   (void *pFileHandle);
      int  (pascal *fpGetMainFileInfo) (void *pFile, KVMainFileInfo *MainFileInfo);
      int  (pascal *fpGetSubFileInfo)  (void *pFile, int index, KVSubFileInfo *subFileInfo);
      int  (pascal *fpGetSubFileMetaData)  (void *pFile, KVGetSubFileMetaArg metaArg, KVSubFileMetaData *metaData);
      int  (pascal *fpExtractSubFile)  (void *pFile, KVExtractSubFileArg extractArg, KVSubFileExtractInfo *extractInfo);
      int  (pascal *fpFreeStruct) (void *pFile, void *obj);
      int  (pascal *fpOpenSubFile) (void *pFile, KVExtractSubFileArg extractArg, KVInputStream **stream);
      int  (pascal *fpGetExtractInfo)(KVInputStream* stream, KVSubFileExtractInfo* extractInfo);
      int  (pascal *fpGetExtractStatus)(KVInputStream* stream);
      int  (pascal *fpCloseSubFile) (KVInputStream *stream);
    }
    KVExtractInterfaceRec, *KVExtractInterface;

## Member Descriptions

The member functions are described in File Extraction API Functions.

## Discussion

Before you initialize a File Extraction structure, use the `KVStructInit` macro to initialize the `KVStructHead` structure. This process sets the revision number of the File Extraction API and supports binary compatibility with future releases.

_FT_HTML5_bannerTitle.htm