# KVXMLInterfaceEx

The members of this structure are pointers to the API functions described in XML Export API Functions.

This structure supersedes `KVXMLInterface`. `KVXMLInterfaceEx` should be used instead of `KVXMLInterface`.

Compared to `KVXMLInterface`, `KVXMLInterfaceEx` adds two functions for checking error codes, and allows for binary compatible extensibility in future releases.

    typedef void* (pascal *KVXML_INIT) (
    	KVMemoryStream *pMemAllocator,
    	char *pszKeyViewDir,
    	char *pszDataFile,
    	KVErrorCode *;,
    	DWORD dWord);
    	typedef void (pascal *KVXML_SHUTDOWN)(void*);
    	typedef BOOL (pascal *KVXML_CONVERT_STREAM) (
    		void *pContext,
    		void *pCallingContext,
    		KVInputStream *pInput,
    		KVOutputStream *pOutput,
    		KVXMLTemplate *pTemplates,
    		KVXMLOptions *pOptions,
    		KVXMLTOCOptions *pTOCCreateOptions,
    		KVXMLCallbacks *pCallbacks,
    		BOOL bIndex,
    		KVErrorCode *pError);
    	typedef char** (pascal *KVXML_GET_FILE_LIST)(
    		void *pContext,
    		int *pnSize );
    	typedef BOOL (pascal *KVXML_GET_STREAM_INFO)(
    		void *pContext,
    		KVInputStream *pInput,
    		KVStreamInfo *pStreamInfo );
    	typedef BOOL (pascal *KVXML_GET_ANCHOR) (
    		void *pCallingContext,
    		KVXMLAnchorType eAnchorType,
    		char *pszAnchor,
    		int cbAnchorMax,
    		BYTE *pcHTML,
    		UINT cbHTML);
    	typedef BOOL (pascal *KVXML_INPUTSTREAM_CREATE) (
    		void *pContext,
    		char *pszFileName,
    		KVInputStream *pInput);
    	typedef BOOL (pascal *KVXML_INPUTSTREAM_FREE) (
    		void *pContext,
    		KVInputStream *pInput);
    	typedef BOOL (pascal *KVXML_OUTPUTSTREAM_CREATE) (
    		void *pContext,
    		char *pszFileName,
    		KVOutputStream *pOutput );
    	typedef BOOL (pascal *KVXML_OUTPUTSTREAM_FREE)(
    		void *pContext,
    		KVOutputStream *pOutput );
    	typedef KVLanguageID (pascal *KVXML_LANGUAGE_ID)(void *pContext);
    	typedef BOOL (pascal *KVXML_GET_SUMMARY_INFO)(
    		void *pContext,
    		KVInputStream *pInput,
    		KVSummaryInfoEx *pSummary,
    		BOOL bFree );
    	typedef BOOL (pascal *KVXML_SET_STYLE_MAPPING) (
    		void *pContext,
    		KVStyle *pStyles,
    		int iStyles,
    		BOOL bCopy);
    	typedef BOOL (pascal *KVXML_VALIDATE_TEMPLATE)(
    		void *pContext,
    		KVOutputStream *pOutput,
    		KVXMLTemplate *pTemplate,
    		KVXMLOptions *pOptions,
    		KVXMLTOCOptions *pTOCOptions,
    		KVXMLCallbacks *pCallBalls,
    		KVMemoryStream *pMemStream);
    	typedef KVErrorCode(pascal *KVXML_GET_KV_ERROR_CODE) (void *);
    	typedef KVErrorCodeEx(pascal *KVXML_GET_KV_ERROR_CODE_EX) (void *);

    	typedef struct tag_KVXMLInterfaceEx
    	{
    		KVStructHeader;
    		KVXML_INITEX fpInit;
    		KVXML_SHUTDOWN fpShutDown;
    		KVXML_CONVERT_STREAMEX fpConvertStream;
    		KVXML_GET_FILE_LIST fpGetConvertFileList;
    		KVXML_GET_STREAM_INFO fpGetStreamInfo;
    		KVXML_GET_ANCHOREX fpGetAnchor;
    		KVXML_INPUTSTREAM_CREATE fpFileToInputStreamCreate;
    		KVXML_INPUTSTREAM_FREE fpFileToInputStreamFree;
    		KVXML_OUTPUTSTREAM_CREATE fpFileToOutputStreamCreate;
    		KVXML_OUTPUTSTREAM_FREE fpFileToOutputStreamFree;
    		KVXML_GET_SUMMARY_INFO fpGetSummaryInfo;
    		KVXML_SET_STYLE_MAPPING fpSetStyleMapping;
    		KVXML_VALIDATE_TEMPLATE fpValidateTemplate;
    		KVXML_GET_KV_ERROR_CODE     fpGetKvErrorCode;
    	    KVXML_GET_KV_ERROR_CODE_EX  fpGetKvErrorCodeEx;
    	}
    	KVXMLInterfaceEx;

_FT_HTML5_bannerTitle.htm