OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #ifndef _FXJSE_H_ | 7 #ifndef _FXJSE_H_ |
8 #define _FXJSE_H_ | 8 #define _FXJSE_H_ |
9 | 9 |
10 typedef struct FXJSE_HRUNTIME_ { | 10 typedef struct FXJSE_HRUNTIME_ { |
(...skipping 23 matching lines...) Expand all Loading... |
34 FXJSE_HRUNTIME FXJSE_Context_GetRuntime(FXJSE_HCONTEXT hContext); | 34 FXJSE_HRUNTIME FXJSE_Context_GetRuntime(FXJSE_HCONTEXT hContext); |
35 enum FXJSE_CompatibleModeFlags { | 35 enum FXJSE_CompatibleModeFlags { |
36 FXJSE_COMPATIBLEMODEFLAG_CONSTRUCTOREXTRAMETHODS = (1 << 0), | 36 FXJSE_COMPATIBLEMODEFLAG_CONSTRUCTOREXTRAMETHODS = (1 << 0), |
37 FXJSE_COMPATIBLEMODEFLAGCOUNT = 1, | 37 FXJSE_COMPATIBLEMODEFLAGCOUNT = 1, |
38 }; | 38 }; |
39 void FXJSE_Context_EnableCompatibleMode(FXJSE_HCONTEXT hConte
xt, FX_DWORD dwCompatibleFlags); | 39 void FXJSE_Context_EnableCompatibleMode(FXJSE_HCONTEXT hConte
xt, FX_DWORD dwCompatibleFlags); |
40 class CFXJSE_Arguments | 40 class CFXJSE_Arguments |
41 { | 41 { |
42 public: | 42 public: |
43 FXJSE_HRUNTIME GetRuntime() const; | 43 FXJSE_HRUNTIME GetRuntime() const; |
44 FX_INT32» » GetLength() const; | 44 int32_t» » GetLength() const; |
45 FXJSE_HVALUE» GetValue(FX_INT32 index) const; | 45 FXJSE_HVALUE» GetValue(int32_t index) const; |
46 FX_BOOL» » » GetBoolean(FX_INT32 index) const; | 46 FX_BOOL» » » GetBoolean(int32_t index) const; |
47 FX_INT32» » GetInt32(FX_INT32 index) const; | 47 int32_t» » GetInt32(int32_t index) const; |
48 FX_FLOAT» » GetFloat(FX_INT32 index) const; | 48 FX_FLOAT» » GetFloat(int32_t index) const; |
49 CFX_ByteString» GetUTF8String(FX_INT32 index) const; | 49 CFX_ByteString» GetUTF8String(int32_t index) const; |
50 FX_LPVOID» » GetObject(FX_INT32 index, FXJSE_HCLASS hClass = NULL) co
nst; | 50 FX_LPVOID» » GetObject(int32_t index, FXJSE_HCLASS hClass = NULL) con
st; |
51 FXJSE_HVALUE GetReturnValue(); | 51 FXJSE_HVALUE GetReturnValue(); |
52 }; | 52 }; |
53 typedef void (*FXJSE_FuncCallback) (FXJSE_HOBJECT hThis, FX_BSTR szFuncNa
me, CFXJSE_Arguments &args); | 53 typedef void (*FXJSE_FuncCallback) (FXJSE_HOBJECT hThis, FX_BSTR szFuncNa
me, CFXJSE_Arguments &args); |
54 typedef void (*FXJSE_PropAccessor) (FXJSE_HOBJECT hObject, FX_BSTR szPropNa
me, FXJSE_HVALUE hValue); | 54 typedef void (*FXJSE_PropAccessor) (FXJSE_HOBJECT hObject, FX_BSTR szPropNa
me, FXJSE_HVALUE hValue); |
55 typedef FX_INT32(*FXJSE_PropTypeGetter)»(FXJSE_HOBJECT hObject, FX_BSTR szPropNa
me, FX_BOOL bQueryIn); | 55 typedef int32_t(*FXJSE_PropTypeGetter)» (FXJSE_HOBJECT hObject, FX_BSTR szPropNa
me, FX_BOOL bQueryIn); |
56 typedef FX_BOOL (*FXJSE_PropDeleter) (FXJSE_HOBJECT hObject, FX_BSTR szPropNa
me); | 56 typedef FX_BOOL (*FXJSE_PropDeleter) (FXJSE_HOBJECT hObject, FX_BSTR szPropNa
me); |
57 typedef struct _FXJSE_FUNCTION { | 57 typedef struct _FXJSE_FUNCTION { |
58 FX_LPCSTR name; | 58 FX_LPCSTR name; |
59 FXJSE_FuncCallback callbackProc; | 59 FXJSE_FuncCallback callbackProc; |
60 } FXJSE_FUNCTION; | 60 } FXJSE_FUNCTION; |
61 #define FXJSE_DEF_FUNCTION(functionName, functionCallback) {functionName, functi
onCallback} | 61 #define FXJSE_DEF_FUNCTION(functionName, functionCallback) {functionName, functi
onCallback} |
62 void FXJSE_DefineFunctions(FXJSE_HCONTEXT hContext, const FXJSE_FUNCTION* lpF
unctions, int nNum); | 62 void FXJSE_DefineFunctions(FXJSE_HCONTEXT hContext, const FXJSE_FUNCTION* lpF
unctions, int nNum); |
63 typedef struct _FXJSE_PROPERTY { | 63 typedef struct _FXJSE_PROPERTY { |
64 FX_LPCSTR name; | 64 FX_LPCSTR name; |
65 FXJSE_PropAccessor getProc; | 65 FXJSE_PropAccessor getProc; |
66 FXJSE_PropAccessor setProc; | 66 FXJSE_PropAccessor setProc; |
67 } FXJSE_PROPERTY; | 67 } FXJSE_PROPERTY; |
68 enum FXJSE_ClassPropTypes { | 68 enum FXJSE_ClassPropTypes { |
69 FXJSE_ClassPropType_None, | 69 FXJSE_ClassPropType_None, |
70 FXJSE_ClassPropType_Property, | 70 FXJSE_ClassPropType_Property, |
71 FXJSE_ClassPropType_Method | 71 FXJSE_ClassPropType_Method |
72 }; | 72 }; |
73 typedef struct _FXJSE_CLASS { | 73 typedef struct _FXJSE_CLASS { |
74 FX_LPCSTR name; | 74 FX_LPCSTR name; |
75 FXJSE_FuncCallback constructor; | 75 FXJSE_FuncCallback constructor; |
76 FXJSE_PROPERTY* properties; | 76 FXJSE_PROPERTY* properties; |
77 FXJSE_FUNCTION* methods; | 77 FXJSE_FUNCTION* methods; |
78 FX_INT32» » » » propNum; | 78 int32_t» » » » propNum; |
79 FX_INT32» » » » methNum; | 79 int32_t» » » » methNum; |
80 FXJSE_PropTypeGetter dynPropTypeGetter; | 80 FXJSE_PropTypeGetter dynPropTypeGetter; |
81 FXJSE_PropAccessor dynPropGetter; | 81 FXJSE_PropAccessor dynPropGetter; |
82 FXJSE_PropAccessor dynPropSetter; | 82 FXJSE_PropAccessor dynPropSetter; |
83 FXJSE_PropDeleter dynPropDeleter; | 83 FXJSE_PropDeleter dynPropDeleter; |
84 FXJSE_FuncCallback dynMethodCall; | 84 FXJSE_FuncCallback dynMethodCall; |
85 } FXJSE_CLASS; | 85 } FXJSE_CLASS; |
86 FXJSE_HCLASS FXJSE_DefineClass(FXJSE_HCONTEXT hContext, const FXJSE_CLASS* lp
Class); | 86 FXJSE_HCLASS FXJSE_DefineClass(FXJSE_HCONTEXT hContext, const FXJSE_CLASS* lp
Class); |
87 FXJSE_HCLASS FXJSE_GetClass(FXJSE_HCONTEXT hContext, FX_BSTR szName); | 87 FXJSE_HCLASS FXJSE_GetClass(FXJSE_HCONTEXT hContext, FX_BSTR szName); |
88 FXJSE_HVALUE FXJSE_Value_Create(FXJSE_HRUNTIME hRuntime); | 88 FXJSE_HVALUE FXJSE_Value_Create(FXJSE_HRUNTIME hRuntime); |
89 void FXJSE_Value_Release(FXJSE_HVALUE hValue); | 89 void FXJSE_Value_Release(FXJSE_HVALUE hValue); |
90 FXJSE_HRUNTIME FXJSE_Value_GetRuntime(FXJSE_HVALUE hValue); | 90 FXJSE_HRUNTIME FXJSE_Value_GetRuntime(FXJSE_HVALUE hValue); |
91 FX_BOOL FXJSE_Value_IsUndefined (FXJSE_HVALUE hValue); | 91 FX_BOOL FXJSE_Value_IsUndefined (FXJSE_HVALUE hValue); |
92 FX_BOOL FXJSE_Value_IsNull (FXJSE_HVALUE hV
alue); | 92 FX_BOOL FXJSE_Value_IsNull (FXJSE_HVALUE hV
alue); |
93 FX_BOOL FXJSE_Value_IsBoolean (FXJSE_HVALUE hValue); | 93 FX_BOOL FXJSE_Value_IsBoolean (FXJSE_HVALUE hValue); |
94 FX_BOOL FXJSE_Value_IsUTF8String (FXJSE_HVALUE hValue); | 94 FX_BOOL FXJSE_Value_IsUTF8String (FXJSE_HVALUE hValue); |
95 FX_BOOL FXJSE_Value_IsNumber (FXJSE_HVALUE hValue); | 95 FX_BOOL FXJSE_Value_IsNumber (FXJSE_HVALUE hValue); |
96 FX_BOOL FXJSE_Value_IsInteger (FXJSE_HVALUE hValue); | 96 FX_BOOL FXJSE_Value_IsInteger (FXJSE_HVALUE hValue); |
97 FX_BOOL FXJSE_Value_IsObject (FXJSE_HVALUE hValue); | 97 FX_BOOL FXJSE_Value_IsObject (FXJSE_HVALUE hValue); |
98 FX_BOOL FXJSE_Value_IsArray (FXJSE_HVALUE hV
alue); | 98 FX_BOOL FXJSE_Value_IsArray (FXJSE_HVALUE hV
alue); |
99 FX_BOOL FXJSE_Value_IsFunction (FXJSE_HVALUE hValue); | 99 FX_BOOL FXJSE_Value_IsFunction (FXJSE_HVALUE hValue); |
100 FX_BOOL FXJSE_Value_IsDate (FXJSE_HVALUE hV
alue); | 100 FX_BOOL FXJSE_Value_IsDate (FXJSE_HVALUE hV
alue); |
101 FX_BOOL FXJSE_Value_ToBoolean (FXJSE_HVALUE hValue); | 101 FX_BOOL FXJSE_Value_ToBoolean (FXJSE_HVALUE hValue); |
102 FX_FLOAT FXJSE_Value_ToFloat (FXJSE_HVALUE hV
alue); | 102 FX_FLOAT FXJSE_Value_ToFloat (FXJSE_HVALUE hV
alue); |
103 FXJSE_DOUBLE FXJSE_Value_ToDouble (FXJSE_HVALUE hValue); | 103 FXJSE_DOUBLE FXJSE_Value_ToDouble (FXJSE_HVALUE hValue); |
104 FX_INT32» » FXJSE_Value_ToInteger» » (FXJSE_HVALUE hValue); | 104 int32_t»» FXJSE_Value_ToInteger» » (FXJSE_HVALUE hValue); |
105 void FXJSE_Value_ToUTF8String (FXJSE_HVALUE hValue, CF
X_ByteString& szStrOutput); | 105 void FXJSE_Value_ToUTF8String (FXJSE_HVALUE hValue, CF
X_ByteString& szStrOutput); |
106 FX_LPVOID FXJSE_Value_ToObject (FXJSE_HVALUE hValue, FX
JSE_HCLASS hClass); | 106 FX_LPVOID FXJSE_Value_ToObject (FXJSE_HVALUE hValue, FX
JSE_HCLASS hClass); |
107 void FXJSE_Value_SetUndefined (FXJSE_HVALUE hValue); | 107 void FXJSE_Value_SetUndefined (FXJSE_HVALUE hValue); |
108 void FXJSE_Value_SetNull (FXJSE_HVALUE hV
alue); | 108 void FXJSE_Value_SetNull (FXJSE_HVALUE hV
alue); |
109 void FXJSE_Value_SetBoolean (FXJSE_HVALUE hValue, FX
_BOOL bBoolean); | 109 void FXJSE_Value_SetBoolean (FXJSE_HVALUE hValue, FX
_BOOL bBoolean); |
110 void FXJSE_Value_SetUTF8String (FXJSE_HVALUE hValue, FX
_BSTR szString); | 110 void FXJSE_Value_SetUTF8String (FXJSE_HVALUE hValue, FX
_BSTR szString); |
111 void» » » FXJSE_Value_SetInteger» » (FXJSE_HVALUE hValue, FX
_INT32 nInteger); | 111 void» » » FXJSE_Value_SetInteger» » (FXJSE_HVALUE hValue, in
t32_t nInteger); |
112 void FXJSE_Value_SetFloat (FXJSE_HVALUE hValue, FX
_FLOAT fFloat); | 112 void FXJSE_Value_SetFloat (FXJSE_HVALUE hValue, FX
_FLOAT fFloat); |
113 void FXJSE_Value_SetDouble (FXJSE_HVALUE hValue, FX
JSE_DOUBLE dDouble); | 113 void FXJSE_Value_SetDouble (FXJSE_HVALUE hValue, FX
JSE_DOUBLE dDouble); |
114 void FXJSE_Value_SetObject (FXJSE_HVALUE hValue, FX
_LPVOID lpObject, FXJSE_HCLASS hClass); | 114 void FXJSE_Value_SetObject (FXJSE_HVALUE hValue, FX
_LPVOID lpObject, FXJSE_HCLASS hClass); |
115 void» » » FXJSE_Value_SetArray» » (FXJSE_HVALUE hValue, FX
_UINT32 uValueCount, FXJSE_HVALUE* rgValues); | 115 void» » » FXJSE_Value_SetArray» » (FXJSE_HVALUE hValue, ui
nt32_t uValueCount, FXJSE_HVALUE* rgValues); |
116 void FXJSE_Value_SetDate (FXJSE_HVALUE hV
alue, FXJSE_DOUBLE dDouble); | 116 void FXJSE_Value_SetDate (FXJSE_HVALUE hV
alue, FXJSE_DOUBLE dDouble); |
117 void FXJSE_Value_Set (FXJSE_HVALUE hV
alue, FXJSE_HVALUE hOriginalValue); | 117 void FXJSE_Value_Set (FXJSE_HVALUE hV
alue, FXJSE_HVALUE hOriginalValue); |
118 FX_BOOL FXJSE_Value_GetObjectProp (FXJSE_HVALUE hV
alue, FX_BSTR szPropName, FXJSE_HVALUE hPropValue); | 118 FX_BOOL FXJSE_Value_GetObjectProp (FXJSE_HVALUE hV
alue, FX_BSTR szPropName, FXJSE_HVALUE hPropValue); |
119 FX_BOOL FXJSE_Value_SetObjectProp (FXJSE_HVALUE hV
alue, FX_BSTR szPropName, FXJSE_HVALUE hPropValue); | 119 FX_BOOL FXJSE_Value_SetObjectProp (FXJSE_HVALUE hV
alue, FX_BSTR szPropName, FXJSE_HVALUE hPropValue); |
120 FX_BOOL»» » FXJSE_Value_GetObjectPropByIdx» (FXJSE_HVALUE hValue, FX
_UINT32»uPropIdx,» FXJSE_HVALUE hPropValue); | 120 FX_BOOL»» » FXJSE_Value_GetObjectPropByIdx» (FXJSE_HVALUE hValue, ui
nt32_t» uPropIdx,» FXJSE_HVALUE hPropValue); |
121 FX_BOOL»» » FXJSE_Value_SetObjectPropByIdx» (FXJSE_HVALUE hValue, FX
_UINT32»uPropIdx,» FXJSE_HVALUE hPropValue); | 121 FX_BOOL»» » FXJSE_Value_SetObjectPropByIdx» (FXJSE_HVALUE hValue, ui
nt32_t» uPropIdx,» FXJSE_HVALUE hPropValue); |
122 FX_BOOL FXJSE_Value_DeleteObjectProp (FXJSE_HVALUE hValue, FX
_BSTR szPropName); | 122 FX_BOOL FXJSE_Value_DeleteObjectProp (FXJSE_HVALUE hValue, FX
_BSTR szPropName); |
123 FX_BOOL FXJSE_Value_ObjectHasOwnProp (FXJSE_HVALUE hValue, FX
_BSTR szPropName, FX_BOOL bUseTypeGetter); | 123 FX_BOOL FXJSE_Value_ObjectHasOwnProp (FXJSE_HVALUE hValue, FX
_BSTR szPropName, FX_BOOL bUseTypeGetter); |
124 FX_BOOL FXJSE_Value_SetObjectOwnProp (FXJSE_HVALUE hValue, FX
_BSTR szPropName, FXJSE_HVALUE hPropValue); | 124 FX_BOOL FXJSE_Value_SetObjectOwnProp (FXJSE_HVALUE hValue, FX
_BSTR szPropName, FXJSE_HVALUE hPropValue); |
125 FX_BOOL»» » FXJSE_Value_CallFunction» » (FXJSE_HVALUE hF
unction, FXJSE_HVALUE hThis, FXJSE_HVALUE hRetValue, FX_UINT32 nArgCount, FXJSE_
HVALUE* lpArgs); | 125 FX_BOOL»» » FXJSE_Value_CallFunction» » (FXJSE_HVALUE hF
unction, FXJSE_HVALUE hThis, FXJSE_HVALUE hRetValue, uint32_t nArgCount, FXJSE_H
VALUE* lpArgs); |
126 FX_BOOL FXJSE_Value_SetFunctionBind (FXJSE_HVALUE hValue, FX
JSE_HVALUE hOldFunction, FXJSE_HVALUE hNewThis); | 126 FX_BOOL FXJSE_Value_SetFunctionBind (FXJSE_HVALUE hValue, FX
JSE_HVALUE hOldFunction, FXJSE_HVALUE hNewThis); |
127 FX_BOOL FXJSE_ExecuteScript(FXJSE_HCONTEXT hContext, FX_LPCSTR s
zScript, FXJSE_HVALUE hRetValue, FXJSE_HVALUE hNewThisObject = NULL); | 127 FX_BOOL FXJSE_ExecuteScript(FXJSE_HCONTEXT hContext, FX_LPCSTR s
zScript, FXJSE_HVALUE hRetValue, FXJSE_HVALUE hNewThisObject = NULL); |
128 void FXJSE_ThrowMessage(FX_BSTR utf8Name, FX_BSTR utf8Message
); | 128 void FXJSE_ThrowMessage(FX_BSTR utf8Name, FX_BSTR utf8Message
); |
129 FX_BOOL FXJSE_ReturnValue_GetMessage(FXJSE_HVALUE hRetValue, CFX
_ByteString& utf8Name, CFX_ByteString& utf8Message); | 129 FX_BOOL FXJSE_ReturnValue_GetMessage(FXJSE_HVALUE hRetValue, CFX
_ByteString& utf8Name, CFX_ByteString& utf8Message); |
130 FX_BOOL»» » FXJSE_ReturnValue_GetLineInfo(FXJSE_HVALUE hRetValue, FX
_INT32& nLine, FX_INT32& nCol); | 130 FX_BOOL»» » FXJSE_ReturnValue_GetLineInfo(FXJSE_HVALUE hRetValue, in
t32_t& nLine, int32_t& nCol); |
131 #endif | 131 #endif |
OLD | NEW |