#ifndef _FS_PDFA_C_H_
#define _FS_PDFA_C_H_

#ifdef __cplusplus
extern "C" {
#endif



typedef enum _FSPDFAVersion {
e_FSVersionPDFA1a = 1,
e_FSVersionPDFA1b = 2,
e_FSVersionPDFA2a = 3,
e_FSVersionPDFA2b = 4,
e_FSVersionPDFA2u = 5,
e_FSVersionPDFA3a = 6,
e_FSVersionPDFA3b = 7,
e_FSVersionPDFA3u = 8,
e_FSVersionPDFA1bWithoutFBC = 9,
e_FSVersionPDFA2bWithoutFBC = 10,
e_FSVersionPDFA3bWithoutFBC = 11,
}FSPDFAVersion;


FSErrorCode FSDK_PDFACompliance_Create(FS_PDFACOMPLIANCE_HANDLE* pdfacompliance_return_value);
FSErrorCode FSDK_PDFACompliance_Release(FS_PDFACOMPLIANCE_HANDLE pdfacompliance_handle);
FSErrorCode FSDK_PDFACompliance_IsEmpty(FS_PDFACOMPLIANCE_HANDLE pdfacompliance_handle, FS_BOOL* return_value);
FSErrorCode FSDK_PDFACompliance_Verify(FS_PDFACOMPLIANCE_HANDLE pdfacompliance_handle, FSPDFAVersion 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_PDFACompliance_ConvertPDFFile(FS_PDFACOMPLIANCE_HANDLE pdfacompliance_handle, const wchar_t* src_pdf_path, const wchar_t* saved_pdf_path,
                                   FSPDFAVersion convert_to_version, FSProgressCallback* progress_callback, FS_RESULTINFORMATION_HANDLE* return_value);
FSErrorCode FSDK_PDFACompliance_ConvertPDFFile0(FS_PDFACOMPLIANCE_HANDLE pdfacompliance_handle, const wchar_t* src_pdf_path, const wchar_t* saved_pdf_path, FSPDFAVersion convert_to_version,
    FSViewOrPrintCondition view_or_print_condition,
    FS_BOOL convert_problem_pages_into_image, FS_BOOL convert_all_pages_into_image,
    FS_INT32 image_resolution, FSProgressCallback* progress_callback, FS_RESULTINFORMATION_HANDLE* return_value);
#ifdef __cplusplus
}
#endif
#endif
