00001
00002
00003
00004
00005
00006
00007
00008
00009
00026 #ifndef __JSScriptingSuite__
00027 #define __JSScriptingSuite__
00028
00029 #if MC_WIN
00030 #include <crtdefs.h>
00031 #endif
00032
00033 #ifndef __ASTypes__
00034 #include "ASTypes.h"
00035 #endif
00036
00037 #ifndef __ASPragma__
00038 #include "ASPragma.h"
00039 #endif
00040
00041 #ifndef __SPFiles__
00042 #include "SPFiles.h"
00043 #endif
00044
00045 #ifdef __cplusplus
00046 extern "C" {
00047 #endif
00048
00049 #pragma PRAGMA_IMPORT_BEGIN
00050
00051
00052
00053
00054
00055
00057 #define kJSScriptingSuite "JavaScript Scripting Suite"
00058 #define kJSScriptingSuiteVersion4 4L
00059 #define kJSScriptingSuiteVersion3 3L
00060 #define kJSScriptingSuiteVersion2 2L
00061 #define kJSScriptingSuiteVersion1 1L
00062 #define kJSScriptingSuiteVersion kJSScriptingSuiteVersion3
00063 #define kJSScriptingVersion kJSScriptingSuiteVersion
00064
00065
00066
00067
00068
00077 #define kJSScriptExecutionError 'ScEr'
00078 #define kJSScriptInternalError 'ScIE'
00079 #define kJSScriptGeneralError 'ScGr'
00080 #define kJSScriptCantCreateEngine 'ScCJ'
00081 #define kJSScriptBadEnginReference 'ScBR'
00082 #define kJSScriptLanguageNotSupported 'Sc!s'
00083 #define kJSBufferTooSmall 'Sbts' // close defgroup, because I don't want others to appear in it.
00086
00087
00088
00089
00090
00091
00092
00094 typedef struct _t_JSEngine * JSEngineRef;
00098 enum JavaScriptExecutionMode
00099 {
00100 kJSExecutionModeNoDebug = 1,
00101 kJSExecutionModeDebugOnError = 2,
00102 kJSExecutionModeDebugAtBeginning = 3
00103 };
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00163 typedef struct {
00164
00166 ASAPI ASBoolean (*ScriptIsRunning) ( void );
00167
00169 ASAPI ASErr (*CreateEngine) ( JSEngineRef * engineRefPtr );
00170
00172 ASAPI ASErr (*DeleteEngine) ( JSEngineRef engineRef );
00173
00177 ASAPI ASErr (*SetIncludePath) ( JSEngineRef engineRef, const ASUnicode * includePath );
00178
00184 ASAPI ASErr (*GetIncludePath) ( JSEngineRef engineRef, ASUnicode * includePathBuff, long * buffSize );
00185
00193 ASAPI ASErr (*ExecuteScript) ( JSEngineRef engineRef,
00194 const ASUnicode * script,
00195 JavaScriptExecutionMode executionMode,
00196 const ASUnicode ** result );
00197
00199
00212 ASAPI ASErr (*SuspendResumeAppleEventProcessing) (ASBoolean suspend);
00213
00216 ASAPI ASErr (*IsAppleEventProcessingSuspended) (ASBoolean* suspended);
00217
00221 ASAPI ASErr (*HasSuspendedAppleEvents) (ASBoolean* hasEvents);
00222
00223 } JSScriptingSuite4;
00224
00226 typedef struct {
00227
00229 ASAPI ASBoolean (*ScriptIsRunning) ( void );
00230
00232 ASAPI ASErr (*CreateEngine) ( JSEngineRef * engineRefPtr );
00233
00235 ASAPI ASErr (*DeleteEngine) ( JSEngineRef engineRef );
00236
00240 ASAPI ASErr (*SetIncludePath) ( JSEngineRef engineRef, const ASUnicode * includePath );
00241
00247 ASAPI ASErr (*GetIncludePath) ( JSEngineRef engineRef, ASUnicode * includePathBuff, long * buffSize );
00248
00256 ASAPI ASErr (*ExecuteScript) ( JSEngineRef engineRef,
00257 const ASUnicode * script,
00258 JavaScriptExecutionMode executionMode,
00259 const ASUnicode ** result );
00260
00262
00275 ASAPI ASErr (*SuspendResumeAppleEventProcessing) (ASBoolean suspend);
00276
00279 ASAPI ASErr (*IsAppleEventProcessingSuspended) (ASBoolean* suspended);
00280
00281 } JSScriptingSuite3;
00282
00284 typedef struct {
00285
00287 ASAPI ASBoolean (*ScriptIsRunning) ( void );
00288
00290 ASAPI ASErr (*CreateEngine) ( JSEngineRef * engineRefPtr );
00291
00293 ASAPI ASErr (*DeleteEngine) ( JSEngineRef engineRef );
00294
00298 ASAPI ASErr (*SetIncludePath) ( JSEngineRef engineRef, const ASUnicode * includePath );
00299
00305 ASAPI ASErr (*GetIncludePath) ( JSEngineRef engineRef, ASUnicode * includePathBuff, long * buffSize );
00306
00314 ASAPI ASErr (*ExecuteScript) ( JSEngineRef engineRef,
00315 const ASUnicode * script,
00316 JavaScriptExecutionMode executionMode,
00317 const ASUnicode ** result );
00318
00320
00321
00322
00324 ASAPI ASErr (*CreateEngineAPE) ( JSEngineRef * engineRefPtr, intptr_t apeEngineRef );
00325
00326 } JSScriptingSuite2;
00327
00328
00329
00332 typedef struct {
00333
00335 ASAPI ASBoolean (*ScriptIsRunning) ( void );
00336
00338 ASAPI ASErr (*CreateEngine) ( JSEngineRef * engineRefPtr );
00339
00341 ASAPI ASErr (*DeleteEngine) ( JSEngineRef engineRef );
00342
00346 ASAPI ASErr (*SetIncludePath) ( JSEngineRef engineRef, const ASUnicode * includePath );
00347
00353 ASAPI ASErr (*GetIncludePath) ( JSEngineRef engineRef, ASUnicode * includePathBuff, long * buffSize );
00354
00362 ASAPI ASErr (*ExecuteScript) ( JSEngineRef engineRef,
00363 const ASUnicode * script,
00364 JavaScriptExecutionMode executionMode,
00365 const ASUnicode ** result );
00366
00367 } JSScriptingSuite1;
00368
00369
00370
00371
00372
00373
00374 typedef struct Opaque_ScriptValueRef* ScriptValueRef;
00375
00378 enum
00379 {
00380 kScriptValue_Undefined,
00381 kScriptValue_Null,
00382 kScriptValue_Boolean,
00383 kScriptValue_Number,
00384 kScriptValue_String,
00385 kScriptValue_Array,
00386 kScriptValue_Object,
00387 kScriptValue_ByteArray
00388 };
00389 typedef SPInt32 ScriptValueType;
00390
00391 enum
00392 {
00393 kScriptValue_Double,
00394 kScriptValue_Int32,
00395 kScriptValue_UInt32,
00396 kScriptValue_Int64,
00397 };
00398 typedef SPInt32 ScriptValueNumericType;
00399
00400 typedef SPBoolean (*ScriptKeyIterator)(SPUInt32, const char*, void* userData);
00401
00403 #define kScriptValueSuite "Script Value Suite"
00404 #define kScriptValueSuiteVersion1 1L
00405
00406 typedef struct {
00407 ASAPI ASErr (*CreateUndefined)(ScriptValueRef* valueRef);
00408 ASAPI ASErr (*CreateNull)(ScriptValueRef* valueRef);
00409 ASAPI ASErr (*CreateBoolean)(SPBoolean value, ScriptValueRef* valueRef);
00410 ASAPI ASErr (*CreateDouble)(double value, ScriptValueRef* valueRef);
00411 ASAPI ASErr (*CreateInt32)(SPInt32 value, ScriptValueRef* valueRef);
00412 ASAPI ASErr (*CreateUInt32)(SPUInt32 value, ScriptValueRef* valueRef);
00413 ASAPI ASErr (*CreateInt64)(int64_t value, ScriptValueRef* valueRef);
00414 ASAPI ASErr (*CreateUTF8)(const char* value, ScriptValueRef* valueRef);
00415 ASAPI ASErr (*CreateArray)(ScriptValueRef* valueRef);
00416 ASAPI ASErr (*CreateObject)(ScriptValueRef* valueRef);
00417
00418 ASAPI ASErr (*DestroyValue)(ScriptValueRef valueRef);
00419
00420 ASAPI ASErr (*GetType)(ScriptValueRef valueRef, ScriptValueType* type);
00421 ASAPI ASErr (*GetNumericType)(ScriptValueRef valueRef, ScriptValueNumericType* type);
00422 ASAPI ASErr (*GetBoolean)(ScriptValueRef valueRef, ASBoolean* value);
00423 ASAPI ASErr (*GetDouble)(ScriptValueRef valueRef, double* value);
00424 ASAPI ASErr (*GetInt32)(ScriptValueRef valueRef, SPInt32* value);
00425 ASAPI ASErr (*GetUInt32)(ScriptValueRef valueRef, SPUInt32* value);
00426 ASAPI ASErr (*GetInt64)(ScriptValueRef valueRef, int64_t* value);
00427
00428 ASAPI ASErr (*GetUTF8Length)(ScriptValueRef valueRef, SPUInt32* length);
00429 ASAPI ASErr (*GetUTF8)(ScriptValueRef valueRef, SPUInt32 length, char* buffer);
00430
00431 ASAPI ASErr (*IterateKeys)(ScriptValueRef valueRef, ScriptKeyIterator iterator, void* userData);
00432 ASAPI ASErr (*HasProperty)(ScriptValueRef valueRef, const char* name, SPBoolean* value);
00433 ASAPI ASErr (*GetProperty)(ScriptValueRef valueRef, const char* name, ScriptValueRef* value);
00434 ASAPI ASErr (*SetProperty)(ScriptValueRef valueRef, const char* name, ScriptValueRef value, SPBoolean move);
00435
00436 ASAPI ASErr (*GetArrayLength)(ScriptValueRef valueRef, SPUInt32* count);
00437 ASAPI ASErr (*GetArrayValue)(ScriptValueRef valueRef, SPUInt32 index, ScriptValueRef* value);
00438 ASAPI ASErr (*SetArrayValue)(ScriptValueRef valueRef, SPUInt32 index, ScriptValueRef value, SPBoolean move);
00439 ASAPI ASErr (*AppendArrayValue)(ScriptValueRef valueRef, ScriptValueRef value, SPBoolean move);
00440 } ScriptValueSuite1;
00441
00442
00443
00444
00445
00447 #define kLiveObjectScriptSuite "LiveObject Script Suite"
00448 #define kLiveObjectScriptSuiteVersion1 1L
00449
00450 typedef struct {
00453 ASAPI ASErr (*PerformAction) (ScriptValueRef args, ScriptValueRef* result, SPBoolean* isError);
00454 } LiveObjectScriptSuite1;
00455
00456
00457 #pragma PRAGMA_IMPORT_END
00458
00459 #ifdef __cplusplus
00460 }
00461 #endif
00462
00463 #endif // __JSScriptingSuite__