#ifndef _FS_OUTPUTPREVIEW_C_H_
#define _FS_OUTPUTPREVIEW_C_H_

#ifdef __cplusplus
extern "C" {
#endif



typedef enum _FSShowType {
e_FSShowAll  = 0,
e_FSShowDeviceCMYK  = 1,
e_FSShowNotDeviceCMYK    = 2,
e_FSShowICCBasedCMYK    = 3,
e_FSShowSpotColor    = 4,
e_FSShowDeviceCMYKAndSpot    = 5,
e_FSShowNotDeviceCMYKOrSpot    = 6,
e_FSShowDeviceN    = 7,
e_FSShowCMYK    = 8,
e_FSShowRGB    = 9,
e_FSShowDeviceRGB    = 10,
e_FSShowICCBasedRGB    = 11,
e_FSShowGray    = 12,
e_FSShowDeviceGray    = 13,
e_FSShowCalGray    = 14,
e_FSShowCalibrated    = 15,
e_FSShowLab    = 16,
e_FSShowDevice    = 17,
e_FSShowImages    = 18,
e_FSShowSolidColor    = 19,
e_FSShowSmoothShades    = 20,
e_FSShowRegistrationColor    = 21,
e_FSShowText    = 22,
e_FSShowLineArt    = 23,
}FSShowType;



typedef enum _FSColorantType {
e_FSColorantTypeProcess  = 0,
e_FSColorantTypeSpot    = 1,
}FSColorantType;


FSErrorCode FSDK_OutputPreview_Create(const FS_PDFDOC_HANDLE pdf_doc, FS_OUTPUTPREVIEW_HANDLE* outputpreview_return_value);
FSErrorCode FSDK_OutputPreview_IsEmpty(FS_OUTPUTPREVIEW_HANDLE outputpreview_handle, FS_BOOL* return_value);
FSErrorCode FSDK_OutputPreview_Release(FS_OUTPUTPREVIEW_HANDLE outputpreview_handle);
FSErrorCode FSDK_OutputPreview_SetSimulationProfile(FS_OUTPUTPREVIEW_HANDLE outputpreview_handle, const wchar_t* icc_profile_path);
FSErrorCode FSDK_OutputPreview_SetShowType(FS_OUTPUTPREVIEW_HANDLE outputpreview_handle, FSShowType show_type);
FSErrorCode FSDK_OutputPreview_GetPlates(FS_OUTPUTPREVIEW_HANDLE outputpreview_handle, FSColorantType colorant_type, FS_BSTR* return_stringarray, FS_UINT32* return_array_length);
FSErrorCode FSDK_OutputPreview_GetSpotPlateColor(FS_OUTPUTPREVIEW_HANDLE outputpreview_handle, const char* plate_name, FS_RGB* return_value);
FSErrorCode FSDK_OutputPreview_SetCheckStatus(FS_OUTPUTPREVIEW_HANDLE outputpreview_handle, const char* plate_name, FS_BOOL to_check);
FSErrorCode FSDK_OutputPreview_IsChecked(FS_OUTPUTPREVIEW_HANDLE outputpreview_handle, const char* plate_name, FS_BOOL* return_value);
FSErrorCode FSDK_OutputPreview_EnableSimulateOverprint(FS_OUTPUTPREVIEW_HANDLE outputpreview_handle, FS_BOOL is_to_simulate_overprint);
FSErrorCode FSDK_OutputPreview_GeneratePreviewBitmap(FS_OUTPUTPREVIEW_HANDLE outputpreview_handle, const FS_PDFPAGE_HANDLE page, const FSMatrix matrix, const FS_RENDERER_HANDLE renderer, FS_BITMAP_HANDLE* return_value);
#ifdef __cplusplus
}
#endif
#endif
