#ifndef _FS_PDFX_C_H_
#define _FS_PDFX_C_H_

#ifdef __cplusplus
extern "C" {
#endif



typedef enum _FSPDFXVersion {
e_FSVersionPDFX1a = 0,
e_FSVersionPDFX3 = 1,
e_FSVersionPDFX4 = 2,
e_FSVersionPDFX4p = 3,
e_FSVersionPDFX1aCoatedGRACoL2006 = 4,
e_FSVersionPDFX1aISOCoatedv2ECI = 5,
e_FSVersionPDFX1aJapanColor2001Coated = 6,
e_FSVersionPDFX1aPSOCoatedv3ECI = 7,
e_FSVersionPDFX3CoatedGRACoL2006 = 8,
e_FSVersionPDFX3ISOCoatedv2ECI = 9,
e_FSVersionPDFX3JapanColor2001Coated = 10,
e_FSVersionPDFX3PSOCoatedv3ECI = 11,
e_FSVersionPDFX4CoatedGRACoL2006 = 12,
e_FSVersionPDFX4ISOCoatedv2ECI = 13,
e_FSVersionPDFX4JapanColor2001Coated = 14,
e_FSVersionPDFX4PSOCoatedv3ECI = 15,
e_FSVersionPDFX4AndCLLVISOCoatedv2ECI = 16,
}FSPDFXVersion;


FSErrorCode FSDK_PDFXCompliance_Create(FS_PDFXCOMPLIANCE_HANDLE* pdfxcompliance_return_value);
FSErrorCode FSDK_PDFXCompliance_Release(FS_PDFXCOMPLIANCE_HANDLE pdfxcompliance_handle);
FSErrorCode FSDK_PDFXCompliance_IsEmpty(FS_PDFXCOMPLIANCE_HANDLE pdfxcompliance_handle, FS_BOOL* return_value);
FSErrorCode FSDK_PDFXCompliance_Verify(FS_PDFXCOMPLIANCE_HANDLE pdfxcompliance_handle, FSPDFXVersion verify_version, const wchar_t* src_pdf_path, 
                           int first_page_index, int last_page_index,
                           FSProgressCallback* progress_callback, FS_RESULTINFORMATION_HANDLE* return_value);
FSErrorCode FSDK_PDFXCompliance_ConvertPDFFile(FS_PDFXCOMPLIANCE_HANDLE pdfxcompliance_handle, const wchar_t* src_pdf_path, const wchar_t* saved_pdf_path,
                                   FSPDFXVersion convert_to_version,
                                   FSViewOrPrintCondition view_or_print_condition,
                                   FS_BOOL to_convert_rgb_or_lab, FS_BOOL to_decalibrate_gray_or_cmyk,
                                   FSProgressCallback* progress_callback, FS_RESULTINFORMATION_HANDLE* return_value);
#ifdef __cplusplus
}
#endif
#endif
