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