
CHAPTER 7: Integrating External Libraries Defining entry points for indirect access 214
TaggedData
The TaggedData structure is used to communicate data values between JavaScript and shared-library
C/C++ code. Types are automatically converted as appropriate.
typedef struct {
union {
long intval;
double fltval;
char* string;
SoHObject* hObject;
} data;
long type;
long filler;
} TaggedData;
intval
Integer and boolean data values. Type is kTypeInteger, kTypeUInteger, or kTypeBool.
fltval
Floating-point numeric data values. Type is kTypeDouble.
string
String data values. All strings are UTF-8 encoded and null-terminated. Type is
kTypeString or kTypeScript.
X The library must define an entry point ESFreeMem(), which ExtendScript calls to
release a returned string pointer. If this entry point is missing, ExtendScript does not
attempt to release any returned string data.
X When a function returns a string of type kTypeScript, ExtendScript evaluates the
script and returns the result of evaluation as the result of the function call.
hObject
A C/C++ representation of a JavaScript object data value. Type is kTypeLiveObject or
kTypeLiveObjectRelease.
X When a function returns an object of type kTypeLiveObject, ExtendScript does not
release the object.
X When a function returns an object of type kTypeLiveObjectRelease, ExtendScript
releases the object.
Kommentare zu diesen Handbüchern