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

📄 nsplugindefs.h

📁 gcj java applet的web browser 插件
💻 H
字号:
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- *//* ***** 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 ***** */#ifndef nsplugindefs_h___#define nsplugindefs_h___#if defined(XP_OS2) || defined(__OS2__)#define INCL_BASE#define INCL_PM#include <os2.h>#pragma pack(1)#endif#ifndef prtypes_h___#include "prtypes.h"#endif#if defined(XP_MAC) || defined(XP_MACOSX)#   include <Quickdraw.h>#   include <Events.h>#   include <MacWindows.h>#endif#if defined(XP_UNIX) && defined(MOZ_X11)#   include <X11/Xlib.h>#   include <X11/Xutil.h>#endif#if defined(XP_WIN)#   include <windef.h>#endif/////////////////////////////////////////////////////////////////////////////////* The OS/2 version of Netscape uses RC_DATA to define the   mime types, file extensions, etc that are required.   Use a vertical bar to separate types, end types with \0.   FileVersion and ProductVersion are 32bit ints, all other   entries are strings the MUST be terminated wwith a \0.AN EXAMPLE:RCDATA NS_INFO_ProductVersion { 1,0,0,1,}RCDATA NS_INFO_MIMEType    { "video/x-video|",                             "video/x-flick\0" }RCDATA NS_INFO_FileExtents { "avi|",                             "flc\0" }RCDATA NS_INFO_FileOpenName{ "MMOS2 video player(*.avi)|",                             "MMOS2 Flc/Fli player(*.flc)\0" }RCDATA NS_INFO_FileVersion       { 1,0,0,1 }RCDATA NS_INFO_CompanyName       { "Netscape Communications\0" }RCDATA NS_INFO_FileDescription   { "NPAVI32 Extension DLL\0"RCDATA NS_INFO_InternalName      { "NPAVI32\0" )RCDATA NS_INFO_LegalCopyright    { "Copyright Netscape Communications \251 1996\0"RCDATA NS_INFO_OriginalFilename  { "NVAPI32.DLL" }RCDATA NS_INFO_ProductName       { "NPAVI32 Dynamic Link Library\0" }*//* RC_DATA types for version info - required */#define NS_INFO_ProductVersion      1#define NS_INFO_MIMEType            2#define NS_INFO_FileOpenName        3#define NS_INFO_FileExtents         4/* RC_DATA types for version info - used if found */#define NS_INFO_FileDescription     5#define NS_INFO_ProductName         6/* RC_DATA types for version info - optional */#define NS_INFO_CompanyName         7#define NS_INFO_FileVersion         8#define NS_INFO_InternalName        9#define NS_INFO_LegalCopyright      10#define NS_INFO_OriginalFilename    11#ifndef RC_INVOKED////////////////////////////////////////////////////////////////////////////////// Structures and definitions#ifdef XP_MAC#pragma options align=mac68k#endiftypedef const char*     nsMIMEType;struct nsByteRange {    PRInt32             offset; 	/* negative offset means from the end */    PRUint32            length;    struct nsByteRange* next;};struct nsPluginRect {    PRUint16            top;    PRUint16            left;    PRUint16            bottom;    PRUint16            right;};////////////////////////////////////////////////////////////////////////////////// Unix specific structures and definitions#ifdef XP_UNIX#include <stdio.h>/* * Callback Structures. * * These are used to pass additional platform specific information. */enum nsPluginCallbackType {    nsPluginCallbackType_SetWindow = 1,    nsPluginCallbackType_Print};struct nsPluginAnyCallbackStruct {    PRInt32     type;};#ifdef MOZ_X11struct nsPluginSetWindowCallbackStruct {    PRInt32     type;    Display*    display;    Visual*     visual;    Colormap    colormap;    PRUint32    depth;};#elsestruct nsPluginSetWindowCallbackStruct {    PRInt32     type;};#endifstruct nsPluginPrintCallbackStruct {    PRInt32     type;    FILE*       fp;};#endif /* XP_UNIX */////////////////////////////////////////////////////////////////////////////////// List of variables which should be implmented by the pluginenum nsPluginVariable {    nsPluginVariable_NameString                      = 1,    nsPluginVariable_DescriptionString               = 2};enum nsPluginManagerVariable {    nsPluginManagerVariable_XDisplay                 = 1,    nsPluginManagerVariable_XtAppContext             = 2,    nsPluginManagerVariable_SupportsXEmbed            = 14};enum nsPluginInstancePeerVariable {    nsPluginInstancePeerVariable_NetscapeWindow      = 3//    nsPluginInstancePeerVariable_JavaClass              = 5,//    nsPluginInstancePeerVariable_TimerInterval          = 7};enum nsPluginInstanceVariable {    nsPluginInstanceVariable_WindowlessBool          = 3,    nsPluginInstanceVariable_TransparentBool         = 4,    nsPluginInstanceVariable_DoCacheBool             = 5,    nsPluginInstanceVariable_CallSetWindowAfterDestroyBool = 6,    nsPluginInstanceVariable_ScriptableInstance      = 10,    nsPluginInstanceVariable_ScriptableIID           = 11,    nsPluginInstanceVariable_NeedsXEmbed             = 14};////////////////////////////////////////////////////////////////////////////////enum nsPluginMode {    nsPluginMode_Embedded = 1,    nsPluginMode_Full};// XXX this can go away nowenum nsPluginStreamType {    nsPluginStreamType_Normal = 1,    nsPluginStreamType_Seek,    nsPluginStreamType_AsFile,    nsPluginStreamType_AsFileOnly};/* * The type of a nsPluginWindow - it specifies the type of the data structure * returned in the window field. */enum nsPluginWindowType {    nsPluginWindowType_Window = 1,    nsPluginWindowType_Drawable};#if defined(XP_MAC) || defined(XP_MACOSX)struct nsPluginPort {    CGrafPtr     port;   /* Grafport */    PRInt32     portx;  /* position inside the topmost window */    PRInt32     porty;};typedef RgnHandle       nsPluginRegion;typedef WindowRef       nsPluginPlatformWindowRef;#elif defined(XP_WIN) || defined(XP_OS2)struct nsPluginPort;typedef HRGN            nsPluginRegion;typedef HWND            nsPluginPlatformWindowRef;#elif defined(XP_UNIX) && defined(MOZ_X11)struct nsPluginPort;typedef Region          nsPluginRegion;typedef Drawable        nsPluginPlatformWindowRef;#elsestruct nsPluginPort;typedef void*           nsPluginRegion;typedef void*           nsPluginPlatformWindowRef;#endifstruct nsPluginWindow {    nsPluginPort* window;       /* Platform specific window handle */                                /* OS/2: x - Position of bottom left corner  */                                /* OS/2: y - relative to visible netscape window */    PRInt32       x;            /* Position of top left corner relative */    PRInt32       y;            /*	to a netscape page.					*/    PRUint32      width;        /* Maximum window size */    PRUint32      height;    nsPluginRect  clipRect;     /* Clipping rectangle in port coordinates */                                /* Used by MAC only.			  */#if defined(XP_UNIX) && !defined(XP_MACOSX)    void*         ws_info;      /* Platform-dependent additonal data */#endif /* XP_UNIX */    nsPluginWindowType type;    /* Is this a window or a drawable? */};struct nsPluginFullPrint {    PRBool      pluginPrinted;	/* Set TRUE if plugin handled fullscreen */                                /*	printing							 */    PRBool      printOne;       /* TRUE if plugin should print one copy  */                                /*	to default printer					 */    void*       platformPrint;  /* Platform-specific printing info */};struct nsPluginEmbedPrint {    nsPluginWindow    window;    void*             platformPrint;	/* Platform-specific printing info */};struct nsPluginPrint {    PRUint16                  mode;         /* nsPluginMode_Full or nsPluginMode_Embedded */    union    {        nsPluginFullPrint     fullPrint;	/* if mode is nsPluginMode_Full */        nsPluginEmbedPrint    embedPrint;	/* if mode is nsPluginMode_Embedded */    } print;};struct nsPluginEvent {#if defined(XP_MAC) || defined(XP_MACOSX)    EventRecord*                event;    nsPluginPlatformWindowRef   window;#elif defined(XP_OS2)    uint32      event;    uint32      wParam;    uint32      lParam;#elif defined(XP_WIN)    uint16      event;    uint32      wParam;    uint32      lParam;#elif defined(XP_UNIX) && defined(MOZ_X11)    XEvent      event;#else    void        *event;#endif};/* *  Non-standard event types that can be passed to HandleEvent *  (These need to be kept in sync with the events defined in npapi.h.) */enum nsPluginEventType {#if defined(XP_MAC) || defined(XP_MACOSX)    nsPluginEventType_GetFocusEvent = (osEvt + 16),    nsPluginEventType_LoseFocusEvent,    nsPluginEventType_AdjustCursorEvent,    nsPluginEventType_MenuCommandEvent,    nsPluginEventType_ClippingChangedEvent,    nsPluginEventType_ScrollingBeginsEvent,    nsPluginEventType_ScrollingEndsEvent,#endif /* XP_MAC || XP_MACOSX */    nsPluginEventType_Idle                 = 0};////////////////////////////////////////////////////////////////////////////////enum nsPluginReason {    nsPluginReason_Base = 0,    nsPluginReason_Done = 0,    nsPluginReason_NetworkErr,    nsPluginReason_UserBreak,    nsPluginReason_NoReason};////////////////////////////////////////////////////////////////////////////////// Version Numbers for Structs// These version number are for structures whose fields may evolve over time.// When fields are added to the end of the struct, the minor version will be// incremented. When the struct changes in an incompatible way the major version// will be incremented. #define nsMajorVersion(v)       (((PRInt32)(v) >> 16) & 0xffff)#define nsMinorVersion(v)       ((PRInt32)(v) & 0xffff)#define nsVersionOK(suppliedV, requiredV)                   \    (nsMajorVersion(suppliedV) == nsMajorVersion(requiredV) \     && nsMinorVersion(suppliedV) >= nsMinorVersion(requiredV))////////////////////////////////////////////////////////////////////////////////// Classes////////////////////////////////////////////////////////////////////////////////// Classes that must be implemented by the plugin DLL:class nsIPlugin;                        // plugin class (MIME-type handler)class nsIEventHandler;                  // event handler interfaceclass nsIPluginInstance;                // plugin instance// Classes that are implemented by the browser:class nsIPluginManager;                 // minimum browser requirementsclass nsIFileUtilities;                 // file utilities (accessible from nsIPluginManager)class nsIPluginInstancePeer;            // parts of nsIPluginInstance implemented by the browserclass nsIWindowlessPluginInstancePeer;  // subclass of nsIPluginInstancePeer for windowless pluginsclass nsIPluginTagInfo;                 // describes html tag (accessible from nsIPluginInstancePeer)////////////////////////////////////////////////////////////////////////////////#ifdef XP_MAC#pragma options align=reset#endif#endif /* RC_INVOKED */#ifdef __OS2__#pragma pack()#endif#endif // nsplugindefs_h___

⌨️ 快捷键说明

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