npapi.h
上传用户:goldcmy89
上传日期:2017-12-03
资源大小:2246k
文件大小:20k
源码类别:

PlugIns编程

开发平台:

Visual C++

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