📄 npapi.h
字号:
/* * The drawing model for a Mac OS X plugin. These are the possible values for the NPNVpluginDrawingModel variable. */ typedef enum {#ifndef NP_NO_QUICKDRAW NPDrawingModelQuickDraw = 0,#endif NPDrawingModelCoreGraphics = 1, NPDrawingModelOpenGL = 2, NPDrawingModelCoreAnimation = 3} NPDrawingModel;/* * The event model for a Mac OS X plugin. These are the possible values for the NPNVpluginEventModel variable. */typedef enum {#ifndef NP_NO_CARBON NPEventModelCarbon = 0,#endif NPEventModelCocoa = 1,} NPEventModel;typedef enum { NPCocoaEventDrawRect = 1, NPCocoaEventMouseDown, NPCocoaEventMouseUp, NPCocoaEventMouseMoved, NPCocoaEventMouseEntered, NPCocoaEventMouseExited, NPCocoaEventMouseDragged, NPCocoaEventKeyDown, NPCocoaEventKeyUp, NPCocoaEventFlagsChanged, NPCocoaEventFocusChanged, NPCocoaEventWindowFocusChanged, NPCocoaEventScrollWheel,} NPCocoaEventType;typedef struct _NPNSString NPNSString;typedef struct _NPNSWindow NPNSWindow;typedef struct _NPNSMenu NPNSMenu;typedef struct _NPCocoaEvent { NPCocoaEventType type; uint32 version; union { struct { uint32 modifierFlags; double pluginX; double pluginY; int32 buttonNumber; int32 clickCount; double deltaX; double deltaY; double deltaZ; } mouse; struct { uint32 modifierFlags; NPNSString *characters; NPNSString *charactersIgnoringModifiers; NPBool isARepeat; uint16 keyCode; } key; struct { double x; double y; double width; double height; } draw; struct { NPBool hasFocus; } focus; } data;} NPCocoaEvent;#endiftypedef 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_MACOSXtypedef NPNSMenu NPMenu;#elsetypedef void * NPMenu;#endif#if defined(XP_MAC) || defined(XP_MACOSX)#ifndef NP_NO_CARBONtypedef EventRecord NPEvent;#endif#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 */#if defined(XP_MAC)typedef RgnHandle NPRegion;#elif defined(XP_MACOSX)/* * NPRegion's type depends on the drawing model specified by the plugin (see NPNVpluginDrawingModel). * NPQDRegion represents a QuickDraw RgnHandle and is used with the QuickDraw drawing model. * NPCGRegion repesents a graphical region when using any other drawing model. */typedef void *NPRegion;#ifndef NP_NO_QUICKDRAWtypedef RgnHandle NPQDRegion;#endiftypedef CGPathRef NPCGRegion;#elif defined(XP_WIN)typedef HRGN NPRegion;#elif defined(XP_UNIX)typedef Region NPRegion;#elsetypedef void *NPRegion;#endif /* XP_MAC */#ifdef XP_MACOSX/* * NP_CGContext is the type of the NPWindow's 'window' when the plugin specifies NPDrawingModelCoreGraphics * as its drawing model. */typedef struct NP_CGContext{ CGContextRef context;#ifdef NP_NO_CARBON NPNSWindow *window;#else void *window; // Can be either an NSWindow or a WindowRef depending on the event model#endif} NP_CGContext;/* * NP_GLContext is the type of the NPWindow's 'window' when the plugin specifies NPDrawingModelOpenGL as its * drawing model. */typedef struct NP_GLContext{ CGLContextObj context;#ifdef NP_NO_CARBON NPNSWindow *window;#else void *window; // Can be either an NSWindow or a WindowRef depending on the event model#endif} NP_GLContext;#endif /* XP_MACOSX */#if defined(XP_MAC) || defined(XP_MACOSX)/* * Mac-specific structures and definitions. */#ifndef NP_NO_QUICKDRAW/* * NP_Port is the type of the NPWindow's 'window' when the plugin specifies NPDrawingModelQuickDraw as its * drawing model, or the plugin does not specify a drawing model. * * It is not recommended that new plugins use NPDrawingModelQuickDraw or NP_Port, as QuickDraw has been * deprecated in Mac OS X 10.5. CoreGraphics is the preferred drawing API. * * NP_Port is not available in 64-bit. */ typedef struct NP_Port{ CGrafPtr port; /* Grafport */ int32 portx; /* position inside the topmost window */ int32 porty;} NP_Port;#endif /* NP_NO_QUICKDRAW *//* * 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)#if !defined(__LP64__)#if defined(XP_MAC) || defined(XP_MACOSX)#pragma options align=reset#endif#endif /* __LP64__ *//*----------------------------------------------------------------------*//* 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#define NPVERS_HAS_XPCONNECT_SCRIPTING 13 /* Not implemented in WebKit */#define NPVERS_HAS_NPRUNTIME_SCRIPTING 14#define NPVERS_HAS_FORM_VALUES 15 /* Not implemented in WebKit; see bug 13061 */#define NPVERS_HAS_POPUPS_ENABLED_STATE 16 /* Not implemented in WebKit */#define NPVERS_HAS_RESPONSE_HEADERS 17#define NPVERS_HAS_NPOBJECT_ENUM 18#define NPVERS_HAS_PLUGIN_THREAD_ASYNC_CALL 19#define NPVERS_HAS_ALL_NETWORK_STREAMS 20#define NPVERS_HAS_URL_AND_AUTH_INFO 21#define NPVERS_HAS_PRIVATE_MODE 22#define NPVERS_MACOSX_HAS_EVENT_MODELS 23#define NPVERS_HAS_CANCEL_SRC_STREAM 24/*----------------------------------------------------------------------*//* 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(NPP instance, NPPVariable variable, void *value);NPError NPP_SetValue(NPP 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);void NPN_PushPopupsEnabledState(NPP instance, NPBool enabled);void NPN_PopPopupsEnabledState(NPP instance);void NPN_PluginThreadAsyncCall(NPP instance, void (*func) (void *), void *userData);uint32 NPN_ScheduleTimer(NPP instance, uint32 interval, NPBool repeat, void (*timerFunc)(NPP npp, uint32 timerID));void NPN_UnscheduleTimer(NPP instance, uint32 timerID);NPError NPN_PopUpContextMenu(NPP instance, NPMenu* menu);#ifdef __cplusplus} /* end extern "C" */#endif#endif /* _NPAPI_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -