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

// (DO NOT EDIT: machine generated header) 'Fpdfannot.pas' rev: 21.00

#ifndef FpdfannotHPP
#define FpdfannotHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member functions
#pragma pack(push,8)
#include <System.hpp>	// Pascal unit
#include <Sysinit.hpp>	// Pascal unit
#include <Fpdfview.hpp>	// Pascal unit

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

namespace Fpdfannot
{
//-- type declarations -------------------------------------------------------
#pragma option push -b
enum FPDFANNOT_COLORTYPE { FPDFANNOT_COLORTYPE_Color, FPDFANNOT_COLORTYPE_InteriorColor };
#pragma option pop

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, unsigned 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, unsigned quad_index, Fpdfview::FS_QUADPOINTSF &quad_points);

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

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

typedef int __cdecl (*TFPDFAnnot_GetAttachmentPoints)(void * annot, unsigned 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, unsigned count);

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

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

}	/* namespace Fpdfannot */
using namespace Fpdfannot;
#pragma pack(pop)
#pragma option pop

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