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;