Adobe 38040334 Extending Dreamweaver - Page 354

The C-level API

Page 354 highlights

DREAMWEAVER CS3 348 Extending Dreamweaver typedef struct jsval jsval An opaque data structure that can contain an integer, or a pointer to a floating-point number, string, or object. Some functions in the API can read the values of function arguments by reading the contents of a JSVal structure, and some can be used to write the function's return value by writing a JSVal structure. typedef enum { JS_FALSE = 0, JS_TRUE = 1 } JSBool A simple data type that stores a Boolean value. The C-level API The C-level extensibility API consists of the following functions: typedef JSBool (*JSNative)(JSContext *cx, JSObject *obj, unsigned int argc, jsval *argv, jsval *rval) Description This function signature describes C-level implementations of JavaScript functions in the following situations: • The cx pointer is a pointer to an opaque JSContext structure, which must be passed to some of the functions in the JavaScript API. This variable holds the interpreter's execution context. • The obj pointer is a pointer to the object in whose context the script executes. While the script is running, the this keyword is equal to this object. • The argc integer is the number of arguments being passed to the function. • The argv pointer is a pointer to an array of JSVal structures. The array is argc elements in length. • The rval pointer is a pointer to a single JSVal structure. The function's return value should be written to *rval. The function returns JS_TRUE if successful; JS_FALSE otherwise. If the function returns JS_FALSE, the current script stops executing and an error message appears. JSBool JS_DefineFunction() Description This function registers a C-level function with the JavaScript interpreter in Dreamweaver. After the JS_DefineFunction() function registers the C-level function that you specify in the call argument, you can invoke it in a JavaScript script by referring to it with the name that you specify in the name argument. The name argument is case-sensitive. Typically, this function is called from the MM_Init() function, which Dreamweaver calls during startup. Arguments char *name, JSNative call, unsigned int nargs • The name argument is the name of the function as it is exposed to JavaScript. • The call argument is a pointer to a C-level function. The function must accept the same arguments as readContentsOfFile, and it must return a JSBool, which indicates success or failure.

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • 328
  • 329
  • 330
  • 331
  • 332
  • 333
  • 334
  • 335
  • 336
  • 337
  • 338
  • 339
  • 340
  • 341
  • 342
  • 343
  • 344
  • 345
  • 346
  • 347
  • 348
  • 349
  • 350
  • 351
  • 352
  • 353
  • 354
  • 355
  • 356
  • 357
  • 358
  • 359
  • 360
  • 361
  • 362
  • 363
  • 364
  • 365
  • 366
  • 367
  • 368
  • 369
  • 370
  • 371
  • 372
  • 373
  • 374
  • 375
  • 376
  • 377
  • 378
  • 379
  • 380
  • 381
  • 382
  • 383
  • 384
  • 385

DREAMWEAVER CS3
Extending Dreamweaver
348
typedef struct jsval jsval
An opaque data structure that can contain an integer, or a pointer to a floating-point number, string, or object. Some
functions in the API can read the values of function arguments by reading the contents of a
JSVal
structure, and
some can be used to write the function’s return value by writing a
JSVal
structure.
typedef enum { JS_FALSE = 0, JS_TRUE = 1 } JSBool
A simple data type that stores a Boolean value.
The C-level API
The C-level extensibility API consists of the following functions:
typedef JSBool (*JSNative)(JSContext *cx, JSObject *obj, unsigned int argc, jsval
*argv, jsval *rval)
Description
This function signature describes C-level implementations of JavaScript functions in the following situations:
The
cx
pointer is a pointer to an opaque
JSContext
structure, which must be passed to some of the functions in
the JavaScript API. This variable holds the interpreter’s execution context.
The
obj
pointer is a pointer to the object in whose context the script executes. While the script is running, the
this
keyword is equal to this object.
The
argc
integer is the number of arguments being passed to the function.
The
argv
pointer is a pointer to an array of
JSVal
structures. The array is
argc
elements in length.
The
rval
pointer is a pointer to a single
JSVal
structure. The function’s return value should be written to
*rval
.
The function returns
JS_TRUE
if successful;
JS_FALSE
otherwise. If the function returns
JS_FALSE
, the current
script stops executing and an error message appears.
JSBool JS_DefineFunction()
Description
This function registers a C-level function with the JavaScript interpreter in Dreamweaver. After the
JS_DefineFunction()
function registers the C-level function that you specify in the
call
argument, you can
invoke it in a JavaScript script by referring to it with the name that you specify in the
name
argument. The
name
argument is case-sensitive.
Typically, this function is called from the
MM_Init()
function, which Dreamweaver calls during startup.
Arguments
char
*name
,
JSNative
call
,
unsigned int
nargs
The
name
argument is the name of the function as it is exposed to JavaScript.
The
call
argument is a pointer to a C-level function. The function must accept the same arguments as
readContentsOfFile
, and it must return a
JSBool
, which indicates success or failure.