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

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

#ifndef FpdfannotHPP
#define FpdfannotHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#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 int __cdecl (*TFPDFAnnot_IsSupportedSubtype)(int subtype);

typedef void * __cdecl (*TFPDFPage_CreateAnnot)(void * page, int subtype);

typedef int __cdecl (*TFPDFPage_GetAnnotCount)(void * page);

typedef void * __cdecl (*TFPDFPage_GetAnnot)(void * page, int index);

typedef int __cdecl (*TFPDFPage_GetAnnotIndex)(void * page, void * annot);

typedef void __cdecl (*TFPDFPage_CloseAnnot)(void * annot);

typedef int __cdecl (*TFPDFPage_RemoveAnnot)(void * page, int index);

typedef int __cdecl (*TFPDFAnnot_GetSubtype)(void * annot);

typedef int __cdecl (*TFPDFAnnot_IsObjectSupportedSubtype)(int subtype);

typedef int __cdecl (*TFPDFAnnot_UpdateObject)(void * annot, void * obj);

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

typedef int __cdecl (*TFPDFAnnot_RemoveInkList)(void * annot);

typedef int __cdecl (*TFPDFAnnot_AppendObject)(void * annot, void * obj);

typedef int __cdecl (*TFPDFAnnot_GetObjectCount)(void * annot);

typedef void * __cdecl (*TFPDFAnnot_GetObject)(void * annot, int index);

typedef int __cdecl (*TFPDFAnnot_RemoveObject)(void * annot, int index);

typedef int __cdecl (*TFPDFAnnot_SetColor)(void * annot, FPDFANNOT_COLORTYPE type_, unsigned R, unsigned G, unsigned B, unsigned A);

typedef int __cdecl (*TFPDFAnnot_GetColor)(void * annot, FPDFANNOT_COLORTYPE type_, /* out */ unsigned &R, /* out */ unsigned &G, /* out */ unsigned &B, /* out */ unsigned &A);

typedef int __cdecl (*TFPDFAnnot_HasAttachmentPoints)(void * annot);

typedef int __cdecl (*TFPDFAnnot_SetAttachmentPoints)(void * annot, NativeUInt quad_index, Fpdfview::FS_QUADPOINTSF &quad_points);

typedef int __cdecl (*TFPDFAnnot_AppendAttachmentPoints)(void * annot, Fpdfview::FS_QUADPOINTSF &quad_points);

typedef NativeUInt __cdecl (*TFPDFAnnot_CountAttachmentPoints)(void * annot);

typedef int __cdecl (*TFPDFAnnot_GetAttachmentPoints)(void * annot, NativeUInt quad_index, Fpdfview::FS_QUADPOINTSF &quad_points);

typedef int __cdecl (*TFPDFAnnot_SetRect)(void * annot, Fpdfview::FS_RECTF &rect);

typedef int __cdecl (*TFPDFAnnot_GetRect)(void * annot, Fpdfview::FS_RECTF &rect);

typedef unsigned __cdecl (*TFPDFAnnot_GetVertices)(void * annot, Fpdfview::FS_POINTF &buffer, unsigned length);

typedef unsigned __cdecl (*TFPDFAnnot_GetInkListCount)(void * annot);

typedef unsigned __cdecl (*TFPDFAnnot_GetInkListPath)(void * annot, unsigned path_index, Fpdfview::FS_POINTF &buffer, unsigned length);

typedef int __cdecl (*TFPDFAnnot_GetLine)(void * annot, Fpdfview::FS_POINTF &start, Fpdfview::FS_POINTF &end_);

typedef int __cdecl (*TFPDFAnnot_SetBorder)(void * annot, float horizontal_radius, float vertical_radius, float border_width);

typedef int __cdecl (*TFPDFAnnot_GetBorder)(void * annot, float &horizontal_radius, float &vertical_radius, float &border_width);

typedef unsigned __cdecl (*TFPDFAnnot_GetFormAdditionalActionJavaScript)(void * hHandle, void * annot, int event, System::WideChar * buffer, unsigned buflen);

typedef int __cdecl (*TFPDFAnnot_HasKey)(void * annot, char * key);

typedef int __cdecl (*TFPDFAnnot_GetValueType)(void * annot, char * key);

typedef int __cdecl (*TFPDFAnnot_SetStringValue)(void * annot, char * key, char * value);

typedef unsigned __cdecl (*TFPDFAnnot_GetStringValue)(void * annot, char * key, System::WideChar * buffer, unsigned buflen);

typedef int __cdecl (*TFPDFAnnot_GetNumberValue)(void * annot, char * key, float &value);

typedef int __cdecl (*TFPDFAnnot_SetAP)(void * annot, int appearanceMode, System::WideChar * value);

typedef unsigned __cdecl (*TFPDFAnnot_GetAP)(void * annot, int appearanceMode, System::WideChar * buffer, unsigned buflen);

typedef void * __cdecl (*TFPDFAnnot_GetLinkedAnnot)(void * annot, char * key);

typedef int __cdecl (*TFPDFAnnot_GetFlags)(void * annot);

typedef int __cdecl (*TFPDFAnnot_SetFlags)(void * annot, int flags);

typedef int __cdecl (*TFPDFAnnot_GetFormFieldFlags)(void * handle, void * annot);

typedef void * __cdecl (*TFPDFAnnot_GetFormFieldAtPoint)(void * hHandle, void * page, Fpdfview::FS_POINTF &point);

typedef unsigned __cdecl (*TFPDFAnnot_GetFormFieldName)(void * hHandle, void * annot, System::WideChar * buffer, unsigned buflen);

typedef unsigned __cdecl (*TFPDFAnnot_GetFormFieldAlternateName)(void * hHandle, void * annot, System::WideChar * buffer, unsigned buflen);

typedef int __cdecl (*TFPDFAnnot_GetFormFieldType)(void * hHandle, void * annot);

typedef unsigned __cdecl (*TFPDFAnnot_GetFormFieldValue)(void * hHandle, void * annot, System::WideChar * buffer, unsigned buflen);

typedef int __cdecl (*TFPDFAnnot_GetOptionCount)(void * hHandle, void * annot);

typedef unsigned __cdecl (*TFPDFAnnot_GetOptionLabel)(void * hHandle, void * annot, int index, System::WideChar * buffer, unsigned buflen);

typedef int __cdecl (*TFPDFAnnot_IsOptionSelected)(void * handle, void * annot, int index);

typedef int __cdecl (*TFPDFAnnot_GetFontSize)(void * hHandle, void * annot, float &value);

typedef int __cdecl (*TFPDFAnnot_GetFontColor)(void * hHandle, void * annot, /* out */ unsigned &R, /* out */ unsigned &G, /* out */ unsigned &B);

typedef int __cdecl (*TFPDFAnnot_IsChecked)(void * hHandle, void * annot);

typedef int *PFPDF_ANNOTATION_SUBTYPE;

typedef int __cdecl (*TFPDFAnnot_SetFocusableSubtypes)(void * hHandle, PFPDF_ANNOTATION_SUBTYPE subtypes, NativeUInt count);

typedef int __cdecl (*TFPDFAnnot_GetFocusableSubtypesCount)(void * hHandle);

typedef int __cdecl (*TFPDFAnnot_GetFocusableSubtypes)(void * hHandle, PFPDF_ANNOTATION_SUBTYPE subtypes, NativeUInt count);

typedef void * __cdecl (*TFPDFAnnot_GetLink)(void * annot);

typedef int __cdecl (*TFPDFAnnot_GetFormControlCount)(void * hHandle, void * annot);

typedef int __cdecl (*TFPDFAnnot_GetFormControlIndex)(void * hHandle, void * annot);

typedef unsigned __cdecl (*TFPDFAnnot_GetFormFieldExportValue)(void * hHandle, void * annot, System::WideChar * buffer, unsigned buflen);

typedef int __cdecl (*TFPDFAnnot_SetURI)(void * annot, const char * uri);

typedef void * __cdecl (*TFPDFAnnot_GetFileAttachment)(void * annot);

typedef void * __cdecl (*TFPDFAnnot_AddFileAttachment)(void * annot, System::WideChar * name);

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