# KVHTMLInterfaceEx2

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

This structure supersedes `KVHTMLInterfaceEx`. `KVHTMLInterfaceEx2` should be used instead of `KVHTMLInterfaceEx`.

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

    typedef void* (pascal *KVHTML_INITEX) (
    		KVMemoryStream *pMemAllocator,
    		char *pszKeyViewDir,
    		char *pszDataFile,
    		KVErrorCode *pError,
    		DWORD dWord);
    	typedef void (pascal *KVHTML_SHUTDOWN)(void*);
    	typedef BOOL (pascal *KVHTML_CONVERT_STREAMEX) (
    		void *pContext,
    		void *pCallingContext,
    		KVInputStream *pInput,
    		KVOutputStream *pOutput,
    		KVHTMLTemplateEx *pTemplatesEx,
    		KVHTMLOptionsEx *pOptionsEx,
    		KVHTMLTOCOptions *pTOCCreateOptions,
    		KVHTMLCallbacksEx *pCallbacksEx,
    		BOOL bIndex,
    		KVErrorCode *pError);
    	typedef char** (pascal *KVHTML_GET_FILE_LIST)(
    		void *pContext,
    		int *pnSize );
    	typedef BOOL (pascal *KVHTML_GET_STREAM_INFO)(
    		void *pContext,
    		KVInputStream *pInput,
    		KVStreamInfo *pStreamInfo );
    	typedef BOOL (pascal *KVHTML_GET_ANCHOREX) (
    		void *pCallingContext,
    		KVHTMLAnchorTypeEx eAnchorTypeEx,
    		char *pszAnchor,
    		int cbAnchorMax,
    		BYTE *pcHTML,
    		UINT cbHTML);
    	typedef BOOL (pascal *KVHTML_INPUTSTREAM_CREATE) (
    		void *pContext,
    		char *pszFileName,
    		KVInputStream *pInput);
    	typedef BOOL (pascal *KVHTML_INPUTSTREAM_FREE) (
    		void *pContext,
    		KVInputStream *pInput);
    	typedef BOOL (pascal *KVHTML_OUTPUTSTREAM_CREATE) (
    		void *pContext,
    		char *pszFileName,
    		KVOutputStream *pOutput );
    	typedef BOOL (pascal *KVHTML_OUTPUTSTREAM_FREE)(
    		void *pContext,
    		KVOutputStream *pOutput );
    	typedef KVLanguageID (pascal *KVHTML_LANGUAGE_ID)(void *pContext);
    	typedef BOOL (pascal *KVHTML_GET_SUMMARY_INFO)(
    		void *pContext,
    		KVInputStream *pInput,
    		KVSummaryInfoEx *pSummary,
    		BOOL bFree );
    	typedef BOOL (pascal *KVHTML_SET_STYLE_MAPPING) (
    		void *pContext,
    		KVStyle *pStyles,
    		int iStyles,
    		BOOL bCopy);
    	typedef BOOL (pascal *KVHTML_VALIDATE_TEMPLATE)(
    		void *pContext,
    		KVOutputStream *pOutput,
    		KVHTMLTemplate *pTemplate,
    		KVHTMLOptions *pOptions,
    		KVHTMLTOCOptions *pTOCOptions,
    		KVHTMLCallbacks *pCallBalls,
    		KVMemoryStream *pMemStream);
    	typedef KVErrorCode (pascal *KVHTML_GET_KV_ERROR_CODE)(void *);
    	typedef KVErrorCodeEx (pascal *KVHTML_GET_KV_ERROR_CODE_EX)(void *);

    	typedef struct tag_KVHTMLInterfaceEx2
    	{
    		KVStructHeader;
    		KVHTML_INITEX fpInit;
    		KVHTML_SHUTDOWN fpShutDown;
    		KVHTML_CONVERT_STREAMEX fpConvertStream;
    		KVHTML_GET_FILE_LIST fpGetConvertFileList;
    		KVHTML_GET_STREAM_INFO fpGetStreamInfo;
    		KVHTML_GET_ANCHOREX fpGetAnchor;
    		KVHTML_INPUTSTREAM_CREATE fpFileToInputStreamCreate;
    		KVHTML_INPUTSTREAM_FREE fpFileToInputStreamFree;
    		KVHTML_OUTPUTSTREAM_CREATE fpFileToOutputStreamCreate;
    		KVHTML_OUTPUTSTREAM_FREE fpFileToOutputStreamFree;
    		KVHTML_GET_SUMMARY_INFO fpGetSummaryInfo;
    		KVHTML_SET_STYLE_MAPPING fpSetStyleMapping;
    		KVHTML_VALIDATE_TEMPLATE fpValidateTemplate;
    		KVHTML_GET_KV_ERROR_CODE     fpGetKvErrorCode;
    		KVHTML_GET_KV_ERROR_CODE_EX  fpGetKvErrorCodeEx;
    	}
    	KVHTMLInterfaceEx2;

_FT_HTML5_bannerTitle.htm