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 _FXFA_BASIC_H
8 #define _FXFA_BASIC_H
9 
10 #include "xfa/include/fxjse/fxjse.h"
11 
12 class CXFA_Measurement;
13 #define XFA_HASHCODE_Xfa 0xc56b9ff
14 #define XFA_HASHCODE_Config 0x4e1e39b6
15 #define XFA_HASHCODE_Template 0x803550fc
16 #define XFA_HASHCODE_Datasets 0x99b95079
17 #define XFA_HASHCODE_Data 0xbde9abda
18 #define XFA_HASHCODE_Form 0xcd309ff4
19 #define XFA_HASHCODE_LocaleSet 0x5473b6dc
20 #define XFA_HASHCODE_ConnectionSet 0xe14c801c
21 #define XFA_HASHCODE_SourceSet 0x811929d
22 #define XFA_HASHCODE_Xdc 0xc56afbf
23 #define XFA_HASHCODE_Pdf 0xb843dba
24 #define XFA_HASHCODE_Xfdf 0x48d004a8
25 #define XFA_HASHCODE_Xmpmeta 0x132a8fbc
26 #define XFA_HASHCODE_Signature 0x8b036f32
27 #define XFA_HASHCODE_Stylesheet 0x6038580a
28 #define XFA_HASHCODE_XDP 0xc56afcc
29 #define XFA_HASHCODE_Record 0x5779d65f
30 #define XFA_HASHCODE_DataWindow 0x83a550d2
31 #define XFA_HASHCODE_Host 0xdb075bde
32 #define XFA_HASHCODE_Log 0x0b1b3d22
33 #define XFA_HASHCODE_Event 0x185e41e2
34 #define XFA_HASHCODE_Layout 0x7e7e845e
35 #define XFA_HASHCODE_Occur 0xf7eebe1c
36 #define XFA_HASHCODE_This 0x2d574d58
37 #define XFA_HASHCODE_DataDescription 0x2b5df51e
38 #define XFA_HASHCODE_Name 0x31b19c1
39 enum XFA_PACKET {
40   XFA_PACKET_USER,
41   XFA_PACKET_SourceSet,
42   XFA_PACKET_Pdf,
43   XFA_PACKET_Xdc,
44   XFA_PACKET_XDP,
45   XFA_PACKET_Xmpmeta,
46   XFA_PACKET_Xfdf,
47   XFA_PACKET_Config,
48   XFA_PACKET_LocaleSet,
49   XFA_PACKET_Stylesheet,
50   XFA_PACKET_Template,
51   XFA_PACKET_Signature,
52   XFA_PACKET_Datasets,
53   XFA_PACKET_Form,
54   XFA_PACKET_ConnectionSet,
55 };
56 enum XFA_XDPPACKET {
57   XFA_XDPPACKET_UNKNOWN = 0,
58   XFA_XDPPACKET_Config = 1 << XFA_PACKET_Config,
59   XFA_XDPPACKET_Template = 1 << XFA_PACKET_Template,
60   XFA_XDPPACKET_Datasets = 1 << XFA_PACKET_Datasets,
61   XFA_XDPPACKET_Form = 1 << XFA_PACKET_Form,
62   XFA_XDPPACKET_LocaleSet = 1 << XFA_PACKET_LocaleSet,
63   XFA_XDPPACKET_ConnectionSet = 1 << XFA_PACKET_ConnectionSet,
64   XFA_XDPPACKET_SourceSet = 1 << XFA_PACKET_SourceSet,
65   XFA_XDPPACKET_Xdc = 1 << XFA_PACKET_Xdc,
66   XFA_XDPPACKET_Pdf = 1 << XFA_PACKET_Pdf,
67   XFA_XDPPACKET_Xfdf = 1 << XFA_PACKET_Xfdf,
68   XFA_XDPPACKET_Xmpmeta = 1 << XFA_PACKET_Xmpmeta,
69   XFA_XDPPACKET_Signature = 1 << XFA_PACKET_Signature,
70   XFA_XDPPACKET_Stylesheet = 1 << XFA_PACKET_Stylesheet,
71   XFA_XDPPACKET_USER = 1 << XFA_PACKET_USER,
72   XFA_XDPPACKET_XDP = 1 << XFA_PACKET_XDP,
73 };
74 enum XFA_XDPPACKET_FLAGS {
75   XFA_XDPPACKET_FLAGS_COMPLETEMATCH = 1,
76   XFA_XDPPACKET_FLAGS_PREFIXMATCH = 2,
77   XFA_XDPPACKET_FLAGS_NOMATCH = 4,
78   XFA_XDPPACKET_FLAGS_SUPPORTONE = 8,
79   XFA_XDPPACKET_FLAGS_SUPPORTMANY = 16,
80 };
81 typedef struct _XFA_PACKETINFO {
82   uint32_t uHash;
83   const FX_WCHAR* pName;
84   XFA_XDPPACKET eName;
85   const FX_WCHAR* pURI;
86   FX_DWORD eFlags;
87 } XFA_PACKETINFO, *XFA_LPPACKETINFO;
88 typedef XFA_PACKETINFO const* XFA_LPCPACKETINFO;
89 XFA_LPCPACKETINFO XFA_GetPacketByName(const CFX_WideStringC& wsName);
90 XFA_LPCPACKETINFO XFA_GetPacketByID(FX_DWORD dwPacket);
91 extern const XFA_PACKETINFO g_XFAPacketData[];
XFA_GetPacketByIndex(XFA_PACKET ePacket)92 inline XFA_LPCPACKETINFO XFA_GetPacketByIndex(XFA_PACKET ePacket) {
93   return g_XFAPacketData + ePacket;
94 }
95 enum XFA_ATTRIBUTEENUM {
96   XFA_ATTRIBUTEENUM_Asterisk,
97   XFA_ATTRIBUTEENUM_Slash,
98   XFA_ATTRIBUTEENUM_Backslash,
99   XFA_ATTRIBUTEENUM_On,
100   XFA_ATTRIBUTEENUM_Tb,
101   XFA_ATTRIBUTEENUM_Up,
102   XFA_ATTRIBUTEENUM_MetaData,
103   XFA_ATTRIBUTEENUM_Delegate,
104   XFA_ATTRIBUTEENUM_PostSubmit,
105   XFA_ATTRIBUTEENUM_Name,
106   XFA_ATTRIBUTEENUM_Cross,
107   XFA_ATTRIBUTEENUM_Next,
108   XFA_ATTRIBUTEENUM_None,
109   XFA_ATTRIBUTEENUM_ShortEdge,
110   XFA_ATTRIBUTEENUM_1mod10_1mod11,
111   XFA_ATTRIBUTEENUM_Height,
112   XFA_ATTRIBUTEENUM_CrossDiagonal,
113   XFA_ATTRIBUTEENUM_All,
114   XFA_ATTRIBUTEENUM_Any,
115   XFA_ATTRIBUTEENUM_ToRight,
116   XFA_ATTRIBUTEENUM_MatchTemplate,
117   XFA_ATTRIBUTEENUM_Dpl,
118   XFA_ATTRIBUTEENUM_Invisible,
119   XFA_ATTRIBUTEENUM_Fit,
120   XFA_ATTRIBUTEENUM_Width,
121   XFA_ATTRIBUTEENUM_PreSubmit,
122   XFA_ATTRIBUTEENUM_Ipl,
123   XFA_ATTRIBUTEENUM_FlateCompress,
124   XFA_ATTRIBUTEENUM_Med,
125   XFA_ATTRIBUTEENUM_Odd,
126   XFA_ATTRIBUTEENUM_Off,
127   XFA_ATTRIBUTEENUM_Pdf,
128   XFA_ATTRIBUTEENUM_Row,
129   XFA_ATTRIBUTEENUM_Top,
130   XFA_ATTRIBUTEENUM_Xdp,
131   XFA_ATTRIBUTEENUM_Xfd,
132   XFA_ATTRIBUTEENUM_Xml,
133   XFA_ATTRIBUTEENUM_Zip,
134   XFA_ATTRIBUTEENUM_Zpl,
135   XFA_ATTRIBUTEENUM_Visible,
136   XFA_ATTRIBUTEENUM_Exclude,
137   XFA_ATTRIBUTEENUM_MouseEnter,
138   XFA_ATTRIBUTEENUM_Pair,
139   XFA_ATTRIBUTEENUM_Filter,
140   XFA_ATTRIBUTEENUM_MoveLast,
141   XFA_ATTRIBUTEENUM_ExportAndImport,
142   XFA_ATTRIBUTEENUM_Push,
143   XFA_ATTRIBUTEENUM_Portrait,
144   XFA_ATTRIBUTEENUM_Default,
145   XFA_ATTRIBUTEENUM_StoredProc,
146   XFA_ATTRIBUTEENUM_StayBOF,
147   XFA_ATTRIBUTEENUM_StayEOF,
148   XFA_ATTRIBUTEENUM_PostPrint,
149   XFA_ATTRIBUTEENUM_UsCarrier,
150   XFA_ATTRIBUTEENUM_Right,
151   XFA_ATTRIBUTEENUM_PreOpen,
152   XFA_ATTRIBUTEENUM_Actual,
153   XFA_ATTRIBUTEENUM_Rest,
154   XFA_ATTRIBUTEENUM_TopCenter,
155   XFA_ATTRIBUTEENUM_StandardSymbol,
156   XFA_ATTRIBUTEENUM_Initialize,
157   XFA_ATTRIBUTEENUM_JustifyAll,
158   XFA_ATTRIBUTEENUM_Normal,
159   XFA_ATTRIBUTEENUM_Landscape,
160   XFA_ATTRIBUTEENUM_NonInteractive,
161   XFA_ATTRIBUTEENUM_MouseExit,
162   XFA_ATTRIBUTEENUM_Minus,
163   XFA_ATTRIBUTEENUM_DiagonalLeft,
164   XFA_ATTRIBUTEENUM_SimplexPaginated,
165   XFA_ATTRIBUTEENUM_Document,
166   XFA_ATTRIBUTEENUM_Warning,
167   XFA_ATTRIBUTEENUM_Auto,
168   XFA_ATTRIBUTEENUM_Below,
169   XFA_ATTRIBUTEENUM_BottomLeft,
170   XFA_ATTRIBUTEENUM_BottomCenter,
171   XFA_ATTRIBUTEENUM_Tcpl,
172   XFA_ATTRIBUTEENUM_Text,
173   XFA_ATTRIBUTEENUM_Grouping,
174   XFA_ATTRIBUTEENUM_SecureSymbol,
175   XFA_ATTRIBUTEENUM_PreExecute,
176   XFA_ATTRIBUTEENUM_DocClose,
177   XFA_ATTRIBUTEENUM_Keyset,
178   XFA_ATTRIBUTEENUM_Vertical,
179   XFA_ATTRIBUTEENUM_PreSave,
180   XFA_ATTRIBUTEENUM_PreSign,
181   XFA_ATTRIBUTEENUM_Bottom,
182   XFA_ATTRIBUTEENUM_ToTop,
183   XFA_ATTRIBUTEENUM_Verify,
184   XFA_ATTRIBUTEENUM_First,
185   XFA_ATTRIBUTEENUM_ContentArea,
186   XFA_ATTRIBUTEENUM_Solid,
187   XFA_ATTRIBUTEENUM_Pessimistic,
188   XFA_ATTRIBUTEENUM_DuplexPaginated,
189   XFA_ATTRIBUTEENUM_Round,
190   XFA_ATTRIBUTEENUM_Remerge,
191   XFA_ATTRIBUTEENUM_Ordered,
192   XFA_ATTRIBUTEENUM_Percent,
193   XFA_ATTRIBUTEENUM_Even,
194   XFA_ATTRIBUTEENUM_Exit,
195   XFA_ATTRIBUTEENUM_ToolTip,
196   XFA_ATTRIBUTEENUM_OrderedOccurrence,
197   XFA_ATTRIBUTEENUM_ReadOnly,
198   XFA_ATTRIBUTEENUM_Currency,
199   XFA_ATTRIBUTEENUM_Concat,
200   XFA_ATTRIBUTEENUM_Thai,
201   XFA_ATTRIBUTEENUM_Embossed,
202   XFA_ATTRIBUTEENUM_Formdata,
203   XFA_ATTRIBUTEENUM_Greek,
204   XFA_ATTRIBUTEENUM_Decimal,
205   XFA_ATTRIBUTEENUM_Select,
206   XFA_ATTRIBUTEENUM_LongEdge,
207   XFA_ATTRIBUTEENUM_Protected,
208   XFA_ATTRIBUTEENUM_BottomRight,
209   XFA_ATTRIBUTEENUM_Zero,
210   XFA_ATTRIBUTEENUM_ForwardOnly,
211   XFA_ATTRIBUTEENUM_DocReady,
212   XFA_ATTRIBUTEENUM_Hidden,
213   XFA_ATTRIBUTEENUM_Include,
214   XFA_ATTRIBUTEENUM_Dashed,
215   XFA_ATTRIBUTEENUM_MultiSelect,
216   XFA_ATTRIBUTEENUM_Inactive,
217   XFA_ATTRIBUTEENUM_Embed,
218   XFA_ATTRIBUTEENUM_Static,
219   XFA_ATTRIBUTEENUM_OnEntry,
220   XFA_ATTRIBUTEENUM_Cyrillic,
221   XFA_ATTRIBUTEENUM_NonBlank,
222   XFA_ATTRIBUTEENUM_TopRight,
223   XFA_ATTRIBUTEENUM_Hebrew,
224   XFA_ATTRIBUTEENUM_TopLeft,
225   XFA_ATTRIBUTEENUM_Center,
226   XFA_ATTRIBUTEENUM_MoveFirst,
227   XFA_ATTRIBUTEENUM_Diamond,
228   XFA_ATTRIBUTEENUM_PageOdd,
229   XFA_ATTRIBUTEENUM_1mod10,
230   XFA_ATTRIBUTEENUM_Korean,
231   XFA_ATTRIBUTEENUM_AboveEmbedded,
232   XFA_ATTRIBUTEENUM_ZipCompress,
233   XFA_ATTRIBUTEENUM_Numeric,
234   XFA_ATTRIBUTEENUM_Circle,
235   XFA_ATTRIBUTEENUM_ToBottom,
236   XFA_ATTRIBUTEENUM_Inverted,
237   XFA_ATTRIBUTEENUM_Update,
238   XFA_ATTRIBUTEENUM_Isoname,
239   XFA_ATTRIBUTEENUM_Server,
240   XFA_ATTRIBUTEENUM_Position,
241   XFA_ATTRIBUTEENUM_MiddleCenter,
242   XFA_ATTRIBUTEENUM_Optional,
243   XFA_ATTRIBUTEENUM_UsePrinterSetting,
244   XFA_ATTRIBUTEENUM_Outline,
245   XFA_ATTRIBUTEENUM_IndexChange,
246   XFA_ATTRIBUTEENUM_Change,
247   XFA_ATTRIBUTEENUM_PageArea,
248   XFA_ATTRIBUTEENUM_Once,
249   XFA_ATTRIBUTEENUM_Only,
250   XFA_ATTRIBUTEENUM_Open,
251   XFA_ATTRIBUTEENUM_Caption,
252   XFA_ATTRIBUTEENUM_Raised,
253   XFA_ATTRIBUTEENUM_Justify,
254   XFA_ATTRIBUTEENUM_RefAndDescendants,
255   XFA_ATTRIBUTEENUM_Short,
256   XFA_ATTRIBUTEENUM_PageFront,
257   XFA_ATTRIBUTEENUM_Monospace,
258   XFA_ATTRIBUTEENUM_Middle,
259   XFA_ATTRIBUTEENUM_PrePrint,
260   XFA_ATTRIBUTEENUM_Always,
261   XFA_ATTRIBUTEENUM_Unknown,
262   XFA_ATTRIBUTEENUM_ToLeft,
263   XFA_ATTRIBUTEENUM_Above,
264   XFA_ATTRIBUTEENUM_DashDot,
265   XFA_ATTRIBUTEENUM_Gregorian,
266   XFA_ATTRIBUTEENUM_Roman,
267   XFA_ATTRIBUTEENUM_MouseDown,
268   XFA_ATTRIBUTEENUM_Symbol,
269   XFA_ATTRIBUTEENUM_PageEven,
270   XFA_ATTRIBUTEENUM_Sign,
271   XFA_ATTRIBUTEENUM_AddNew,
272   XFA_ATTRIBUTEENUM_Star,
273   XFA_ATTRIBUTEENUM_Optimistic,
274   XFA_ATTRIBUTEENUM_Rl_tb,
275   XFA_ATTRIBUTEENUM_MiddleRight,
276   XFA_ATTRIBUTEENUM_Maintain,
277   XFA_ATTRIBUTEENUM_Package,
278   XFA_ATTRIBUTEENUM_SimplifiedChinese,
279   XFA_ATTRIBUTEENUM_ToCenter,
280   XFA_ATTRIBUTEENUM_Back,
281   XFA_ATTRIBUTEENUM_Unspecified,
282   XFA_ATTRIBUTEENUM_BatchOptimistic,
283   XFA_ATTRIBUTEENUM_Bold,
284   XFA_ATTRIBUTEENUM_Both,
285   XFA_ATTRIBUTEENUM_Butt,
286   XFA_ATTRIBUTEENUM_Client,
287   XFA_ATTRIBUTEENUM_2mod10,
288   XFA_ATTRIBUTEENUM_ImageOnly,
289   XFA_ATTRIBUTEENUM_Horizontal,
290   XFA_ATTRIBUTEENUM_Dotted,
291   XFA_ATTRIBUTEENUM_UserControl,
292   XFA_ATTRIBUTEENUM_DiagonalRight,
293   XFA_ATTRIBUTEENUM_ConsumeData,
294   XFA_ATTRIBUTEENUM_Check,
295   XFA_ATTRIBUTEENUM_Data,
296   XFA_ATTRIBUTEENUM_Down,
297   XFA_ATTRIBUTEENUM_SansSerif,
298   XFA_ATTRIBUTEENUM_Inline,
299   XFA_ATTRIBUTEENUM_TraditionalChinese,
300   XFA_ATTRIBUTEENUM_Warn,
301   XFA_ATTRIBUTEENUM_RefOnly,
302   XFA_ATTRIBUTEENUM_InteractiveForms,
303   XFA_ATTRIBUTEENUM_Word,
304   XFA_ATTRIBUTEENUM_Unordered,
305   XFA_ATTRIBUTEENUM_Required,
306   XFA_ATTRIBUTEENUM_ImportOnly,
307   XFA_ATTRIBUTEENUM_BelowEmbedded,
308   XFA_ATTRIBUTEENUM_Japanese,
309   XFA_ATTRIBUTEENUM_Full,
310   XFA_ATTRIBUTEENUM_Rl_row,
311   XFA_ATTRIBUTEENUM_Vietnamese,
312   XFA_ATTRIBUTEENUM_EastEuropeanRoman,
313   XFA_ATTRIBUTEENUM_MouseUp,
314   XFA_ATTRIBUTEENUM_ExportOnly,
315   XFA_ATTRIBUTEENUM_Clear,
316   XFA_ATTRIBUTEENUM_Click,
317   XFA_ATTRIBUTEENUM_Base64,
318   XFA_ATTRIBUTEENUM_Close,
319   XFA_ATTRIBUTEENUM_Host,
320   XFA_ATTRIBUTEENUM_Global,
321   XFA_ATTRIBUTEENUM_Blank,
322   XFA_ATTRIBUTEENUM_Table,
323   XFA_ATTRIBUTEENUM_Import,
324   XFA_ATTRIBUTEENUM_Custom,
325   XFA_ATTRIBUTEENUM_MiddleLeft,
326   XFA_ATTRIBUTEENUM_PostExecute,
327   XFA_ATTRIBUTEENUM_Radix,
328   XFA_ATTRIBUTEENUM_PostOpen,
329   XFA_ATTRIBUTEENUM_Enter,
330   XFA_ATTRIBUTEENUM_Ignore,
331   XFA_ATTRIBUTEENUM_Lr_tb,
332   XFA_ATTRIBUTEENUM_Fantasy,
333   XFA_ATTRIBUTEENUM_Italic,
334   XFA_ATTRIBUTEENUM_Author,
335   XFA_ATTRIBUTEENUM_ToEdge,
336   XFA_ATTRIBUTEENUM_Choice,
337   XFA_ATTRIBUTEENUM_Disabled,
338   XFA_ATTRIBUTEENUM_CrossHatch,
339   XFA_ATTRIBUTEENUM_DataRef,
340   XFA_ATTRIBUTEENUM_DashDotDot,
341   XFA_ATTRIBUTEENUM_Square,
342   XFA_ATTRIBUTEENUM_Dynamic,
343   XFA_ATTRIBUTEENUM_Manual,
344   XFA_ATTRIBUTEENUM_Etched,
345   XFA_ATTRIBUTEENUM_ValidationState,
346   XFA_ATTRIBUTEENUM_Cursive,
347   XFA_ATTRIBUTEENUM_Last,
348   XFA_ATTRIBUTEENUM_Left,
349   XFA_ATTRIBUTEENUM_Link,
350   XFA_ATTRIBUTEENUM_Long,
351   XFA_ATTRIBUTEENUM_InternationalCarrier,
352   XFA_ATTRIBUTEENUM_PDF1_3,
353   XFA_ATTRIBUTEENUM_PDF1_6,
354   XFA_ATTRIBUTEENUM_Serif,
355   XFA_ATTRIBUTEENUM_PostSave,
356   XFA_ATTRIBUTEENUM_Ready,
357   XFA_ATTRIBUTEENUM_PostSign,
358   XFA_ATTRIBUTEENUM_Arabic,
359   XFA_ATTRIBUTEENUM_Error,
360   XFA_ATTRIBUTEENUM_Urlencoded,
361   XFA_ATTRIBUTEENUM_Lowered,
362 };
363 enum XFA_ATTRIBUTE {
364   XFA_ATTRIBUTE_H,
365   XFA_ATTRIBUTE_W,
366   XFA_ATTRIBUTE_X,
367   XFA_ATTRIBUTE_Y,
368   XFA_ATTRIBUTE_Id,
369   XFA_ATTRIBUTE_To,
370   XFA_ATTRIBUTE_LineThrough,
371   XFA_ATTRIBUTE_HAlign,
372   XFA_ATTRIBUTE_Typeface,
373   XFA_ATTRIBUTE_BeforeTarget,
374   XFA_ATTRIBUTE_Name,
375   XFA_ATTRIBUTE_Next,
376   XFA_ATTRIBUTE_DataRowCount,
377   XFA_ATTRIBUTE_Break,
378   XFA_ATTRIBUTE_VScrollPolicy,
379   XFA_ATTRIBUTE_FontHorizontalScale,
380   XFA_ATTRIBUTE_TextIndent,
381   XFA_ATTRIBUTE_Context,
382   XFA_ATTRIBUTE_TrayOut,
383   XFA_ATTRIBUTE_Cap,
384   XFA_ATTRIBUTE_Max,
385   XFA_ATTRIBUTE_Min,
386   XFA_ATTRIBUTE_Ref,
387   XFA_ATTRIBUTE_Rid,
388   XFA_ATTRIBUTE_Url,
389   XFA_ATTRIBUTE_Use,
390   XFA_ATTRIBUTE_LeftInset,
391   XFA_ATTRIBUTE_Widows,
392   XFA_ATTRIBUTE_Level,
393   XFA_ATTRIBUTE_BottomInset,
394   XFA_ATTRIBUTE_OverflowTarget,
395   XFA_ATTRIBUTE_AllowMacro,
396   XFA_ATTRIBUTE_PagePosition,
397   XFA_ATTRIBUTE_ColumnWidths,
398   XFA_ATTRIBUTE_OverflowLeader,
399   XFA_ATTRIBUTE_Action,
400   XFA_ATTRIBUTE_NonRepudiation,
401   XFA_ATTRIBUTE_Rate,
402   XFA_ATTRIBUTE_AllowRichText,
403   XFA_ATTRIBUTE_Role,
404   XFA_ATTRIBUTE_OverflowTrailer,
405   XFA_ATTRIBUTE_Operation,
406   XFA_ATTRIBUTE_Timeout,
407   XFA_ATTRIBUTE_TopInset,
408   XFA_ATTRIBUTE_Access,
409   XFA_ATTRIBUTE_CommandType,
410   XFA_ATTRIBUTE_Format,
411   XFA_ATTRIBUTE_DataPrep,
412   XFA_ATTRIBUTE_WidgetData,
413   XFA_ATTRIBUTE_Abbr,
414   XFA_ATTRIBUTE_MarginRight,
415   XFA_ATTRIBUTE_DataDescription,
416   XFA_ATTRIBUTE_EncipherOnly,
417   XFA_ATTRIBUTE_KerningMode,
418   XFA_ATTRIBUTE_Rotate,
419   XFA_ATTRIBUTE_WordCharacterCount,
420   XFA_ATTRIBUTE_Type,
421   XFA_ATTRIBUTE_Reserve,
422   XFA_ATTRIBUTE_TextLocation,
423   XFA_ATTRIBUTE_Priority,
424   XFA_ATTRIBUTE_Underline,
425   XFA_ATTRIBUTE_ModuleWidth,
426   XFA_ATTRIBUTE_Hyphenate,
427   XFA_ATTRIBUTE_Listen,
428   XFA_ATTRIBUTE_Delimiter,
429   XFA_ATTRIBUTE_ContentType,
430   XFA_ATTRIBUTE_StartNew,
431   XFA_ATTRIBUTE_EofAction,
432   XFA_ATTRIBUTE_AllowNeutral,
433   XFA_ATTRIBUTE_Connection,
434   XFA_ATTRIBUTE_BaselineShift,
435   XFA_ATTRIBUTE_OverlinePeriod,
436   XFA_ATTRIBUTE_FracDigits,
437   XFA_ATTRIBUTE_Orientation,
438   XFA_ATTRIBUTE_TimeStamp,
439   XFA_ATTRIBUTE_PrintCheckDigit,
440   XFA_ATTRIBUTE_MarginLeft,
441   XFA_ATTRIBUTE_Stroke,
442   XFA_ATTRIBUTE_ModuleHeight,
443   XFA_ATTRIBUTE_TransferEncoding,
444   XFA_ATTRIBUTE_Usage,
445   XFA_ATTRIBUTE_Presence,
446   XFA_ATTRIBUTE_RadixOffset,
447   XFA_ATTRIBUTE_Preserve,
448   XFA_ATTRIBUTE_AliasNode,
449   XFA_ATTRIBUTE_MultiLine,
450   XFA_ATTRIBUTE_Version,
451   XFA_ATTRIBUTE_StartChar,
452   XFA_ATTRIBUTE_ScriptTest,
453   XFA_ATTRIBUTE_StartAngle,
454   XFA_ATTRIBUTE_CursorType,
455   XFA_ATTRIBUTE_DigitalSignature,
456   XFA_ATTRIBUTE_CodeType,
457   XFA_ATTRIBUTE_Output,
458   XFA_ATTRIBUTE_BookendTrailer,
459   XFA_ATTRIBUTE_ImagingBBox,
460   XFA_ATTRIBUTE_ExcludeInitialCap,
461   XFA_ATTRIBUTE_Force,
462   XFA_ATTRIBUTE_CrlSign,
463   XFA_ATTRIBUTE_Previous,
464   XFA_ATTRIBUTE_PushCharacterCount,
465   XFA_ATTRIBUTE_NullTest,
466   XFA_ATTRIBUTE_RunAt,
467   XFA_ATTRIBUTE_SpaceBelow,
468   XFA_ATTRIBUTE_SweepAngle,
469   XFA_ATTRIBUTE_NumberOfCells,
470   XFA_ATTRIBUTE_LetterSpacing,
471   XFA_ATTRIBUTE_LockType,
472   XFA_ATTRIBUTE_PasswordChar,
473   XFA_ATTRIBUTE_VAlign,
474   XFA_ATTRIBUTE_SourceBelow,
475   XFA_ATTRIBUTE_Inverted,
476   XFA_ATTRIBUTE_Mark,
477   XFA_ATTRIBUTE_MaxH,
478   XFA_ATTRIBUTE_MaxW,
479   XFA_ATTRIBUTE_Truncate,
480   XFA_ATTRIBUTE_MinH,
481   XFA_ATTRIBUTE_MinW,
482   XFA_ATTRIBUTE_Initial,
483   XFA_ATTRIBUTE_Mode,
484   XFA_ATTRIBUTE_Layout,
485   XFA_ATTRIBUTE_Server,
486   XFA_ATTRIBUTE_EmbedPDF,
487   XFA_ATTRIBUTE_OddOrEven,
488   XFA_ATTRIBUTE_TabDefault,
489   XFA_ATTRIBUTE_Contains,
490   XFA_ATTRIBUTE_RightInset,
491   XFA_ATTRIBUTE_MaxChars,
492   XFA_ATTRIBUTE_Open,
493   XFA_ATTRIBUTE_Relation,
494   XFA_ATTRIBUTE_WideNarrowRatio,
495   XFA_ATTRIBUTE_Relevant,
496   XFA_ATTRIBUTE_SignatureType,
497   XFA_ATTRIBUTE_LineThroughPeriod,
498   XFA_ATTRIBUTE_Shape,
499   XFA_ATTRIBUTE_TabStops,
500   XFA_ATTRIBUTE_OutputBelow,
501   XFA_ATTRIBUTE_Short,
502   XFA_ATTRIBUTE_FontVerticalScale,
503   XFA_ATTRIBUTE_Thickness,
504   XFA_ATTRIBUTE_CommitOn,
505   XFA_ATTRIBUTE_RemainCharacterCount,
506   XFA_ATTRIBUTE_KeyAgreement,
507   XFA_ATTRIBUTE_ErrorCorrectionLevel,
508   XFA_ATTRIBUTE_UpsMode,
509   XFA_ATTRIBUTE_MergeMode,
510   XFA_ATTRIBUTE_Circular,
511   XFA_ATTRIBUTE_PsName,
512   XFA_ATTRIBUTE_Trailer,
513   XFA_ATTRIBUTE_UnicodeRange,
514   XFA_ATTRIBUTE_ExecuteType,
515   XFA_ATTRIBUTE_DuplexImposition,
516   XFA_ATTRIBUTE_TrayIn,
517   XFA_ATTRIBUTE_BindingNode,
518   XFA_ATTRIBUTE_BofAction,
519   XFA_ATTRIBUTE_Save,
520   XFA_ATTRIBUTE_TargetType,
521   XFA_ATTRIBUTE_KeyEncipherment,
522   XFA_ATTRIBUTE_CredentialServerPolicy,
523   XFA_ATTRIBUTE_Size,
524   XFA_ATTRIBUTE_InitialNumber,
525   XFA_ATTRIBUTE_Slope,
526   XFA_ATTRIBUTE_CSpace,
527   XFA_ATTRIBUTE_ColSpan,
528   XFA_ATTRIBUTE_Binding,
529   XFA_ATTRIBUTE_Checksum,
530   XFA_ATTRIBUTE_CharEncoding,
531   XFA_ATTRIBUTE_Bind,
532   XFA_ATTRIBUTE_TextEntry,
533   XFA_ATTRIBUTE_Archive,
534   XFA_ATTRIBUTE_Uuid,
535   XFA_ATTRIBUTE_Posture,
536   XFA_ATTRIBUTE_After,
537   XFA_ATTRIBUTE_Orphans,
538   XFA_ATTRIBUTE_QualifiedName,
539   XFA_ATTRIBUTE_Usehref,
540   XFA_ATTRIBUTE_Locale,
541   XFA_ATTRIBUTE_Weight,
542   XFA_ATTRIBUTE_UnderlinePeriod,
543   XFA_ATTRIBUTE_Data,
544   XFA_ATTRIBUTE_Desc,
545   XFA_ATTRIBUTE_Numbered,
546   XFA_ATTRIBUTE_DataColumnCount,
547   XFA_ATTRIBUTE_Overline,
548   XFA_ATTRIBUTE_UrlPolicy,
549   XFA_ATTRIBUTE_AnchorType,
550   XFA_ATTRIBUTE_LabelRef,
551   XFA_ATTRIBUTE_BookendLeader,
552   XFA_ATTRIBUTE_MaxLength,
553   XFA_ATTRIBUTE_AccessKey,
554   XFA_ATTRIBUTE_CursorLocation,
555   XFA_ATTRIBUTE_DelayedOpen,
556   XFA_ATTRIBUTE_Target,
557   XFA_ATTRIBUTE_DataEncipherment,
558   XFA_ATTRIBUTE_AfterTarget,
559   XFA_ATTRIBUTE_Leader,
560   XFA_ATTRIBUTE_Picker,
561   XFA_ATTRIBUTE_From,
562   XFA_ATTRIBUTE_BaseProfile,
563   XFA_ATTRIBUTE_Aspect,
564   XFA_ATTRIBUTE_RowColumnRatio,
565   XFA_ATTRIBUTE_LineHeight,
566   XFA_ATTRIBUTE_Highlight,
567   XFA_ATTRIBUTE_ValueRef,
568   XFA_ATTRIBUTE_MaxEntries,
569   XFA_ATTRIBUTE_DataLength,
570   XFA_ATTRIBUTE_Activity,
571   XFA_ATTRIBUTE_Input,
572   XFA_ATTRIBUTE_Value,
573   XFA_ATTRIBUTE_BlankOrNotBlank,
574   XFA_ATTRIBUTE_AddRevocationInfo,
575   XFA_ATTRIBUTE_GenericFamily,
576   XFA_ATTRIBUTE_Hand,
577   XFA_ATTRIBUTE_Href,
578   XFA_ATTRIBUTE_TextEncoding,
579   XFA_ATTRIBUTE_LeadDigits,
580   XFA_ATTRIBUTE_Permissions,
581   XFA_ATTRIBUTE_SpaceAbove,
582   XFA_ATTRIBUTE_CodeBase,
583   XFA_ATTRIBUTE_Stock,
584   XFA_ATTRIBUTE_IsNull,
585   XFA_ATTRIBUTE_RestoreState,
586   XFA_ATTRIBUTE_ExcludeAllCaps,
587   XFA_ATTRIBUTE_FormatTest,
588   XFA_ATTRIBUTE_HScrollPolicy,
589   XFA_ATTRIBUTE_Join,
590   XFA_ATTRIBUTE_KeyCertSign,
591   XFA_ATTRIBUTE_Radius,
592   XFA_ATTRIBUTE_SourceAbove,
593   XFA_ATTRIBUTE_Override,
594   XFA_ATTRIBUTE_ClassId,
595   XFA_ATTRIBUTE_Disable,
596   XFA_ATTRIBUTE_Scope,
597   XFA_ATTRIBUTE_Match,
598   XFA_ATTRIBUTE_Placement,
599   XFA_ATTRIBUTE_Before,
600   XFA_ATTRIBUTE_WritingScript,
601   XFA_ATTRIBUTE_EndChar,
602   XFA_ATTRIBUTE_Lock,
603   XFA_ATTRIBUTE_Long,
604   XFA_ATTRIBUTE_Intact,
605   XFA_ATTRIBUTE_XdpContent,
606   XFA_ATTRIBUTE_DecipherOnly,
607 };
608 enum XFA_ELEMENT {
609   XFA_ELEMENT_Ps,
610   XFA_ELEMENT_To,
611   XFA_ELEMENT_Ui,
612   XFA_ELEMENT_RecordSet,
613   XFA_ELEMENT_SubsetBelow,
614   XFA_ELEMENT_SubformSet,
615   XFA_ELEMENT_AdobeExtensionLevel,
616   XFA_ELEMENT_Typeface,
617   XFA_ELEMENT_Break,
618   XFA_ELEMENT_FontInfo,
619   XFA_ELEMENT_NumberPattern,
620   XFA_ELEMENT_DynamicRender,
621   XFA_ELEMENT_PrintScaling,
622   XFA_ELEMENT_CheckButton,
623   XFA_ELEMENT_DatePatterns,
624   XFA_ELEMENT_SourceSet,
625   XFA_ELEMENT_Amd,
626   XFA_ELEMENT_Arc,
627   XFA_ELEMENT_Day,
628   XFA_ELEMENT_Era,
629   XFA_ELEMENT_Jog,
630   XFA_ELEMENT_Log,
631   XFA_ELEMENT_Map,
632   XFA_ELEMENT_Mdp,
633   XFA_ELEMENT_BreakBefore,
634   XFA_ELEMENT_Oid,
635   XFA_ELEMENT_Pcl,
636   XFA_ELEMENT_Pdf,
637   XFA_ELEMENT_Ref,
638   XFA_ELEMENT_Uri,
639   XFA_ELEMENT_Xdc,
640   XFA_ELEMENT_Xdp,
641   XFA_ELEMENT_Xfa,
642   XFA_ELEMENT_Xsl,
643   XFA_ELEMENT_Zpl,
644   XFA_ELEMENT_Cache,
645   XFA_ELEMENT_Margin,
646   XFA_ELEMENT_KeyUsage,
647   XFA_ELEMENT_Exclude,
648   XFA_ELEMENT_ChoiceList,
649   XFA_ELEMENT_Level,
650   XFA_ELEMENT_LabelPrinter,
651   XFA_ELEMENT_CalendarSymbols,
652   XFA_ELEMENT_Para,
653   XFA_ELEMENT_Part,
654   XFA_ELEMENT_Pdfa,
655   XFA_ELEMENT_Filter,
656   XFA_ELEMENT_Present,
657   XFA_ELEMENT_Pagination,
658   XFA_ELEMENT_Encoding,
659   XFA_ELEMENT_Event,
660   XFA_ELEMENT_Whitespace,
661   XFA_ELEMENT_DefaultUi,
662   XFA_ELEMENT_DataModel,
663   XFA_ELEMENT_Barcode,
664   XFA_ELEMENT_TimePattern,
665   XFA_ELEMENT_BatchOutput,
666   XFA_ELEMENT_Enforce,
667   XFA_ELEMENT_CurrencySymbols,
668   XFA_ELEMENT_AddSilentPrint,
669   XFA_ELEMENT_Rename,
670   XFA_ELEMENT_Operation,
671   XFA_ELEMENT_Typefaces,
672   XFA_ELEMENT_SubjectDNs,
673   XFA_ELEMENT_Issuers,
674   XFA_ELEMENT_SignaturePseudoModel,
675   XFA_ELEMENT_WsdlConnection,
676   XFA_ELEMENT_Debug,
677   XFA_ELEMENT_Delta,
678   XFA_ELEMENT_EraNames,
679   XFA_ELEMENT_ModifyAnnots,
680   XFA_ELEMENT_StartNode,
681   XFA_ELEMENT_Button,
682   XFA_ELEMENT_Format,
683   XFA_ELEMENT_Border,
684   XFA_ELEMENT_Area,
685   XFA_ELEMENT_Hyphenation,
686   XFA_ELEMENT_Text,
687   XFA_ELEMENT_Time,
688   XFA_ELEMENT_Type,
689   XFA_ELEMENT_Overprint,
690   XFA_ELEMENT_Certificates,
691   XFA_ELEMENT_EncryptionMethods,
692   XFA_ELEMENT_SetProperty,
693   XFA_ELEMENT_PrinterName,
694   XFA_ELEMENT_StartPage,
695   XFA_ELEMENT_PageOffset,
696   XFA_ELEMENT_DateTime,
697   XFA_ELEMENT_Comb,
698   XFA_ELEMENT_Pattern,
699   XFA_ELEMENT_IfEmpty,
700   XFA_ELEMENT_SuppressBanner,
701   XFA_ELEMENT_OutputBin,
702   XFA_ELEMENT_Field,
703   XFA_ELEMENT_Agent,
704   XFA_ELEMENT_OutputXSL,
705   XFA_ELEMENT_AdjustData,
706   XFA_ELEMENT_AutoSave,
707   XFA_ELEMENT_ContentArea,
708   XFA_ELEMENT_EventPseudoModel,
709   XFA_ELEMENT_WsdlAddress,
710   XFA_ELEMENT_Solid,
711   XFA_ELEMENT_DateTimeSymbols,
712   XFA_ELEMENT_EncryptionLevel,
713   XFA_ELEMENT_Edge,
714   XFA_ELEMENT_Stipple,
715   XFA_ELEMENT_Attributes,
716   XFA_ELEMENT_VersionControl,
717   XFA_ELEMENT_Meridiem,
718   XFA_ELEMENT_ExclGroup,
719   XFA_ELEMENT_ToolTip,
720   XFA_ELEMENT_Compress,
721   XFA_ELEMENT_Reason,
722   XFA_ELEMENT_Execute,
723   XFA_ELEMENT_ContentCopy,
724   XFA_ELEMENT_DateTimeEdit,
725   XFA_ELEMENT_Config,
726   XFA_ELEMENT_Image,
727   XFA_ELEMENT_SharpxHTML,
728   XFA_ELEMENT_NumberOfCopies,
729   XFA_ELEMENT_BehaviorOverride,
730   XFA_ELEMENT_TimeStamp,
731   XFA_ELEMENT_Month,
732   XFA_ELEMENT_ViewerPreferences,
733   XFA_ELEMENT_ScriptModel,
734   XFA_ELEMENT_Decimal,
735   XFA_ELEMENT_Subform,
736   XFA_ELEMENT_Select,
737   XFA_ELEMENT_Window,
738   XFA_ELEMENT_LocaleSet,
739   XFA_ELEMENT_Handler,
740   XFA_ELEMENT_HostPseudoModel,
741   XFA_ELEMENT_Presence,
742   XFA_ELEMENT_Record,
743   XFA_ELEMENT_Embed,
744   XFA_ELEMENT_Version,
745   XFA_ELEMENT_Command,
746   XFA_ELEMENT_Copies,
747   XFA_ELEMENT_Staple,
748   XFA_ELEMENT_SubmitFormat,
749   XFA_ELEMENT_Boolean,
750   XFA_ELEMENT_Message,
751   XFA_ELEMENT_Output,
752   XFA_ELEMENT_PsMap,
753   XFA_ELEMENT_ExcludeNS,
754   XFA_ELEMENT_Assist,
755   XFA_ELEMENT_Picture,
756   XFA_ELEMENT_Traversal,
757   XFA_ELEMENT_SilentPrint,
758   XFA_ELEMENT_WebClient,
759   XFA_ELEMENT_LayoutPseudoModel,
760   XFA_ELEMENT_Producer,
761   XFA_ELEMENT_Corner,
762   XFA_ELEMENT_MsgId,
763   XFA_ELEMENT_Color,
764   XFA_ELEMENT_Keep,
765   XFA_ELEMENT_Query,
766   XFA_ELEMENT_Insert,
767   XFA_ELEMENT_ImageEdit,
768   XFA_ELEMENT_Validate,
769   XFA_ELEMENT_DigestMethods,
770   XFA_ELEMENT_NumberPatterns,
771   XFA_ELEMENT_PageSet,
772   XFA_ELEMENT_Integer,
773   XFA_ELEMENT_SoapAddress,
774   XFA_ELEMENT_Equate,
775   XFA_ELEMENT_FormFieldFilling,
776   XFA_ELEMENT_PageRange,
777   XFA_ELEMENT_Update,
778   XFA_ELEMENT_ConnectString,
779   XFA_ELEMENT_Mode,
780   XFA_ELEMENT_Layout,
781   XFA_ELEMENT_Sharpxml,
782   XFA_ELEMENT_XsdConnection,
783   XFA_ELEMENT_Traverse,
784   XFA_ELEMENT_Encodings,
785   XFA_ELEMENT_Template,
786   XFA_ELEMENT_Acrobat,
787   XFA_ELEMENT_ValidationMessaging,
788   XFA_ELEMENT_Signing,
789   XFA_ELEMENT_DataWindow,
790   XFA_ELEMENT_Script,
791   XFA_ELEMENT_AddViewerPreferences,
792   XFA_ELEMENT_AlwaysEmbed,
793   XFA_ELEMENT_PasswordEdit,
794   XFA_ELEMENT_NumericEdit,
795   XFA_ELEMENT_EncryptionMethod,
796   XFA_ELEMENT_Change,
797   XFA_ELEMENT_PageArea,
798   XFA_ELEMENT_SubmitUrl,
799   XFA_ELEMENT_Oids,
800   XFA_ELEMENT_Signature,
801   XFA_ELEMENT_ADBE_JSConsole,
802   XFA_ELEMENT_Caption,
803   XFA_ELEMENT_Relevant,
804   XFA_ELEMENT_FlipLabel,
805   XFA_ELEMENT_ExData,
806   XFA_ELEMENT_DayNames,
807   XFA_ELEMENT_SoapAction,
808   XFA_ELEMENT_DefaultTypeface,
809   XFA_ELEMENT_Manifest,
810   XFA_ELEMENT_Overflow,
811   XFA_ELEMENT_Linear,
812   XFA_ELEMENT_CurrencySymbol,
813   XFA_ELEMENT_Delete,
814   XFA_ELEMENT_Deltas,
815   XFA_ELEMENT_DigestMethod,
816   XFA_ELEMENT_InstanceManager,
817   XFA_ELEMENT_EquateRange,
818   XFA_ELEMENT_Medium,
819   XFA_ELEMENT_TextEdit,
820   XFA_ELEMENT_TemplateCache,
821   XFA_ELEMENT_CompressObjectStream,
822   XFA_ELEMENT_DataValue,
823   XFA_ELEMENT_AccessibleContent,
824   XFA_ELEMENT_NodeList,
825   XFA_ELEMENT_IncludeXDPContent,
826   XFA_ELEMENT_XmlConnection,
827   XFA_ELEMENT_ValidateApprovalSignatures,
828   XFA_ELEMENT_SignData,
829   XFA_ELEMENT_Packets,
830   XFA_ELEMENT_DatePattern,
831   XFA_ELEMENT_DuplexOption,
832   XFA_ELEMENT_Base,
833   XFA_ELEMENT_Bind,
834   XFA_ELEMENT_Compression,
835   XFA_ELEMENT_User,
836   XFA_ELEMENT_Rectangle,
837   XFA_ELEMENT_EffectiveOutputPolicy,
838   XFA_ELEMENT_ADBE_JSDebugger,
839   XFA_ELEMENT_Acrobat7,
840   XFA_ELEMENT_Interactive,
841   XFA_ELEMENT_Locale,
842   XFA_ELEMENT_CurrentPage,
843   XFA_ELEMENT_Data,
844   XFA_ELEMENT_Date,
845   XFA_ELEMENT_Desc,
846   XFA_ELEMENT_Encrypt,
847   XFA_ELEMENT_Draw,
848   XFA_ELEMENT_Encryption,
849   XFA_ELEMENT_MeridiemNames,
850   XFA_ELEMENT_Messaging,
851   XFA_ELEMENT_Speak,
852   XFA_ELEMENT_DataGroup,
853   XFA_ELEMENT_Common,
854   XFA_ELEMENT_Sharptext,
855   XFA_ELEMENT_PaginationOverride,
856   XFA_ELEMENT_Reasons,
857   XFA_ELEMENT_SignatureProperties,
858   XFA_ELEMENT_Threshold,
859   XFA_ELEMENT_AppearanceFilter,
860   XFA_ELEMENT_Fill,
861   XFA_ELEMENT_Font,
862   XFA_ELEMENT_Form,
863   XFA_ELEMENT_MediumInfo,
864   XFA_ELEMENT_Certificate,
865   XFA_ELEMENT_Password,
866   XFA_ELEMENT_RunScripts,
867   XFA_ELEMENT_Trace,
868   XFA_ELEMENT_Float,
869   XFA_ELEMENT_RenderPolicy,
870   XFA_ELEMENT_LogPseudoModel,
871   XFA_ELEMENT_Destination,
872   XFA_ELEMENT_Value,
873   XFA_ELEMENT_Bookend,
874   XFA_ELEMENT_ExObject,
875   XFA_ELEMENT_OpenAction,
876   XFA_ELEMENT_NeverEmbed,
877   XFA_ELEMENT_BindItems,
878   XFA_ELEMENT_Calculate,
879   XFA_ELEMENT_Print,
880   XFA_ELEMENT_Extras,
881   XFA_ELEMENT_Proto,
882   XFA_ELEMENT_DSigData,
883   XFA_ELEMENT_Creator,
884   XFA_ELEMENT_Connect,
885   XFA_ELEMENT_Permissions,
886   XFA_ELEMENT_ConnectionSet,
887   XFA_ELEMENT_Submit,
888   XFA_ELEMENT_Range,
889   XFA_ELEMENT_Linearized,
890   XFA_ELEMENT_Packet,
891   XFA_ELEMENT_RootElement,
892   XFA_ELEMENT_PlaintextMetadata,
893   XFA_ELEMENT_NumberSymbols,
894   XFA_ELEMENT_PrintHighQuality,
895   XFA_ELEMENT_Driver,
896   XFA_ELEMENT_IncrementalLoad,
897   XFA_ELEMENT_SubjectDN,
898   XFA_ELEMENT_CompressLogicalStructure,
899   XFA_ELEMENT_IncrementalMerge,
900   XFA_ELEMENT_Radial,
901   XFA_ELEMENT_Variables,
902   XFA_ELEMENT_TimePatterns,
903   XFA_ELEMENT_EffectiveInputPolicy,
904   XFA_ELEMENT_NameAttr,
905   XFA_ELEMENT_Conformance,
906   XFA_ELEMENT_Transform,
907   XFA_ELEMENT_LockDocument,
908   XFA_ELEMENT_BreakAfter,
909   XFA_ELEMENT_Line,
910   XFA_ELEMENT_List,
911   XFA_ELEMENT_Source,
912   XFA_ELEMENT_Occur,
913   XFA_ELEMENT_PickTrayByPDFSize,
914   XFA_ELEMENT_MonthNames,
915   XFA_ELEMENT_Severity,
916   XFA_ELEMENT_GroupParent,
917   XFA_ELEMENT_DocumentAssembly,
918   XFA_ELEMENT_NumberSymbol,
919   XFA_ELEMENT_Tagged,
920   XFA_ELEMENT_Items,
921 };
922 #define XFA_ELEMENT_UNKNOWN ((XFA_ELEMENT)-1)
923 typedef struct _XFA_ELEMENTINFO {
924   uint32_t uHash;
925   const FX_WCHAR* pName;
926   XFA_ELEMENT eName;
927   FX_DWORD dwPackets;
928   FX_DWORD eObjectType;
929 } XFA_ELEMENTINFO, *XFA_LPELEMENTINFO;
930 typedef XFA_ELEMENTINFO const* XFA_LPCELEMENTINFO;
931 int32_t XFA_GetElementCount();
932 XFA_LPCELEMENTINFO XFA_GetElementByName(const CFX_WideStringC& wsName);
933 XFA_LPCELEMENTINFO XFA_GetElementByID(XFA_ELEMENT eName);
934 enum XFA_ATTRIBUTETYPE {
935   XFA_ATTRIBUTETYPE_NOTSURE,
936   XFA_ATTRIBUTETYPE_Enum,
937   XFA_ATTRIBUTETYPE_Cdata,
938   XFA_ATTRIBUTETYPE_Boolean,
939   XFA_ATTRIBUTETYPE_Integer,
940   XFA_ATTRIBUTETYPE_Measure,
941 };
942 typedef struct _XFA_ATTRIBUTEINFO {
943   uint32_t uHash;
944   const FX_WCHAR* pName;
945   XFA_ATTRIBUTE eName;
946   XFA_ATTRIBUTETYPE eType;
947   FX_DWORD dwPackets;
948   void* pDefValue;
949 } XFA_ATTRIBUTEINFO, *XFA_LPATTRIBUTEINFO;
950 typedef XFA_ATTRIBUTEINFO const* XFA_LPCATTRIBUTEINFO;
951 int32_t XFA_GetAttributeCount();
952 XFA_LPCATTRIBUTEINFO XFA_GetAttributeByName(const CFX_WideStringC& wsName);
953 XFA_LPCATTRIBUTEINFO XFA_GetAttributeByID(XFA_ATTRIBUTE eName);
954 FX_BOOL XFA_GetAttributeDefaultValue(void*& pValue,
955                                      XFA_ELEMENT eElement,
956                                      XFA_ATTRIBUTE eAttribute,
957                                      XFA_ATTRIBUTETYPE eType,
958                                      FX_DWORD dwPacket);
959 XFA_ATTRIBUTEENUM XFA_GetAttributeDefaultValue_Enum(XFA_ELEMENT eElement,
960                                                     XFA_ATTRIBUTE eAttribute,
961                                                     FX_DWORD dwPacket);
962 CFX_WideStringC XFA_GetAttributeDefaultValue_Cdata(XFA_ELEMENT eElement,
963                                                    XFA_ATTRIBUTE eAttribute,
964                                                    FX_DWORD dwPacket);
965 FX_BOOL XFA_GetAttributeDefaultValue_Boolean(XFA_ELEMENT eElement,
966                                              XFA_ATTRIBUTE eAttribute,
967                                              FX_DWORD dwPacket);
968 int32_t XFA_GetAttributeDefaultValue_Integer(XFA_ELEMENT eElement,
969                                              XFA_ATTRIBUTE eAttribute,
970                                              FX_DWORD dwPacket);
971 CXFA_Measurement XFA_GetAttributeDefaultValue_Measure(XFA_ELEMENT eElement,
972                                                       XFA_ATTRIBUTE eAttribute,
973                                                       FX_DWORD dwPacket);
974 typedef struct _XFA_ELEMENTHIERARCHY {
975   FX_WORD wStart;
976   FX_WORD wCount;
977   FX_WORD wParentIndex;
978 } XFA_ELEMENTHIERARCHY, *XFA_LPELEMENTHIERARCHY;
979 typedef XFA_ELEMENTHIERARCHY const* XFA_LPCELEMENTHIERARCHY;
980 typedef struct _XFA_SCRIPTHIERARCHY {
981   FX_WORD wMethodStart;
982   FX_WORD wMethodCount;
983   FX_WORD wAttributeStart;
984   FX_WORD wAttributeCount;
985   int16_t wParentIndex;
986 } XFA_SCRIPTHIERARCHY, *XFA_LPSCRIPTHIERARCHY;
987 typedef XFA_SCRIPTHIERARCHY const* XFA_LPCSCRIPTHIERARCHY;
988 const FX_WORD* XFA_GetElementChildren(XFA_ELEMENT eElement, int32_t& iCount);
989 const uint8_t* XFA_GetElementAttributes(XFA_ELEMENT eElement, int32_t& iCount);
990 XFA_LPCELEMENTINFO XFA_GetChildOfElement(XFA_ELEMENT eElement,
991                                          XFA_ELEMENT eChild,
992                                          FX_DWORD dwPacket);
993 XFA_LPCATTRIBUTEINFO XFA_GetAttributeOfElement(XFA_ELEMENT eElement,
994                                                XFA_ATTRIBUTE eAttribute,
995                                                FX_DWORD dwPacket);
996 #define XFA_PROPERTYFLAG_OneOf 0x01
997 #define XFA_PROPERTYFLAG_DefaultOneOf 0x02
998 typedef struct _XFA_PROPERTY {
999   FX_WORD eName;
1000   uint8_t uOccur;
1001   uint8_t uFlags;
1002 } XFA_PROPERTY, *XFA_LPPROPERTY;
1003 typedef XFA_PROPERTY const* XFA_LPCPROPERTY;
1004 XFA_LPCPROPERTY XFA_GetElementProperties(XFA_ELEMENT eElement, int32_t& iCount);
1005 XFA_LPCPROPERTY XFA_GetPropertyOfElement(XFA_ELEMENT eElement,
1006                                          XFA_ELEMENT eProperty,
1007                                          FX_DWORD dwPacket);
1008 typedef struct _XFA_ATTRIBUTEENUMINFO {
1009   uint32_t uHash;
1010   const FX_WCHAR* pName;
1011   XFA_ATTRIBUTEENUM eName;
1012 } XFA_ATTRIBUTEENUMINFO, *XFA_LPATTRIBUTEENUMINFO;
1013 typedef XFA_ATTRIBUTEENUMINFO const* XFA_LPCATTRIBUTEENUMINFO;
1014 XFA_LPCATTRIBUTEENUMINFO XFA_GetAttributeEnumByName(
1015     const CFX_WideStringC& wsName);
1016 XFA_LPCATTRIBUTEENUMINFO XFA_GetAttributeEnumByID(XFA_ATTRIBUTEENUM eName);
1017 enum XFA_UNIT {
1018   XFA_UNIT_Unknown,
1019   XFA_UNIT_Percent,
1020   XFA_UNIT_Angle,
1021   XFA_UNIT_Em,
1022   XFA_UNIT_Pt,
1023   XFA_UNIT_In,
1024   XFA_UNIT_Pc,
1025   XFA_UNIT_Cm,
1026   XFA_UNIT_Mm,
1027   XFA_UNIT_Mp,
1028 };
1029 class CXFA_Measurement {
1030  public:
1031   void Set(const CFX_WideStringC& wsMeasure);
Set(FX_FLOAT fValue,XFA_UNIT eUnit)1032   void Set(FX_FLOAT fValue, XFA_UNIT eUnit) {
1033     m_fValue = fValue;
1034     m_eUnit = eUnit;
1035   }
1036 
GetUnit()1037   XFA_UNIT GetUnit() const { return m_eUnit; }
GetValue()1038   FX_FLOAT GetValue() const { return m_fValue; }
1039   FX_BOOL ToString(CFX_WideString& wsMeasure) const;
1040   FX_BOOL ToUnit(XFA_UNIT eUnit, FX_FLOAT& fValue) const;
ToUnit(XFA_UNIT eUnit)1041   FX_FLOAT ToUnit(XFA_UNIT eUnit) const {
1042     FX_FLOAT f;
1043     return ToUnit(eUnit, f) ? f : 0;
1044   }
CXFA_Measurement()1045   CXFA_Measurement() { Set(-1, XFA_UNIT_Unknown); }
CXFA_Measurement(const CFX_WideStringC & wsMeasure)1046   CXFA_Measurement(const CFX_WideStringC& wsMeasure) { Set(wsMeasure); }
CXFA_Measurement(FX_FLOAT fValue,XFA_UNIT eUnit)1047   CXFA_Measurement(FX_FLOAT fValue, XFA_UNIT eUnit) { Set(fValue, eUnit); }
1048   static XFA_UNIT GetUnit(const CFX_WideStringC& wsUnit);
1049 
1050  protected:
1051   FX_FLOAT m_fValue;
1052   XFA_UNIT m_eUnit;
1053 };
1054 class CFXJSE_Arguments;
1055 class CXFA_Object;
1056 typedef void (CXFA_Object::*XFA_METHOD_CALLBACK)(CFXJSE_Arguments* pArguments);
1057 typedef struct _XFA_METHODINFO {
1058   uint32_t uHash;
1059   const FX_WCHAR* pName;
1060   XFA_METHOD_CALLBACK lpfnCallback;
1061 } XFA_METHODINFO, *XFA_LPMETHODINFO;
1062 typedef XFA_METHODINFO const* XFA_LPCMETHODINFO;
1063 int32_t XFA_GetMethodCount();
1064 XFA_LPCMETHODINFO XFA_GetMethodByName(XFA_ELEMENT eElement,
1065                                       const CFX_WideStringC& wsMethodName);
1066 typedef void (CXFA_Object::*XFA_ATTRIBUTE_CALLBACK)(FXJSE_HVALUE hValue,
1067                                                     FX_BOOL bSetting,
1068                                                     XFA_ATTRIBUTE eAttribute);
1069 enum XFA_SCRIPT_TYPE {
1070   XFA_SCRIPT_Basic,
1071   XFA_SCRIPT_Object,
1072 };
1073 typedef struct _XFA_SCRIPTATTRIBUTEINFO {
1074   uint32_t uHash;
1075   const FX_WCHAR* pName;
1076   XFA_ATTRIBUTE_CALLBACK lpfnCallback;
1077   int32_t eAttribute;
1078   FX_WORD eValueType;
1079 } XFA_SCRIPTATTRIBUTEINFO, *XFA_LPSCRIPTATTRIBUTEINFO;
1080 typedef XFA_SCRIPTATTRIBUTEINFO const* XFA_LPCSCRIPTATTRIBUTEINFO;
1081 XFA_LPCSCRIPTATTRIBUTEINFO XFA_GetScriptAttributeByName(
1082     XFA_ELEMENT eElement,
1083     const CFX_WideStringC& wsAttributeName);
1084 #endif
1085