Home | History | Annotate | Download | only in fxfa
      1 // Copyright 2014 PDFium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
      6 
      7 #ifndef XFA_FXFA_FXFA_BASIC_H_
      8 #define XFA_FXFA_FXFA_BASIC_H_
      9 
     10 #include "fxjs/cfxjse_arguments.h"
     11 #include "fxjs/fxjse.h"
     12 
     13 class CXFA_Measurement;
     14 enum class XFA_ObjectType;
     15 
     16 enum XFA_HashCode : uint32_t {
     17   XFA_HASHCODE_None = 0,
     18 
     19   XFA_HASHCODE_Config = 0x4e1e39b6,
     20   XFA_HASHCODE_ConnectionSet = 0xe14c801c,
     21   XFA_HASHCODE_Data = 0xbde9abda,
     22   XFA_HASHCODE_DataDescription = 0x2b5df51e,
     23   XFA_HASHCODE_Datasets = 0x99b95079,
     24   XFA_HASHCODE_DataWindow = 0x83a550d2,
     25   XFA_HASHCODE_Event = 0x185e41e2,
     26   XFA_HASHCODE_Form = 0xcd309ff4,
     27   XFA_HASHCODE_Group = 0xf7f75fcd,
     28   XFA_HASHCODE_Host = 0xdb075bde,
     29   XFA_HASHCODE_Layout = 0x7e7e845e,
     30   XFA_HASHCODE_LocaleSet = 0x5473b6dc,
     31   XFA_HASHCODE_Log = 0x0b1b3d22,
     32   XFA_HASHCODE_Name = 0x31b19c1,
     33   XFA_HASHCODE_Occur = 0xf7eebe1c,
     34   XFA_HASHCODE_Pdf = 0xb843dba,
     35   XFA_HASHCODE_Record = 0x5779d65f,
     36   XFA_HASHCODE_Signature = 0x8b036f32,
     37   XFA_HASHCODE_SourceSet = 0x811929d,
     38   XFA_HASHCODE_Stylesheet = 0x6038580a,
     39   XFA_HASHCODE_Template = 0x803550fc,
     40   XFA_HASHCODE_This = 0x2d574d58,
     41   XFA_HASHCODE_Xdc = 0xc56afbf,
     42   XFA_HASHCODE_XDP = 0xc56afcc,
     43   XFA_HASHCODE_Xfa = 0xc56b9ff,
     44   XFA_HASHCODE_Xfdf = 0x48d004a8,
     45   XFA_HASHCODE_Xmpmeta = 0x132a8fbc
     46 };
     47 
     48 enum XFA_PACKET {
     49   XFA_PACKET_USER,
     50   XFA_PACKET_SourceSet,
     51   XFA_PACKET_Pdf,
     52   XFA_PACKET_Xdc,
     53   XFA_PACKET_XDP,
     54   XFA_PACKET_Xmpmeta,
     55   XFA_PACKET_Xfdf,
     56   XFA_PACKET_Config,
     57   XFA_PACKET_LocaleSet,
     58   XFA_PACKET_Stylesheet,
     59   XFA_PACKET_Template,
     60   XFA_PACKET_Signature,
     61   XFA_PACKET_Datasets,
     62   XFA_PACKET_Form,
     63   XFA_PACKET_ConnectionSet,
     64 };
     65 
     66 enum XFA_XDPPACKET {
     67   XFA_XDPPACKET_UNKNOWN = 0,
     68   XFA_XDPPACKET_Config = 1 << XFA_PACKET_Config,
     69   XFA_XDPPACKET_Template = 1 << XFA_PACKET_Template,
     70   XFA_XDPPACKET_Datasets = 1 << XFA_PACKET_Datasets,
     71   XFA_XDPPACKET_Form = 1 << XFA_PACKET_Form,
     72   XFA_XDPPACKET_LocaleSet = 1 << XFA_PACKET_LocaleSet,
     73   XFA_XDPPACKET_ConnectionSet = 1 << XFA_PACKET_ConnectionSet,
     74   XFA_XDPPACKET_SourceSet = 1 << XFA_PACKET_SourceSet,
     75   XFA_XDPPACKET_Xdc = 1 << XFA_PACKET_Xdc,
     76   XFA_XDPPACKET_Pdf = 1 << XFA_PACKET_Pdf,
     77   XFA_XDPPACKET_Xfdf = 1 << XFA_PACKET_Xfdf,
     78   XFA_XDPPACKET_Xmpmeta = 1 << XFA_PACKET_Xmpmeta,
     79   XFA_XDPPACKET_Signature = 1 << XFA_PACKET_Signature,
     80   XFA_XDPPACKET_Stylesheet = 1 << XFA_PACKET_Stylesheet,
     81   XFA_XDPPACKET_USER = 1 << XFA_PACKET_USER,
     82   XFA_XDPPACKET_XDP = 1 << XFA_PACKET_XDP,
     83 };
     84 enum XFA_XDPPACKET_FLAGS {
     85   XFA_XDPPACKET_FLAGS_COMPLETEMATCH = 1,
     86   XFA_XDPPACKET_FLAGS_PREFIXMATCH = 2,
     87   XFA_XDPPACKET_FLAGS_NOMATCH = 4,
     88   XFA_XDPPACKET_FLAGS_SUPPORTONE = 8,
     89   XFA_XDPPACKET_FLAGS_SUPPORTMANY = 16,
     90 };
     91 struct XFA_PACKETINFO {
     92   uint32_t uHash;
     93   const FX_WCHAR* pName;
     94   XFA_XDPPACKET eName;
     95   const FX_WCHAR* pURI;
     96   uint32_t eFlags;
     97 };
     98 
     99 enum XFA_ATTRIBUTEENUM {
    100   XFA_ATTRIBUTEENUM_Asterisk,
    101   XFA_ATTRIBUTEENUM_Slash,
    102   XFA_ATTRIBUTEENUM_Backslash,
    103   XFA_ATTRIBUTEENUM_On,
    104   XFA_ATTRIBUTEENUM_Tb,
    105   XFA_ATTRIBUTEENUM_Up,
    106   XFA_ATTRIBUTEENUM_MetaData,
    107   XFA_ATTRIBUTEENUM_Delegate,
    108   XFA_ATTRIBUTEENUM_PostSubmit,
    109   XFA_ATTRIBUTEENUM_Name,
    110   XFA_ATTRIBUTEENUM_Cross,
    111   XFA_ATTRIBUTEENUM_Next,
    112   XFA_ATTRIBUTEENUM_None,
    113   XFA_ATTRIBUTEENUM_ShortEdge,
    114   XFA_ATTRIBUTEENUM_1mod10_1mod11,
    115   XFA_ATTRIBUTEENUM_Height,
    116   XFA_ATTRIBUTEENUM_CrossDiagonal,
    117   XFA_ATTRIBUTEENUM_All,
    118   XFA_ATTRIBUTEENUM_Any,
    119   XFA_ATTRIBUTEENUM_ToRight,
    120   XFA_ATTRIBUTEENUM_MatchTemplate,
    121   XFA_ATTRIBUTEENUM_Dpl,
    122   XFA_ATTRIBUTEENUM_Invisible,
    123   XFA_ATTRIBUTEENUM_Fit,
    124   XFA_ATTRIBUTEENUM_Width,
    125   XFA_ATTRIBUTEENUM_PreSubmit,
    126   XFA_ATTRIBUTEENUM_Ipl,
    127   XFA_ATTRIBUTEENUM_FlateCompress,
    128   XFA_ATTRIBUTEENUM_Med,
    129   XFA_ATTRIBUTEENUM_Odd,
    130   XFA_ATTRIBUTEENUM_Off,
    131   XFA_ATTRIBUTEENUM_Pdf,
    132   XFA_ATTRIBUTEENUM_Row,
    133   XFA_ATTRIBUTEENUM_Top,
    134   XFA_ATTRIBUTEENUM_Xdp,
    135   XFA_ATTRIBUTEENUM_Xfd,
    136   XFA_ATTRIBUTEENUM_Xml,
    137   XFA_ATTRIBUTEENUM_Zip,
    138   XFA_ATTRIBUTEENUM_Zpl,
    139   XFA_ATTRIBUTEENUM_Visible,
    140   XFA_ATTRIBUTEENUM_Exclude,
    141   XFA_ATTRIBUTEENUM_MouseEnter,
    142   XFA_ATTRIBUTEENUM_Pair,
    143   XFA_ATTRIBUTEENUM_Filter,
    144   XFA_ATTRIBUTEENUM_MoveLast,
    145   XFA_ATTRIBUTEENUM_ExportAndImport,
    146   XFA_ATTRIBUTEENUM_Push,
    147   XFA_ATTRIBUTEENUM_Portrait,
    148   XFA_ATTRIBUTEENUM_Default,
    149   XFA_ATTRIBUTEENUM_StoredProc,
    150   XFA_ATTRIBUTEENUM_StayBOF,
    151   XFA_ATTRIBUTEENUM_StayEOF,
    152   XFA_ATTRIBUTEENUM_PostPrint,
    153   XFA_ATTRIBUTEENUM_UsCarrier,
    154   XFA_ATTRIBUTEENUM_Right,
    155   XFA_ATTRIBUTEENUM_PreOpen,
    156   XFA_ATTRIBUTEENUM_Actual,
    157   XFA_ATTRIBUTEENUM_Rest,
    158   XFA_ATTRIBUTEENUM_TopCenter,
    159   XFA_ATTRIBUTEENUM_StandardSymbol,
    160   XFA_ATTRIBUTEENUM_Initialize,
    161   XFA_ATTRIBUTEENUM_JustifyAll,
    162   XFA_ATTRIBUTEENUM_Normal,
    163   XFA_ATTRIBUTEENUM_Landscape,
    164   XFA_ATTRIBUTEENUM_NonInteractive,
    165   XFA_ATTRIBUTEENUM_MouseExit,
    166   XFA_ATTRIBUTEENUM_Minus,
    167   XFA_ATTRIBUTEENUM_DiagonalLeft,
    168   XFA_ATTRIBUTEENUM_SimplexPaginated,
    169   XFA_ATTRIBUTEENUM_Document,
    170   XFA_ATTRIBUTEENUM_Warning,
    171   XFA_ATTRIBUTEENUM_Auto,
    172   XFA_ATTRIBUTEENUM_Below,
    173   XFA_ATTRIBUTEENUM_BottomLeft,
    174   XFA_ATTRIBUTEENUM_BottomCenter,
    175   XFA_ATTRIBUTEENUM_Tcpl,
    176   XFA_ATTRIBUTEENUM_Text,
    177   XFA_ATTRIBUTEENUM_Grouping,
    178   XFA_ATTRIBUTEENUM_SecureSymbol,
    179   XFA_ATTRIBUTEENUM_PreExecute,
    180   XFA_ATTRIBUTEENUM_DocClose,
    181   XFA_ATTRIBUTEENUM_Keyset,
    182   XFA_ATTRIBUTEENUM_Vertical,
    183   XFA_ATTRIBUTEENUM_PreSave,
    184   XFA_ATTRIBUTEENUM_PreSign,
    185   XFA_ATTRIBUTEENUM_Bottom,
    186   XFA_ATTRIBUTEENUM_ToTop,
    187   XFA_ATTRIBUTEENUM_Verify,
    188   XFA_ATTRIBUTEENUM_First,
    189   XFA_ATTRIBUTEENUM_ContentArea,
    190   XFA_ATTRIBUTEENUM_Solid,
    191   XFA_ATTRIBUTEENUM_Pessimistic,
    192   XFA_ATTRIBUTEENUM_DuplexPaginated,
    193   XFA_ATTRIBUTEENUM_Round,
    194   XFA_ATTRIBUTEENUM_Remerge,
    195   XFA_ATTRIBUTEENUM_Ordered,
    196   XFA_ATTRIBUTEENUM_Percent,
    197   XFA_ATTRIBUTEENUM_Even,
    198   XFA_ATTRIBUTEENUM_Exit,
    199   XFA_ATTRIBUTEENUM_ToolTip,
    200   XFA_ATTRIBUTEENUM_OrderedOccurrence,
    201   XFA_ATTRIBUTEENUM_ReadOnly,
    202   XFA_ATTRIBUTEENUM_Currency,
    203   XFA_ATTRIBUTEENUM_Concat,
    204   XFA_ATTRIBUTEENUM_Thai,
    205   XFA_ATTRIBUTEENUM_Embossed,
    206   XFA_ATTRIBUTEENUM_Formdata,
    207   XFA_ATTRIBUTEENUM_Greek,
    208   XFA_ATTRIBUTEENUM_Decimal,
    209   XFA_ATTRIBUTEENUM_Select,
    210   XFA_ATTRIBUTEENUM_LongEdge,
    211   XFA_ATTRIBUTEENUM_Protected,
    212   XFA_ATTRIBUTEENUM_BottomRight,
    213   XFA_ATTRIBUTEENUM_Zero,
    214   XFA_ATTRIBUTEENUM_ForwardOnly,
    215   XFA_ATTRIBUTEENUM_DocReady,
    216   XFA_ATTRIBUTEENUM_Hidden,
    217   XFA_ATTRIBUTEENUM_Include,
    218   XFA_ATTRIBUTEENUM_Dashed,
    219   XFA_ATTRIBUTEENUM_MultiSelect,
    220   XFA_ATTRIBUTEENUM_Inactive,
    221   XFA_ATTRIBUTEENUM_Embed,
    222   XFA_ATTRIBUTEENUM_Static,
    223   XFA_ATTRIBUTEENUM_OnEntry,
    224   XFA_ATTRIBUTEENUM_Cyrillic,
    225   XFA_ATTRIBUTEENUM_NonBlank,
    226   XFA_ATTRIBUTEENUM_TopRight,
    227   XFA_ATTRIBUTEENUM_Hebrew,
    228   XFA_ATTRIBUTEENUM_TopLeft,
    229   XFA_ATTRIBUTEENUM_Center,
    230   XFA_ATTRIBUTEENUM_MoveFirst,
    231   XFA_ATTRIBUTEENUM_Diamond,
    232   XFA_ATTRIBUTEENUM_PageOdd,
    233   XFA_ATTRIBUTEENUM_1mod10,
    234   XFA_ATTRIBUTEENUM_Korean,
    235   XFA_ATTRIBUTEENUM_AboveEmbedded,
    236   XFA_ATTRIBUTEENUM_ZipCompress,
    237   XFA_ATTRIBUTEENUM_Numeric,
    238   XFA_ATTRIBUTEENUM_Circle,
    239   XFA_ATTRIBUTEENUM_ToBottom,
    240   XFA_ATTRIBUTEENUM_Inverted,
    241   XFA_ATTRIBUTEENUM_Update,
    242   XFA_ATTRIBUTEENUM_Isoname,
    243   XFA_ATTRIBUTEENUM_Server,
    244   XFA_ATTRIBUTEENUM_Position,
    245   XFA_ATTRIBUTEENUM_MiddleCenter,
    246   XFA_ATTRIBUTEENUM_Optional,
    247   XFA_ATTRIBUTEENUM_UsePrinterSetting,
    248   XFA_ATTRIBUTEENUM_Outline,
    249   XFA_ATTRIBUTEENUM_IndexChange,
    250   XFA_ATTRIBUTEENUM_Change,
    251   XFA_ATTRIBUTEENUM_PageArea,
    252   XFA_ATTRIBUTEENUM_Once,
    253   XFA_ATTRIBUTEENUM_Only,
    254   XFA_ATTRIBUTEENUM_Open,
    255   XFA_ATTRIBUTEENUM_Caption,
    256   XFA_ATTRIBUTEENUM_Raised,
    257   XFA_ATTRIBUTEENUM_Justify,
    258   XFA_ATTRIBUTEENUM_RefAndDescendants,
    259   XFA_ATTRIBUTEENUM_Short,
    260   XFA_ATTRIBUTEENUM_PageFront,
    261   XFA_ATTRIBUTEENUM_Monospace,
    262   XFA_ATTRIBUTEENUM_Middle,
    263   XFA_ATTRIBUTEENUM_PrePrint,
    264   XFA_ATTRIBUTEENUM_Always,
    265   XFA_ATTRIBUTEENUM_Unknown,
    266   XFA_ATTRIBUTEENUM_ToLeft,
    267   XFA_ATTRIBUTEENUM_Above,
    268   XFA_ATTRIBUTEENUM_DashDot,
    269   XFA_ATTRIBUTEENUM_Gregorian,
    270   XFA_ATTRIBUTEENUM_Roman,
    271   XFA_ATTRIBUTEENUM_MouseDown,
    272   XFA_ATTRIBUTEENUM_Symbol,
    273   XFA_ATTRIBUTEENUM_PageEven,
    274   XFA_ATTRIBUTEENUM_Sign,
    275   XFA_ATTRIBUTEENUM_AddNew,
    276   XFA_ATTRIBUTEENUM_Star,
    277   XFA_ATTRIBUTEENUM_Optimistic,
    278   XFA_ATTRIBUTEENUM_Rl_tb,
    279   XFA_ATTRIBUTEENUM_MiddleRight,
    280   XFA_ATTRIBUTEENUM_Maintain,
    281   XFA_ATTRIBUTEENUM_Package,
    282   XFA_ATTRIBUTEENUM_SimplifiedChinese,
    283   XFA_ATTRIBUTEENUM_ToCenter,
    284   XFA_ATTRIBUTEENUM_Back,
    285   XFA_ATTRIBUTEENUM_Unspecified,
    286   XFA_ATTRIBUTEENUM_BatchOptimistic,
    287   XFA_ATTRIBUTEENUM_Bold,
    288   XFA_ATTRIBUTEENUM_Both,
    289   XFA_ATTRIBUTEENUM_Butt,
    290   XFA_ATTRIBUTEENUM_Client,
    291   XFA_ATTRIBUTEENUM_2mod10,
    292   XFA_ATTRIBUTEENUM_ImageOnly,
    293   XFA_ATTRIBUTEENUM_Horizontal,
    294   XFA_ATTRIBUTEENUM_Dotted,
    295   XFA_ATTRIBUTEENUM_UserControl,
    296   XFA_ATTRIBUTEENUM_DiagonalRight,
    297   XFA_ATTRIBUTEENUM_ConsumeData,
    298   XFA_ATTRIBUTEENUM_Check,
    299   XFA_ATTRIBUTEENUM_Data,
    300   XFA_ATTRIBUTEENUM_Down,
    301   XFA_ATTRIBUTEENUM_SansSerif,
    302   XFA_ATTRIBUTEENUM_Inline,
    303   XFA_ATTRIBUTEENUM_TraditionalChinese,
    304   XFA_ATTRIBUTEENUM_Warn,
    305   XFA_ATTRIBUTEENUM_RefOnly,
    306   XFA_ATTRIBUTEENUM_InteractiveForms,
    307   XFA_ATTRIBUTEENUM_Word,
    308   XFA_ATTRIBUTEENUM_Unordered,
    309   XFA_ATTRIBUTEENUM_Required,
    310   XFA_ATTRIBUTEENUM_ImportOnly,
    311   XFA_ATTRIBUTEENUM_BelowEmbedded,
    312   XFA_ATTRIBUTEENUM_Japanese,
    313   XFA_ATTRIBUTEENUM_Full,
    314   XFA_ATTRIBUTEENUM_Rl_row,
    315   XFA_ATTRIBUTEENUM_Vietnamese,
    316   XFA_ATTRIBUTEENUM_EastEuropeanRoman,
    317   XFA_ATTRIBUTEENUM_MouseUp,
    318   XFA_ATTRIBUTEENUM_ExportOnly,
    319   XFA_ATTRIBUTEENUM_Clear,
    320   XFA_ATTRIBUTEENUM_Click,
    321   XFA_ATTRIBUTEENUM_Base64,
    322   XFA_ATTRIBUTEENUM_Close,
    323   XFA_ATTRIBUTEENUM_Host,
    324   XFA_ATTRIBUTEENUM_Global,
    325   XFA_ATTRIBUTEENUM_Blank,
    326   XFA_ATTRIBUTEENUM_Table,
    327   XFA_ATTRIBUTEENUM_Import,
    328   XFA_ATTRIBUTEENUM_Custom,
    329   XFA_ATTRIBUTEENUM_MiddleLeft,
    330   XFA_ATTRIBUTEENUM_PostExecute,
    331   XFA_ATTRIBUTEENUM_Radix,
    332   XFA_ATTRIBUTEENUM_PostOpen,
    333   XFA_ATTRIBUTEENUM_Enter,
    334   XFA_ATTRIBUTEENUM_Ignore,
    335   XFA_ATTRIBUTEENUM_Lr_tb,
    336   XFA_ATTRIBUTEENUM_Fantasy,
    337   XFA_ATTRIBUTEENUM_Italic,
    338   XFA_ATTRIBUTEENUM_Author,
    339   XFA_ATTRIBUTEENUM_ToEdge,
    340   XFA_ATTRIBUTEENUM_Choice,
    341   XFA_ATTRIBUTEENUM_Disabled,
    342   XFA_ATTRIBUTEENUM_CrossHatch,
    343   XFA_ATTRIBUTEENUM_DataRef,
    344   XFA_ATTRIBUTEENUM_DashDotDot,
    345   XFA_ATTRIBUTEENUM_Square,
    346   XFA_ATTRIBUTEENUM_Dynamic,
    347   XFA_ATTRIBUTEENUM_Manual,
    348   XFA_ATTRIBUTEENUM_Etched,
    349   XFA_ATTRIBUTEENUM_ValidationState,
    350   XFA_ATTRIBUTEENUM_Cursive,
    351   XFA_ATTRIBUTEENUM_Last,
    352   XFA_ATTRIBUTEENUM_Left,
    353   XFA_ATTRIBUTEENUM_Link,
    354   XFA_ATTRIBUTEENUM_Long,
    355   XFA_ATTRIBUTEENUM_InternationalCarrier,
    356   XFA_ATTRIBUTEENUM_PDF1_3,
    357   XFA_ATTRIBUTEENUM_PDF1_6,
    358   XFA_ATTRIBUTEENUM_Serif,
    359   XFA_ATTRIBUTEENUM_PostSave,
    360   XFA_ATTRIBUTEENUM_Ready,
    361   XFA_ATTRIBUTEENUM_PostSign,
    362   XFA_ATTRIBUTEENUM_Arabic,
    363   XFA_ATTRIBUTEENUM_Error,
    364   XFA_ATTRIBUTEENUM_Urlencoded,
    365   XFA_ATTRIBUTEENUM_Lowered,
    366 };
    367 enum XFA_ATTRIBUTE {
    368   XFA_ATTRIBUTE_H,
    369   XFA_ATTRIBUTE_W,
    370   XFA_ATTRIBUTE_X,
    371   XFA_ATTRIBUTE_Y,
    372   XFA_ATTRIBUTE_Id,
    373   XFA_ATTRIBUTE_To,
    374   XFA_ATTRIBUTE_LineThrough,
    375   XFA_ATTRIBUTE_HAlign,
    376   XFA_ATTRIBUTE_Typeface,
    377   XFA_ATTRIBUTE_BeforeTarget,
    378   XFA_ATTRIBUTE_Name,
    379   XFA_ATTRIBUTE_Next,
    380   XFA_ATTRIBUTE_DataRowCount,
    381   XFA_ATTRIBUTE_Break,
    382   XFA_ATTRIBUTE_VScrollPolicy,
    383   XFA_ATTRIBUTE_FontHorizontalScale,
    384   XFA_ATTRIBUTE_TextIndent,
    385   XFA_ATTRIBUTE_Context,
    386   XFA_ATTRIBUTE_TrayOut,
    387   XFA_ATTRIBUTE_Cap,
    388   XFA_ATTRIBUTE_Max,
    389   XFA_ATTRIBUTE_Min,
    390   XFA_ATTRIBUTE_Ref,
    391   XFA_ATTRIBUTE_Rid,
    392   XFA_ATTRIBUTE_Url,
    393   XFA_ATTRIBUTE_Use,
    394   XFA_ATTRIBUTE_LeftInset,
    395   XFA_ATTRIBUTE_Widows,
    396   XFA_ATTRIBUTE_Level,
    397   XFA_ATTRIBUTE_BottomInset,
    398   XFA_ATTRIBUTE_OverflowTarget,
    399   XFA_ATTRIBUTE_AllowMacro,
    400   XFA_ATTRIBUTE_PagePosition,
    401   XFA_ATTRIBUTE_ColumnWidths,
    402   XFA_ATTRIBUTE_OverflowLeader,
    403   XFA_ATTRIBUTE_Action,
    404   XFA_ATTRIBUTE_NonRepudiation,
    405   XFA_ATTRIBUTE_Rate,
    406   XFA_ATTRIBUTE_AllowRichText,
    407   XFA_ATTRIBUTE_Role,
    408   XFA_ATTRIBUTE_OverflowTrailer,
    409   XFA_ATTRIBUTE_Operation,
    410   XFA_ATTRIBUTE_Timeout,
    411   XFA_ATTRIBUTE_TopInset,
    412   XFA_ATTRIBUTE_Access,
    413   XFA_ATTRIBUTE_CommandType,
    414   XFA_ATTRIBUTE_Format,
    415   XFA_ATTRIBUTE_DataPrep,
    416   XFA_ATTRIBUTE_WidgetData,
    417   XFA_ATTRIBUTE_Abbr,
    418   XFA_ATTRIBUTE_MarginRight,
    419   XFA_ATTRIBUTE_DataDescription,
    420   XFA_ATTRIBUTE_EncipherOnly,
    421   XFA_ATTRIBUTE_KerningMode,
    422   XFA_ATTRIBUTE_Rotate,
    423   XFA_ATTRIBUTE_WordCharacterCount,
    424   XFA_ATTRIBUTE_Type,
    425   XFA_ATTRIBUTE_Reserve,
    426   XFA_ATTRIBUTE_TextLocation,
    427   XFA_ATTRIBUTE_Priority,
    428   XFA_ATTRIBUTE_Underline,
    429   XFA_ATTRIBUTE_ModuleWidth,
    430   XFA_ATTRIBUTE_Hyphenate,
    431   XFA_ATTRIBUTE_Listen,
    432   XFA_ATTRIBUTE_Delimiter,
    433   XFA_ATTRIBUTE_ContentType,
    434   XFA_ATTRIBUTE_StartNew,
    435   XFA_ATTRIBUTE_EofAction,
    436   XFA_ATTRIBUTE_AllowNeutral,
    437   XFA_ATTRIBUTE_Connection,
    438   XFA_ATTRIBUTE_BaselineShift,
    439   XFA_ATTRIBUTE_OverlinePeriod,
    440   XFA_ATTRIBUTE_FracDigits,
    441   XFA_ATTRIBUTE_Orientation,
    442   XFA_ATTRIBUTE_TimeStamp,
    443   XFA_ATTRIBUTE_PrintCheckDigit,
    444   XFA_ATTRIBUTE_MarginLeft,
    445   XFA_ATTRIBUTE_Stroke,
    446   XFA_ATTRIBUTE_ModuleHeight,
    447   XFA_ATTRIBUTE_TransferEncoding,
    448   XFA_ATTRIBUTE_Usage,
    449   XFA_ATTRIBUTE_Presence,
    450   XFA_ATTRIBUTE_RadixOffset,
    451   XFA_ATTRIBUTE_Preserve,
    452   XFA_ATTRIBUTE_AliasNode,
    453   XFA_ATTRIBUTE_MultiLine,
    454   XFA_ATTRIBUTE_Version,
    455   XFA_ATTRIBUTE_StartChar,
    456   XFA_ATTRIBUTE_ScriptTest,
    457   XFA_ATTRIBUTE_StartAngle,
    458   XFA_ATTRIBUTE_CursorType,
    459   XFA_ATTRIBUTE_DigitalSignature,
    460   XFA_ATTRIBUTE_CodeType,
    461   XFA_ATTRIBUTE_Output,
    462   XFA_ATTRIBUTE_BookendTrailer,
    463   XFA_ATTRIBUTE_ImagingBBox,
    464   XFA_ATTRIBUTE_ExcludeInitialCap,
    465   XFA_ATTRIBUTE_Force,
    466   XFA_ATTRIBUTE_CrlSign,
    467   XFA_ATTRIBUTE_Previous,
    468   XFA_ATTRIBUTE_PushCharacterCount,
    469   XFA_ATTRIBUTE_NullTest,
    470   XFA_ATTRIBUTE_RunAt,
    471   XFA_ATTRIBUTE_SpaceBelow,
    472   XFA_ATTRIBUTE_SweepAngle,
    473   XFA_ATTRIBUTE_NumberOfCells,
    474   XFA_ATTRIBUTE_LetterSpacing,
    475   XFA_ATTRIBUTE_LockType,
    476   XFA_ATTRIBUTE_PasswordChar,
    477   XFA_ATTRIBUTE_VAlign,
    478   XFA_ATTRIBUTE_SourceBelow,
    479   XFA_ATTRIBUTE_Inverted,
    480   XFA_ATTRIBUTE_Mark,
    481   XFA_ATTRIBUTE_MaxH,
    482   XFA_ATTRIBUTE_MaxW,
    483   XFA_ATTRIBUTE_Truncate,
    484   XFA_ATTRIBUTE_MinH,
    485   XFA_ATTRIBUTE_MinW,
    486   XFA_ATTRIBUTE_Initial,
    487   XFA_ATTRIBUTE_Mode,
    488   XFA_ATTRIBUTE_Layout,
    489   XFA_ATTRIBUTE_Server,
    490   XFA_ATTRIBUTE_EmbedPDF,
    491   XFA_ATTRIBUTE_OddOrEven,
    492   XFA_ATTRIBUTE_TabDefault,
    493   XFA_ATTRIBUTE_Contains,
    494   XFA_ATTRIBUTE_RightInset,
    495   XFA_ATTRIBUTE_MaxChars,
    496   XFA_ATTRIBUTE_Open,
    497   XFA_ATTRIBUTE_Relation,
    498   XFA_ATTRIBUTE_WideNarrowRatio,
    499   XFA_ATTRIBUTE_Relevant,
    500   XFA_ATTRIBUTE_SignatureType,
    501   XFA_ATTRIBUTE_LineThroughPeriod,
    502   XFA_ATTRIBUTE_Shape,
    503   XFA_ATTRIBUTE_TabStops,
    504   XFA_ATTRIBUTE_OutputBelow,
    505   XFA_ATTRIBUTE_Short,
    506   XFA_ATTRIBUTE_FontVerticalScale,
    507   XFA_ATTRIBUTE_Thickness,
    508   XFA_ATTRIBUTE_CommitOn,
    509   XFA_ATTRIBUTE_RemainCharacterCount,
    510   XFA_ATTRIBUTE_KeyAgreement,
    511   XFA_ATTRIBUTE_ErrorCorrectionLevel,
    512   XFA_ATTRIBUTE_UpsMode,
    513   XFA_ATTRIBUTE_MergeMode,
    514   XFA_ATTRIBUTE_Circular,
    515   XFA_ATTRIBUTE_PsName,
    516   XFA_ATTRIBUTE_Trailer,
    517   XFA_ATTRIBUTE_UnicodeRange,
    518   XFA_ATTRIBUTE_ExecuteType,
    519   XFA_ATTRIBUTE_DuplexImposition,
    520   XFA_ATTRIBUTE_TrayIn,
    521   XFA_ATTRIBUTE_BindingNode,
    522   XFA_ATTRIBUTE_BofAction,
    523   XFA_ATTRIBUTE_Save,
    524   XFA_ATTRIBUTE_TargetType,
    525   XFA_ATTRIBUTE_KeyEncipherment,
    526   XFA_ATTRIBUTE_CredentialServerPolicy,
    527   XFA_ATTRIBUTE_Size,
    528   XFA_ATTRIBUTE_InitialNumber,
    529   XFA_ATTRIBUTE_Slope,
    530   XFA_ATTRIBUTE_CSpace,
    531   XFA_ATTRIBUTE_ColSpan,
    532   XFA_ATTRIBUTE_Binding,
    533   XFA_ATTRIBUTE_Checksum,
    534   XFA_ATTRIBUTE_CharEncoding,
    535   XFA_ATTRIBUTE_Bind,
    536   XFA_ATTRIBUTE_TextEntry,
    537   XFA_ATTRIBUTE_Archive,
    538   XFA_ATTRIBUTE_Uuid,
    539   XFA_ATTRIBUTE_Posture,
    540   XFA_ATTRIBUTE_After,
    541   XFA_ATTRIBUTE_Orphans,
    542   XFA_ATTRIBUTE_QualifiedName,
    543   XFA_ATTRIBUTE_Usehref,
    544   XFA_ATTRIBUTE_Locale,
    545   XFA_ATTRIBUTE_Weight,
    546   XFA_ATTRIBUTE_UnderlinePeriod,
    547   XFA_ATTRIBUTE_Data,
    548   XFA_ATTRIBUTE_Desc,
    549   XFA_ATTRIBUTE_Numbered,
    550   XFA_ATTRIBUTE_DataColumnCount,
    551   XFA_ATTRIBUTE_Overline,
    552   XFA_ATTRIBUTE_UrlPolicy,
    553   XFA_ATTRIBUTE_AnchorType,
    554   XFA_ATTRIBUTE_LabelRef,
    555   XFA_ATTRIBUTE_BookendLeader,
    556   XFA_ATTRIBUTE_MaxLength,
    557   XFA_ATTRIBUTE_AccessKey,
    558   XFA_ATTRIBUTE_CursorLocation,
    559   XFA_ATTRIBUTE_DelayedOpen,
    560   XFA_ATTRIBUTE_Target,
    561   XFA_ATTRIBUTE_DataEncipherment,
    562   XFA_ATTRIBUTE_AfterTarget,
    563   XFA_ATTRIBUTE_Leader,
    564   XFA_ATTRIBUTE_Picker,
    565   XFA_ATTRIBUTE_From,
    566   XFA_ATTRIBUTE_BaseProfile,
    567   XFA_ATTRIBUTE_Aspect,
    568   XFA_ATTRIBUTE_RowColumnRatio,
    569   XFA_ATTRIBUTE_LineHeight,
    570   XFA_ATTRIBUTE_Highlight,
    571   XFA_ATTRIBUTE_ValueRef,
    572   XFA_ATTRIBUTE_MaxEntries,
    573   XFA_ATTRIBUTE_DataLength,
    574   XFA_ATTRIBUTE_Activity,
    575   XFA_ATTRIBUTE_Input,
    576   XFA_ATTRIBUTE_Value,
    577   XFA_ATTRIBUTE_BlankOrNotBlank,
    578   XFA_ATTRIBUTE_AddRevocationInfo,
    579   XFA_ATTRIBUTE_GenericFamily,
    580   XFA_ATTRIBUTE_Hand,
    581   XFA_ATTRIBUTE_Href,
    582   XFA_ATTRIBUTE_TextEncoding,
    583   XFA_ATTRIBUTE_LeadDigits,
    584   XFA_ATTRIBUTE_Permissions,
    585   XFA_ATTRIBUTE_SpaceAbove,
    586   XFA_ATTRIBUTE_CodeBase,
    587   XFA_ATTRIBUTE_Stock,
    588   XFA_ATTRIBUTE_IsNull,
    589   XFA_ATTRIBUTE_RestoreState,
    590   XFA_ATTRIBUTE_ExcludeAllCaps,
    591   XFA_ATTRIBUTE_FormatTest,
    592   XFA_ATTRIBUTE_HScrollPolicy,
    593   XFA_ATTRIBUTE_Join,
    594   XFA_ATTRIBUTE_KeyCertSign,
    595   XFA_ATTRIBUTE_Radius,
    596   XFA_ATTRIBUTE_SourceAbove,
    597   XFA_ATTRIBUTE_Override,
    598   XFA_ATTRIBUTE_ClassId,
    599   XFA_ATTRIBUTE_Disable,
    600   XFA_ATTRIBUTE_Scope,
    601   XFA_ATTRIBUTE_Match,
    602   XFA_ATTRIBUTE_Placement,
    603   XFA_ATTRIBUTE_Before,
    604   XFA_ATTRIBUTE_WritingScript,
    605   XFA_ATTRIBUTE_EndChar,
    606   XFA_ATTRIBUTE_Lock,
    607   XFA_ATTRIBUTE_Long,
    608   XFA_ATTRIBUTE_Intact,
    609   XFA_ATTRIBUTE_XdpContent,
    610   XFA_ATTRIBUTE_DecipherOnly,
    611 };
    612 
    613 enum class XFA_Element : int32_t {
    614   Unknown = -1,
    615 
    616   Ps,
    617   To,
    618   Ui,
    619   RecordSet,
    620   SubsetBelow,
    621   SubformSet,
    622   AdobeExtensionLevel,
    623   Typeface,
    624   Break,
    625   FontInfo,
    626   NumberPattern,
    627   DynamicRender,
    628   PrintScaling,
    629   CheckButton,
    630   DatePatterns,
    631   SourceSet,
    632   Amd,
    633   Arc,
    634   Day,
    635   Era,
    636   Jog,
    637   Log,
    638   Map,
    639   Mdp,
    640   BreakBefore,
    641   Oid,
    642   Pcl,
    643   Pdf,
    644   Ref,
    645   Uri,
    646   Xdc,
    647   Xdp,
    648   Xfa,
    649   Xsl,
    650   Zpl,
    651   Cache,
    652   Margin,
    653   KeyUsage,
    654   Exclude,
    655   ChoiceList,
    656   Level,
    657   LabelPrinter,
    658   CalendarSymbols,
    659   Para,
    660   Part,
    661   Pdfa,
    662   Filter,
    663   Present,
    664   Pagination,
    665   Encoding,
    666   Event,
    667   Whitespace,
    668   DefaultUi,
    669   DataModel,
    670   Barcode,
    671   TimePattern,
    672   BatchOutput,
    673   Enforce,
    674   CurrencySymbols,
    675   AddSilentPrint,
    676   Rename,
    677   Operation,
    678   Typefaces,
    679   SubjectDNs,
    680   Issuers,
    681   SignaturePseudoModel,
    682   WsdlConnection,
    683   Debug,
    684   Delta,
    685   EraNames,
    686   ModifyAnnots,
    687   StartNode,
    688   Button,
    689   Format,
    690   Border,
    691   Area,
    692   Hyphenation,
    693   Text,
    694   Time,
    695   Type,
    696   Overprint,
    697   Certificates,
    698   EncryptionMethods,
    699   SetProperty,
    700   PrinterName,
    701   StartPage,
    702   PageOffset,
    703   DateTime,
    704   Comb,
    705   Pattern,
    706   IfEmpty,
    707   SuppressBanner,
    708   OutputBin,
    709   Field,
    710   Agent,
    711   OutputXSL,
    712   AdjustData,
    713   AutoSave,
    714   ContentArea,
    715   EventPseudoModel,
    716   WsdlAddress,
    717   Solid,
    718   DateTimeSymbols,
    719   EncryptionLevel,
    720   Edge,
    721   Stipple,
    722   Attributes,
    723   VersionControl,
    724   Meridiem,
    725   ExclGroup,
    726   ToolTip,
    727   Compress,
    728   Reason,
    729   Execute,
    730   ContentCopy,
    731   DateTimeEdit,
    732   Config,
    733   Image,
    734   SharpxHTML,
    735   NumberOfCopies,
    736   BehaviorOverride,
    737   TimeStamp,
    738   Month,
    739   ViewerPreferences,
    740   ScriptModel,
    741   Decimal,
    742   Subform,
    743   Select,
    744   Window,
    745   LocaleSet,
    746   Handler,
    747   HostPseudoModel,
    748   Presence,
    749   Record,
    750   Embed,
    751   Version,
    752   Command,
    753   Copies,
    754   Staple,
    755   SubmitFormat,
    756   Boolean,
    757   Message,
    758   Output,
    759   PsMap,
    760   ExcludeNS,
    761   Assist,
    762   Picture,
    763   Traversal,
    764   SilentPrint,
    765   WebClient,
    766   LayoutPseudoModel,
    767   Producer,
    768   Corner,
    769   MsgId,
    770   Color,
    771   Keep,
    772   Query,
    773   Insert,
    774   ImageEdit,
    775   Validate,
    776   DigestMethods,
    777   NumberPatterns,
    778   PageSet,
    779   Integer,
    780   SoapAddress,
    781   Equate,
    782   FormFieldFilling,
    783   PageRange,
    784   Update,
    785   ConnectString,
    786   Mode,
    787   Layout,
    788   Sharpxml,
    789   XsdConnection,
    790   Traverse,
    791   Encodings,
    792   Template,
    793   Acrobat,
    794   ValidationMessaging,
    795   Signing,
    796   DataWindow,
    797   Script,
    798   AddViewerPreferences,
    799   AlwaysEmbed,
    800   PasswordEdit,
    801   NumericEdit,
    802   EncryptionMethod,
    803   Change,
    804   PageArea,
    805   SubmitUrl,
    806   Oids,
    807   Signature,
    808   ADBE_JSConsole,
    809   Caption,
    810   Relevant,
    811   FlipLabel,
    812   ExData,
    813   DayNames,
    814   SoapAction,
    815   DefaultTypeface,
    816   Manifest,
    817   Overflow,
    818   Linear,
    819   CurrencySymbol,
    820   Delete,
    821   Deltas,
    822   DigestMethod,
    823   InstanceManager,
    824   EquateRange,
    825   Medium,
    826   TextEdit,
    827   TemplateCache,
    828   CompressObjectStream,
    829   DataValue,
    830   AccessibleContent,
    831   NodeList,
    832   IncludeXDPContent,
    833   XmlConnection,
    834   ValidateApprovalSignatures,
    835   SignData,
    836   Packets,
    837   DatePattern,
    838   DuplexOption,
    839   Base,
    840   Bind,
    841   Compression,
    842   User,
    843   Rectangle,
    844   EffectiveOutputPolicy,
    845   ADBE_JSDebugger,
    846   Acrobat7,
    847   Interactive,
    848   Locale,
    849   CurrentPage,
    850   Data,
    851   Date,
    852   Desc,
    853   Encrypt,
    854   Draw,
    855   Encryption,
    856   MeridiemNames,
    857   Messaging,
    858   Speak,
    859   DataGroup,
    860   Common,
    861   Sharptext,
    862   PaginationOverride,
    863   Reasons,
    864   SignatureProperties,
    865   Threshold,
    866   AppearanceFilter,
    867   Fill,
    868   Font,
    869   Form,
    870   MediumInfo,
    871   Certificate,
    872   Password,
    873   RunScripts,
    874   Trace,
    875   Float,
    876   RenderPolicy,
    877   LogPseudoModel,
    878   Destination,
    879   Value,
    880   Bookend,
    881   ExObject,
    882   OpenAction,
    883   NeverEmbed,
    884   BindItems,
    885   Calculate,
    886   Print,
    887   Extras,
    888   Proto,
    889   DSigData,
    890   Creator,
    891   Connect,
    892   Permissions,
    893   ConnectionSet,
    894   Submit,
    895   Range,
    896   Linearized,
    897   Packet,
    898   RootElement,
    899   PlaintextMetadata,
    900   NumberSymbols,
    901   PrintHighQuality,
    902   Driver,
    903   IncrementalLoad,
    904   SubjectDN,
    905   CompressLogicalStructure,
    906   IncrementalMerge,
    907   Radial,
    908   Variables,
    909   TimePatterns,
    910   EffectiveInputPolicy,
    911   NameAttr,
    912   Conformance,
    913   Transform,
    914   LockDocument,
    915   BreakAfter,
    916   Line,
    917   List,
    918   Source,
    919   Occur,
    920   PickTrayByPDFSize,
    921   MonthNames,
    922   Severity,
    923   GroupParent,
    924   DocumentAssembly,
    925   NumberSymbol,
    926   Tagged,
    927   Items
    928 };
    929 struct XFA_ELEMENTINFO {
    930   uint32_t uHash;
    931   const FX_WCHAR* pName;
    932   XFA_Element eName;
    933   uint32_t dwPackets;
    934   XFA_ObjectType eObjectType;
    935 };
    936 
    937 enum XFA_ATTRIBUTETYPE {
    938   XFA_ATTRIBUTETYPE_NOTSURE,
    939   XFA_ATTRIBUTETYPE_Enum,
    940   XFA_ATTRIBUTETYPE_Cdata,
    941   XFA_ATTRIBUTETYPE_Boolean,
    942   XFA_ATTRIBUTETYPE_Integer,
    943   XFA_ATTRIBUTETYPE_Measure,
    944 };
    945 struct XFA_ATTRIBUTEINFO {
    946   uint32_t uHash;
    947   const FX_WCHAR* pName;
    948   XFA_ATTRIBUTE eName;
    949   XFA_ATTRIBUTETYPE eType;
    950   uint32_t dwPackets;
    951   void* pDefValue;
    952 };
    953 
    954 struct XFA_ELEMENTHIERARCHY {
    955   uint16_t wStart;
    956   uint16_t wCount;
    957 };
    958 
    959 struct XFA_SCRIPTHIERARCHY {
    960   uint16_t wMethodStart;
    961   uint16_t wMethodCount;
    962   uint16_t wAttributeStart;
    963   uint16_t wAttributeCount;
    964   int16_t wParentIndex;
    965 };
    966 
    967 #define XFA_PROPERTYFLAG_OneOf 0x01
    968 #define XFA_PROPERTYFLAG_DefaultOneOf 0x02
    969 struct XFA_PROPERTY {
    970   XFA_Element eName;
    971   uint8_t uOccur;
    972   uint8_t uFlags;
    973 };
    974 
    975 struct XFA_ATTRIBUTEENUMINFO {
    976   uint32_t uHash;
    977   const FX_WCHAR* pName;
    978   XFA_ATTRIBUTEENUM eName;
    979 };
    980 
    981 enum XFA_UNIT {
    982   XFA_UNIT_Unknown,
    983   XFA_UNIT_Percent,
    984   XFA_UNIT_Angle,
    985   XFA_UNIT_Em,
    986   XFA_UNIT_Pt,
    987   XFA_UNIT_In,
    988   XFA_UNIT_Pc,
    989   XFA_UNIT_Cm,
    990   XFA_UNIT_Mm,
    991   XFA_UNIT_Mp,
    992 };
    993 
    994 struct XFA_NOTSUREATTRIBUTE {
    995   XFA_Element eElement;
    996   XFA_ATTRIBUTE eAttribute;
    997   XFA_ATTRIBUTETYPE eType;
    998   void* pValue;
    999 };
   1000 
   1001 class CFXJSE_Arguments;
   1002 class CXFA_Object;
   1003 
   1004 typedef void (CXFA_Object::*XFA_METHOD_CALLBACK)(CFXJSE_Arguments* pArguments);
   1005 struct XFA_METHODINFO {
   1006   uint32_t uHash;
   1007   const FX_WCHAR* pName;
   1008   XFA_METHOD_CALLBACK lpfnCallback;
   1009 };
   1010 
   1011 typedef void (CXFA_Object::*XFA_ATTRIBUTE_CALLBACK)(CFXJSE_Value* pValue,
   1012                                                     bool bSetting,
   1013                                                     XFA_ATTRIBUTE eAttribute);
   1014 enum XFA_SCRIPT_TYPE {
   1015   XFA_SCRIPT_Basic,
   1016   XFA_SCRIPT_Object,
   1017 };
   1018 struct XFA_SCRIPTATTRIBUTEINFO {
   1019   uint32_t uHash;
   1020   const FX_WCHAR* pName;
   1021   XFA_ATTRIBUTE_CALLBACK lpfnCallback;
   1022   int32_t eAttribute;
   1023   uint16_t eValueType;
   1024 };
   1025 
   1026 #endif  // XFA_FXFA_FXFA_BASIC_H_
   1027