#ifndef _FS_ANNOT_C_H_
#define _FS_ANNOT_C_H_

#ifdef __cplusplus
extern "C" {
#endif



typedef enum _FSDefAPFlags {
e_FSFlagFont = 0x0001,
e_FSFlagTextColor = 0x0002,
e_FSFlagFontSize = 0x0004,
}FSDefAPFlags;


typedef struct _FSDefaultAppearance {
  FS_UINT32 flags;
  FS_FONT_HANDLE font;
  float text_size;
  FS_RGB text_color;
}FSDefaultAppearance;


typedef enum _FSCornerMarkStyle {
e_FSCornerMarkNone = 1,
e_FSCornerMarkSuperscript = 2,
e_FSCornerMarkSubscript = 3,
}FSCornerMarkStyle;


typedef struct _FSRichTextStyle {
  FS_FONT_HANDLE font;
  float text_size;
  FSAlignment text_alignment;
  FS_RGB text_color;
  FS_BOOL is_bold;
  FS_BOOL is_italic;
  FS_BOOL is_underline;
  FS_BOOL is_strikethrough;
  FSCornerMarkStyle mark_style;
  float char_space;
  float word_space;
}FSRichTextStyle;


typedef enum _FSAnnotType {
e_FSAnnotTypeUnknownType    = 0,
e_FSNote           = 1,
e_FSLink           = 2,
e_FSFreeText       = 3,
e_FSLine           = 4,
e_FSSquare         = 5,
e_FSCircle         = 6,
e_FSPolygon        = 7,
e_FSPolyLine       = 8,
e_FSHighlight      = 9,
e_FSUnderline      = 10,
e_FSSquiggly       = 11,
e_FSStrikeOut      = 12,
e_FSStamp          = 13,
e_FSCaret          = 14,
e_FSInk            = 15,
e_FSPSInk          = 16,
e_FSFileAttachment = 17,
e_FSSound          = 18,
e_FSMovie          = 19,
e_FSWidget         = 20,
e_FSScreen         = 21,
e_FSPrinterMark    = 22,
e_FSTrapNet        = 23,
e_FSWatermark      = 24,
e_FS3D             = 25,
e_FSPopup          = 26,
e_FSRedact         = 27,
e_FSRichMedia      = 28,
e_FSPagingSeal = 29,
}FSAnnotType;



typedef enum _FSAnnotFlags {
e_FSFlagInvisible      = 0x0001,
e_FSFlagHidden         = 0x0002,
e_FSFlagPrint          = 0x0004,
e_FSFlagNoZoom         = 0x0008,
e_FSFlagNoRotate       = 0x0010,
e_FSFlagNoView         = 0x0020,
e_FSFlagReadOnly       = 0x0040,
e_FSFlagLocked         = 0x0080,
e_FSFlagToggleNoView   = 0x0100,
e_FSFlagLockedContents = 0x0200,
}FSAnnotFlags;



typedef enum _FSHighlightingMode {
e_FSHighlightingNone    = 0,
e_FSHighlightingInvert  = 1,
e_FSHighlightingOutline = 2,
e_FSHighlightingPush    = 3,
e_FSHighlightingToggle  = 4,
}FSHighlightingMode;



typedef enum _FSAnnotBorderStyle {
e_FSSolid      = 0,
e_FSDashed     = 1,
e_FSUnderLine  = 2,
e_FSBeveled    = 3,
e_FSInset      = 4,
e_FSCloudy     = 5,
}FSAnnotBorderStyle;



typedef enum _FSProperty {
e_FSPropertyModifiedDate = 0,
e_FSPropertyCreationDate = 1,
e_FSPropertyBorderColor  = 2,
e_FSPropertyFillColor    = 3,
}FSProperty;



typedef enum _FSStateModel {
e_FSStateModelMarked = 1,
e_FSStateModelReview = 2,
}FSStateModel;



typedef enum _FSAnnotState {
e_FSStateNone = 0,
e_FSStateMarked    = 1,
e_FSStateUnmarked  = 2,
e_FSStateAccepted  = 3,
e_FSStateRejected  = 4,
e_FSStateCancelled = 5,
e_FSStateCompleted = 6,
e_FSStateDeferred = 7,
e_FSStateFuture = 8,
}FSAnnotState;



typedef enum _FSMKEntry {
e_FSMKEntryRotation = 0,
e_FSMKEntryBorderColor = 1,
e_FSMKEntryBackgroundColor = 2,
e_FSMKEntryMKEntryNormalCaption = 3,
e_FSMKEntryRolloverCaption = 4,
e_FSMKEntryDownCaption = 5,
e_FSMKEntryMKEntryNormalIcon = 6,
e_FSMKEntryRolloverIcon = 7,
e_FSMKEntryDownIcon = 8,
e_FSMKEntryIconFit = 9,
e_FSMKEntryIconCaptionRelation = 10,
}FSMKEntry;



typedef enum _FSMKIconCaptionRelation {
e_FSMKRelationNoIcon = 0,
e_FSMKRelationNoCaption = 1,
e_FSMKRelationCaptionBelowIcon = 2,
e_FSMKRelationCaptionAboveIcon = 3,
e_FSMKRelationCaptionRight = 4,
e_FSMKRelationCaptionLeft = 5,
e_FSMKRelationCaptionOvrlayOnIcon = 6,
}FSMKIconCaptionRelation;



typedef enum _FSEndingStyle {
e_FSEndingStyleNone = 0,
e_FSEndingStyleSquare = 1,
e_FSEndingStyleCircle = 2,
e_FSEndingStyleDiamond = 3,
e_FSEndingStyleOpenArrow = 4,
e_FSEndingStyleClosedArrow = 5,
e_FSEndingStyleButt = 6,
e_FSEndingStyleROpenArrow = 7,
e_FSEndingStyleRClosedArrow = 8,
e_FSEndingStyleSlash = 9,
}FSEndingStyle;



typedef enum _FSCapPos {
e_FSCapPosInline = 0,
e_FSCapPosTop = 1,
}FSCapPos;



typedef enum _FSScaleWayType {
e_FSScaleWayNone = 0,
e_FSScaleWayAlways = 1,
e_FSScaleWayBigger = 2,
e_FSScaleWaySmaller = 3,
e_FSScaleWayNever = 4,
}FSScaleWayType;



typedef enum _FSAppearanceType {
e_FSAppearanceTypeAppearanceTypeNormal = 0,
e_FSAppearanceTypeRollover = 1,
e_FSAppearanceTypeDown = 2,
}FSAppearanceType;



typedef enum _FSMeasureType {
e_FSMeasureTypeX = 0,
e_FSMeasureTypeY = 1,
e_FSMeasureTypeD = 2,
e_FSMeasureTypeA = 3,
e_FSMeasureTypeT = 4,
e_FSMeasureTypeS = 5,
}FSMeasureType;


typedef struct _FSBorderInfo {
  float width;
  FSAnnotBorderStyle style;
  float cloud_intensity;
  float dash_phase;
  float* dash_array;
  FS_UINT32 array_length_dashes;
}FSBorderInfo;

typedef struct _FSQuadPoints {
  FSPointF  first;
  FSPointF  second;
  FSPointF  third;
  FSPointF  fourth;
}FSQuadPoints;

typedef struct _FSIconFit {
  FSScaleWayType scale_way_type;
  FS_BOOL is_proportional_scaling;
  float horizontal_fraction;
  float vertical_fraction;
  FS_BOOL fit_bounds;
}FSIconFit;

FSErrorCode FSDK_Annot_Create(const FS_PDFPAGE_HANDLE page, FS_PDFDICTIONARY_HANDLE annot_dict, FS_ANNOT_HANDLE* annot_return_value);
FSErrorCode FSDK_Annot_Create0(FS_ANNOT_HANDLE* annot_return_value);
FSErrorCode FSDK_Annot_Release(FS_ANNOT_HANDLE annot_handle);
FSErrorCode FSDK_Annot_IsEmpty(FS_ANNOT_HANDLE annot_handle, FS_BOOL* return_value);
FSErrorCode FSDK_Annot_GetPage(FS_ANNOT_HANDLE annot_handle, FS_PDFPAGE_HANDLE* return_value);
FSErrorCode FSDK_Annot_IsMarkup(FS_ANNOT_HANDLE annot_handle, FS_BOOL* return_value);
FSErrorCode FSDK_Annot_GetType(FS_ANNOT_HANDLE annot_handle, FSAnnotType* return_value);
FSErrorCode FSDK_Annot_GetIndex(FS_ANNOT_HANDLE annot_handle, int* return_value);
FSErrorCode FSDK_Annot_GetContent(FS_ANNOT_HANDLE annot_handle, FS_WSTR* return_value);
FSErrorCode FSDK_Annot_SetContent(FS_ANNOT_HANDLE annot_handle, const wchar_t* content);
FSErrorCode FSDK_Annot_GetModifiedDateTime(FS_ANNOT_HANDLE annot_handle, FSDateTime* return_value);
FSErrorCode FSDK_Annot_SetModifiedDateTime(FS_ANNOT_HANDLE annot_handle, const FSDateTime date_time);
FSErrorCode FSDK_Annot_GetFlags(FS_ANNOT_HANDLE annot_handle, FS_UINT32* return_value);
FSErrorCode FSDK_Annot_SetFlags(FS_ANNOT_HANDLE annot_handle, FS_UINT32 flags);
FSErrorCode FSDK_Annot_GetUniqueID(FS_ANNOT_HANDLE annot_handle, FS_WSTR* return_value);
FSErrorCode FSDK_Annot_SetUniqueID(FS_ANNOT_HANDLE annot_handle, const wchar_t* unique_id);
FSErrorCode FSDK_Annot_GetRect(FS_ANNOT_HANDLE annot_handle, FSRectF* return_value);
FSErrorCode FSDK_Annot_GetDisplayMatrix(FS_ANNOT_HANDLE annot_handle, const FSMatrix page_display_matrix, FSMatrix* return_value);
FSErrorCode FSDK_Annot_Move(FS_ANNOT_HANDLE annot_handle, const FSRectF rect, FS_BOOL* return_value);
FSErrorCode FSDK_Annot_Move0(FS_ANNOT_HANDLE annot_handle, const FSRectF rect, FS_BOOL is_reset_appearance, FS_BOOL* return_value);
FSErrorCode FSDK_Annot_GetBorderInfo(FS_ANNOT_HANDLE annot_handle, FSBorderInfo* return_value);
FSErrorCode FSDK_Annot_SetBorderInfo(FS_ANNOT_HANDLE annot_handle, const FSBorderInfo border);
FSErrorCode FSDK_Annot_GetBorderColor(FS_ANNOT_HANDLE annot_handle, FS_RGB* return_value);
FSErrorCode FSDK_Annot_SetBorderColor(FS_ANNOT_HANDLE annot_handle, FS_RGB color);
FSErrorCode FSDK_Annot_ResetAppearanceStream(FS_ANNOT_HANDLE annot_handle, FS_BOOL* return_value);
FSErrorCode FSDK_Annot_ResetAppearanceStream0(FS_ANNOT_HANDLE annot_handle, FS_BOOL is_generate_new_appearance_obj, FS_BOOL* return_value);
FSErrorCode FSDK_Annot_GetDeviceRect(FS_ANNOT_HANDLE annot_handle, const FSMatrix matrix, FSRectI* return_value);
FSErrorCode FSDK_Annot_GetDict(FS_ANNOT_HANDLE annot_handle, FS_PDFDICTIONARY_HANDLE* return_value);
FSErrorCode FSDK_Annot_HasProperty(FS_ANNOT_HANDLE annot_handle, FSProperty property, FS_BOOL* return_value);
FSErrorCode FSDK_Annot_RemoveProperty(FS_ANNOT_HANDLE annot_handle, FSProperty property, FS_BOOL* return_value);
FSErrorCode FSDK_Annot_GetOptionalContent(FS_ANNOT_HANDLE annot_handle, FS_PDFDICTIONARY_HANDLE* return_value);
FSErrorCode FSDK_Annot_GetAppearanceStream(FS_ANNOT_HANDLE annot_handle, FSAppearanceType type, const char* appearance_state, FS_PDFSTREAM_HANDLE* return_value);
typedef struct _FSShadingColor {
  FSDK_ARGB first_color;
  FSDK_ARGB second_color;
}FSShadingColor;

typedef struct _FSIconProviderCallback {
  void* user_data;
  void (*Release)(void* user_data);
  FS_BSTR (*GetProviderID)(void* user_data);
  FS_BSTR (*GetProviderVersion)(void* user_data);
  FS_BOOL (*HasIcon)(void* user_data,  FSAnnotType annot_type, const char* icon_name);
  FS_BOOL (*CanChangeColor)(void* user_data,  FSAnnotType annot_type, const char* icon_name);
  FS_PDFPAGE_HANDLE (*GetIcon)(void* user_data,  FSAnnotType annot_type, const char* icon_name, FSDK_ARGB color,
                            FS_PDFDICTIONARY_HANDLE annot_dict);
  FS_BOOL (*GetShadingColor)(void* user_data,  FSAnnotType annot_type, const char* icon_name,
                               FS_RGB referenced_color, int shading_index, FSShadingColor out_shading_color);
  float (*GetDisplayWidth)(void* user_data,  FSAnnotType annot_type, const char* icon_name);
  float (*GetDisplayHeight)(void* user_data,  FSAnnotType annot_type, const char* icon_name);
  
}FSIconProviderCallback;

FSErrorCode FSDK_Markup_Create(const FS_ANNOT_HANDLE annot, FS_MARKUPANNOT_HANDLE* markup_return_value);
FSErrorCode FSDK_Markup_Release(FS_MARKUPANNOT_HANDLE markup_handle);
FSErrorCode FSDK_Markup_GetPopup(FS_MARKUPANNOT_HANDLE markup_handle, FS_POPUPANNOT_HANDLE* return_value);
FSErrorCode FSDK_Markup_SetPopup(FS_MARKUPANNOT_HANDLE markup_handle, const FS_POPUPANNOT_HANDLE popup);
FSErrorCode FSDK_Markup_RemovePopup(FS_MARKUPANNOT_HANDLE markup_handle, FS_BOOL* return_value);
FSErrorCode FSDK_Markup_GetTitle(FS_MARKUPANNOT_HANDLE markup_handle, FS_WSTR* return_value);
FSErrorCode FSDK_Markup_SetTitle(FS_MARKUPANNOT_HANDLE markup_handle, const wchar_t* title);
FSErrorCode FSDK_Markup_GetSubject(FS_MARKUPANNOT_HANDLE markup_handle, FS_WSTR* return_value);
FSErrorCode FSDK_Markup_SetSubject(FS_MARKUPANNOT_HANDLE markup_handle, const wchar_t* subject);
FSErrorCode FSDK_Markup_GetOpacity(FS_MARKUPANNOT_HANDLE markup_handle, float* return_value);
FSErrorCode FSDK_Markup_SetOpacity(FS_MARKUPANNOT_HANDLE markup_handle, float opacity);
FSErrorCode FSDK_Markup_GetIntent(FS_MARKUPANNOT_HANDLE markup_handle, FS_BSTR* return_value);
FSErrorCode FSDK_Markup_SetIntent(FS_MARKUPANNOT_HANDLE markup_handle, const char* intent);
FSErrorCode FSDK_Markup_GetCreationDateTime(FS_MARKUPANNOT_HANDLE markup_handle, FSDateTime* return_value);
FSErrorCode FSDK_Markup_SetCreationDateTime(FS_MARKUPANNOT_HANDLE markup_handle, const FSDateTime date_time);
FSErrorCode FSDK_Markup_GetReplyCount(FS_MARKUPANNOT_HANDLE markup_handle, int* return_value);
FSErrorCode FSDK_Markup_GetReply(FS_MARKUPANNOT_HANDLE markup_handle, int index, FS_NOTEANNOT_HANDLE* return_value);
FSErrorCode FSDK_Markup_AddReply(FS_MARKUPANNOT_HANDLE markup_handle, FS_NOTEANNOT_HANDLE* return_value);
FSErrorCode FSDK_Markup_RemoveReply(FS_MARKUPANNOT_HANDLE markup_handle, int index, FS_BOOL* return_value);
FSErrorCode FSDK_Markup_RemoveAllReplies(FS_MARKUPANNOT_HANDLE markup_handle, FS_BOOL* return_value);
FSErrorCode FSDK_Markup_IsGrouped(FS_MARKUPANNOT_HANDLE markup_handle, FS_BOOL* return_value);
FSErrorCode FSDK_Markup_GetGroupHeader(FS_MARKUPANNOT_HANDLE markup_handle, FS_MARKUPANNOT_HANDLE* return_value);
FSErrorCode FSDK_Markup_GetGroupElements(FS_MARKUPANNOT_HANDLE markup_handle, FS_MARKUPANNOT_HANDLE* return_markuparray, FS_UINT32* return_array_length);
FSErrorCode FSDK_Markup_Ungroup(FS_MARKUPANNOT_HANDLE markup_handle, FS_BOOL* return_value);
FSErrorCode FSDK_Markup_GetStateAnnots(FS_MARKUPANNOT_HANDLE markup_handle, FSStateModel model, FS_NOTEANNOT_HANDLE* return_notearray, FS_UINT32* return_array_length);
FSErrorCode FSDK_Markup_AddStateAnnot(FS_MARKUPANNOT_HANDLE markup_handle, const wchar_t* title, FSStateModel model, FSAnnotState state, FS_NOTEANNOT_HANDLE* return_value);
FSErrorCode FSDK_Markup_RemoveAllStateAnnots(FS_MARKUPANNOT_HANDLE markup_handle, FS_BOOL* return_value);
FSErrorCode FSDK_Markup_GetRichTextCount(FS_MARKUPANNOT_HANDLE markup_handle, FS_INT32* return_value);
FSErrorCode FSDK_Markup_GetRichTextContent(FS_MARKUPANNOT_HANDLE markup_handle, FS_INT32 index, FS_WSTR* return_value);
FSErrorCode FSDK_Markup_SetRichTextContent(FS_MARKUPANNOT_HANDLE markup_handle, FS_INT32 index, const wchar_t* content);
FSErrorCode FSDK_Markup_GetRichTextStyle(FS_MARKUPANNOT_HANDLE markup_handle, FS_INT32 index, FSRichTextStyle* return_value);
FSErrorCode FSDK_Markup_SetRichTextStyle(FS_MARKUPANNOT_HANDLE markup_handle, FS_INT32 index, const FSRichTextStyle style);
FSErrorCode FSDK_Markup_AddRichText(FS_MARKUPANNOT_HANDLE markup_handle, const wchar_t* content, const FSRichTextStyle style);
FSErrorCode FSDK_Markup_InsertRichText(FS_MARKUPANNOT_HANDLE markup_handle, FS_INT32 index, const wchar_t* content, const FSRichTextStyle style);
FSErrorCode FSDK_Markup_RemoveRichText(FS_MARKUPANNOT_HANDLE markup_handle, int index);
FSErrorCode FSDK_Markup_SetBorderOpacity(FS_MARKUPANNOT_HANDLE markup_handle, float opacity);
FSErrorCode FSDK_Markup_GetBorderOpacity(FS_MARKUPANNOT_HANDLE markup_handle, float* return_value);
FSErrorCode FSDK_Markup_SetFillOpacity(FS_MARKUPANNOT_HANDLE markup_handle, float opacity);
FSErrorCode FSDK_Markup_GetFillOpacity(FS_MARKUPANNOT_HANDLE markup_handle, float* return_value);
FSErrorCode FSDK_Note_Create0(const FS_ANNOT_HANDLE annot, FS_NOTEANNOT_HANDLE* note_return_value);
FSErrorCode FSDK_Note_Release(FS_NOTEANNOT_HANDLE note_handle);
FSErrorCode FSDK_Note_GetOpenStatus(FS_NOTEANNOT_HANDLE note_handle, FS_BOOL* return_value);
FSErrorCode FSDK_Note_SetOpenStatus(FS_NOTEANNOT_HANDLE note_handle, FS_BOOL status);
FSErrorCode FSDK_Note_GetIconName(FS_NOTEANNOT_HANDLE note_handle, FS_BSTR* return_value);
FSErrorCode FSDK_Note_SetIconName(FS_NOTEANNOT_HANDLE note_handle, const char* icon_name);
FSErrorCode FSDK_Note_GetReplyTo(FS_NOTEANNOT_HANDLE note_handle, FS_MARKUPANNOT_HANDLE* return_value);
FSErrorCode FSDK_Note_IsStateAnnot(FS_NOTEANNOT_HANDLE note_handle, FS_BOOL* return_value);
FSErrorCode FSDK_Note_GetStateModel(FS_NOTEANNOT_HANDLE note_handle, FSStateModel* return_value);
FSErrorCode FSDK_Note_GetState(FS_NOTEANNOT_HANDLE note_handle, FSAnnotState* return_value);
FSErrorCode FSDK_Note_SetState(FS_NOTEANNOT_HANDLE note_handle, FSAnnotState state);
FSErrorCode FSDK_TextMarkup_Create0(const FS_ANNOT_HANDLE annot, FS_TEXTMARKUPANNOT_HANDLE* textmarkup_return_value);
FSErrorCode FSDK_TextMarkup_Release(FS_TEXTMARKUPANNOT_HANDLE textmarkup_handle);
FSErrorCode FSDK_TextMarkup_GetQuadPoints(FS_TEXTMARKUPANNOT_HANDLE textmarkup_handle, FSQuadPoints* return_quadpoints_array, FS_UINT32* return_array_length);
FSErrorCode FSDK_TextMarkup_SetQuadPoints(FS_TEXTMARKUPANNOT_HANDLE textmarkup_handle, const FSQuadPoints* quadPointsArray, FS_UINT32 array_length_quad_points_array);
FSErrorCode FSDK_Highlight_Create0(const FS_ANNOT_HANDLE annot, FS_HIGHLIGHTANNOT_HANDLE* highlight_return_value);
FSErrorCode FSDK_Highlight_Release(FS_HIGHLIGHTANNOT_HANDLE highlight_handle);
FSErrorCode FSDK_Underline_Create0(const FS_ANNOT_HANDLE annot, FS_UNDERLINEANNOT_HANDLE* underline_return_value);
FSErrorCode FSDK_Underline_Release(FS_UNDERLINEANNOT_HANDLE underline_handle);
FSErrorCode FSDK_StrikeOut_Create0(const FS_ANNOT_HANDLE annot, FS_STRIKEOUTANNOT_HANDLE* strikeout_return_value);
FSErrorCode FSDK_StrikeOut_Release(FS_STRIKEOUTANNOT_HANDLE strikeout_handle);
FSErrorCode FSDK_Squiggly_Create0(const FS_ANNOT_HANDLE annot, FS_SQUIGGLYANNOT_HANDLE* squiggly_return_value);
FSErrorCode FSDK_Squiggly_Release(FS_SQUIGGLYANNOT_HANDLE squiggly_handle);
FSErrorCode FSDK_Link_Create0(const FS_ANNOT_HANDLE annot, FS_LINKANNOT_HANDLE* link_return_value);
FSErrorCode FSDK_Link_Release(FS_LINKANNOT_HANDLE link_handle);
FSErrorCode FSDK_Link_GetQuadPoints(FS_LINKANNOT_HANDLE link_handle, FSQuadPoints* return_quadpoints_array, FS_UINT32* return_array_length);
FSErrorCode FSDK_Link_SetQuadPoints(FS_LINKANNOT_HANDLE link_handle, const FSQuadPoints* quadPointsArray, FS_UINT32 array_length_quad_points_array);
FSErrorCode FSDK_Link_GetHighlightingMode(FS_LINKANNOT_HANDLE link_handle, FSHighlightingMode* return_value);
FSErrorCode FSDK_Link_SetHighlightingMode(FS_LINKANNOT_HANDLE link_handle, FSHighlightingMode mode);
FSErrorCode FSDK_Link_GetAction(FS_LINKANNOT_HANDLE link_handle, FS_ACTION_HANDLE* return_value);
FSErrorCode FSDK_Link_SetAction(FS_LINKANNOT_HANDLE link_handle, const FS_ACTION_HANDLE action);
FSErrorCode FSDK_Link_RemoveAction(FS_LINKANNOT_HANDLE link_handle, FS_BOOL* return_value);
FSErrorCode FSDK_Link_ExecuteJavaScriptAction(FS_LINKANNOT_HANDLE link_handle, const FS_JAVASCRIPTACTION_HANDLE javascript_action, FS_BOOL* return_value);
FSErrorCode FSDK_Square_Create0(const FS_ANNOT_HANDLE annot, FS_SQUAREANNOT_HANDLE* square_return_value);
FSErrorCode FSDK_Square_Release(FS_SQUAREANNOT_HANDLE square_handle);
FSErrorCode FSDK_Square_GetFillColor(FS_SQUAREANNOT_HANDLE square_handle, FS_RGB* return_value);
FSErrorCode FSDK_Square_SetFillColor(FS_SQUAREANNOT_HANDLE square_handle, FS_RGB fill_color);
FSErrorCode FSDK_Square_GetInnerRect(FS_SQUAREANNOT_HANDLE square_handle, FSRectF* return_value);
FSErrorCode FSDK_Square_SetInnerRect(FS_SQUAREANNOT_HANDLE square_handle, const FSRectF inner_rect);
FSErrorCode FSDK_Square_SetMeasureRatio(FS_SQUAREANNOT_HANDLE square_handle, const char* ratio);
FSErrorCode FSDK_Square_GetMeasureRatio(FS_SQUAREANNOT_HANDLE square_handle, FS_BSTR* return_value);
FSErrorCode FSDK_Square_GetMeasureRatioW(FS_SQUAREANNOT_HANDLE square_handle, FS_WSTR* return_value);
FSErrorCode FSDK_Square_SetMeasureUnit(FS_SQUAREANNOT_HANDLE square_handle, FSMeasureType measure_type, const char* unit);
FSErrorCode FSDK_Square_GetMeasureUnit(FS_SQUAREANNOT_HANDLE square_handle, FSMeasureType measure_type, FS_BSTR* return_value);
FSErrorCode FSDK_Square_GetMeasureUnitW(FS_SQUAREANNOT_HANDLE square_handle, FSMeasureType measure_type, FS_WSTR* return_value);
FSErrorCode FSDK_Square_SetMeasureConversionFactor(FS_SQUAREANNOT_HANDLE square_handle, FSMeasureType measure_type, float factor);
FSErrorCode FSDK_Square_GetMeasureConversionFactor(FS_SQUAREANNOT_HANDLE square_handle, FSMeasureType measure_type, float* return_value);
FSErrorCode FSDK_Circle_Create0(const FS_ANNOT_HANDLE annot, FS_CIRCLEANNOT_HANDLE* circle_return_value);
FSErrorCode FSDK_Circle_Release(FS_CIRCLEANNOT_HANDLE circle_handle);
FSErrorCode FSDK_Circle_GetFillColor(FS_CIRCLEANNOT_HANDLE circle_handle, FS_RGB* return_value);
FSErrorCode FSDK_Circle_SetFillColor(FS_CIRCLEANNOT_HANDLE circle_handle, FS_RGB fill_color);
FSErrorCode FSDK_Circle_GetInnerRect(FS_CIRCLEANNOT_HANDLE circle_handle, FSRectF* return_value);
FSErrorCode FSDK_Circle_SetInnerRect(FS_CIRCLEANNOT_HANDLE circle_handle, const FSRectF inner_rect);
FSErrorCode FSDK_Circle_SetMeasureRatio(FS_CIRCLEANNOT_HANDLE circle_handle, const char* ratio);
FSErrorCode FSDK_Circle_GetMeasureRatio(FS_CIRCLEANNOT_HANDLE circle_handle, FS_BSTR* return_value);
FSErrorCode FSDK_Circle_GetMeasureRatioW(FS_CIRCLEANNOT_HANDLE circle_handle, FS_WSTR* return_value);
FSErrorCode FSDK_Circle_SetMeasureUnit(FS_CIRCLEANNOT_HANDLE circle_handle, FSMeasureType measure_type, const char* unit);
FSErrorCode FSDK_Circle_GetMeasureUnit(FS_CIRCLEANNOT_HANDLE circle_handle, FSMeasureType measure_type, FS_BSTR* return_value);
FSErrorCode FSDK_Circle_GetMeasureUnitW(FS_CIRCLEANNOT_HANDLE circle_handle, FSMeasureType measure_type, FS_WSTR* return_value);
FSErrorCode FSDK_Circle_SetMeasureConversionFactor(FS_CIRCLEANNOT_HANDLE circle_handle, FSMeasureType measure_type, float factor);
FSErrorCode FSDK_Circle_GetMeasureConversionFactor(FS_CIRCLEANNOT_HANDLE circle_handle, FSMeasureType measure_type, float* return_value);
FSErrorCode FSDK_FreeText_Create0(const FS_ANNOT_HANDLE annot, FS_FREETEXTANNOT_HANDLE* freetext_return_value);
FSErrorCode FSDK_FreeText_Release(FS_FREETEXTANNOT_HANDLE freetext_handle);
FSErrorCode FSDK_FreeText_GetFillColor(FS_FREETEXTANNOT_HANDLE freetext_handle, FS_RGB* return_value);
FSErrorCode FSDK_FreeText_SetFillColor(FS_FREETEXTANNOT_HANDLE freetext_handle, FS_RGB fill_color);
FSErrorCode FSDK_FreeText_GetAlignment(FS_FREETEXTANNOT_HANDLE freetext_handle, FSAlignment* return_value);
FSErrorCode FSDK_FreeText_SetAlignment(FS_FREETEXTANNOT_HANDLE freetext_handle,  FSAlignment alignment);
FSErrorCode FSDK_FreeText_GetInnerRect(FS_FREETEXTANNOT_HANDLE freetext_handle, FSRectF* return_value);
FSErrorCode FSDK_FreeText_SetInnerRect(FS_FREETEXTANNOT_HANDLE freetext_handle, const FSRectF inner_rect);
FSErrorCode FSDK_FreeText_GetDefaultAppearance(FS_FREETEXTANNOT_HANDLE freetext_handle, FSDefaultAppearance* return_value);
FSErrorCode FSDK_FreeText_SetDefaultAppearance(FS_FREETEXTANNOT_HANDLE freetext_handle, const FSDefaultAppearance default_ap, FS_BOOL* return_value);
FSErrorCode FSDK_FreeText_GetCalloutLineEndingStyle(FS_FREETEXTANNOT_HANDLE freetext_handle, FSEndingStyle* return_value);
FSErrorCode FSDK_FreeText_SetCalloutLineEndingStyle(FS_FREETEXTANNOT_HANDLE freetext_handle, FSEndingStyle ending_style);
FSErrorCode FSDK_FreeText_GetCalloutLinePoints(FS_FREETEXTANNOT_HANDLE freetext_handle, FSPointF* return_points_array, FS_UINT32* return_array_length);
FSErrorCode FSDK_FreeText_SetCalloutLinePoints(FS_FREETEXTANNOT_HANDLE freetext_handle, const FSPointF* pointfsArray, FS_UINT32 array_length_point_array);
FSErrorCode FSDK_FreeText_SetTextMatrix(FS_FREETEXTANNOT_HANDLE freetext_handle, const FSMatrix text_matrix);
FSErrorCode FSDK_FreeText_GetTextMatrix(FS_FREETEXTANNOT_HANDLE freetext_handle, FSMatrix* return_value);
FSErrorCode FSDK_FreeText_GetRotation(FS_FREETEXTANNOT_HANDLE freetext_handle, FSRotation* return_value);
FSErrorCode FSDK_FreeText_SetRotation(FS_FREETEXTANNOT_HANDLE freetext_handle,  FSRotation rotation);
FSErrorCode FSDK_FreeText_Rotate(FS_FREETEXTANNOT_HANDLE freetext_handle,  FSRotation rotation);
FSErrorCode FSDK_FreeText_AllowTextOverflow(FS_FREETEXTANNOT_HANDLE freetext_handle, FS_BOOL is_text_overflow);
FSErrorCode FSDK_Line_Create0(const FS_ANNOT_HANDLE annot, FS_LINEANNOT_HANDLE* line_return_value);
FSErrorCode FSDK_Line_Release(FS_LINEANNOT_HANDLE line_handle);
FSErrorCode FSDK_Line_GetLineStartStyle(FS_LINEANNOT_HANDLE line_handle, FSEndingStyle* return_value);
FSErrorCode FSDK_Line_SetLineStartStyle(FS_LINEANNOT_HANDLE line_handle, FSEndingStyle ending_style);
FSErrorCode FSDK_Line_GetLineEndStyle(FS_LINEANNOT_HANDLE line_handle, FSEndingStyle* return_value);
FSErrorCode FSDK_Line_SetLineEndStyle(FS_LINEANNOT_HANDLE line_handle, FSEndingStyle ending_style);
FSErrorCode FSDK_Line_GetStyleFillColor(FS_LINEANNOT_HANDLE line_handle, FS_RGB* return_value);
FSErrorCode FSDK_Line_SetStyleFillColor(FS_LINEANNOT_HANDLE line_handle, FS_RGB color);
FSErrorCode FSDK_Line_GetStartPoint(FS_LINEANNOT_HANDLE line_handle, FSPointF* return_value);
FSErrorCode FSDK_Line_SetStartPoint(FS_LINEANNOT_HANDLE line_handle, const FSPointF point);
FSErrorCode FSDK_Line_GetEndPoint(FS_LINEANNOT_HANDLE line_handle, FSPointF* return_value);
FSErrorCode FSDK_Line_SetEndPoint(FS_LINEANNOT_HANDLE line_handle, const FSPointF point);
FSErrorCode FSDK_Line_HasCaption(FS_LINEANNOT_HANDLE line_handle, FS_BOOL* return_value);
FSErrorCode FSDK_Line_EnableCaption(FS_LINEANNOT_HANDLE line_handle, FS_BOOL cap);
FSErrorCode FSDK_Line_GetCaptionPositionType(FS_LINEANNOT_HANDLE line_handle, FSCapPos* return_value);
FSErrorCode FSDK_Line_SetCaptionPositionType(FS_LINEANNOT_HANDLE line_handle, FSCapPos cap_position);
FSErrorCode FSDK_Line_GetCaptionOffset(FS_LINEANNOT_HANDLE line_handle, FSOffset* return_value);
FSErrorCode FSDK_Line_SetCaptionOffset(FS_LINEANNOT_HANDLE line_handle, const FSOffset offset);
FSErrorCode FSDK_Line_GetLeaderLineLength(FS_LINEANNOT_HANDLE line_handle, float* return_value);
FSErrorCode FSDK_Line_SetLeaderLineLength(FS_LINEANNOT_HANDLE line_handle, float length);
FSErrorCode FSDK_Line_GetLeaderLineExtensionLength(FS_LINEANNOT_HANDLE line_handle, float* return_value);
FSErrorCode FSDK_Line_SetLeaderLineExtensionLength(FS_LINEANNOT_HANDLE line_handle, float extension_length);
FSErrorCode FSDK_Line_GetLeaderLineOffset(FS_LINEANNOT_HANDLE line_handle, float* return_value);
FSErrorCode FSDK_Line_SetLeaderLineOffset(FS_LINEANNOT_HANDLE line_handle, float offset);
FSErrorCode FSDK_Line_SetMeasureRatio(FS_LINEANNOT_HANDLE line_handle, const char* ratio);
FSErrorCode FSDK_Line_GetMeasureRatio(FS_LINEANNOT_HANDLE line_handle, FS_BSTR* return_value);
FSErrorCode FSDK_Line_GetMeasureRatioW(FS_LINEANNOT_HANDLE line_handle, FS_WSTR* return_value);
FSErrorCode FSDK_Line_SetMeasureUnit(FS_LINEANNOT_HANDLE line_handle, FSMeasureType measure_type, const char* unit);
FSErrorCode FSDK_Line_GetMeasureUnit(FS_LINEANNOT_HANDLE line_handle, FSMeasureType measure_type, FS_BSTR* return_value);
FSErrorCode FSDK_Line_GetMeasureUnitW(FS_LINEANNOT_HANDLE line_handle, FSMeasureType measure_type, FS_WSTR* return_value);
FSErrorCode FSDK_Line_SetMeasureConversionFactor(FS_LINEANNOT_HANDLE line_handle, FSMeasureType measure_type, float factor);
FSErrorCode FSDK_Line_GetMeasureConversionFactor(FS_LINEANNOT_HANDLE line_handle, FSMeasureType measure_type, float* return_value);
FSErrorCode FSDK_Ink_Create0(const FS_ANNOT_HANDLE annot, FS_INKANNOT_HANDLE* ink_return_value);
FSErrorCode FSDK_Ink_Release(FS_INKANNOT_HANDLE ink_handle);
FSErrorCode FSDK_Ink_GetInkList(FS_INKANNOT_HANDLE ink_handle, FS_PATH_HANDLE* return_value);
FSErrorCode FSDK_Ink_SetInkList(FS_INKANNOT_HANDLE ink_handle, const FS_PATH_HANDLE ink_list);
FSErrorCode FSDK_Ink_EnableUseBezier(FS_INKANNOT_HANDLE ink_handle, FS_BOOL use_bezier);
FSErrorCode FSDK_Stamp_Create0(const FS_ANNOT_HANDLE annot, FS_STAMPANNOT_HANDLE* stamp_return_value);
FSErrorCode FSDK_Stamp_Release(FS_STAMPANNOT_HANDLE stamp_handle);
FSErrorCode FSDK_Stamp_GetIconName(FS_STAMPANNOT_HANDLE stamp_handle, FS_BSTR* return_value);
FSErrorCode FSDK_Stamp_SetIconName(FS_STAMPANNOT_HANDLE stamp_handle, const char* icon_name);
FSErrorCode FSDK_Stamp_SetBitmap(FS_STAMPANNOT_HANDLE stamp_handle, const FS_BITMAP_HANDLE bitmap);
FSErrorCode FSDK_Stamp_SetImage(FS_STAMPANNOT_HANDLE stamp_handle, const FS_IMAGE_HANDLE image, int frame_index, int compress);
FSErrorCode FSDK_Stamp_SetRotation(FS_STAMPANNOT_HANDLE stamp_handle, int angle);
FSErrorCode FSDK_Stamp_GetRotation(FS_STAMPANNOT_HANDLE stamp_handle, int* return_value);
FSErrorCode FSDK_Stamp_Rotate(FS_STAMPANNOT_HANDLE stamp_handle, int angle);
FSErrorCode FSDK_Screen_Create0(const FS_ANNOT_HANDLE annot, FS_SCREENANNOT_HANDLE* screen_return_value);
FSErrorCode FSDK_Screen_Release(FS_SCREENANNOT_HANDLE screen_handle);
FSErrorCode FSDK_Screen_SetImage(FS_SCREENANNOT_HANDLE screen_handle, const FS_IMAGE_HANDLE image, int frame_index, int compress);
FSErrorCode FSDK_Screen_GetBitmap(FS_SCREENANNOT_HANDLE screen_handle, FS_BITMAP_HANDLE* return_value);
FSErrorCode FSDK_Screen_GetMKDict(FS_SCREENANNOT_HANDLE screen_handle, FS_PDFDICTIONARY_HANDLE* return_value);
FSErrorCode FSDK_Screen_SetMKDict(FS_SCREENANNOT_HANDLE screen_handle,  FS_PDFDICTIONARY_HANDLE dict);
FSErrorCode FSDK_Screen_SetRotation(FS_SCREENANNOT_HANDLE screen_handle,  FSRotation rotate);
FSErrorCode FSDK_Screen_GetRotation(FS_SCREENANNOT_HANDLE screen_handle, FSRotation* return_value);
FSErrorCode FSDK_Screen_GetOpacity(FS_SCREENANNOT_HANDLE screen_handle, float* return_value);
FSErrorCode FSDK_Screen_SetOpacity(FS_SCREENANNOT_HANDLE screen_handle, float opacity);
FSErrorCode FSDK_Screen_GetTitle(FS_SCREENANNOT_HANDLE screen_handle, FS_WSTR* return_value);
FSErrorCode FSDK_Screen_SetTitle(FS_SCREENANNOT_HANDLE screen_handle, const wchar_t* title);
FSErrorCode FSDK_Screen_GetAction(FS_SCREENANNOT_HANDLE screen_handle, FS_ACTION_HANDLE* return_value);
FSErrorCode FSDK_Screen_SetAction(FS_SCREENANNOT_HANDLE screen_handle, const FS_ACTION_HANDLE action);
FSErrorCode FSDK_Screen_RemoveAction(FS_SCREENANNOT_HANDLE screen_handle);
FSErrorCode FSDK_Polygon_Create0(const FS_ANNOT_HANDLE annot, FS_POLYGONANNOT_HANDLE* polygon_return_value);
FSErrorCode FSDK_Polygon_Release(FS_POLYGONANNOT_HANDLE polygon_handle);
FSErrorCode FSDK_Polygon_GetFillColor(FS_POLYGONANNOT_HANDLE polygon_handle, FS_RGB* return_value);
FSErrorCode FSDK_Polygon_SetFillColor(FS_POLYGONANNOT_HANDLE polygon_handle, FS_RGB fill_color);
FSErrorCode FSDK_Polygon_GetVertexes(FS_POLYGONANNOT_HANDLE polygon_handle, FSPointF* return_points_array, FS_UINT32* return_array_length);
FSErrorCode FSDK_Polygon_SetVertexes(FS_POLYGONANNOT_HANDLE polygon_handle, const FSPointF* pointfsArray, FS_UINT32 array_length_vertexes);
FSErrorCode FSDK_Polygon_SetMeasureRatio(FS_POLYGONANNOT_HANDLE polygon_handle, const char* ratio);
FSErrorCode FSDK_Polygon_GetMeasureRatio(FS_POLYGONANNOT_HANDLE polygon_handle, FS_BSTR* return_value);
FSErrorCode FSDK_Polygon_GetMeasureRatioW(FS_POLYGONANNOT_HANDLE polygon_handle, FS_WSTR* return_value);
FSErrorCode FSDK_Polygon_SetMeasureUnit(FS_POLYGONANNOT_HANDLE polygon_handle, FSMeasureType measure_type, const char* unit);
FSErrorCode FSDK_Polygon_GetMeasureUnit(FS_POLYGONANNOT_HANDLE polygon_handle, FSMeasureType measure_type, FS_BSTR* return_value);
FSErrorCode FSDK_Polygon_GetMeasureUnitW(FS_POLYGONANNOT_HANDLE polygon_handle, FSMeasureType measure_type, FS_WSTR* return_value);
FSErrorCode FSDK_Polygon_SetMeasureConversionFactor(FS_POLYGONANNOT_HANDLE polygon_handle, FSMeasureType measure_type, float factor);
FSErrorCode FSDK_Polygon_GetMeasureConversionFactor(FS_POLYGONANNOT_HANDLE polygon_handle, FSMeasureType measure_type, float* return_value);
FSErrorCode FSDK_PolyLine_Create0(const FS_ANNOT_HANDLE annot, FS_POLYLINEANNOT_HANDLE* polyline_return_value);
FSErrorCode FSDK_PolyLine_Release(FS_POLYLINEANNOT_HANDLE polyline_handle);
FSErrorCode FSDK_PolyLine_GetStyleFillColor(FS_POLYLINEANNOT_HANDLE polyline_handle, FS_RGB* return_value);
FSErrorCode FSDK_PolyLine_SetStyleFillColor(FS_POLYLINEANNOT_HANDLE polyline_handle, FS_RGB fill_color);
FSErrorCode FSDK_PolyLine_GetVertexes(FS_POLYLINEANNOT_HANDLE polyline_handle, FSPointF* return_points_array, FS_UINT32* return_array_length);
FSErrorCode FSDK_PolyLine_SetVertexes(FS_POLYLINEANNOT_HANDLE polyline_handle, const FSPointF* pointfsArray, FS_UINT32 array_length_vertexes);
FSErrorCode FSDK_PolyLine_GetLineStartStyle(FS_POLYLINEANNOT_HANDLE polyline_handle, FSEndingStyle* return_value);
FSErrorCode FSDK_PolyLine_SetLineStartStyle(FS_POLYLINEANNOT_HANDLE polyline_handle, FSEndingStyle starting_style);
FSErrorCode FSDK_PolyLine_GetLineEndStyle(FS_POLYLINEANNOT_HANDLE polyline_handle, FSEndingStyle* return_value);
FSErrorCode FSDK_PolyLine_SetLineEndStyle(FS_POLYLINEANNOT_HANDLE polyline_handle, FSEndingStyle ending_style);
FSErrorCode FSDK_PolyLine_SetMeasureRatio(FS_POLYLINEANNOT_HANDLE polyline_handle, const char* ratio);
FSErrorCode FSDK_PolyLine_GetMeasureRatio(FS_POLYLINEANNOT_HANDLE polyline_handle, FS_BSTR* return_value);
FSErrorCode FSDK_PolyLine_GetMeasureRatioW(FS_POLYLINEANNOT_HANDLE polyline_handle, FS_WSTR* return_value);
FSErrorCode FSDK_PolyLine_SetMeasureUnit(FS_POLYLINEANNOT_HANDLE polyline_handle, FSMeasureType measure_type, const char* unit);
FSErrorCode FSDK_PolyLine_GetMeasureUnit(FS_POLYLINEANNOT_HANDLE polyline_handle, FSMeasureType measure_type, FS_BSTR* return_value);
FSErrorCode FSDK_PolyLine_GetMeasureUnitW(FS_POLYLINEANNOT_HANDLE polyline_handle, FSMeasureType measure_type, FS_WSTR* return_value);
FSErrorCode FSDK_PolyLine_SetMeasureConversionFactor(FS_POLYLINEANNOT_HANDLE polyline_handle, FSMeasureType measure_type, float factor);
FSErrorCode FSDK_PolyLine_GetMeasureConversionFactor(FS_POLYLINEANNOT_HANDLE polyline_handle, FSMeasureType measure_type, float* return_value);
FSErrorCode FSDK_Caret_Create0(const FS_ANNOT_HANDLE annot, FS_CARETANNOT_HANDLE* caret_return_value);
FSErrorCode FSDK_Caret_Release(FS_CARETANNOT_HANDLE caret_handle);
FSErrorCode FSDK_Caret_GetInnerRect(FS_CARETANNOT_HANDLE caret_handle, FSRectF* return_value);
FSErrorCode FSDK_Caret_SetInnerRect(FS_CARETANNOT_HANDLE caret_handle, const FSRectF inner_rect);
FSErrorCode FSDK_FileAttachment_Create0(const FS_ANNOT_HANDLE annot, FS_FILEATTACHMENTANNOT_HANDLE* fileattachment_return_value);
FSErrorCode FSDK_FileAttachment_Release(FS_FILEATTACHMENTANNOT_HANDLE fileattachment_handle);
FSErrorCode FSDK_FileAttachment_SetFileSpec(FS_FILEATTACHMENTANNOT_HANDLE fileattachment_handle, const FS_FILESPEC_HANDLE file_spec, FS_BOOL* return_value);
FSErrorCode FSDK_FileAttachment_GetFileSpec(FS_FILEATTACHMENTANNOT_HANDLE fileattachment_handle, FS_FILESPEC_HANDLE* return_value);
FSErrorCode FSDK_FileAttachment_GetIconName(FS_FILEATTACHMENTANNOT_HANDLE fileattachment_handle, FS_BSTR* return_value);
FSErrorCode FSDK_FileAttachment_SetIconName(FS_FILEATTACHMENTANNOT_HANDLE fileattachment_handle, const char* icon_name);
FSErrorCode FSDK_Popup_Create0(const FS_ANNOT_HANDLE annot, FS_POPUPANNOT_HANDLE* popup_return_value);
FSErrorCode FSDK_Popup_Release(FS_POPUPANNOT_HANDLE popup_handle);
FSErrorCode FSDK_Popup_GetOpenStatus(FS_POPUPANNOT_HANDLE popup_handle, FS_BOOL* return_value);
FSErrorCode FSDK_Popup_SetOpenStatus(FS_POPUPANNOT_HANDLE popup_handle, FS_BOOL status);
FSErrorCode FSDK_Popup_GetParent(FS_POPUPANNOT_HANDLE popup_handle, FS_MARKUPANNOT_HANDLE* return_value);
FSErrorCode FSDK_PSInk_Create0(const FS_ANNOT_HANDLE annot, FS_PSINKANNOT_HANDLE* psink_return_value);
FSErrorCode FSDK_PSInk_Release(FS_PSINKANNOT_HANDLE psink_handle);

typedef enum _FSLineSpacingStyle {
e_FSLineSpacingSingle = 0,
e_FSLineSpacingOneAndHalf = 1,
e_FSLineSpacingDouble = 2,
e_FSLineSpacingExactValue = 3,
e_FSLineSpacingAuto = 4,
}FSLineSpacingStyle;


FSErrorCode FSDK_Widget_Create0(const FS_ANNOT_HANDLE annot, FS_WIDGETANNOT_HANDLE* widget_return_value);
FSErrorCode FSDK_Widget_Release(FS_WIDGETANNOT_HANDLE widget_handle);
FSErrorCode FSDK_Widget_GetField(FS_WIDGETANNOT_HANDLE widget_handle, FS_FIELD_HANDLE* return_value);
FSErrorCode FSDK_Widget_GetControl(FS_WIDGETANNOT_HANDLE widget_handle, FS_CONTROL_HANDLE* return_value);
FSErrorCode FSDK_Widget_GetHighlightingMode(FS_WIDGETANNOT_HANDLE widget_handle, FSHighlightingMode* return_value);
FSErrorCode FSDK_Widget_SetHighlightingMode(FS_WIDGETANNOT_HANDLE widget_handle, FSHighlightingMode mode);
FSErrorCode FSDK_Widget_GetAction(FS_WIDGETANNOT_HANDLE widget_handle, FS_ACTION_HANDLE* return_value);
FSErrorCode FSDK_Widget_SetAction(FS_WIDGETANNOT_HANDLE widget_handle, const FS_ACTION_HANDLE action);
FSErrorCode FSDK_Widget_RemoveAction(FS_WIDGETANNOT_HANDLE widget_handle);
FSErrorCode FSDK_Widget_HasMKEntry(FS_WIDGETANNOT_HANDLE widget_handle, FSMKEntry mk_entry, FS_BOOL* return_value);
FSErrorCode FSDK_Widget_RemoveMKEntry(FS_WIDGETANNOT_HANDLE widget_handle, FSMKEntry mk_entry);
FSErrorCode FSDK_Widget_GetMKRotation(FS_WIDGETANNOT_HANDLE widget_handle, FSRotation* return_value);
FSErrorCode FSDK_Widget_SetMKRotation(FS_WIDGETANNOT_HANDLE widget_handle,  FSRotation rotation);
FSErrorCode FSDK_Widget_GetMKBorderColor(FS_WIDGETANNOT_HANDLE widget_handle, FS_RGB* return_value);
FSErrorCode FSDK_Widget_SetMKBorderColor(FS_WIDGETANNOT_HANDLE widget_handle, FS_RGB color);
FSErrorCode FSDK_Widget_GetMKBackgroundColor(FS_WIDGETANNOT_HANDLE widget_handle, FS_RGB* return_value);
FSErrorCode FSDK_Widget_SetMKBackgroundColor(FS_WIDGETANNOT_HANDLE widget_handle, FS_RGB color);
FSErrorCode FSDK_Widget_GetMKNormalCaption(FS_WIDGETANNOT_HANDLE widget_handle, FS_WSTR* return_value);
FSErrorCode FSDK_Widget_SetMKNormalCaption(FS_WIDGETANNOT_HANDLE widget_handle, const wchar_t* caption);
FSErrorCode FSDK_Widget_GetMKRolloverCaption(FS_WIDGETANNOT_HANDLE widget_handle, FS_WSTR* return_value);
FSErrorCode FSDK_Widget_SetMKRolloverCaption(FS_WIDGETANNOT_HANDLE widget_handle, const wchar_t* caption);
FSErrorCode FSDK_Widget_GetMKDownCaption(FS_WIDGETANNOT_HANDLE widget_handle, FS_WSTR* return_value);
FSErrorCode FSDK_Widget_SetMKDownCaption(FS_WIDGETANNOT_HANDLE widget_handle, const wchar_t* caption);
FSErrorCode FSDK_Widget_GetMKNormalIconBitmap(FS_WIDGETANNOT_HANDLE widget_handle, FS_BITMAP_HANDLE* return_value);
FSErrorCode FSDK_Widget_SetMKNormalIconBitmap(FS_WIDGETANNOT_HANDLE widget_handle, const FS_BITMAP_HANDLE bitmap);
FSErrorCode FSDK_Widget_SetMKNormalIconImage(FS_WIDGETANNOT_HANDLE widget_handle, const FS_IMAGE_HANDLE image, int frame_index);
FSErrorCode FSDK_Widget_GetMKRolloverIconBitmap(FS_WIDGETANNOT_HANDLE widget_handle, FS_BITMAP_HANDLE* return_value);
FSErrorCode FSDK_Widget_SetMKRolloverIconBitmap(FS_WIDGETANNOT_HANDLE widget_handle, const FS_BITMAP_HANDLE bitmap);
FSErrorCode FSDK_Widget_SetMKRolloverIconImage(FS_WIDGETANNOT_HANDLE widget_handle, const FS_IMAGE_HANDLE image, int frame_index);
FSErrorCode FSDK_Widget_GetMKDownIconBitmap(FS_WIDGETANNOT_HANDLE widget_handle, FS_BITMAP_HANDLE* return_value);
FSErrorCode FSDK_Widget_SetMKDownIconBitmap(FS_WIDGETANNOT_HANDLE widget_handle, const FS_BITMAP_HANDLE bitmap);
FSErrorCode FSDK_Widget_SetMKDownIconImage(FS_WIDGETANNOT_HANDLE widget_handle, const FS_IMAGE_HANDLE image, int frame_index);
FSErrorCode FSDK_Widget_GetMKIconFit(FS_WIDGETANNOT_HANDLE widget_handle, FSIconFit* return_value);
FSErrorCode FSDK_Widget_SetMKIconFit(FS_WIDGETANNOT_HANDLE widget_handle, const FSIconFit icon_fit);
FSErrorCode FSDK_Widget_GetMKIconCaptionRelation(FS_WIDGETANNOT_HANDLE widget_handle, FSMKIconCaptionRelation* return_value);
FSErrorCode FSDK_Widget_SetMKIconCaptionRelation(FS_WIDGETANNOT_HANDLE widget_handle, FSMKIconCaptionRelation relation);
FSErrorCode FSDK_Widget_SetAppearanceState(FS_WIDGETANNOT_HANDLE widget_handle, const char* appearance_state);
FSErrorCode FSDK_Widget_GetAppearanceState(FS_WIDGETANNOT_HANDLE widget_handle, FS_BSTR* return_value);
FSErrorCode FSDK_Widget_GetAppearanceOnStateName(FS_WIDGETANNOT_HANDLE widget_handle, FS_BSTR* return_value);
FSErrorCode FSDK_Widget_GetLineSpacing(FS_WIDGETANNOT_HANDLE widget_handle, float line_spacing_value, FSLineSpacingStyle* return_value);
FSErrorCode FSDK_Widget_SetLineSpacing(FS_WIDGETANNOT_HANDLE widget_handle, FSLineSpacingStyle line_spacing_style, float line_spacing_value);
FSErrorCode FSDK_Redact_Create0(const FS_ANNOT_HANDLE annot, FS_REDACTANNOT_HANDLE* redact_return_value);
FSErrorCode FSDK_Redact_Release(FS_REDACTANNOT_HANDLE redact_handle);
FSErrorCode FSDK_Redact_GetQuadPoints(FS_REDACTANNOT_HANDLE redact_handle, FSQuadPoints* return_quadpoints_array, FS_UINT32* return_array_length);
FSErrorCode FSDK_Redact_SetQuadPoints(FS_REDACTANNOT_HANDLE redact_handle, const FSQuadPoints* quadPointsArray, FS_UINT32 array_length_quad_points_array);
FSErrorCode FSDK_Redact_GetFillColor(FS_REDACTANNOT_HANDLE redact_handle, FS_RGB* return_value);
FSErrorCode FSDK_Redact_SetFillColor(FS_REDACTANNOT_HANDLE redact_handle, FS_RGB fill_color);
FSErrorCode FSDK_Redact_GetApplyFillColor(FS_REDACTANNOT_HANDLE redact_handle, FS_RGB* return_value);
FSErrorCode FSDK_Redact_SetApplyFillColor(FS_REDACTANNOT_HANDLE redact_handle, FS_RGB fill_color);
FSErrorCode FSDK_Redact_GetOverlayText(FS_REDACTANNOT_HANDLE redact_handle, FS_WSTR* return_value);
FSErrorCode FSDK_Redact_SetOverlayText(FS_REDACTANNOT_HANDLE redact_handle, const wchar_t* overlay_text);
FSErrorCode FSDK_Redact_IsOverlayTextRepeated(FS_REDACTANNOT_HANDLE redact_handle, FS_BOOL* return_value);
FSErrorCode FSDK_Redact_EnableRepeatOverlayText(FS_REDACTANNOT_HANDLE redact_handle, FS_BOOL is_to_repeat_overlay_text);
FSErrorCode FSDK_Redact_GetOverlayTextAlignment(FS_REDACTANNOT_HANDLE redact_handle, FSAlignment* return_value);
FSErrorCode FSDK_Redact_SetOverlayTextAlignment(FS_REDACTANNOT_HANDLE redact_handle,  FSAlignment alignment);
FSErrorCode FSDK_Redact_EnableAutoFontSize(FS_REDACTANNOT_HANDLE redact_handle);
FSErrorCode FSDK_Redact_GetDefaultAppearance(FS_REDACTANNOT_HANDLE redact_handle, FSDefaultAppearance* return_value);
FSErrorCode FSDK_Redact_SetDefaultAppearance(FS_REDACTANNOT_HANDLE redact_handle, const FSDefaultAppearance default_ap, FS_BOOL* return_value);
FSErrorCode FSDK_Redact_Apply(FS_REDACTANNOT_HANDLE redact_handle, FS_BOOL* return_value);

typedef enum _FSSampleEncodingFormat {
e_FSSampleEncodingFormatRaw = 0,
e_FSSampleEncodingFormatSigned = 1,
e_FSSampleEncodingFormatMuLaw = 2,
e_FSSampleEncodingFormatALaw = 3,
}FSSampleEncodingFormat;


FSErrorCode FSDK_Sound_Create0(const FS_ANNOT_HANDLE annot, FS_SOUNDANNOT_HANDLE* sound_return_value);
FSErrorCode FSDK_Sound_Release(FS_SOUNDANNOT_HANDLE sound_handle);
FSErrorCode FSDK_Sound_GetSoundStream(FS_SOUNDANNOT_HANDLE sound_handle, FS_PDFSTREAM_HANDLE* return_value);
FSErrorCode FSDK_Sound_GetSamplingRate(FS_SOUNDANNOT_HANDLE sound_handle, float* return_value);
FSErrorCode FSDK_Sound_GetChannelCount(FS_SOUNDANNOT_HANDLE sound_handle, int* return_value);
FSErrorCode FSDK_Sound_GetBits(FS_SOUNDANNOT_HANDLE sound_handle, int* return_value);
FSErrorCode FSDK_Sound_GetSampleEncodingFormat(FS_SOUNDANNOT_HANDLE sound_handle, FSSampleEncodingFormat* return_value);
FSErrorCode FSDK_Sound_GetCompressionFormat(FS_SOUNDANNOT_HANDLE sound_handle, FS_BSTR* return_value);
FSErrorCode FSDK_Sound_GetFileSpec(FS_SOUNDANNOT_HANDLE sound_handle, FS_FILESPEC_HANDLE* return_value);
FSErrorCode FSDK_PagingSeal_Create(const FS_ANNOT_HANDLE annot, FS_PAGINGSEALANNOT_HANDLE* pagingseal_return_value);
FSErrorCode FSDK_PagingSeal_Release(FS_PAGINGSEALANNOT_HANDLE pagingseal_handle);
FSErrorCode FSDK_PagingSeal_GetPagingSealSignature(FS_PAGINGSEALANNOT_HANDLE pagingseal_handle, FS_PAGINGSEALSIGNATURE_HANDLE* return_value);
#ifdef __cplusplus
}
#endif
#endif
