// Copyright 2014 PDFium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com

#ifndef XFA_INCLUDE_FXFA_FXFA_BASIC_H_
#define XFA_INCLUDE_FXFA_FXFA_BASIC_H_

#include "xfa/fxjse/cfxjse_arguments.h"
#include "xfa/fxjse/include/fxjse.h"

class CXFA_Measurement;
#define XFA_HASHCODE_Xfa 0xc56b9ff
#define XFA_HASHCODE_Config 0x4e1e39b6
#define XFA_HASHCODE_Template 0x803550fc
#define XFA_HASHCODE_Datasets 0x99b95079
#define XFA_HASHCODE_Data 0xbde9abda
#define XFA_HASHCODE_Form 0xcd309ff4
#define XFA_HASHCODE_LocaleSet 0x5473b6dc
#define XFA_HASHCODE_ConnectionSet 0xe14c801c
#define XFA_HASHCODE_SourceSet 0x811929d
#define XFA_HASHCODE_Xdc 0xc56afbf
#define XFA_HASHCODE_Pdf 0xb843dba
#define XFA_HASHCODE_Xfdf 0x48d004a8
#define XFA_HASHCODE_Xmpmeta 0x132a8fbc
#define XFA_HASHCODE_Signature 0x8b036f32
#define XFA_HASHCODE_Stylesheet 0x6038580a
#define XFA_HASHCODE_XDP 0xc56afcc
#define XFA_HASHCODE_Record 0x5779d65f
#define XFA_HASHCODE_DataWindow 0x83a550d2
#define XFA_HASHCODE_Host 0xdb075bde
#define XFA_HASHCODE_Log 0x0b1b3d22
#define XFA_HASHCODE_Event 0x185e41e2
#define XFA_HASHCODE_Layout 0x7e7e845e
#define XFA_HASHCODE_Occur 0xf7eebe1c
#define XFA_HASHCODE_This 0x2d574d58
#define XFA_HASHCODE_DataDescription 0x2b5df51e
#define XFA_HASHCODE_Name 0x31b19c1
enum XFA_PACKET {
  XFA_PACKET_USER,
  XFA_PACKET_SourceSet,
  XFA_PACKET_Pdf,
  XFA_PACKET_Xdc,
  XFA_PACKET_XDP,
  XFA_PACKET_Xmpmeta,
  XFA_PACKET_Xfdf,
  XFA_PACKET_Config,
  XFA_PACKET_LocaleSet,
  XFA_PACKET_Stylesheet,
  XFA_PACKET_Template,
  XFA_PACKET_Signature,
  XFA_PACKET_Datasets,
  XFA_PACKET_Form,
  XFA_PACKET_ConnectionSet,
};
enum XFA_XDPPACKET {
  XFA_XDPPACKET_UNKNOWN = 0,
  XFA_XDPPACKET_Config = 1 << XFA_PACKET_Config,
  XFA_XDPPACKET_Template = 1 << XFA_PACKET_Template,
  XFA_XDPPACKET_Datasets = 1 << XFA_PACKET_Datasets,
  XFA_XDPPACKET_Form = 1 << XFA_PACKET_Form,
  XFA_XDPPACKET_LocaleSet = 1 << XFA_PACKET_LocaleSet,
  XFA_XDPPACKET_ConnectionSet = 1 << XFA_PACKET_ConnectionSet,
  XFA_XDPPACKET_SourceSet = 1 << XFA_PACKET_SourceSet,
  XFA_XDPPACKET_Xdc = 1 << XFA_PACKET_Xdc,
  XFA_XDPPACKET_Pdf = 1 << XFA_PACKET_Pdf,
  XFA_XDPPACKET_Xfdf = 1 << XFA_PACKET_Xfdf,
  XFA_XDPPACKET_Xmpmeta = 1 << XFA_PACKET_Xmpmeta,
  XFA_XDPPACKET_Signature = 1 << XFA_PACKET_Signature,
  XFA_XDPPACKET_Stylesheet = 1 << XFA_PACKET_Stylesheet,
  XFA_XDPPACKET_USER = 1 << XFA_PACKET_USER,
  XFA_XDPPACKET_XDP = 1 << XFA_PACKET_XDP,
};
enum XFA_XDPPACKET_FLAGS {
  XFA_XDPPACKET_FLAGS_COMPLETEMATCH = 1,
  XFA_XDPPACKET_FLAGS_PREFIXMATCH = 2,
  XFA_XDPPACKET_FLAGS_NOMATCH = 4,
  XFA_XDPPACKET_FLAGS_SUPPORTONE = 8,
  XFA_XDPPACKET_FLAGS_SUPPORTMANY = 16,
};
struct XFA_PACKETINFO {
  uint32_t uHash;
  const FX_WCHAR* pName;
  XFA_XDPPACKET eName;
  const FX_WCHAR* pURI;
  uint32_t eFlags;
};

const XFA_PACKETINFO* XFA_GetPacketByName(const CFX_WideStringC& wsName);
const XFA_PACKETINFO* XFA_GetPacketByID(uint32_t dwPacket);
const XFA_PACKETINFO* XFA_GetPacketByIndex(XFA_PACKET ePacket);

enum XFA_ATTRIBUTEENUM {
  XFA_ATTRIBUTEENUM_Asterisk,
  XFA_ATTRIBUTEENUM_Slash,
  XFA_ATTRIBUTEENUM_Backslash,
  XFA_ATTRIBUTEENUM_On,
  XFA_ATTRIBUTEENUM_Tb,
  XFA_ATTRIBUTEENUM_Up,
  XFA_ATTRIBUTEENUM_MetaData,
  XFA_ATTRIBUTEENUM_Delegate,
  XFA_ATTRIBUTEENUM_PostSubmit,
  XFA_ATTRIBUTEENUM_Name,
  XFA_ATTRIBUTEENUM_Cross,
  XFA_ATTRIBUTEENUM_Next,
  XFA_ATTRIBUTEENUM_None,
  XFA_ATTRIBUTEENUM_ShortEdge,
  XFA_ATTRIBUTEENUM_1mod10_1mod11,
  XFA_ATTRIBUTEENUM_Height,
  XFA_ATTRIBUTEENUM_CrossDiagonal,
  XFA_ATTRIBUTEENUM_All,
  XFA_ATTRIBUTEENUM_Any,
  XFA_ATTRIBUTEENUM_ToRight,
  XFA_ATTRIBUTEENUM_MatchTemplate,
  XFA_ATTRIBUTEENUM_Dpl,
  XFA_ATTRIBUTEENUM_Invisible,
  XFA_ATTRIBUTEENUM_Fit,
  XFA_ATTRIBUTEENUM_Width,
  XFA_ATTRIBUTEENUM_PreSubmit,
  XFA_ATTRIBUTEENUM_Ipl,
  XFA_ATTRIBUTEENUM_FlateCompress,
  XFA_ATTRIBUTEENUM_Med,
  XFA_ATTRIBUTEENUM_Odd,
  XFA_ATTRIBUTEENUM_Off,
  XFA_ATTRIBUTEENUM_Pdf,
  XFA_ATTRIBUTEENUM_Row,
  XFA_ATTRIBUTEENUM_Top,
  XFA_ATTRIBUTEENUM_Xdp,
  XFA_ATTRIBUTEENUM_Xfd,
  XFA_ATTRIBUTEENUM_Xml,
  XFA_ATTRIBUTEENUM_Zip,
  XFA_ATTRIBUTEENUM_Zpl,
  XFA_ATTRIBUTEENUM_Visible,
  XFA_ATTRIBUTEENUM_Exclude,
  XFA_ATTRIBUTEENUM_MouseEnter,
  XFA_ATTRIBUTEENUM_Pair,
  XFA_ATTRIBUTEENUM_Filter,
  XFA_ATTRIBUTEENUM_MoveLast,
  XFA_ATTRIBUTEENUM_ExportAndImport,
  XFA_ATTRIBUTEENUM_Push,
  XFA_ATTRIBUTEENUM_Portrait,
  XFA_ATTRIBUTEENUM_Default,
  XFA_ATTRIBUTEENUM_StoredProc,
  XFA_ATTRIBUTEENUM_StayBOF,
  XFA_ATTRIBUTEENUM_StayEOF,
  XFA_ATTRIBUTEENUM_PostPrint,
  XFA_ATTRIBUTEENUM_UsCarrier,
  XFA_ATTRIBUTEENUM_Right,
  XFA_ATTRIBUTEENUM_PreOpen,
  XFA_ATTRIBUTEENUM_Actual,
  XFA_ATTRIBUTEENUM_Rest,
  XFA_ATTRIBUTEENUM_TopCenter,
  XFA_ATTRIBUTEENUM_StandardSymbol,
  XFA_ATTRIBUTEENUM_Initialize,
  XFA_ATTRIBUTEENUM_JustifyAll,
  XFA_ATTRIBUTEENUM_Normal,
  XFA_ATTRIBUTEENUM_Landscape,
  XFA_ATTRIBUTEENUM_NonInteractive,
  XFA_ATTRIBUTEENUM_MouseExit,
  XFA_ATTRIBUTEENUM_Minus,
  XFA_ATTRIBUTEENUM_DiagonalLeft,
  XFA_ATTRIBUTEENUM_SimplexPaginated,
  XFA_ATTRIBUTEENUM_Document,
  XFA_ATTRIBUTEENUM_Warning,
  XFA_ATTRIBUTEENUM_Auto,
  XFA_ATTRIBUTEENUM_Below,
  XFA_ATTRIBUTEENUM_BottomLeft,
  XFA_ATTRIBUTEENUM_BottomCenter,
  XFA_ATTRIBUTEENUM_Tcpl,
  XFA_ATTRIBUTEENUM_Text,
  XFA_ATTRIBUTEENUM_Grouping,
  XFA_ATTRIBUTEENUM_SecureSymbol,
  XFA_ATTRIBUTEENUM_PreExecute,
  XFA_ATTRIBUTEENUM_DocClose,
  XFA_ATTRIBUTEENUM_Keyset,
  XFA_ATTRIBUTEENUM_Vertical,
  XFA_ATTRIBUTEENUM_PreSave,
  XFA_ATTRIBUTEENUM_PreSign,
  XFA_ATTRIBUTEENUM_Bottom,
  XFA_ATTRIBUTEENUM_ToTop,
  XFA_ATTRIBUTEENUM_Verify,
  XFA_ATTRIBUTEENUM_First,
  XFA_ATTRIBUTEENUM_ContentArea,
  XFA_ATTRIBUTEENUM_Solid,
  XFA_ATTRIBUTEENUM_Pessimistic,
  XFA_ATTRIBUTEENUM_DuplexPaginated,
  XFA_ATTRIBUTEENUM_Round,
  XFA_ATTRIBUTEENUM_Remerge,
  XFA_ATTRIBUTEENUM_Ordered,
  XFA_ATTRIBUTEENUM_Percent,
  XFA_ATTRIBUTEENUM_Even,
  XFA_ATTRIBUTEENUM_Exit,
  XFA_ATTRIBUTEENUM_ToolTip,
  XFA_ATTRIBUTEENUM_OrderedOccurrence,
  XFA_ATTRIBUTEENUM_ReadOnly,
  XFA_ATTRIBUTEENUM_Currency,
  XFA_ATTRIBUTEENUM_Concat,
  XFA_ATTRIBUTEENUM_Thai,
  XFA_ATTRIBUTEENUM_Embossed,
  XFA_ATTRIBUTEENUM_Formdata,
  XFA_ATTRIBUTEENUM_Greek,
  XFA_ATTRIBUTEENUM_Decimal,
  XFA_ATTRIBUTEENUM_Select,
  XFA_ATTRIBUTEENUM_LongEdge,
  XFA_ATTRIBUTEENUM_Protected,
  XFA_ATTRIBUTEENUM_BottomRight,
  XFA_ATTRIBUTEENUM_Zero,
  XFA_ATTRIBUTEENUM_ForwardOnly,
  XFA_ATTRIBUTEENUM_DocReady,
  XFA_ATTRIBUTEENUM_Hidden,
  XFA_ATTRIBUTEENUM_Include,
  XFA_ATTRIBUTEENUM_Dashed,
  XFA_ATTRIBUTEENUM_MultiSelect,
  XFA_ATTRIBUTEENUM_Inactive,
  XFA_ATTRIBUTEENUM_Embed,
  XFA_ATTRIBUTEENUM_Static,
  XFA_ATTRIBUTEENUM_OnEntry,
  XFA_ATTRIBUTEENUM_Cyrillic,
  XFA_ATTRIBUTEENUM_NonBlank,
  XFA_ATTRIBUTEENUM_TopRight,
  XFA_ATTRIBUTEENUM_Hebrew,
  XFA_ATTRIBUTEENUM_TopLeft,
  XFA_ATTRIBUTEENUM_Center,
  XFA_ATTRIBUTEENUM_MoveFirst,
  XFA_ATTRIBUTEENUM_Diamond,
  XFA_ATTRIBUTEENUM_PageOdd,
  XFA_ATTRIBUTEENUM_1mod10,
  XFA_ATTRIBUTEENUM_Korean,
  XFA_ATTRIBUTEENUM_AboveEmbedded,
  XFA_ATTRIBUTEENUM_ZipCompress,
  XFA_ATTRIBUTEENUM_Numeric,
  XFA_ATTRIBUTEENUM_Circle,
  XFA_ATTRIBUTEENUM_ToBottom,
  XFA_ATTRIBUTEENUM_Inverted,
  XFA_ATTRIBUTEENUM_Update,
  XFA_ATTRIBUTEENUM_Isoname,
  XFA_ATTRIBUTEENUM_Server,
  XFA_ATTRIBUTEENUM_Position,
  XFA_ATTRIBUTEENUM_MiddleCenter,
  XFA_ATTRIBUTEENUM_Optional,
  XFA_ATTRIBUTEENUM_UsePrinterSetting,
  XFA_ATTRIBUTEENUM_Outline,
  XFA_ATTRIBUTEENUM_IndexChange,
  XFA_ATTRIBUTEENUM_Change,
  XFA_ATTRIBUTEENUM_PageArea,
  XFA_ATTRIBUTEENUM_Once,
  XFA_ATTRIBUTEENUM_Only,
  XFA_ATTRIBUTEENUM_Open,
  XFA_ATTRIBUTEENUM_Caption,
  XFA_ATTRIBUTEENUM_Raised,
  XFA_ATTRIBUTEENUM_Justify,
  XFA_ATTRIBUTEENUM_RefAndDescendants,
  XFA_ATTRIBUTEENUM_Short,
  XFA_ATTRIBUTEENUM_PageFront,
  XFA_ATTRIBUTEENUM_Monospace,
  XFA_ATTRIBUTEENUM_Middle,
  XFA_ATTRIBUTEENUM_PrePrint,
  XFA_ATTRIBUTEENUM_Always,
  XFA_ATTRIBUTEENUM_Unknown,
  XFA_ATTRIBUTEENUM_ToLeft,
  XFA_ATTRIBUTEENUM_Above,
  XFA_ATTRIBUTEENUM_DashDot,
  XFA_ATTRIBUTEENUM_Gregorian,
  XFA_ATTRIBUTEENUM_Roman,
  XFA_ATTRIBUTEENUM_MouseDown,
  XFA_ATTRIBUTEENUM_Symbol,
  XFA_ATTRIBUTEENUM_PageEven,
  XFA_ATTRIBUTEENUM_Sign,
  XFA_ATTRIBUTEENUM_AddNew,
  XFA_ATTRIBUTEENUM_Star,
  XFA_ATTRIBUTEENUM_Optimistic,
  XFA_ATTRIBUTEENUM_Rl_tb,
  XFA_ATTRIBUTEENUM_MiddleRight,
  XFA_ATTRIBUTEENUM_Maintain,
  XFA_ATTRIBUTEENUM_Package,
  XFA_ATTRIBUTEENUM_SimplifiedChinese,
  XFA_ATTRIBUTEENUM_ToCenter,
  XFA_ATTRIBUTEENUM_Back,
  XFA_ATTRIBUTEENUM_Unspecified,
  XFA_ATTRIBUTEENUM_BatchOptimistic,
  XFA_ATTRIBUTEENUM_Bold,
  XFA_ATTRIBUTEENUM_Both,
  XFA_ATTRIBUTEENUM_Butt,
  XFA_ATTRIBUTEENUM_Client,
  XFA_ATTRIBUTEENUM_2mod10,
  XFA_ATTRIBUTEENUM_ImageOnly,
  XFA_ATTRIBUTEENUM_Horizontal,
  XFA_ATTRIBUTEENUM_Dotted,
  XFA_ATTRIBUTEENUM_UserControl,
  XFA_ATTRIBUTEENUM_DiagonalRight,
  XFA_ATTRIBUTEENUM_ConsumeData,
  XFA_ATTRIBUTEENUM_Check,
  XFA_ATTRIBUTEENUM_Data,
  XFA_ATTRIBUTEENUM_Down,
  XFA_ATTRIBUTEENUM_SansSerif,
  XFA_ATTRIBUTEENUM_Inline,
  XFA_ATTRIBUTEENUM_TraditionalChinese,
  XFA_ATTRIBUTEENUM_Warn,
  XFA_ATTRIBUTEENUM_RefOnly,
  XFA_ATTRIBUTEENUM_InteractiveForms,
  XFA_ATTRIBUTEENUM_Word,
  XFA_ATTRIBUTEENUM_Unordered,
  XFA_ATTRIBUTEENUM_Required,
  XFA_ATTRIBUTEENUM_ImportOnly,
  XFA_ATTRIBUTEENUM_BelowEmbedded,
  XFA_ATTRIBUTEENUM_Japanese,
  XFA_ATTRIBUTEENUM_Full,
  XFA_ATTRIBUTEENUM_Rl_row,
  XFA_ATTRIBUTEENUM_Vietnamese,
  XFA_ATTRIBUTEENUM_EastEuropeanRoman,
  XFA_ATTRIBUTEENUM_MouseUp,
  XFA_ATTRIBUTEENUM_ExportOnly,
  XFA_ATTRIBUTEENUM_Clear,
  XFA_ATTRIBUTEENUM_Click,
  XFA_ATTRIBUTEENUM_Base64,
  XFA_ATTRIBUTEENUM_Close,
  XFA_ATTRIBUTEENUM_Host,
  XFA_ATTRIBUTEENUM_Global,
  XFA_ATTRIBUTEENUM_Blank,
  XFA_ATTRIBUTEENUM_Table,
  XFA_ATTRIBUTEENUM_Import,
  XFA_ATTRIBUTEENUM_Custom,
  XFA_ATTRIBUTEENUM_MiddleLeft,
  XFA_ATTRIBUTEENUM_PostExecute,
  XFA_ATTRIBUTEENUM_Radix,
  XFA_ATTRIBUTEENUM_PostOpen,
  XFA_ATTRIBUTEENUM_Enter,
  XFA_ATTRIBUTEENUM_Ignore,
  XFA_ATTRIBUTEENUM_Lr_tb,
  XFA_ATTRIBUTEENUM_Fantasy,
  XFA_ATTRIBUTEENUM_Italic,
  XFA_ATTRIBUTEENUM_Author,
  XFA_ATTRIBUTEENUM_ToEdge,
  XFA_ATTRIBUTEENUM_Choice,
  XFA_ATTRIBUTEENUM_Disabled,
  XFA_ATTRIBUTEENUM_CrossHatch,
  XFA_ATTRIBUTEENUM_DataRef,
  XFA_ATTRIBUTEENUM_DashDotDot,
  XFA_ATTRIBUTEENUM_Square,
  XFA_ATTRIBUTEENUM_Dynamic,
  XFA_ATTRIBUTEENUM_Manual,
  XFA_ATTRIBUTEENUM_Etched,
  XFA_ATTRIBUTEENUM_ValidationState,
  XFA_ATTRIBUTEENUM_Cursive,
  XFA_ATTRIBUTEENUM_Last,
  XFA_ATTRIBUTEENUM_Left,
  XFA_ATTRIBUTEENUM_Link,
  XFA_ATTRIBUTEENUM_Long,
  XFA_ATTRIBUTEENUM_InternationalCarrier,
  XFA_ATTRIBUTEENUM_PDF1_3,
  XFA_ATTRIBUTEENUM_PDF1_6,
  XFA_ATTRIBUTEENUM_Serif,
  XFA_ATTRIBUTEENUM_PostSave,
  XFA_ATTRIBUTEENUM_Ready,
  XFA_ATTRIBUTEENUM_PostSign,
  XFA_ATTRIBUTEENUM_Arabic,
  XFA_ATTRIBUTEENUM_Error,
  XFA_ATTRIBUTEENUM_Urlencoded,
  XFA_ATTRIBUTEENUM_Lowered,
};
enum XFA_ATTRIBUTE {
  XFA_ATTRIBUTE_H,
  XFA_ATTRIBUTE_W,
  XFA_ATTRIBUTE_X,
  XFA_ATTRIBUTE_Y,
  XFA_ATTRIBUTE_Id,
  XFA_ATTRIBUTE_To,
  XFA_ATTRIBUTE_LineThrough,
  XFA_ATTRIBUTE_HAlign,
  XFA_ATTRIBUTE_Typeface,
  XFA_ATTRIBUTE_BeforeTarget,
  XFA_ATTRIBUTE_Name,
  XFA_ATTRIBUTE_Next,
  XFA_ATTRIBUTE_DataRowCount,
  XFA_ATTRIBUTE_Break,
  XFA_ATTRIBUTE_VScrollPolicy,
  XFA_ATTRIBUTE_FontHorizontalScale,
  XFA_ATTRIBUTE_TextIndent,
  XFA_ATTRIBUTE_Context,
  XFA_ATTRIBUTE_TrayOut,
  XFA_ATTRIBUTE_Cap,
  XFA_ATTRIBUTE_Max,
  XFA_ATTRIBUTE_Min,
  XFA_ATTRIBUTE_Ref,
  XFA_ATTRIBUTE_Rid,
  XFA_ATTRIBUTE_Url,
  XFA_ATTRIBUTE_Use,
  XFA_ATTRIBUTE_LeftInset,
  XFA_ATTRIBUTE_Widows,
  XFA_ATTRIBUTE_Level,
  XFA_ATTRIBUTE_BottomInset,
  XFA_ATTRIBUTE_OverflowTarget,
  XFA_ATTRIBUTE_AllowMacro,
  XFA_ATTRIBUTE_PagePosition,
  XFA_ATTRIBUTE_ColumnWidths,
  XFA_ATTRIBUTE_OverflowLeader,
  XFA_ATTRIBUTE_Action,
  XFA_ATTRIBUTE_NonRepudiation,
  XFA_ATTRIBUTE_Rate,
  XFA_ATTRIBUTE_AllowRichText,
  XFA_ATTRIBUTE_Role,
  XFA_ATTRIBUTE_OverflowTrailer,
  XFA_ATTRIBUTE_Operation,
  XFA_ATTRIBUTE_Timeout,
  XFA_ATTRIBUTE_TopInset,
  XFA_ATTRIBUTE_Access,
  XFA_ATTRIBUTE_CommandType,
  XFA_ATTRIBUTE_Format,
  XFA_ATTRIBUTE_DataPrep,
  XFA_ATTRIBUTE_WidgetData,
  XFA_ATTRIBUTE_Abbr,
  XFA_ATTRIBUTE_MarginRight,
  XFA_ATTRIBUTE_DataDescription,
  XFA_ATTRIBUTE_EncipherOnly,
  XFA_ATTRIBUTE_KerningMode,
  XFA_ATTRIBUTE_Rotate,
  XFA_ATTRIBUTE_WordCharacterCount,
  XFA_ATTRIBUTE_Type,
  XFA_ATTRIBUTE_Reserve,
  XFA_ATTRIBUTE_TextLocation,
  XFA_ATTRIBUTE_Priority,
  XFA_ATTRIBUTE_Underline,
  XFA_ATTRIBUTE_ModuleWidth,
  XFA_ATTRIBUTE_Hyphenate,
  XFA_ATTRIBUTE_Listen,
  XFA_ATTRIBUTE_Delimiter,
  XFA_ATTRIBUTE_ContentType,
  XFA_ATTRIBUTE_StartNew,
  XFA_ATTRIBUTE_EofAction,
  XFA_ATTRIBUTE_AllowNeutral,
  XFA_ATTRIBUTE_Connection,
  XFA_ATTRIBUTE_BaselineShift,
  XFA_ATTRIBUTE_OverlinePeriod,
  XFA_ATTRIBUTE_FracDigits,
  XFA_ATTRIBUTE_Orientation,
  XFA_ATTRIBUTE_TimeStamp,
  XFA_ATTRIBUTE_PrintCheckDigit,
  XFA_ATTRIBUTE_MarginLeft,
  XFA_ATTRIBUTE_Stroke,
  XFA_ATTRIBUTE_ModuleHeight,
  XFA_ATTRIBUTE_TransferEncoding,
  XFA_ATTRIBUTE_Usage,
  XFA_ATTRIBUTE_Presence,
  XFA_ATTRIBUTE_RadixOffset,
  XFA_ATTRIBUTE_Preserve,
  XFA_ATTRIBUTE_AliasNode,
  XFA_ATTRIBUTE_MultiLine,
  XFA_ATTRIBUTE_Version,
  XFA_ATTRIBUTE_StartChar,
  XFA_ATTRIBUTE_ScriptTest,
  XFA_ATTRIBUTE_StartAngle,
  XFA_ATTRIBUTE_CursorType,
  XFA_ATTRIBUTE_DigitalSignature,
  XFA_ATTRIBUTE_CodeType,
  XFA_ATTRIBUTE_Output,
  XFA_ATTRIBUTE_BookendTrailer,
  XFA_ATTRIBUTE_ImagingBBox,
  XFA_ATTRIBUTE_ExcludeInitialCap,
  XFA_ATTRIBUTE_Force,
  XFA_ATTRIBUTE_CrlSign,
  XFA_ATTRIBUTE_Previous,
  XFA_ATTRIBUTE_PushCharacterCount,
  XFA_ATTRIBUTE_NullTest,
  XFA_ATTRIBUTE_RunAt,
  XFA_ATTRIBUTE_SpaceBelow,
  XFA_ATTRIBUTE_SweepAngle,
  XFA_ATTRIBUTE_NumberOfCells,
  XFA_ATTRIBUTE_LetterSpacing,
  XFA_ATTRIBUTE_LockType,
  XFA_ATTRIBUTE_PasswordChar,
  XFA_ATTRIBUTE_VAlign,
  XFA_ATTRIBUTE_SourceBelow,
  XFA_ATTRIBUTE_Inverted,
  XFA_ATTRIBUTE_Mark,
  XFA_ATTRIBUTE_MaxH,
  XFA_ATTRIBUTE_MaxW,
  XFA_ATTRIBUTE_Truncate,
  XFA_ATTRIBUTE_MinH,
  XFA_ATTRIBUTE_MinW,
  XFA_ATTRIBUTE_Initial,
  XFA_ATTRIBUTE_Mode,
  XFA_ATTRIBUTE_Layout,
  XFA_ATTRIBUTE_Server,
  XFA_ATTRIBUTE_EmbedPDF,
  XFA_ATTRIBUTE_OddOrEven,
  XFA_ATTRIBUTE_TabDefault,
  XFA_ATTRIBUTE_Contains,
  XFA_ATTRIBUTE_RightInset,
  XFA_ATTRIBUTE_MaxChars,
  XFA_ATTRIBUTE_Open,
  XFA_ATTRIBUTE_Relation,
  XFA_ATTRIBUTE_WideNarrowRatio,
  XFA_ATTRIBUTE_Relevant,
  XFA_ATTRIBUTE_SignatureType,
  XFA_ATTRIBUTE_LineThroughPeriod,
  XFA_ATTRIBUTE_Shape,
  XFA_ATTRIBUTE_TabStops,
  XFA_ATTRIBUTE_OutputBelow,
  XFA_ATTRIBUTE_Short,
  XFA_ATTRIBUTE_FontVerticalScale,
  XFA_ATTRIBUTE_Thickness,
  XFA_ATTRIBUTE_CommitOn,
  XFA_ATTRIBUTE_RemainCharacterCount,
  XFA_ATTRIBUTE_KeyAgreement,
  XFA_ATTRIBUTE_ErrorCorrectionLevel,
  XFA_ATTRIBUTE_UpsMode,
  XFA_ATTRIBUTE_MergeMode,
  XFA_ATTRIBUTE_Circular,
  XFA_ATTRIBUTE_PsName,
  XFA_ATTRIBUTE_Trailer,
  XFA_ATTRIBUTE_UnicodeRange,
  XFA_ATTRIBUTE_ExecuteType,
  XFA_ATTRIBUTE_DuplexImposition,
  XFA_ATTRIBUTE_TrayIn,
  XFA_ATTRIBUTE_BindingNode,
  XFA_ATTRIBUTE_BofAction,
  XFA_ATTRIBUTE_Save,
  XFA_ATTRIBUTE_TargetType,
  XFA_ATTRIBUTE_KeyEncipherment,
  XFA_ATTRIBUTE_CredentialServerPolicy,
  XFA_ATTRIBUTE_Size,
  XFA_ATTRIBUTE_InitialNumber,
  XFA_ATTRIBUTE_Slope,
  XFA_ATTRIBUTE_CSpace,
  XFA_ATTRIBUTE_ColSpan,
  XFA_ATTRIBUTE_Binding,
  XFA_ATTRIBUTE_Checksum,
  XFA_ATTRIBUTE_CharEncoding,
  XFA_ATTRIBUTE_Bind,
  XFA_ATTRIBUTE_TextEntry,
  XFA_ATTRIBUTE_Archive,
  XFA_ATTRIBUTE_Uuid,
  XFA_ATTRIBUTE_Posture,
  XFA_ATTRIBUTE_After,
  XFA_ATTRIBUTE_Orphans,
  XFA_ATTRIBUTE_QualifiedName,
  XFA_ATTRIBUTE_Usehref,
  XFA_ATTRIBUTE_Locale,
  XFA_ATTRIBUTE_Weight,
  XFA_ATTRIBUTE_UnderlinePeriod,
  XFA_ATTRIBUTE_Data,
  XFA_ATTRIBUTE_Desc,
  XFA_ATTRIBUTE_Numbered,
  XFA_ATTRIBUTE_DataColumnCount,
  XFA_ATTRIBUTE_Overline,
  XFA_ATTRIBUTE_UrlPolicy,
  XFA_ATTRIBUTE_AnchorType,
  XFA_ATTRIBUTE_LabelRef,
  XFA_ATTRIBUTE_BookendLeader,
  XFA_ATTRIBUTE_MaxLength,
  XFA_ATTRIBUTE_AccessKey,
  XFA_ATTRIBUTE_CursorLocation,
  XFA_ATTRIBUTE_DelayedOpen,
  XFA_ATTRIBUTE_Target,
  XFA_ATTRIBUTE_DataEncipherment,
  XFA_ATTRIBUTE_AfterTarget,
  XFA_ATTRIBUTE_Leader,
  XFA_ATTRIBUTE_Picker,
  XFA_ATTRIBUTE_From,
  XFA_ATTRIBUTE_BaseProfile,
  XFA_ATTRIBUTE_Aspect,
  XFA_ATTRIBUTE_RowColumnRatio,
  XFA_ATTRIBUTE_LineHeight,
  XFA_ATTRIBUTE_Highlight,
  XFA_ATTRIBUTE_ValueRef,
  XFA_ATTRIBUTE_MaxEntries,
  XFA_ATTRIBUTE_DataLength,
  XFA_ATTRIBUTE_Activity,
  XFA_ATTRIBUTE_Input,
  XFA_ATTRIBUTE_Value,
  XFA_ATTRIBUTE_BlankOrNotBlank,
  XFA_ATTRIBUTE_AddRevocationInfo,
  XFA_ATTRIBUTE_GenericFamily,
  XFA_ATTRIBUTE_Hand,
  XFA_ATTRIBUTE_Href,
  XFA_ATTRIBUTE_TextEncoding,
  XFA_ATTRIBUTE_LeadDigits,
  XFA_ATTRIBUTE_Permissions,
  XFA_ATTRIBUTE_SpaceAbove,
  XFA_ATTRIBUTE_CodeBase,
  XFA_ATTRIBUTE_Stock,
  XFA_ATTRIBUTE_IsNull,
  XFA_ATTRIBUTE_RestoreState,
  XFA_ATTRIBUTE_ExcludeAllCaps,
  XFA_ATTRIBUTE_FormatTest,
  XFA_ATTRIBUTE_HScrollPolicy,
  XFA_ATTRIBUTE_Join,
  XFA_ATTRIBUTE_KeyCertSign,
  XFA_ATTRIBUTE_Radius,
  XFA_ATTRIBUTE_SourceAbove,
  XFA_ATTRIBUTE_Override,
  XFA_ATTRIBUTE_ClassId,
  XFA_ATTRIBUTE_Disable,
  XFA_ATTRIBUTE_Scope,
  XFA_ATTRIBUTE_Match,
  XFA_ATTRIBUTE_Placement,
  XFA_ATTRIBUTE_Before,
  XFA_ATTRIBUTE_WritingScript,
  XFA_ATTRIBUTE_EndChar,
  XFA_ATTRIBUTE_Lock,
  XFA_ATTRIBUTE_Long,
  XFA_ATTRIBUTE_Intact,
  XFA_ATTRIBUTE_XdpContent,
  XFA_ATTRIBUTE_DecipherOnly,
};
enum XFA_ELEMENT {
  XFA_ELEMENT_Ps,
  XFA_ELEMENT_To,
  XFA_ELEMENT_Ui,
  XFA_ELEMENT_RecordSet,
  XFA_ELEMENT_SubsetBelow,
  XFA_ELEMENT_SubformSet,
  XFA_ELEMENT_AdobeExtensionLevel,
  XFA_ELEMENT_Typeface,
  XFA_ELEMENT_Break,
  XFA_ELEMENT_FontInfo,
  XFA_ELEMENT_NumberPattern,
  XFA_ELEMENT_DynamicRender,
  XFA_ELEMENT_PrintScaling,
  XFA_ELEMENT_CheckButton,
  XFA_ELEMENT_DatePatterns,
  XFA_ELEMENT_SourceSet,
  XFA_ELEMENT_Amd,
  XFA_ELEMENT_Arc,
  XFA_ELEMENT_Day,
  XFA_ELEMENT_Era,
  XFA_ELEMENT_Jog,
  XFA_ELEMENT_Log,
  XFA_ELEMENT_Map,
  XFA_ELEMENT_Mdp,
  XFA_ELEMENT_BreakBefore,
  XFA_ELEMENT_Oid,
  XFA_ELEMENT_Pcl,
  XFA_ELEMENT_Pdf,
  XFA_ELEMENT_Ref,
  XFA_ELEMENT_Uri,
  XFA_ELEMENT_Xdc,
  XFA_ELEMENT_Xdp,
  XFA_ELEMENT_Xfa,
  XFA_ELEMENT_Xsl,
  XFA_ELEMENT_Zpl,
  XFA_ELEMENT_Cache,
  XFA_ELEMENT_Margin,
  XFA_ELEMENT_KeyUsage,
  XFA_ELEMENT_Exclude,
  XFA_ELEMENT_ChoiceList,
  XFA_ELEMENT_Level,
  XFA_ELEMENT_LabelPrinter,
  XFA_ELEMENT_CalendarSymbols,
  XFA_ELEMENT_Para,
  XFA_ELEMENT_Part,
  XFA_ELEMENT_Pdfa,
  XFA_ELEMENT_Filter,
  XFA_ELEMENT_Present,
  XFA_ELEMENT_Pagination,
  XFA_ELEMENT_Encoding,
  XFA_ELEMENT_Event,
  XFA_ELEMENT_Whitespace,
  XFA_ELEMENT_DefaultUi,
  XFA_ELEMENT_DataModel,
  XFA_ELEMENT_Barcode,
  XFA_ELEMENT_TimePattern,
  XFA_ELEMENT_BatchOutput,
  XFA_ELEMENT_Enforce,
  XFA_ELEMENT_CurrencySymbols,
  XFA_ELEMENT_AddSilentPrint,
  XFA_ELEMENT_Rename,
  XFA_ELEMENT_Operation,
  XFA_ELEMENT_Typefaces,
  XFA_ELEMENT_SubjectDNs,
  XFA_ELEMENT_Issuers,
  XFA_ELEMENT_SignaturePseudoModel,
  XFA_ELEMENT_WsdlConnection,
  XFA_ELEMENT_Debug,
  XFA_ELEMENT_Delta,
  XFA_ELEMENT_EraNames,
  XFA_ELEMENT_ModifyAnnots,
  XFA_ELEMENT_StartNode,
  XFA_ELEMENT_Button,
  XFA_ELEMENT_Format,
  XFA_ELEMENT_Border,
  XFA_ELEMENT_Area,
  XFA_ELEMENT_Hyphenation,
  XFA_ELEMENT_Text,
  XFA_ELEMENT_Time,
  XFA_ELEMENT_Type,
  XFA_ELEMENT_Overprint,
  XFA_ELEMENT_Certificates,
  XFA_ELEMENT_EncryptionMethods,
  XFA_ELEMENT_SetProperty,
  XFA_ELEMENT_PrinterName,
  XFA_ELEMENT_StartPage,
  XFA_ELEMENT_PageOffset,
  XFA_ELEMENT_DateTime,
  XFA_ELEMENT_Comb,
  XFA_ELEMENT_Pattern,
  XFA_ELEMENT_IfEmpty,
  XFA_ELEMENT_SuppressBanner,
  XFA_ELEMENT_OutputBin,
  XFA_ELEMENT_Field,
  XFA_ELEMENT_Agent,
  XFA_ELEMENT_OutputXSL,
  XFA_ELEMENT_AdjustData,
  XFA_ELEMENT_AutoSave,
  XFA_ELEMENT_ContentArea,
  XFA_ELEMENT_EventPseudoModel,
  XFA_ELEMENT_WsdlAddress,
  XFA_ELEMENT_Solid,
  XFA_ELEMENT_DateTimeSymbols,
  XFA_ELEMENT_EncryptionLevel,
  XFA_ELEMENT_Edge,
  XFA_ELEMENT_Stipple,
  XFA_ELEMENT_Attributes,
  XFA_ELEMENT_VersionControl,
  XFA_ELEMENT_Meridiem,
  XFA_ELEMENT_ExclGroup,
  XFA_ELEMENT_ToolTip,
  XFA_ELEMENT_Compress,
  XFA_ELEMENT_Reason,
  XFA_ELEMENT_Execute,
  XFA_ELEMENT_ContentCopy,
  XFA_ELEMENT_DateTimeEdit,
  XFA_ELEMENT_Config,
  XFA_ELEMENT_Image,
  XFA_ELEMENT_SharpxHTML,
  XFA_ELEMENT_NumberOfCopies,
  XFA_ELEMENT_BehaviorOverride,
  XFA_ELEMENT_TimeStamp,
  XFA_ELEMENT_Month,
  XFA_ELEMENT_ViewerPreferences,
  XFA_ELEMENT_ScriptModel,
  XFA_ELEMENT_Decimal,
  XFA_ELEMENT_Subform,
  XFA_ELEMENT_Select,
  XFA_ELEMENT_Window,
  XFA_ELEMENT_LocaleSet,
  XFA_ELEMENT_Handler,
  XFA_ELEMENT_HostPseudoModel,
  XFA_ELEMENT_Presence,
  XFA_ELEMENT_Record,
  XFA_ELEMENT_Embed,
  XFA_ELEMENT_Version,
  XFA_ELEMENT_Command,
  XFA_ELEMENT_Copies,
  XFA_ELEMENT_Staple,
  XFA_ELEMENT_SubmitFormat,
  XFA_ELEMENT_Boolean,
  XFA_ELEMENT_Message,
  XFA_ELEMENT_Output,
  XFA_ELEMENT_PsMap,
  XFA_ELEMENT_ExcludeNS,
  XFA_ELEMENT_Assist,
  XFA_ELEMENT_Picture,
  XFA_ELEMENT_Traversal,
  XFA_ELEMENT_SilentPrint,
  XFA_ELEMENT_WebClient,
  XFA_ELEMENT_LayoutPseudoModel,
  XFA_ELEMENT_Producer,
  XFA_ELEMENT_Corner,
  XFA_ELEMENT_MsgId,
  XFA_ELEMENT_Color,
  XFA_ELEMENT_Keep,
  XFA_ELEMENT_Query,
  XFA_ELEMENT_Insert,
  XFA_ELEMENT_ImageEdit,
  XFA_ELEMENT_Validate,
  XFA_ELEMENT_DigestMethods,
  XFA_ELEMENT_NumberPatterns,
  XFA_ELEMENT_PageSet,
  XFA_ELEMENT_Integer,
  XFA_ELEMENT_SoapAddress,
  XFA_ELEMENT_Equate,
  XFA_ELEMENT_FormFieldFilling,
  XFA_ELEMENT_PageRange,
  XFA_ELEMENT_Update,
  XFA_ELEMENT_ConnectString,
  XFA_ELEMENT_Mode,
  XFA_ELEMENT_Layout,
  XFA_ELEMENT_Sharpxml,
  XFA_ELEMENT_XsdConnection,
  XFA_ELEMENT_Traverse,
  XFA_ELEMENT_Encodings,
  XFA_ELEMENT_Template,
  XFA_ELEMENT_Acrobat,
  XFA_ELEMENT_ValidationMessaging,
  XFA_ELEMENT_Signing,
  XFA_ELEMENT_DataWindow,
  XFA_ELEMENT_Script,
  XFA_ELEMENT_AddViewerPreferences,
  XFA_ELEMENT_AlwaysEmbed,
  XFA_ELEMENT_PasswordEdit,
  XFA_ELEMENT_NumericEdit,
  XFA_ELEMENT_EncryptionMethod,
  XFA_ELEMENT_Change,
  XFA_ELEMENT_PageArea,
  XFA_ELEMENT_SubmitUrl,
  XFA_ELEMENT_Oids,
  XFA_ELEMENT_Signature,
  XFA_ELEMENT_ADBE_JSConsole,
  XFA_ELEMENT_Caption,
  XFA_ELEMENT_Relevant,
  XFA_ELEMENT_FlipLabel,
  XFA_ELEMENT_ExData,
  XFA_ELEMENT_DayNames,
  XFA_ELEMENT_SoapAction,
  XFA_ELEMENT_DefaultTypeface,
  XFA_ELEMENT_Manifest,
  XFA_ELEMENT_Overflow,
  XFA_ELEMENT_Linear,
  XFA_ELEMENT_CurrencySymbol,
  XFA_ELEMENT_Delete,
  XFA_ELEMENT_Deltas,
  XFA_ELEMENT_DigestMethod,
  XFA_ELEMENT_InstanceManager,
  XFA_ELEMENT_EquateRange,
  XFA_ELEMENT_Medium,
  XFA_ELEMENT_TextEdit,
  XFA_ELEMENT_TemplateCache,
  XFA_ELEMENT_CompressObjectStream,
  XFA_ELEMENT_DataValue,
  XFA_ELEMENT_AccessibleContent,
  XFA_ELEMENT_NodeList,
  XFA_ELEMENT_IncludeXDPContent,
  XFA_ELEMENT_XmlConnection,
  XFA_ELEMENT_ValidateApprovalSignatures,
  XFA_ELEMENT_SignData,
  XFA_ELEMENT_Packets,
  XFA_ELEMENT_DatePattern,
  XFA_ELEMENT_DuplexOption,
  XFA_ELEMENT_Base,
  XFA_ELEMENT_Bind,
  XFA_ELEMENT_Compression,
  XFA_ELEMENT_User,
  XFA_ELEMENT_Rectangle,
  XFA_ELEMENT_EffectiveOutputPolicy,
  XFA_ELEMENT_ADBE_JSDebugger,
  XFA_ELEMENT_Acrobat7,
  XFA_ELEMENT_Interactive,
  XFA_ELEMENT_Locale,
  XFA_ELEMENT_CurrentPage,
  XFA_ELEMENT_Data,
  XFA_ELEMENT_Date,
  XFA_ELEMENT_Desc,
  XFA_ELEMENT_Encrypt,
  XFA_ELEMENT_Draw,
  XFA_ELEMENT_Encryption,
  XFA_ELEMENT_MeridiemNames,
  XFA_ELEMENT_Messaging,
  XFA_ELEMENT_Speak,
  XFA_ELEMENT_DataGroup,
  XFA_ELEMENT_Common,
  XFA_ELEMENT_Sharptext,
  XFA_ELEMENT_PaginationOverride,
  XFA_ELEMENT_Reasons,
  XFA_ELEMENT_SignatureProperties,
  XFA_ELEMENT_Threshold,
  XFA_ELEMENT_AppearanceFilter,
  XFA_ELEMENT_Fill,
  XFA_ELEMENT_Font,
  XFA_ELEMENT_Form,
  XFA_ELEMENT_MediumInfo,
  XFA_ELEMENT_Certificate,
  XFA_ELEMENT_Password,
  XFA_ELEMENT_RunScripts,
  XFA_ELEMENT_Trace,
  XFA_ELEMENT_Float,
  XFA_ELEMENT_RenderPolicy,
  XFA_ELEMENT_LogPseudoModel,
  XFA_ELEMENT_Destination,
  XFA_ELEMENT_Value,
  XFA_ELEMENT_Bookend,
  XFA_ELEMENT_ExObject,
  XFA_ELEMENT_OpenAction,
  XFA_ELEMENT_NeverEmbed,
  XFA_ELEMENT_BindItems,
  XFA_ELEMENT_Calculate,
  XFA_ELEMENT_Print,
  XFA_ELEMENT_Extras,
  XFA_ELEMENT_Proto,
  XFA_ELEMENT_DSigData,
  XFA_ELEMENT_Creator,
  XFA_ELEMENT_Connect,
  XFA_ELEMENT_Permissions,
  XFA_ELEMENT_ConnectionSet,
  XFA_ELEMENT_Submit,
  XFA_ELEMENT_Range,
  XFA_ELEMENT_Linearized,
  XFA_ELEMENT_Packet,
  XFA_ELEMENT_RootElement,
  XFA_ELEMENT_PlaintextMetadata,
  XFA_ELEMENT_NumberSymbols,
  XFA_ELEMENT_PrintHighQuality,
  XFA_ELEMENT_Driver,
  XFA_ELEMENT_IncrementalLoad,
  XFA_ELEMENT_SubjectDN,
  XFA_ELEMENT_CompressLogicalStructure,
  XFA_ELEMENT_IncrementalMerge,
  XFA_ELEMENT_Radial,
  XFA_ELEMENT_Variables,
  XFA_ELEMENT_TimePatterns,
  XFA_ELEMENT_EffectiveInputPolicy,
  XFA_ELEMENT_NameAttr,
  XFA_ELEMENT_Conformance,
  XFA_ELEMENT_Transform,
  XFA_ELEMENT_LockDocument,
  XFA_ELEMENT_BreakAfter,
  XFA_ELEMENT_Line,
  XFA_ELEMENT_List,
  XFA_ELEMENT_Source,
  XFA_ELEMENT_Occur,
  XFA_ELEMENT_PickTrayByPDFSize,
  XFA_ELEMENT_MonthNames,
  XFA_ELEMENT_Severity,
  XFA_ELEMENT_GroupParent,
  XFA_ELEMENT_DocumentAssembly,
  XFA_ELEMENT_NumberSymbol,
  XFA_ELEMENT_Tagged,
  XFA_ELEMENT_Items,
};
#define XFA_ELEMENT_UNKNOWN ((XFA_ELEMENT)-1)
struct XFA_ELEMENTINFO {
  uint32_t uHash;
  const FX_WCHAR* pName;
  XFA_ELEMENT eName;
  uint32_t dwPackets;
  uint32_t eObjectType;
};
int32_t XFA_GetElementCount();
const XFA_ELEMENTINFO* XFA_GetElementByName(const CFX_WideStringC& wsName);
const XFA_ELEMENTINFO* XFA_GetElementByID(XFA_ELEMENT eName);
enum XFA_ATTRIBUTETYPE {
  XFA_ATTRIBUTETYPE_NOTSURE,
  XFA_ATTRIBUTETYPE_Enum,
  XFA_ATTRIBUTETYPE_Cdata,
  XFA_ATTRIBUTETYPE_Boolean,
  XFA_ATTRIBUTETYPE_Integer,
  XFA_ATTRIBUTETYPE_Measure,
};
struct XFA_ATTRIBUTEINFO {
  uint32_t uHash;
  const FX_WCHAR* pName;
  XFA_ATTRIBUTE eName;
  XFA_ATTRIBUTETYPE eType;
  uint32_t dwPackets;
  void* pDefValue;
};
int32_t XFA_GetAttributeCount();
const XFA_ATTRIBUTEINFO* XFA_GetAttributeByName(const CFX_WideStringC& wsName);
const XFA_ATTRIBUTEINFO* XFA_GetAttributeByID(XFA_ATTRIBUTE eName);
FX_BOOL XFA_GetAttributeDefaultValue(void*& pValue,
                                     XFA_ELEMENT eElement,
                                     XFA_ATTRIBUTE eAttribute,
                                     XFA_ATTRIBUTETYPE eType,
                                     uint32_t dwPacket);
XFA_ATTRIBUTEENUM XFA_GetAttributeDefaultValue_Enum(XFA_ELEMENT eElement,
                                                    XFA_ATTRIBUTE eAttribute,
                                                    uint32_t dwPacket);
CFX_WideStringC XFA_GetAttributeDefaultValue_Cdata(XFA_ELEMENT eElement,
                                                   XFA_ATTRIBUTE eAttribute,
                                                   uint32_t dwPacket);
FX_BOOL XFA_GetAttributeDefaultValue_Boolean(XFA_ELEMENT eElement,
                                             XFA_ATTRIBUTE eAttribute,
                                             uint32_t dwPacket);
int32_t XFA_GetAttributeDefaultValue_Integer(XFA_ELEMENT eElement,
                                             XFA_ATTRIBUTE eAttribute,
                                             uint32_t dwPacket);
CXFA_Measurement XFA_GetAttributeDefaultValue_Measure(XFA_ELEMENT eElement,
                                                      XFA_ATTRIBUTE eAttribute,
                                                      uint32_t dwPacket);
struct XFA_ELEMENTHIERARCHY {
  uint16_t wStart;
  uint16_t wCount;
};

struct XFA_SCRIPTHIERARCHY {
  uint16_t wMethodStart;
  uint16_t wMethodCount;
  uint16_t wAttributeStart;
  uint16_t wAttributeCount;
  int16_t wParentIndex;
};

typedef XFA_SCRIPTHIERARCHY const* XFA_LPCSCRIPTHIERARCHY;
const uint16_t* XFA_GetElementChildren(XFA_ELEMENT eElement, int32_t& iCount);
const uint8_t* XFA_GetElementAttributes(XFA_ELEMENT eElement, int32_t& iCount);
const XFA_ELEMENTINFO* XFA_GetChildOfElement(XFA_ELEMENT eElement,
                                             XFA_ELEMENT eChild,
                                             uint32_t dwPacket);
const XFA_ATTRIBUTEINFO* XFA_GetAttributeOfElement(XFA_ELEMENT eElement,
                                                   XFA_ATTRIBUTE eAttribute,
                                                   uint32_t dwPacket);
#define XFA_PROPERTYFLAG_OneOf 0x01
#define XFA_PROPERTYFLAG_DefaultOneOf 0x02
struct XFA_PROPERTY {
  uint16_t eName;
  uint8_t uOccur;
  uint8_t uFlags;
};
const XFA_PROPERTY* XFA_GetElementProperties(XFA_ELEMENT eElement,
                                             int32_t& iCount);
const XFA_PROPERTY* XFA_GetPropertyOfElement(XFA_ELEMENT eElement,
                                             XFA_ELEMENT eProperty,
                                             uint32_t dwPacket);
struct XFA_ATTRIBUTEENUMINFO {
  uint32_t uHash;
  const FX_WCHAR* pName;
  XFA_ATTRIBUTEENUM eName;
};
const XFA_ATTRIBUTEENUMINFO* XFA_GetAttributeEnumByName(
    const CFX_WideStringC& wsName);
const XFA_ATTRIBUTEENUMINFO* XFA_GetAttributeEnumByID(XFA_ATTRIBUTEENUM eName);
enum XFA_UNIT {
  XFA_UNIT_Unknown,
  XFA_UNIT_Percent,
  XFA_UNIT_Angle,
  XFA_UNIT_Em,
  XFA_UNIT_Pt,
  XFA_UNIT_In,
  XFA_UNIT_Pc,
  XFA_UNIT_Cm,
  XFA_UNIT_Mm,
  XFA_UNIT_Mp,
};
class CXFA_Measurement {
 public:
  void Set(const CFX_WideStringC& wsMeasure);
  void Set(FX_FLOAT fValue, XFA_UNIT eUnit) {
    m_fValue = fValue;
    m_eUnit = eUnit;
  }

  XFA_UNIT GetUnit() const { return m_eUnit; }
  FX_FLOAT GetValue() const { return m_fValue; }
  FX_BOOL ToString(CFX_WideString& wsMeasure) const;
  FX_BOOL ToUnit(XFA_UNIT eUnit, FX_FLOAT& fValue) const;
  FX_FLOAT ToUnit(XFA_UNIT eUnit) const {
    FX_FLOAT f;
    return ToUnit(eUnit, f) ? f : 0;
  }
  CXFA_Measurement() { Set(-1, XFA_UNIT_Unknown); }
  CXFA_Measurement(const CFX_WideStringC& wsMeasure) { Set(wsMeasure); }
  CXFA_Measurement(FX_FLOAT fValue, XFA_UNIT eUnit) { Set(fValue, eUnit); }
  static XFA_UNIT GetUnit(const CFX_WideStringC& wsUnit);

 protected:
  FX_FLOAT m_fValue;
  XFA_UNIT m_eUnit;
};
class CFXJSE_Arguments;
class CXFA_Object;
typedef void (CXFA_Object::*XFA_METHOD_CALLBACK)(CFXJSE_Arguments* pArguments);
struct XFA_METHODINFO {
  uint32_t uHash;
  const FX_WCHAR* pName;
  XFA_METHOD_CALLBACK lpfnCallback;
};
int32_t XFA_GetMethodCount();
const XFA_METHODINFO* XFA_GetMethodByName(XFA_ELEMENT eElement,
                                          const CFX_WideStringC& wsMethodName);
typedef void (CXFA_Object::*XFA_ATTRIBUTE_CALLBACK)(FXJSE_HVALUE hValue,
                                                    FX_BOOL bSetting,
                                                    XFA_ATTRIBUTE eAttribute);
enum XFA_SCRIPT_TYPE {
  XFA_SCRIPT_Basic,
  XFA_SCRIPT_Object,
};
struct XFA_SCRIPTATTRIBUTEINFO {
  uint32_t uHash;
  const FX_WCHAR* pName;
  XFA_ATTRIBUTE_CALLBACK lpfnCallback;
  int32_t eAttribute;
  uint16_t eValueType;
};
const XFA_SCRIPTATTRIBUTEINFO* XFA_GetScriptAttributeByName(
    XFA_ELEMENT eElement,
    const CFX_WideStringC& wsAttributeName);

#endif  // XFA_INCLUDE_FXFA_FXFA_BASIC_H_
