// CodeGear C++Builder
// Copyright (c) 1995, 2025 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'FPdfAnnot.pas' rev: 36.00 (Windows)

#ifndef FPdfAnnotHPP
#define FPdfAnnotHPP

#pragma delphiheader begin
#pragma option push
#if defined(__BORLANDC__) && !defined(__clang__)
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#endif
#pragma pack(push,8)
#include <System.hpp>
#include <SysInit.hpp>
#include <FPdfView.hpp>

//-- user supplied -----------------------------------------------------------

namespace Fpdfannot
{
//-- forward type declarations -----------------------------------------------
//-- type declarations -------------------------------------------------------
enum DECLSPEC_DENUM FPDFANNOT_COLORTYPE : unsigned int { FPDFANNOT_COLORTYPE_Color, FPDFANNOT_COLORTYPE_InteriorColor };

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_IsSupportedSubtype)(Fpdfview::FPDF_ANNOTATION_SUBTYPE subtype);

typedef Fpdfview::FPDF_ANNOTATION __cdecl (*TFPDFPage_CreateAnnot)(Fpdfview::FPDF_PAGE page, Fpdfview::FPDF_ANNOTATION_SUBTYPE subtype);

typedef int __cdecl (*TFPDFPage_GetAnnotCount)(Fpdfview::FPDF_PAGE page);

typedef Fpdfview::FPDF_ANNOTATION __cdecl (*TFPDFPage_GetAnnot)(Fpdfview::FPDF_PAGE page, int index);

typedef int __cdecl (*TFPDFPage_GetAnnotIndex)(Fpdfview::FPDF_PAGE page, Fpdfview::FPDF_ANNOTATION annot);

typedef void __cdecl (*TFPDFPage_CloseAnnot)(Fpdfview::FPDF_ANNOTATION annot);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFPage_RemoveAnnot)(Fpdfview::FPDF_PAGE page, int index);

typedef Fpdfview::FPDF_ANNOTATION_SUBTYPE __cdecl (*TFPDFAnnot_GetSubtype)(Fpdfview::FPDF_ANNOTATION annot);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_IsObjectSupportedSubtype)(Fpdfview::FPDF_ANNOTATION_SUBTYPE subtype);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_UpdateObject)(Fpdfview::FPDF_ANNOTATION annot, Fpdfview::FPDF_PAGEOBJECT obj);

typedef int __cdecl (*TFPDFAnnot_AddInkStroke)(Fpdfview::FPDF_ANNOTATION annot, const Fpdfview::FS_LPCPOINTF points, Fpdfview::size_t point_count);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_RemoveInkList)(Fpdfview::FPDF_ANNOTATION annot);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_AppendObject)(Fpdfview::FPDF_ANNOTATION annot, Fpdfview::FPDF_PAGEOBJECT obj);

typedef int __cdecl (*TFPDFAnnot_GetObjectCount)(Fpdfview::FPDF_ANNOTATION annot);

typedef Fpdfview::FPDF_PAGEOBJECT __cdecl (*TFPDFAnnot_GetObject)(Fpdfview::FPDF_ANNOTATION annot, int index);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_RemoveObject)(Fpdfview::FPDF_ANNOTATION annot, int index);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_SetColor)(Fpdfview::FPDF_ANNOTATION annot, FPDFANNOT_COLORTYPE type_, System::LongWord R, System::LongWord G, System::LongWord B, System::LongWord A);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_GetColor)(Fpdfview::FPDF_ANNOTATION annot, FPDFANNOT_COLORTYPE type_, /* out */ System::LongWord &R, /* out */ System::LongWord &G, /* out */ System::LongWord &B, /* out */ System::LongWord &A);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_HasAttachmentPoints)(Fpdfview::FPDF_ANNOTATION annot);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_SetAttachmentPoints)(Fpdfview::FPDF_ANNOTATION annot, Fpdfview::size_t quad_index, Fpdfview::FS_QUADPOINTSF &quad_points);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_AppendAttachmentPoints)(Fpdfview::FPDF_ANNOTATION annot, Fpdfview::FS_QUADPOINTSF &quad_points);

typedef Fpdfview::size_t __cdecl (*TFPDFAnnot_CountAttachmentPoints)(Fpdfview::FPDF_ANNOTATION annot);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_GetAttachmentPoints)(Fpdfview::FPDF_ANNOTATION annot, Fpdfview::size_t quad_index, Fpdfview::FS_QUADPOINTSF &quad_points);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_SetRect)(Fpdfview::FPDF_ANNOTATION annot, Fpdfview::FS_RECTF &rect);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_GetRect)(Fpdfview::FPDF_ANNOTATION annot, Fpdfview::FS_RECTF &rect);

typedef System::LongWord __cdecl (*TFPDFAnnot_GetVertices)(Fpdfview::FPDF_ANNOTATION annot, Fpdfview::FS_POINTF &buffer, System::LongWord length);

typedef System::LongWord __cdecl (*TFPDFAnnot_GetInkListCount)(Fpdfview::FPDF_ANNOTATION annot);

typedef System::LongWord __cdecl (*TFPDFAnnot_GetInkListPath)(Fpdfview::FPDF_ANNOTATION annot, System::LongWord path_index, Fpdfview::FS_POINTF &buffer, System::LongWord length);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_GetLine)(Fpdfview::FPDF_ANNOTATION annot, Fpdfview::FS_POINTF &start, Fpdfview::FS_POINTF &end_);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_SetBorder)(Fpdfview::FPDF_ANNOTATION annot, float horizontal_radius, float vertical_radius, float border_width);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_GetBorder)(Fpdfview::FPDF_ANNOTATION annot, float &horizontal_radius, float &vertical_radius, float &border_width);

typedef System::LongWord __cdecl (*TFPDFAnnot_GetFormAdditionalActionJavaScript)(Fpdfview::FPDF_FORMHANDLE hHandle, Fpdfview::FPDF_ANNOTATION annot, int event, System::WideChar * buffer, System::LongWord buflen);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_HasKey)(Fpdfview::FPDF_ANNOTATION annot, Fpdfview::FPDF_BYTESTRING key);

typedef Fpdfview::FPDF_OBJECT_TYPE __cdecl (*TFPDFAnnot_GetValueType)(Fpdfview::FPDF_ANNOTATION annot, Fpdfview::FPDF_BYTESTRING key);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_SetStringValue)(Fpdfview::FPDF_ANNOTATION annot, Fpdfview::FPDF_BYTESTRING key, Fpdfview::FPDF_BYTESTRING value);

typedef System::LongWord __cdecl (*TFPDFAnnot_GetStringValue)(Fpdfview::FPDF_ANNOTATION annot, Fpdfview::FPDF_BYTESTRING key, System::WideChar * buffer, System::LongWord buflen);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_GetNumberValue)(Fpdfview::FPDF_ANNOTATION annot, Fpdfview::FPDF_BYTESTRING key, float &value);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_SetAP)(Fpdfview::FPDF_ANNOTATION annot, Fpdfview::FPDF_ANNOT_APPEARANCEMODE appearanceMode, Fpdfview::FPDF_WIDESTRING value);

typedef System::LongWord __cdecl (*TFPDFAnnot_GetAP)(Fpdfview::FPDF_ANNOTATION annot, Fpdfview::FPDF_ANNOT_APPEARANCEMODE appearanceMode, System::WideChar * buffer, System::LongWord buflen);

typedef Fpdfview::FPDF_ANNOTATION __cdecl (*TFPDFAnnot_GetLinkedAnnot)(Fpdfview::FPDF_ANNOTATION annot, Fpdfview::FPDF_BYTESTRING key);

typedef int __cdecl (*TFPDFAnnot_GetFlags)(Fpdfview::FPDF_ANNOTATION annot);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_SetFlags)(Fpdfview::FPDF_ANNOTATION annot, int flags);

typedef int __cdecl (*TFPDFAnnot_GetFormFieldFlags)(Fpdfview::FPDF_FORMHANDLE handle, Fpdfview::FPDF_ANNOTATION annot);

typedef Fpdfview::FPDF_ANNOTATION __cdecl (*TFPDFAnnot_GetFormFieldAtPoint)(Fpdfview::FPDF_FORMHANDLE hHandle, Fpdfview::FPDF_PAGE page, Fpdfview::FS_POINTF &point);

typedef System::LongWord __cdecl (*TFPDFAnnot_GetFormFieldName)(Fpdfview::FPDF_FORMHANDLE hHandle, Fpdfview::FPDF_ANNOTATION annot, System::WideChar * buffer, System::LongWord buflen);

typedef System::LongWord __cdecl (*TFPDFAnnot_GetFormFieldAlternateName)(Fpdfview::FPDF_FORMHANDLE hHandle, Fpdfview::FPDF_ANNOTATION annot, System::WideChar * buffer, System::LongWord buflen);

typedef int __cdecl (*TFPDFAnnot_GetFormFieldType)(Fpdfview::FPDF_FORMHANDLE hHandle, Fpdfview::FPDF_ANNOTATION annot);

typedef System::LongWord __cdecl (*TFPDFAnnot_GetFormFieldValue)(Fpdfview::FPDF_FORMHANDLE hHandle, Fpdfview::FPDF_ANNOTATION annot, System::WideChar * buffer, System::LongWord buflen);

typedef int __cdecl (*TFPDFAnnot_GetOptionCount)(Fpdfview::FPDF_FORMHANDLE hHandle, Fpdfview::FPDF_ANNOTATION annot);

typedef System::LongWord __cdecl (*TFPDFAnnot_GetOptionLabel)(Fpdfview::FPDF_FORMHANDLE hHandle, Fpdfview::FPDF_ANNOTATION annot, int index, System::WideChar * buffer, System::LongWord buflen);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_IsOptionSelected)(Fpdfview::FPDF_FORMHANDLE handle, Fpdfview::FPDF_ANNOTATION annot, int index);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_GetFontSize)(Fpdfview::FPDF_FORMHANDLE hHandle, Fpdfview::FPDF_ANNOTATION annot, float &value);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_GetFontColor)(Fpdfview::FPDF_FORMHANDLE hHandle, Fpdfview::FPDF_ANNOTATION annot, /* out */ System::LongWord &R, /* out */ System::LongWord &G, /* out */ System::LongWord &B);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_IsChecked)(Fpdfview::FPDF_FORMHANDLE hHandle, Fpdfview::FPDF_ANNOTATION annot);

typedef int *PFPDF_ANNOTATION_SUBTYPE;

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_SetFocusableSubtypes)(Fpdfview::FPDF_FORMHANDLE hHandle, PFPDF_ANNOTATION_SUBTYPE subtypes, Fpdfview::size_t count);

typedef int __cdecl (*TFPDFAnnot_GetFocusableSubtypesCount)(Fpdfview::FPDF_FORMHANDLE hHandle);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_GetFocusableSubtypes)(Fpdfview::FPDF_FORMHANDLE hHandle, PFPDF_ANNOTATION_SUBTYPE subtypes, Fpdfview::size_t count);

typedef Fpdfview::FPDF_LINK __cdecl (*TFPDFAnnot_GetLink)(Fpdfview::FPDF_ANNOTATION annot);

typedef int __cdecl (*TFPDFAnnot_GetFormControlCount)(Fpdfview::FPDF_FORMHANDLE hHandle, Fpdfview::FPDF_ANNOTATION annot);

typedef int __cdecl (*TFPDFAnnot_GetFormControlIndex)(Fpdfview::FPDF_FORMHANDLE hHandle, Fpdfview::FPDF_ANNOTATION annot);

typedef System::LongWord __cdecl (*TFPDFAnnot_GetFormFieldExportValue)(Fpdfview::FPDF_FORMHANDLE hHandle, Fpdfview::FPDF_ANNOTATION annot, System::WideChar * buffer, System::LongWord buflen);

typedef Fpdfview::FPDF_BOOL __cdecl (*TFPDFAnnot_SetURI)(Fpdfview::FPDF_ANNOTATION annot, const char * uri);

typedef Fpdfview::FPDF_ATTACHMENT __cdecl (*TFPDFAnnot_GetFileAttachment)(Fpdfview::FPDF_ANNOTATION annot);

typedef Fpdfview::FPDF_ATTACHMENT __cdecl (*TFPDFAnnot_AddFileAttachment)(Fpdfview::FPDF_ANNOTATION annot, Fpdfview::FPDF_WIDESTRING name);

//-- var, const, procedure ---------------------------------------------------
static _DELPHI_CONST System::Int8 FPDF_ANNOT_UNKNOWN = System::Int8(0x0);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_TEXT = System::Int8(0x1);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_LINK = System::Int8(0x2);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_FREETEXT = System::Int8(0x3);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_LINE = System::Int8(0x4);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_SQUARE = System::Int8(0x5);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_CIRCLE = System::Int8(0x6);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_POLYGON = System::Int8(0x7);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_POLYLINE = System::Int8(0x8);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_HIGHLIGHT = System::Int8(0x9);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_UNDERLINE = System::Int8(0xa);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_SQUIGGLY = System::Int8(0xb);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_STRIKEOUT = System::Int8(0xc);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_STAMP = System::Int8(0xd);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_CARET = System::Int8(0xe);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_INK = System::Int8(0xf);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_POPUP = System::Int8(0x10);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_FILEATTACHMENT = System::Int8(0x11);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_SOUND = System::Int8(0x12);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_MOVIE = System::Int8(0x13);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_WIDGET = System::Int8(0x14);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_SCREEN = System::Int8(0x15);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_PRINTERMARK = System::Int8(0x16);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_TRAPNET = System::Int8(0x17);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_WATERMARK = System::Int8(0x18);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_THREED = System::Int8(0x19);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_RICHMEDIA = System::Int8(0x1a);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_XFAWIDGET = System::Int8(0x1b);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_REDACT = System::Int8(0x1c);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_FLAG_NONE = System::Int8(0x0);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_FLAG_INVISIBLE = System::Int8(0x1);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_FLAG_HIDDEN = System::Int8(0x2);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_FLAG_PRINT = System::Int8(0x4);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_FLAG_NOZOOM = System::Int8(0x8);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_FLAG_NOROTATE = System::Int8(0x10);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_FLAG_NOVIEW = System::Int8(0x20);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_FLAG_READONLY = System::Int8(0x40);
static _DELPHI_CONST System::Byte FPDF_ANNOT_FLAG_LOCKED = System::Byte(0x80);
static _DELPHI_CONST System::Word FPDF_ANNOT_FLAG_TOGGLENOVIEW = System::Word(0x100);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_APPEARANCEMODE_NORMAL = System::Int8(0x0);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_APPEARANCEMODE_ROLLOVER = System::Int8(0x1);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_APPEARANCEMODE_DOWN = System::Int8(0x2);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_APPEARANCEMODE_COUNT = System::Int8(0x3);
static _DELPHI_CONST System::Int8 FPDF_FORMFLAG_NONE = System::Int8(0x0);
static _DELPHI_CONST System::Int8 FPDF_FORMFLAG_READONLY = System::Int8(0x1);
static _DELPHI_CONST System::Int8 FPDF_FORMFLAG_REQUIRED = System::Int8(0x2);
static _DELPHI_CONST System::Int8 FPDF_FORMFLAG_NOEXPORT = System::Int8(0x4);
static _DELPHI_CONST System::Word FPDF_FORMFLAG_TEXT_MULTILINE = System::Word(0x1000);
static _DELPHI_CONST System::Word FPDF_FORMFLAG_TEXT_PASSWORD = System::Word(0x2000);
static _DELPHI_CONST int FPDF_FORMFLAG_CHOICE_COMBO = int(0x20000);
static _DELPHI_CONST int FPDF_FORMFLAG_CHOICE_EDIT = int(0x40000);
static _DELPHI_CONST int FPDF_FORMFLAG_CHOICE_MULTI_SELECT = int(0x200000);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_AACTION_KEY_STROKE = System::Int8(0xc);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_AACTION_FORMAT = System::Int8(0xd);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_AACTION_VALIDATE = System::Int8(0xe);
static _DELPHI_CONST System::Int8 FPDF_ANNOT_AACTION_CALCULATE = System::Int8(0xf);
}	/* namespace Fpdfannot */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FPDFANNOT)
using namespace Fpdfannot;
#endif
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// FPdfAnnotHPP
