⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 npapi.h

📁 linux下开源浏览器WebKit的源码,市面上的很多商用浏览器都是移植自WebKit
💻 H
📖 第 1 页 / 共 2 页
字号:
/* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */   /*  *  Netscape client plug-in API spec  */ #ifndef _NPAPI_H_#define _NPAPI_H_#ifdef INCLUDE_JAVA#include "jri.h"                /* Java Runtime Interface */#else#define jref    void *#define JRIEnv  void#endif#ifdef _WIN32#    ifndef XP_WIN#        define XP_WIN 1#    endif /* XP_WIN */#endif /* _WIN32 */#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__ */#if defined(__APPLE_CC__) && !defined(__MACOS_CLASSIC__) && !defined(XP_UNIX)#   define XP_MACOSX#endif#ifdef XP_MAC    #include <Quickdraw.h>    #include <Events.h>#endif#if defined(XP_MACOSX) && defined(__LP64__)#define NP_NO_QUICKDRAW#define NP_NO_CARBON#endif#ifdef XP_MACOSX    #include <ApplicationServices/ApplicationServices.h>    #include <OpenGL/OpenGL.h>#ifndef NP_NO_CARBON    #include <Carbon/Carbon.h>#endif#endif#ifdef XP_UNIX    #include <X11/Xlib.h>    #include <X11/Xutil.h>    #include <stdio.h>#endif#ifdef XP_WIN    #include <windows.h>#endif/*----------------------------------------------------------------------*//*             Plugin Version Constants                                 *//*----------------------------------------------------------------------*/#define NP_VERSION_MAJOR 0#define NP_VERSION_MINOR 24/*----------------------------------------------------------------------*//*             Definition of Basic Types                                *//*----------------------------------------------------------------------*/#ifndef _UINT16#define _UINT16typedef unsigned short uint16;#endif#ifndef _UINT32#define _UINT32#ifdef __LP64__typedef unsigned int uint32;#else /* __LP64__ */typedef unsigned long uint32;#endif /* __LP64__ */#endif#ifndef _INT16#define _INT16typedef short int16;#endif#ifndef _INT32#define _INT32#ifdef __LP64__typedef int int32;#else /* __LP64__ */typedef long int32;#endif /* __LP64__ */#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             *//*----------------------------------------------------------------------*/#if !defined(__LP64__)#if defined(XP_MAC) || defined(XP_MACOSX)#pragma options align=mac68k#endif#endif /* __LP64__ *//* *  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;    const char*  headers;      /* Response headers from host.                                * Exists only for >= NPVERS_HAS_RESPONSE_HEADERS.                                * Used for HTTP only; NULL for non-HTTP.                                * Available from NPP_NewStream onwards.                                * Plugin should copy this data before storing it.                                * Includes HTTP status line and all headers,                                * preferably verbatim as received from server,                                * headers formatted as in HTTP ("Header: Value"),                                * and newlines (\n, NOT \r\n) separating lines.                                * Terminated by \n\0 (NOT \n\n\0). */} 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 *//* *   The following masks are applied on certain platforms to NPNV and  *   NPPV selectors that pass around pointers to COM interfaces. Newer  *   compilers on some platforms may generate vtables that are not  *   compatible with older compilers. To prevent older plugins from  *   not understanding a new browser's ABI, these masks change the  *   values of those selectors on those platforms. To remain backwards *   compatible with differenet versions of the browser, plugins can  *   use these masks to dynamically determine and use the correct C++ *   ABI that the browser is expecting. This does not apply to Windows  *   as Microsoft's COM ABI will likely not change. */#define NP_ABI_GCC3_MASK  0x10000000/* *   gcc 3.x generated vtables on UNIX and OSX are incompatible with  *   previous compilers. */#if (defined (XP_UNIX) && defined(__GNUC__) && (__GNUC__ >= 3))#define _NP_ABI_MIXIN_FOR_GCC3 NP_ABI_GCC3_MASK#else#define _NP_ABI_MIXIN_FOR_GCC3 0#endif#define NP_ABI_MACHO_MASK 0x01000000/* *   On OSX, the Mach-O executable format is significantly *   different than CFM. In addition to having a different *   C++ ABI, it also has has different C calling convention. *   You must use glue code when calling between CFM and *   Mach-O C functions.  */#if (defined(TARGET_RT_MAC_MACHO))#define _NP_ABI_MIXIN_FOR_MACHO NP_ABI_MACHO_MASK#else#define _NP_ABI_MIXIN_FOR_MACHO 0#endif#define NP_ABI_MASK (_NP_ABI_MIXIN_FOR_GCC3 | _NP_ABI_MIXIN_FOR_MACHO)/* * List of variable names for which NPP_GetValue shall be implemented */typedef enum {    NPPVpluginNameString = 1,    NPPVpluginDescriptionString,    NPPVpluginWindowBool,    NPPVpluginTransparentBool,    NPPVjavaClass,                /* Not implemented in WebKit */    NPPVpluginWindowSize,         /* Not implemented in WebKit */    NPPVpluginTimerInterval,      /* Not implemented in WebKit */    NPPVpluginScriptableInstance = (10 | NP_ABI_MASK), /* Not implemented in WebKit */    NPPVpluginScriptableIID = 11, /* Not implemented in WebKit */    /* 12 and over are available on Mozilla builds starting with 0.9.9 */    NPPVjavascriptPushCallerBool = 12,  /* Not implemented in WebKit */    NPPVpluginKeepLibraryInMemory = 13, /* Not implemented in WebKit */    NPPVpluginNeedsXEmbed         = 14, /* Not implemented in WebKit */    /* Get the NPObject for scripting the plugin. */    NPPVpluginScriptableNPObject  = 15,    /* Get the plugin value (as \0-terminated UTF-8 string data) for     * form submission if the plugin is part of a form. Use     * NPN_MemAlloc() to allocate memory for the string data.     */    NPPVformValue = 16,    /* Not implemented in WebKit */    NPPVpluginUrlRequestsDisplayedBool = 17, /* Not implemented in WebKit */    /* Checks if the plugin is interested in receiving the http body of     * failed http requests (http status != 200).     */    NPPVpluginWantsAllNetworkStreams = 18,    NPPVpluginPrivateModeBool = 19,        /* Checks to see if the plug-in would like the browser to load the "src" attribute. */    NPPVpluginCancelSrcStream = 20,#ifdef XP_MACOSX    /* Used for negotiating drawing models */    NPPVpluginDrawingModel = 1000,    /* Used for negotiating event models */    NPPVpluginEventModel = 1001,    /* The plug-in text input vtable */    NPPVpluginTextInputFuncs = 1002,    /* In the NPDrawingModelCoreAnimation drawing model, the browser asks the plug-in for a Core Animation layer. */    NPPVpluginCoreAnimationLayer = 1003#endif} NPPVariable;/* * List of variable names for which NPN_GetValue is implemented by Mozilla */typedef enum {    NPNVxDisplay = 1,    NPNVxtAppContext,    NPNVnetscapeWindow,    NPNVjavascriptEnabledBool,    NPNVasdEnabledBool,    NPNVisOfflineBool,    /* 10 and over are available on Mozilla builds starting with 0.9.4 */    NPNVserviceManager = (10 | NP_ABI_MASK),  /* Not implemented in WebKit */    NPNVDOMElement     = (11 | NP_ABI_MASK),  /* Not implemented in WebKit */    NPNVDOMWindow      = (12 | NP_ABI_MASK),  /* Not implemented in WebKit */    NPNVToolkit        = (13 | NP_ABI_MASK),  /* Not implemented in WebKit */    NPNVSupportsXEmbedBool = 14,              /* Not implemented in WebKit */    /* Get the NPObject wrapper for the browser window. */    NPNVWindowNPObject = 15,    /* Get the NPObject wrapper for the plugins DOM element. */    NPNVPluginElementNPObject = 16,    NPNVSupportsWindowless = 17,        NPNVprivateModeBool = 18#ifdef XP_MACOSX    , NPNVpluginDrawingModel = 1000 /* The NPDrawingModel specified by the plugin */#ifndef NP_NO_QUICKDRAW    , NPNVsupportsQuickDrawBool = 2000 /* TRUE if the browser supports the QuickDraw drawing model */#endif    , NPNVsupportsCoreGraphicsBool = 2001 /* TRUE if the browser supports the CoreGraphics drawing model */    , NPNVsupportsOpenGLBool = 2002 /* TRUE if the browser supports the OpenGL drawing model (CGL on Mac) */    , NPNVsupportsCoreAnimationBool = 2003 /* TRUE if the browser supports the CoreAnimation drawing model */#ifndef NP_NO_CARBON    , NPNVsupportsCarbonBool = 3000 /* TRUE if the browser supports the Carbon event model */#endif    , NPNVsupportsCocoaBool = 3001 /* TRUE if the browser supports the Cocoa event model */        , NPNVbrowserTextInputFuncs = 1002 /* The browser text input vtable */#endif /* XP_MACOSX */} NPNVariable;typedef enum {   NPNURLVCookie = 501,   NPNURLVProxy} NPNURLVariable;/* * The type of a NPWindow - it specifies the type of the data structure * returned in the window field. */typedef enum {    NPWindowTypeWindow = 1,    NPWindowTypeDrawable} NPWindowType;#ifdef XP_MACOSX

⌨️ 快捷键说明

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