]>
Commit | Line | Data |
---|---|---|
1 | /* ***** BEGIN LICENSE BLOCK ***** | |
2 | * Version: MPL 1.1/GPL 2.0/LGPL 2.1 | |
3 | * | |
4 | * The contents of this file are subject to the Mozilla Public License Version | |
5 | * 1.1 (the "License"); you may not use this file except in compliance with | |
6 | * the License. You may obtain a copy of the License at | |
7 | * http://www.mozilla.org/MPL/ | |
8 | * | |
9 | * Software distributed under the License is distributed on an "AS IS" basis, | |
10 | * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License | |
11 | * for the specific language governing rights and limitations under the | |
12 | * License. | |
13 | * | |
14 | * The Original Code is mozilla.org code. | |
15 | * | |
16 | * The Initial Developer of the Original Code is | |
17 | * Netscape Communications Corporation. | |
18 | * Portions created by the Initial Developer are Copyright (C) 1998 | |
19 | * the Initial Developer. All Rights Reserved. | |
20 | * | |
21 | * Contributor(s): | |
22 | * | |
23 | * Alternatively, the contents of this file may be used under the terms of | |
24 | * either the GNU General Public License Version 2 or later (the "GPL"), or | |
25 | * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), | |
26 | * in which case the provisions of the GPL or the LGPL are applicable instead | |
27 | * of those above. If you wish to allow use of your version of this file only | |
28 | * under the terms of either the GPL or the LGPL, and not to allow others to | |
29 | * use your version of this file under the terms of the MPL, indicate your | |
30 | * decision by deleting the provisions above and replace them with the notice | |
31 | * and other provisions required by the GPL or the LGPL. If you do not delete | |
32 | * the provisions above, a recipient may use your version of this file under | |
33 | * the terms of any one of the MPL, the GPL or the LGPL. | |
34 | * | |
35 | * ***** END LICENSE BLOCK ***** */ | |
36 | ||
37 | ||
38 | /* | |
39 | * Netscape client plug-in API spec | |
40 | */ | |
41 | ||
42 | ||
43 | #ifndef _NPAPI_H_ | |
44 | #define _NPAPI_H_ | |
45 | ||
46 | #include <wtf/Platform.h> | |
47 | ||
48 | #if ENABLE(NETSCAPE_API) | |
49 | ||
50 | #ifdef INCLUDE_JAVA | |
51 | #include "jri.h" /* Java Runtime Interface */ | |
52 | #else | |
53 | #define jref void * | |
54 | #define JRIEnv void | |
55 | #endif | |
56 | ||
57 | #ifdef _WIN32 | |
58 | # ifndef XP_WIN | |
59 | # define XP_WIN 1 | |
60 | # endif /* XP_WIN */ | |
61 | #endif /* _WIN32 */ | |
62 | ||
63 | #ifdef __MWERKS__ | |
64 | # define _declspec __declspec | |
65 | # ifdef macintosh | |
66 | # ifndef XP_MAC | |
67 | # define XP_MAC 1 | |
68 | # endif /* XP_MAC */ | |
69 | # endif /* macintosh */ | |
70 | # ifdef __INTEL__ | |
71 | # undef NULL | |
72 | # ifndef XP_WIN | |
73 | # define XP_WIN 1 | |
74 | # endif /* __INTEL__ */ | |
75 | # endif /* XP_PC */ | |
76 | #endif /* __MWERKS__ */ | |
77 | ||
78 | #if defined(__APPLE_CC__) && !defined(__MACOS_CLASSIC__) && !defined(XP_UNIX) | |
79 | # define XP_MACOSX | |
80 | #endif | |
81 | ||
82 | #ifdef XP_MAC | |
83 | #include <Quickdraw.h> | |
84 | #include <Events.h> | |
85 | #endif | |
86 | ||
87 | #ifdef XP_MACOSX | |
88 | #include <Carbon/Carbon.h> | |
89 | #include <ApplicationServices/ApplicationServices.h> | |
90 | #include <OpenGL/OpenGL.h> | |
91 | #endif | |
92 | ||
93 | #ifdef XP_UNIX | |
94 | #include <X11/Xlib.h> | |
95 | #include <X11/Xutil.h> | |
96 | #include <stdio.h> | |
97 | #endif | |
98 | ||
99 | #ifdef XP_WIN | |
100 | #include <windows.h> | |
101 | #endif | |
102 | ||
103 | #if defined(XP_MACOSX) && defined(__LP64__) | |
104 | #error 64-bit Netscape plug-ins are not supported on Mac OS X | |
105 | #endif | |
106 | ||
107 | /*----------------------------------------------------------------------*/ | |
108 | /* Plugin Version Constants */ | |
109 | /*----------------------------------------------------------------------*/ | |
110 | ||
111 | #define NP_VERSION_MAJOR 0 | |
112 | #define NP_VERSION_MINOR 18 | |
113 | ||
114 | ||
115 | ||
116 | /*----------------------------------------------------------------------*/ | |
117 | /* Definition of Basic Types */ | |
118 | /*----------------------------------------------------------------------*/ | |
119 | ||
120 | #ifndef _UINT16 | |
121 | #define _UINT16 | |
122 | typedef unsigned short uint16; | |
123 | #endif | |
124 | ||
125 | #ifndef _UINT32 | |
126 | #define _UINT32 | |
127 | #ifdef __LP64__ | |
128 | typedef unsigned int uint32; | |
129 | #else /* __LP64__ */ | |
130 | typedef unsigned long uint32; | |
131 | #endif /* __LP64__ */ | |
132 | #endif | |
133 | ||
134 | #ifndef _INT16 | |
135 | #define _INT16 | |
136 | typedef short int16; | |
137 | #endif | |
138 | ||
139 | #ifndef _INT32 | |
140 | #define _INT32 | |
141 | #ifdef __LP64__ | |
142 | typedef int int32; | |
143 | #else /* __LP64__ */ | |
144 | typedef long int32; | |
145 | #endif /* __LP64__ */ | |
146 | #endif | |
147 | ||
148 | #ifndef FALSE | |
149 | #define FALSE (0) | |
150 | #endif | |
151 | #ifndef TRUE | |
152 | #define TRUE (1) | |
153 | #endif | |
154 | #ifndef NULL | |
155 | #define NULL (0L) | |
156 | #endif | |
157 | ||
158 | typedef unsigned char NPBool; | |
159 | typedef int16 NPError; | |
160 | typedef int16 NPReason; | |
161 | typedef char* NPMIMEType; | |
162 | ||
163 | ||
164 | ||
165 | /*----------------------------------------------------------------------*/ | |
166 | /* Structures and definitions */ | |
167 | /*----------------------------------------------------------------------*/ | |
168 | ||
169 | #if !defined(__LP64__) | |
170 | #if defined(XP_MAC) || defined(XP_MACOSX) | |
171 | #pragma options align=mac68k | |
172 | #endif | |
173 | #endif /* __LP64__ */ | |
174 | ||
175 | /* | |
176 | * NPP is a plug-in's opaque instance handle | |
177 | */ | |
178 | typedef struct _NPP | |
179 | { | |
180 | void* pdata; /* plug-in private data */ | |
181 | void* ndata; /* netscape private data */ | |
182 | } NPP_t; | |
183 | ||
184 | typedef NPP_t* NPP; | |
185 | ||
186 | ||
187 | typedef struct _NPStream | |
188 | { | |
189 | void* pdata; /* plug-in private data */ | |
190 | void* ndata; /* netscape private data */ | |
191 | const char* url; | |
192 | uint32 end; | |
193 | uint32 lastmodified; | |
194 | void* notifyData; | |
195 | const char* headers; /* Response headers from host. | |
196 | * Exists only for >= NPVERS_HAS_RESPONSE_HEADERS. | |
197 | * Used for HTTP only; NULL for non-HTTP. | |
198 | * Available from NPP_NewStream onwards. | |
199 | * Plugin should copy this data before storing it. | |
200 | * Includes HTTP status line and all headers, | |
201 | * preferably verbatim as received from server, | |
202 | * headers formatted as in HTTP ("Header: Value"), | |
203 | * and newlines (\n, NOT \r\n) separating lines. | |
204 | * Terminated by \n\0 (NOT \n\n\0). */ | |
205 | } NPStream; | |
206 | ||
207 | ||
208 | typedef struct _NPByteRange | |
209 | { | |
210 | int32 offset; /* negative offset means from the end */ | |
211 | uint32 length; | |
212 | struct _NPByteRange* next; | |
213 | } NPByteRange; | |
214 | ||
215 | ||
216 | typedef struct _NPSavedData | |
217 | { | |
218 | int32 len; | |
219 | void* buf; | |
220 | } NPSavedData; | |
221 | ||
222 | ||
223 | typedef struct _NPRect | |
224 | { | |
225 | uint16 top; | |
226 | uint16 left; | |
227 | uint16 bottom; | |
228 | uint16 right; | |
229 | } NPRect; | |
230 | ||
231 | ||
232 | #ifdef XP_UNIX | |
233 | /* | |
234 | * Unix specific structures and definitions | |
235 | */ | |
236 | ||
237 | /* | |
238 | * Callback Structures. | |
239 | * | |
240 | * These are used to pass additional platform specific information. | |
241 | */ | |
242 | enum { | |
243 | NP_SETWINDOW = 1, | |
244 | NP_PRINT | |
245 | }; | |
246 | ||
247 | typedef struct | |
248 | { | |
249 | int32 type; | |
250 | } NPAnyCallbackStruct; | |
251 | ||
252 | typedef struct | |
253 | { | |
254 | int32 type; | |
255 | Display* display; | |
256 | Visual* visual; | |
257 | Colormap colormap; | |
258 | unsigned int depth; | |
259 | } NPSetWindowCallbackStruct; | |
260 | ||
261 | typedef struct | |
262 | { | |
263 | int32 type; | |
264 | FILE* fp; | |
265 | } NPPrintCallbackStruct; | |
266 | ||
267 | #endif /* XP_UNIX */ | |
268 | ||
269 | /* | |
270 | * The following masks are applied on certain platforms to NPNV and | |
271 | * NPPV selectors that pass around pointers to COM interfaces. Newer | |
272 | * compilers on some platforms may generate vtables that are not | |
273 | * compatible with older compilers. To prevent older plugins from | |
274 | * not understanding a new browser's ABI, these masks change the | |
275 | * values of those selectors on those platforms. To remain backwards | |
276 | * compatible with differenet versions of the browser, plugins can | |
277 | * use these masks to dynamically determine and use the correct C++ | |
278 | * ABI that the browser is expecting. This does not apply to Windows | |
279 | * as Microsoft's COM ABI will likely not change. | |
280 | */ | |
281 | ||
282 | #define NP_ABI_GCC3_MASK 0x10000000 | |
283 | /* | |
284 | * gcc 3.x generated vtables on UNIX and OSX are incompatible with | |
285 | * previous compilers. | |
286 | */ | |
287 | #if (defined (XP_UNIX) && defined(__GNUC__) && (__GNUC__ >= 3)) | |
288 | #define _NP_ABI_MIXIN_FOR_GCC3 NP_ABI_GCC3_MASK | |
289 | #else | |
290 | #define _NP_ABI_MIXIN_FOR_GCC3 0 | |
291 | #endif | |
292 | ||
293 | #define NP_ABI_MACHO_MASK 0x01000000 | |
294 | /* | |
295 | * On OSX, the Mach-O executable format is significantly | |
296 | * different than CFM. In addition to having a different | |
297 | * C++ ABI, it also has has different C calling convention. | |
298 | * You must use glue code when calling between CFM and | |
299 | * Mach-O C functions. | |
300 | */ | |
301 | #if (defined(TARGET_RT_MAC_MACHO)) | |
302 | #define _NP_ABI_MIXIN_FOR_MACHO NP_ABI_MACHO_MASK | |
303 | #else | |
304 | #define _NP_ABI_MIXIN_FOR_MACHO 0 | |
305 | #endif | |
306 | ||
307 | ||
308 | #define NP_ABI_MASK (_NP_ABI_MIXIN_FOR_GCC3 | _NP_ABI_MIXIN_FOR_MACHO) | |
309 | ||
310 | /* | |
311 | * List of variable names for which NPP_GetValue shall be implemented | |
312 | */ | |
313 | typedef enum { | |
314 | NPPVpluginNameString = 1, | |
315 | NPPVpluginDescriptionString, | |
316 | NPPVpluginWindowBool, | |
317 | NPPVpluginTransparentBool, | |
318 | ||
319 | NPPVjavaClass, /* Not implemented in WebKit */ | |
320 | NPPVpluginWindowSize, /* Not implemented in WebKit */ | |
321 | NPPVpluginTimerInterval, /* Not implemented in WebKit */ | |
322 | ||
323 | NPPVpluginScriptableInstance = (10 | NP_ABI_MASK), /* Not implemented in WebKit */ | |
324 | NPPVpluginScriptableIID = 11, /* Not implemented in WebKit */ | |
325 | ||
326 | /* 12 and over are available on Mozilla builds starting with 0.9.9 */ | |
327 | NPPVjavascriptPushCallerBool = 12, /* Not implemented in WebKit */ | |
328 | NPPVpluginKeepLibraryInMemory = 13, /* Not implemented in WebKit */ | |
329 | NPPVpluginNeedsXEmbed = 14, /* Not implemented in WebKit */ | |
330 | ||
331 | /* Get the NPObject for scripting the plugin. */ | |
332 | NPPVpluginScriptableNPObject = 15, | |
333 | ||
334 | /* Get the plugin value (as \0-terminated UTF-8 string data) for | |
335 | * form submission if the plugin is part of a form. Use | |
336 | * NPN_MemAlloc() to allocate memory for the string data. | |
337 | */ | |
338 | NPPVformValue = 16, /* Not implemented in WebKit */ | |
339 | #ifdef XP_MACOSX | |
340 | /* Used for negotiating drawing models */ | |
341 | NPPVpluginDrawingModel = 1000 | |
342 | #endif | |
343 | } NPPVariable; | |
344 | ||
345 | /* | |
346 | * List of variable names for which NPN_GetValue is implemented by Mozilla | |
347 | */ | |
348 | typedef enum { | |
349 | NPNVxDisplay = 1, | |
350 | NPNVxtAppContext, | |
351 | NPNVnetscapeWindow, | |
352 | NPNVjavascriptEnabledBool, | |
353 | NPNVasdEnabledBool, | |
354 | NPNVisOfflineBool, | |
355 | ||
356 | /* 10 and over are available on Mozilla builds starting with 0.9.4 */ | |
357 | NPNVserviceManager = (10 | NP_ABI_MASK), /* Not implemented in WebKit */ | |
358 | NPNVDOMElement = (11 | NP_ABI_MASK), /* Not implemented in WebKit */ | |
359 | NPNVDOMWindow = (12 | NP_ABI_MASK), /* Not implemented in WebKit */ | |
360 | NPNVToolkit = (13 | NP_ABI_MASK), /* Not implemented in WebKit */ | |
361 | NPNVSupportsXEmbedBool = 14, /* Not implemented in WebKit */ | |
362 | ||
363 | /* Get the NPObject wrapper for the browser window. */ | |
364 | NPNVWindowNPObject = 15, | |
365 | ||
366 | /* Get the NPObject wrapper for the plugins DOM element. */ | |
367 | NPNVPluginElementNPObject | |
368 | ||
369 | #ifdef XP_MACOSX | |
370 | , NPNVpluginDrawingModel = 1000 /* The NPDrawingModel specified by the plugin */ | |
371 | ||
372 | #ifndef NP_NO_QUICKDRAW | |
373 | , NPNVsupportsQuickDrawBool = 2000 /* TRUE if the browser supports the QuickDraw drawing model */ | |
374 | #endif | |
375 | , NPNVsupportsCoreGraphicsBool = 2001 /* TRUE if the browser supports the CoreGraphics drawing model */ | |
376 | , NPNVsupportsOpenGLBool = 2002 /* TRUE if the browser supports the OpenGL drawing model (CGL on Mac) */ | |
377 | #endif /* XP_MACOSX */ | |
378 | } NPNVariable; | |
379 | ||
380 | /* | |
381 | * The type of a NPWindow - it specifies the type of the data structure | |
382 | * returned in the window field. | |
383 | */ | |
384 | typedef enum { | |
385 | NPWindowTypeWindow = 1, | |
386 | NPWindowTypeDrawable | |
387 | } NPWindowType; | |
388 | ||
389 | #ifdef XP_MACOSX | |
390 | ||
391 | /* | |
392 | * The drawing model for a Mac OS X plugin. These are the possible values for the NPNVpluginDrawingModel variable. | |
393 | */ | |
394 | ||
395 | typedef enum { | |
396 | #ifndef NP_NO_QUICKDRAW | |
397 | NPDrawingModelQuickDraw = 0, | |
398 | #endif | |
399 | NPDrawingModelCoreGraphics = 1, | |
400 | NPDrawingModelOpenGL = 2 | |
401 | } NPDrawingModel; | |
402 | ||
403 | #endif | |
404 | ||
405 | typedef struct _NPWindow | |
406 | { | |
407 | void* window; /* Platform specific window handle */ | |
408 | int32 x; /* Position of top left corner relative */ | |
409 | int32 y; /* to a netscape page. */ | |
410 | uint32 width; /* Maximum window size */ | |
411 | uint32 height; | |
412 | NPRect clipRect; /* Clipping rectangle in port coordinates */ | |
413 | /* Used by MAC only. */ | |
414 | #ifdef XP_UNIX | |
415 | void * ws_info; /* Platform-dependent additonal data */ | |
416 | #endif /* XP_UNIX */ | |
417 | NPWindowType type; /* Is this a window or a drawable? */ | |
418 | } NPWindow; | |
419 | ||
420 | ||
421 | typedef struct _NPFullPrint | |
422 | { | |
423 | NPBool pluginPrinted; /* Set TRUE if plugin handled fullscreen */ | |
424 | /* printing */ | |
425 | NPBool printOne; /* TRUE if plugin should print one copy */ | |
426 | /* to default printer */ | |
427 | void* platformPrint; /* Platform-specific printing info */ | |
428 | } NPFullPrint; | |
429 | ||
430 | typedef struct _NPEmbedPrint | |
431 | { | |
432 | NPWindow window; | |
433 | void* platformPrint; /* Platform-specific printing info */ | |
434 | } NPEmbedPrint; | |
435 | ||
436 | typedef struct _NPPrint | |
437 | { | |
438 | uint16 mode; /* NP_FULL or NP_EMBED */ | |
439 | union | |
440 | { | |
441 | NPFullPrint fullPrint; /* if mode is NP_FULL */ | |
442 | NPEmbedPrint embedPrint; /* if mode is NP_EMBED */ | |
443 | } print; | |
444 | } NPPrint; | |
445 | ||
446 | #if defined(XP_MAC) || defined(XP_MACOSX) | |
447 | typedef EventRecord NPEvent; | |
448 | #elif defined(XP_WIN) | |
449 | typedef struct _NPEvent | |
450 | { | |
451 | uint16 event; | |
452 | uint32 wParam; | |
453 | uint32 lParam; | |
454 | } NPEvent; | |
455 | #elif defined (XP_UNIX) | |
456 | typedef XEvent NPEvent; | |
457 | #else | |
458 | typedef void* NPEvent; | |
459 | #endif /* XP_MAC */ | |
460 | ||
461 | #if defined(XP_MAC) | |
462 | typedef RgnHandle NPRegion; | |
463 | #elif defined(XP_MACOSX) | |
464 | /* | |
465 | * NPRegion's type depends on the drawing model specified by the plugin (see NPNVpluginDrawingModel). | |
466 | * NPQDRegion represents a QuickDraw RgnHandle and is used with the QuickDraw drawing model. | |
467 | * NPCGRegion repesents a graphical region when using any other drawing model. | |
468 | */ | |
469 | typedef void *NPRegion; | |
470 | #ifndef NP_NO_QUICKDRAW | |
471 | typedef RgnHandle NPQDRegion; | |
472 | #endif | |
473 | typedef CGPathRef NPCGRegion; | |
474 | #elif defined(XP_WIN) | |
475 | typedef HRGN NPRegion; | |
476 | #elif defined(XP_UNIX) | |
477 | typedef Region NPRegion; | |
478 | #else | |
479 | typedef void *NPRegion; | |
480 | #endif /* XP_MAC */ | |
481 | ||
482 | #ifdef XP_MACOSX | |
483 | ||
484 | /* | |
485 | * NP_CGContext is the type of the NPWindow's 'window' when the plugin specifies NPDrawingModelCoreGraphics | |
486 | * as its drawing model. | |
487 | */ | |
488 | ||
489 | typedef struct NP_CGContext | |
490 | { | |
491 | CGContextRef context; | |
492 | WindowRef window; | |
493 | } NP_CGContext; | |
494 | ||
495 | /* | |
496 | * NP_GLContext is the type of the NPWindow's 'window' when the plugin specifies NPDrawingModelOpenGL as its | |
497 | * drawing model. | |
498 | */ | |
499 | ||
500 | typedef struct NP_GLContext | |
501 | { | |
502 | CGLContextObj context; | |
503 | WindowRef window; | |
504 | } NP_GLContext; | |
505 | ||
506 | #endif /* XP_MACOSX */ | |
507 | ||
508 | #if defined(XP_MAC) || defined(XP_MACOSX) | |
509 | ||
510 | /* | |
511 | * Mac-specific structures and definitions. | |
512 | */ | |
513 | ||
514 | #ifndef NP_NO_QUICKDRAW | |
515 | ||
516 | /* | |
517 | * NP_Port is the type of the NPWindow's 'window' when the plugin specifies NPDrawingModelQuickDraw as its | |
518 | * drawing model, or the plugin does not specify a drawing model. | |
519 | * | |
520 | * It is not recommended that new plugins use NPDrawingModelQuickDraw or NP_Port, as QuickDraw has been | |
521 | * deprecated in Mac OS X 10.5. CoreGraphics is the preferred drawing API. | |
522 | * | |
523 | * NP_Port is not available in 64-bit. | |
524 | */ | |
525 | ||
526 | typedef struct NP_Port | |
527 | { | |
528 | CGrafPtr port; /* Grafport */ | |
529 | int32 portx; /* position inside the topmost window */ | |
530 | int32 porty; | |
531 | } NP_Port; | |
532 | ||
533 | #endif /* NP_NO_QUICKDRAW */ | |
534 | ||
535 | /* | |
536 | * Non-standard event types that can be passed to HandleEvent | |
537 | */ | |
538 | #define getFocusEvent (osEvt + 16) | |
539 | #define loseFocusEvent (osEvt + 17) | |
540 | #define adjustCursorEvent (osEvt + 18) | |
541 | ||
542 | #endif /* XP_MAC */ | |
543 | ||
544 | ||
545 | /* | |
546 | * Values for mode passed to NPP_New: | |
547 | */ | |
548 | #define NP_EMBED 1 | |
549 | #define NP_FULL 2 | |
550 | ||
551 | /* | |
552 | * Values for stream type passed to NPP_NewStream: | |
553 | */ | |
554 | #define NP_NORMAL 1 | |
555 | #define NP_SEEK 2 | |
556 | #define NP_ASFILE 3 | |
557 | #define NP_ASFILEONLY 4 | |
558 | ||
559 | #define NP_MAXREADY (((unsigned)(~0)<<1)>>1) | |
560 | ||
561 | #if !defined(__LP64__) | |
562 | #if defined(XP_MAC) || defined(XP_MACOSX) | |
563 | #pragma options align=reset | |
564 | #endif | |
565 | #endif /* __LP64__ */ | |
566 | ||
567 | ||
568 | /*----------------------------------------------------------------------*/ | |
569 | /* Error and Reason Code definitions */ | |
570 | /*----------------------------------------------------------------------*/ | |
571 | ||
572 | /* | |
573 | * Values of type NPError: | |
574 | */ | |
575 | #define NPERR_BASE 0 | |
576 | #define NPERR_NO_ERROR (NPERR_BASE + 0) | |
577 | #define NPERR_GENERIC_ERROR (NPERR_BASE + 1) | |
578 | #define NPERR_INVALID_INSTANCE_ERROR (NPERR_BASE + 2) | |
579 | #define NPERR_INVALID_FUNCTABLE_ERROR (NPERR_BASE + 3) | |
580 | #define NPERR_MODULE_LOAD_FAILED_ERROR (NPERR_BASE + 4) | |
581 | #define NPERR_OUT_OF_MEMORY_ERROR (NPERR_BASE + 5) | |
582 | #define NPERR_INVALID_PLUGIN_ERROR (NPERR_BASE + 6) | |
583 | #define NPERR_INVALID_PLUGIN_DIR_ERROR (NPERR_BASE + 7) | |
584 | #define NPERR_INCOMPATIBLE_VERSION_ERROR (NPERR_BASE + 8) | |
585 | #define NPERR_INVALID_PARAM (NPERR_BASE + 9) | |
586 | #define NPERR_INVALID_URL (NPERR_BASE + 10) | |
587 | #define NPERR_FILE_NOT_FOUND (NPERR_BASE + 11) | |
588 | #define NPERR_NO_DATA (NPERR_BASE + 12) | |
589 | #define NPERR_STREAM_NOT_SEEKABLE (NPERR_BASE + 13) | |
590 | ||
591 | /* | |
592 | * Values of type NPReason: | |
593 | */ | |
594 | #define NPRES_BASE 0 | |
595 | #define NPRES_DONE (NPRES_BASE + 0) | |
596 | #define NPRES_NETWORK_ERR (NPRES_BASE + 1) | |
597 | #define NPRES_USER_BREAK (NPRES_BASE + 2) | |
598 | ||
599 | /* | |
600 | * Don't use these obsolete error codes any more. | |
601 | */ | |
602 | #define NP_NOERR NP_NOERR_is_obsolete_use_NPERR_NO_ERROR | |
603 | #define NP_EINVAL NP_EINVAL_is_obsolete_use_NPERR_GENERIC_ERROR | |
604 | #define NP_EABORT NP_EABORT_is_obsolete_use_NPRES_USER_BREAK | |
605 | ||
606 | /* | |
607 | * Version feature information | |
608 | */ | |
609 | #define NPVERS_HAS_STREAMOUTPUT 8 | |
610 | #define NPVERS_HAS_NOTIFICATION 9 | |
611 | #define NPVERS_HAS_LIVECONNECT 9 | |
612 | #define NPVERS_WIN16_HAS_LIVECONNECT 9 | |
613 | #define NPVERS_68K_HAS_LIVECONNECT 11 | |
614 | #define NPVERS_HAS_WINDOWLESS 11 | |
615 | #define NPVERS_HAS_XPCONNECT_SCRIPTING 13 /* Not implemented in WebKit */ | |
616 | #define NPVERS_HAS_NPRUNTIME_SCRIPTING 14 | |
617 | #define NPVERS_HAS_FORM_VALUES 15 /* Not implemented in WebKit; see bug 13061 */ | |
618 | #define NPVERS_HAS_POPUPS_ENABLED_STATE 16 /* Not implemented in WebKit */ | |
619 | #define NPVERS_HAS_RESPONSE_HEADERS 17 | |
620 | #define NPVERS_HAS_NPOBJECT_ENUM 18 | |
621 | ||
622 | ||
623 | /*----------------------------------------------------------------------*/ | |
624 | /* Function Prototypes */ | |
625 | /*----------------------------------------------------------------------*/ | |
626 | ||
627 | #if defined(_WINDOWS) && !defined(WIN32) | |
628 | #define NP_LOADDS _loadds | |
629 | #else | |
630 | #define NP_LOADDS | |
631 | #endif | |
632 | ||
633 | #ifdef __cplusplus | |
634 | extern "C" { | |
635 | #endif | |
636 | ||
637 | /* | |
638 | * NPP_* functions are provided by the plugin and called by the navigator. | |
639 | */ | |
640 | ||
641 | #ifdef XP_UNIX | |
642 | char* NPP_GetMIMEDescription(void); | |
643 | #endif /* XP_UNIX */ | |
644 | ||
645 | NPError NPP_Initialize(void); | |
646 | void NPP_Shutdown(void); | |
647 | NPError NP_LOADDS NPP_New(NPMIMEType pluginType, NPP instance, | |
648 | uint16 mode, int16 argc, char* argn[], | |
649 | char* argv[], NPSavedData* saved); | |
650 | NPError NP_LOADDS NPP_Destroy(NPP instance, NPSavedData** save); | |
651 | NPError NP_LOADDS NPP_SetWindow(NPP instance, NPWindow* window); | |
652 | NPError NP_LOADDS NPP_NewStream(NPP instance, NPMIMEType type, | |
653 | NPStream* stream, NPBool seekable, | |
654 | uint16* stype); | |
655 | NPError NP_LOADDS NPP_DestroyStream(NPP instance, NPStream* stream, | |
656 | NPReason reason); | |
657 | int32 NP_LOADDS NPP_WriteReady(NPP instance, NPStream* stream); | |
658 | int32 NP_LOADDS NPP_Write(NPP instance, NPStream* stream, int32 offset, | |
659 | int32 len, void* buffer); | |
660 | void NP_LOADDS NPP_StreamAsFile(NPP instance, NPStream* stream, | |
661 | const char* fname); | |
662 | void NP_LOADDS NPP_Print(NPP instance, NPPrint* platformPrint); | |
663 | int16 NPP_HandleEvent(NPP instance, void* event); | |
664 | void NP_LOADDS NPP_URLNotify(NPP instance, const char* url, | |
665 | NPReason reason, void* notifyData); | |
666 | jref NP_LOADDS NPP_GetJavaClass(void); | |
667 | NPError NPP_GetValue(NPP instance, NPPVariable variable, | |
668 | void *value); | |
669 | NPError NPP_SetValue(NPP instance, NPNVariable variable, | |
670 | void *value); | |
671 | ||
672 | /* | |
673 | * NPN_* functions are provided by the navigator and called by the plugin. | |
674 | */ | |
675 | ||
676 | void NPN_Version(int* plugin_major, int* plugin_minor, | |
677 | int* netscape_major, int* netscape_minor); | |
678 | NPError NPN_GetURLNotify(NPP instance, const char* url, | |
679 | const char* target, void* notifyData); | |
680 | NPError NPN_GetURL(NPP instance, const char* url, | |
681 | const char* target); | |
682 | NPError NPN_PostURLNotify(NPP instance, const char* url, | |
683 | const char* target, uint32 len, | |
684 | const char* buf, NPBool file, | |
685 | void* notifyData); | |
686 | NPError NPN_PostURL(NPP instance, const char* url, | |
687 | const char* target, uint32 len, | |
688 | const char* buf, NPBool file); | |
689 | NPError NPN_RequestRead(NPStream* stream, NPByteRange* rangeList); | |
690 | NPError NPN_NewStream(NPP instance, NPMIMEType type, | |
691 | const char* target, NPStream** stream); | |
692 | int32 NPN_Write(NPP instance, NPStream* stream, int32 len, | |
693 | void* buffer); | |
694 | NPError NPN_DestroyStream(NPP instance, NPStream* stream, | |
695 | NPReason reason); | |
696 | void NPN_Status(NPP instance, const char* message); | |
697 | const char* NPN_UserAgent(NPP instance); | |
698 | void* NPN_MemAlloc(uint32 size); | |
699 | void NPN_MemFree(void* ptr); | |
700 | uint32 NPN_MemFlush(uint32 size); | |
701 | void NPN_ReloadPlugins(NPBool reloadPages); | |
702 | JRIEnv* NPN_GetJavaEnv(void); | |
703 | jref NPN_GetJavaPeer(NPP instance); | |
704 | NPError NPN_GetValue(NPP instance, NPNVariable variable, | |
705 | void *value); | |
706 | NPError NPN_SetValue(NPP instance, NPPVariable variable, | |
707 | void *value); | |
708 | void NPN_InvalidateRect(NPP instance, NPRect *invalidRect); | |
709 | void NPN_InvalidateRegion(NPP instance, NPRegion invalidRegion); | |
710 | void NPN_ForceRedraw(NPP instance); | |
711 | void NPN_PushPopupsEnabledState(NPP instance, NPBool enabled); | |
712 | void NPN_PopPopupsEnabledState(NPP instance); | |
713 | ||
714 | #ifdef __cplusplus | |
715 | } /* end extern "C" */ | |
716 | #endif | |
717 | ||
718 | #endif // ENABLE(NETSCAPE_API) | |
719 | ||
720 | #endif /* _NPAPI_H_ */ |