npapi.h.svn-base

来自「SumatraPDF是一款小型开源的pdf阅读工具。虽然玲珑小巧(只有800多K」· SVN-BASE 代码 · 共 471 行

SVN-BASE
471
字号
/* -*- Mode: C; tab-width: 4; -*- *//* *  npapi.h $Revision: 1.88 $ *  Netscape client plug-in API spec */#ifndef _NPAPI_H_#define _NPAPI_H_#include "jri.h"                /* Java Runtime Interface */#ifdef _WINDOWS# ifndef XP_WIN#   define XP_WIN 1# endif /* XP_WIN */#endif /* _WINDOWS */#ifdef __MWERKS__# define _declspec __declspec# ifdef macintosh#   ifndef XP_MAC#     define XP_MAC 1#   endif /* XP_MAC */# endif /* macintosh */# ifdef __INTEL__#   undef NULL#   ifndef XP_WIN#     define XP_WIN 1#   endif /* __INTEL__ */# endif /* XP_PC */#endif /* __MWERKS__ */#ifdef XP_MAC  #include <Quickdraw.h>  #include <Events.h>#endif#ifdef XP_UNIX  #include <X11/Xlib.h>  #include <X11/Xutil.h>#endif/*----------------------------------------------------------------------*//*         Plugin Version Constants       *//*----------------------------------------------------------------------*/#define NP_VERSION_MAJOR 0#define NP_VERSION_MINOR 11/*----------------------------------------------------------------------*//*         Definition of Basic Types        *//*----------------------------------------------------------------------*/#ifndef _UINT16typedef unsigned short uint16;#endif#ifndef _UINT32#if defined(__alpha)typedef unsigned int uint32;#else /* __alpha */typedef unsigned long uint32;#endif /* __alpha */#endif#ifndef _INT16typedef short int16;#endif#ifndef _INT32#if defined(__alpha)typedef int int32;#else /* __alpha */typedef long int32;#endif /* __alpha */#endif#ifndef FALSE#define FALSE (0)#endif#ifndef TRUE#define TRUE (1)#endif#ifndef NULL#define NULL (0L)#endiftypedef unsigned char NPBool;typedef int16     NPError;typedef int16     NPReason;typedef char*     NPMIMEType;/*----------------------------------------------------------------------*//*         Structures and definitions       *//*----------------------------------------------------------------------*/#ifdef XP_MAC#pragma options align=mac68k#endif/* *  NPP is a plug-in's opaque instance handle */typedef struct _NPP{    void* pdata;      /* plug-in private data */    void* ndata;      /* netscape private data */} NPP_t;typedef NPP_t*  NPP;typedef struct _NPStream{    void*   pdata;    /* plug-in private data */    void*   ndata;    /* netscape private data */    const char*   url;    uint32    end;    uint32    lastmodified;    void*   notifyData;} NPStream;typedef struct _NPByteRange{    int32 offset;     /* negative offset means from the end */    uint32  length;    struct _NPByteRange* next;} NPByteRange;typedef struct _NPSavedData{    int32 len;    void* buf;} NPSavedData;typedef struct _NPRect{    uint16  top;    uint16  left;    uint16  bottom;    uint16  right;} NPRect;#ifdef XP_UNIX/* * Unix specific structures and definitions *//* * Callback Structures. * * These are used to pass additional platform specific information. */enum {  NP_SETWINDOW = 1,  NP_PRINT};typedef struct{    int32   type;} NPAnyCallbackStruct;typedef struct{    int32     type;    Display*    display;    Visual*     visual;    Colormap    colormap;    unsigned int  depth;} NPSetWindowCallbackStruct;typedef struct{    int32     type;    FILE*     fp;} NPPrintCallbackStruct;#endif /* XP_UNIX *//* * List of variable names for which NPP_GetValue shall be implemented */typedef enum {  NPPVpluginNameString = 1,  NPPVpluginDescriptionString,  NPPVpluginWindowBool,  NPPVpluginTransparentBool} NPPVariable;/* * List of variable names for which NPN_GetValue is implemented by Mozilla */typedef enum {  NPNVxDisplay = 1,  NPNVxtAppContext,    NPNVnetscapeWindow,  NPNVjavascriptEnabledBool,  NPNVasdEnabledBool,  NPNVisOfflineBool} NPNVariable;/* * The type of a NPWindow - it specifies the type of the data structure * returned in the window field. */typedef enum {    NPWindowTypeWindow = 1,    NPWindowTypeDrawable} NPWindowType;typedef struct _NPWindow{    void* window;   /* Platform specific window handle */    int32 x;      /* Position of top left corner relative */    int32 y;      /*  to a netscape page.         */    uint32  width;    /* Maximum window size */    uint32  height;    NPRect  clipRect; /* Clipping rectangle in port coordinates */	    /* Used by MAC only.        */#ifdef XP_UNIX    void *  ws_info;  /* Platform-dependent additonal data */#endif /* XP_UNIX */    NPWindowType type;  /* Is this a window or a drawable? */} NPWindow;typedef struct _NPFullPrint{    NPBool  pluginPrinted;  /* Set TRUE if plugin handled fullscreen */			    /*  printing               */    NPBool  printOne;   /* TRUE if plugin should print one copy  */			/*  to default printer           */    void* platformPrint;  /* Platform-specific printing info */} NPFullPrint;typedef struct _NPEmbedPrint{    NPWindow  window;    void* platformPrint;  /* Platform-specific printing info */} NPEmbedPrint;typedef struct _NPPrint{    uint16  mode;           /* NP_FULL or NP_EMBED */    union    {    NPFullPrint   fullPrint;    /* if mode is NP_FULL */    NPEmbedPrint  embedPrint;   /* if mode is NP_EMBED */    } print;} NPPrint;#ifdef XP_MACtypedef EventRecord NPEvent;#elif defined(XP_WIN)typedef struct _NPEvent{    uint16   event;    uint32   wParam;    uint32   lParam;} NPEvent;#elif defined (XP_UNIX)typedef XEvent NPEvent;#elsetypedef void*     NPEvent;#endif /* XP_MAC */#ifdef XP_MACtypedef RgnHandle NPRegion;#elif defined(XP_WIN)typedef HRGN NPRegion;#elif defined(XP_UNIX)typedef Region NPRegion;#elsetypedef void *NPRegion;#endif /* XP_MAC */#ifdef XP_MAC/* *  Mac-specific structures and definitions. */typedef struct NP_Port{    CGrafPtr  port;   /* Grafport */    int32   portx;    /* position inside the topmost window */    int32   porty;} NP_Port;/* *  Non-standard event types that can be passed to HandleEvent */#define getFocusEvent     (osEvt + 16)#define loseFocusEvent      (osEvt + 17)#define adjustCursorEvent   (osEvt + 18)#endif /* XP_MAC *//* * Values for mode passed to NPP_New: */#define NP_EMBED    1#define NP_FULL     2/* * Values for stream type passed to NPP_NewStream: */#define NP_NORMAL   1#define NP_SEEK     2#define NP_ASFILE   3#define NP_ASFILEONLY   4#define NP_MAXREADY (((unsigned)(~0)<<1)>>1)#ifdef XP_MAC#pragma options align=reset#endif/*----------------------------------------------------------------------*//*         Error and Reason Code definitions      *//*----------------------------------------------------------------------*//* *  Values of type NPError: */#define NPERR_BASE              0#define NPERR_NO_ERROR            (NPERR_BASE + 0)#define NPERR_GENERIC_ERROR         (NPERR_BASE + 1)#define NPERR_INVALID_INSTANCE_ERROR    (NPERR_BASE + 2)#define NPERR_INVALID_FUNCTABLE_ERROR   (NPERR_BASE + 3)#define NPERR_MODULE_LOAD_FAILED_ERROR    (NPERR_BASE + 4)#define NPERR_OUT_OF_MEMORY_ERROR     (NPERR_BASE + 5)#define NPERR_INVALID_PLUGIN_ERROR      (NPERR_BASE + 6)#define NPERR_INVALID_PLUGIN_DIR_ERROR    (NPERR_BASE + 7)#define NPERR_INCOMPATIBLE_VERSION_ERROR  (NPERR_BASE + 8)#define NPERR_INVALID_PARAM       (NPERR_BASE + 9)#define NPERR_INVALID_URL         (NPERR_BASE + 10)#define NPERR_FILE_NOT_FOUND        (NPERR_BASE + 11)#define NPERR_NO_DATA           (NPERR_BASE + 12)#define NPERR_STREAM_NOT_SEEKABLE     (NPERR_BASE + 13)/* *  Values of type NPReason: */#define NPRES_BASE        0#define NPRES_DONE          (NPRES_BASE + 0)#define NPRES_NETWORK_ERR     (NPRES_BASE + 1)#define NPRES_USER_BREAK      (NPRES_BASE + 2)/* *      Don't use these obsolete error codes any more. */#define NP_NOERR  NP_NOERR_is_obsolete_use_NPERR_NO_ERROR#define NP_EINVAL NP_EINVAL_is_obsolete_use_NPERR_GENERIC_ERROR#define NP_EABORT NP_EABORT_is_obsolete_use_NPRES_USER_BREAK/* * Version feature information */#define NPVERS_HAS_STREAMOUTPUT   8#define NPVERS_HAS_NOTIFICATION   9#define NPVERS_HAS_LIVECONNECT    9#define NPVERS_WIN16_HAS_LIVECONNECT  9#define NPVERS_68K_HAS_LIVECONNECT  11#define NPVERS_HAS_WINDOWLESS       11/*----------------------------------------------------------------------*//*         Function Prototypes        *//*----------------------------------------------------------------------*/#if defined(_WINDOWS) && !defined(WIN32)#define NP_LOADDS  _loadds#else#define NP_LOADDS#endif#ifdef __cplusplusextern "C" {#endif/* * NPP_* functions are provided by the plugin and called by the navigator. */#ifdef XP_UNIXchar*         NPP_GetMIMEDescription(void);#endif /* XP_UNIX */NPError    NPP_Initialize(void);void       NPP_Shutdown(void);NPError     NP_LOADDS NPP_New(NPMIMEType pluginType, NPP instance,		uint16 mode, int16 argc, char* argn[],		char* argv[], NPSavedData* saved);NPError     NP_LOADDS NPP_Destroy(NPP instance, NPSavedData** save);NPError     NP_LOADDS NPP_SetWindow(NPP instance, NPWindow* window);NPError     NP_LOADDS NPP_NewStream(NPP instance, NPMIMEType type,		NPStream* stream, NPBool seekable,		uint16* stype);NPError     NP_LOADDS NPP_DestroyStream(NPP instance, NPStream* stream,		NPReason reason);int32     NP_LOADDS NPP_WriteReady(NPP instance, NPStream* stream);int32     NP_LOADDS NPP_Write(NPP instance, NPStream* stream, int32 offset,		int32 len, void* buffer);void      NP_LOADDS NPP_StreamAsFile(NPP instance, NPStream* stream,		const char* fname);void      NP_LOADDS NPP_Print(NPP instance, NPPrint* platformPrint);int16     NPP_HandleEvent(NPP instance, void* event);void      NP_LOADDS NPP_URLNotify(NPP instance, const char* url,		NPReason reason, void* notifyData);jref      NP_LOADDS     NPP_GetJavaClass(void);NPError         NPP_GetValue(void *instance, NPPVariable variable,		void *value);NPError         NPP_SetValue(void *instance, NPNVariable variable,		void *value);/* * NPN_* functions are provided by the navigator and called by the plugin. */void    NPN_Version(int* plugin_major, int* plugin_minor,		int* netscape_major, int* netscape_minor);NPError   NPN_GetURLNotify(NPP instance, const char* url,		const char* target, void* notifyData);NPError   NPN_GetURL(NPP instance, const char* url,		const char* target);NPError   NPN_PostURLNotify(NPP instance, const char* url,		const char* target, uint32 len,		const char* buf, NPBool file,		void* notifyData);NPError   NPN_PostURL(NPP instance, const char* url,		const char* target, uint32 len,		const char* buf, NPBool file);NPError   NPN_RequestRead(NPStream* stream, NPByteRange* rangeList);NPError   NPN_NewStream(NPP instance, NPMIMEType type,		const char* target, NPStream** stream);int32   NPN_Write(NPP instance, NPStream* stream, int32 len,		void* buffer);NPError     NPN_DestroyStream(NPP instance, NPStream* stream,		NPReason reason);void    NPN_Status(NPP instance, const char* message);const char* NPN_UserAgent(NPP instance);void*   NPN_MemAlloc(uint32 size);void    NPN_MemFree(void* ptr);uint32    NPN_MemFlush(uint32 size);void      NPN_ReloadPlugins(NPBool reloadPages);JRIEnv*     NPN_GetJavaEnv(void);jref      NPN_GetJavaPeer(NPP instance);NPError     NPN_GetValue(NPP instance, NPNVariable variable,		void *value);NPError     NPN_SetValue(NPP instance, NPPVariable variable,		void *value);void    NPN_InvalidateRect(NPP instance, NPRect *invalidRect);void    NPN_InvalidateRegion(NPP instance, NPRegion invalidRegion);void    NPN_ForceRedraw(NPP instance);#ifdef __cplusplus}  /* end extern "C" */#endif#endif /* _NPAPI_H_ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?