| // Copyright 2006 Google Inc. All Rights Reserved. |
| |
| #ifndef _NPHOSTAPI_H_ |
| #define _NPHOSTAPI_H_ |
| |
| #include "npapi.h" |
| #include "npruntime.h" |
| |
| // BEGIN GOOGLE GEARS MODIFICATIONS |
| |
| #ifndef STDCALL |
| #ifdef WIN32 |
| //#define STDCALL WINAPI |
| #define STDCALL __stdcall |
| #else |
| #define STDCALL |
| #endif // WIN32 |
| #endif // STDCALL |
| |
| // END GOOGLE GEARS MODIFICATIONS |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| // |
| // NPAPI NPP Function Pointers |
| // |
| typedef NPError (*NPP_NewProcPtr)(NPMIMEType pluginType, |
| NPP instance, |
| uint16 mode, |
| int16 argc, |
| char* argn[], |
| char* argv[], |
| NPSavedData* saved); |
| typedef NPError (*NPP_DestroyProcPtr)(NPP instance, |
| NPSavedData** save); |
| typedef NPError (*NPP_SetWindowProcPtr)(NPP instance, |
| NPWindow* window); |
| typedef NPError (*NPP_NewStreamProcPtr)(NPP instance, |
| NPMIMEType type, |
| NPStream* stream, |
| NPBool seekable, |
| uint16* stype); |
| typedef NPError (*NPP_DestroyStreamProcPtr)(NPP instance, |
| NPStream* stream, |
| NPReason reason); |
| typedef int32 (*NPP_WriteReadyProcPtr)(NPP instance, |
| NPStream* stream); |
| typedef int32 (*NPP_WriteProcPtr)(NPP instance, |
| NPStream* stream, |
| int32 offset, |
| int32 len, |
| void* buffer); |
| typedef void (*NPP_StreamAsFileProcPtr)(NPP instance, |
| NPStream* stream, |
| const char* fname); |
| typedef void (*NPP_PrintProcPtr)(NPP instance, |
| NPPrint* platformPrint); |
| typedef int16 (*NPP_HandleEventProcPtr)(NPP instance, |
| void* event); |
| typedef void (*NPP_URLNotifyProcPtr)(NPP instance, |
| const char* url, |
| NPReason reason, |
| void* notifyData); |
| typedef void* JRIGlobalRef; //not using this right now |
| typedef NPError (*NPP_GetValueProcPtr)(NPP instance, |
| NPPVariable variable, |
| void *ret_alue); |
| typedef NPError (*NPP_SetValueProcPtr)(NPP instance, |
| NPNVariable variable, |
| void *ret_alue); |
| |
| // |
| // NPAPI NPN Function Pointers |
| // |
| typedef NPError (*NPN_GetURLProcPtr)(NPP instance, |
| const char* URL, |
| const char* window); |
| typedef NPError (*NPN_PostURLProcPtr)(NPP instance, |
| const char* URL, |
| const char* window, |
| uint32 len, |
| const char* buf, |
| NPBool file); |
| typedef NPError (*NPN_RequestReadProcPtr)(NPStream* stream, |
| NPByteRange* rangeList); |
| typedef NPError (*NPN_NewStreamProcPtr)(NPP instance, |
| NPMIMEType type, |
| const char* window, |
| NPStream** stream); |
| typedef int32 (*NPN_WriteProcPtr)(NPP instance, |
| NPStream* stream, |
| int32 len, |
| void* buffer); |
| typedef NPError (*NPN_DestroyStreamProcPtr)(NPP instance, |
| NPStream* stream, |
| NPReason reason); |
| typedef void (*NPN_StatusProcPtr)(NPP instance, |
| const char* message); |
| typedef const char* (*NPN_UserAgentProcPtr)(NPP instance); |
| typedef void* (*NPN_MemAllocProcPtr)(uint32 size); |
| typedef void (*NPN_MemFreeProcPtr)(void* ptr); |
| typedef uint32 (*NPN_MemFlushProcPtr)(uint32 size); |
| typedef void (*NPN_ReloadPluginsProcPtr)(NPBool reloadPages); |
| |
| typedef void* (*NPN_GetJavaEnvProcPtr)(void); |
| typedef void* (*NPN_GetJavaPeerProcPtr)(NPP instance); |
| |
| typedef NPError (*NPN_GetURLNotifyProcPtr)(NPP instance, |
| const char* URL, |
| const char* window, |
| void* notifyData); |
| typedef NPError (*NPN_PostURLNotifyProcPtr)(NPP instance, |
| const char* URL, |
| const char* window, |
| uint32 len, |
| const char* buf, |
| NPBool file, |
| void* notifyData); |
| typedef NPError (*NPN_GetValueProcPtr)(NPP instance, |
| NPNVariable variable, |
| void *ret_value); |
| typedef NPError (*NPN_SetValueProcPtr)(NPP instance, |
| NPPVariable variable, |
| void *value); |
| typedef void (*NPN_InvalidateRectProcPtr)(NPP instance, |
| NPRect *rect); |
| typedef void (*NPN_InvalidateRegionProcPtr)(NPP instance, |
| NPRegion region); |
| typedef void (*NPN_ForceRedrawProcPtr)(NPP instance); |
| |
| typedef void (*NPN_ReleaseVariantValueProcPtr) (NPVariant *variant); |
| |
| typedef NPIdentifier (*NPN_GetStringIdentifierProcPtr) (const NPUTF8 *name); |
| typedef void (*NPN_GetStringIdentifiersProcPtr) (const NPUTF8 **names, |
| int32_t nameCount, |
| NPIdentifier *identifiers); |
| typedef NPIdentifier (*NPN_GetIntIdentifierProcPtr) (int32_t intid); |
| typedef int32_t (*NPN_IntFromIdentifierProcPtr) (NPIdentifier identifier); |
| typedef bool (*NPN_IdentifierIsStringProcPtr) (NPIdentifier identifier); |
| typedef NPUTF8 * (*NPN_UTF8FromIdentifierProcPtr) (NPIdentifier identifier); |
| |
| typedef NPObject* (*NPN_CreateObjectProcPtr) (NPP, |
| NPClass *aClass); |
| typedef NPObject* (*NPN_RetainObjectProcPtr) (NPObject *obj); |
| typedef void (*NPN_ReleaseObjectProcPtr) (NPObject *obj); |
| typedef bool (*NPN_InvokeProcPtr) (NPP npp, |
| NPObject *obj, |
| NPIdentifier methodName, |
| const NPVariant *args, |
| unsigned argCount, |
| NPVariant *result); |
| typedef bool (*NPN_InvokeDefaultProcPtr) (NPP npp, |
| NPObject *obj, |
| const NPVariant *args, |
| unsigned argCount, |
| NPVariant *result); |
| typedef bool (*NPN_EvaluateProcPtr) (NPP npp, |
| NPObject *obj, |
| NPString *script, |
| NPVariant *result); |
| typedef bool (*NPN_GetPropertyProcPtr) (NPP npp, |
| NPObject *obj, |
| NPIdentifier propertyName, |
| NPVariant *result); |
| typedef bool (*NPN_SetPropertyProcPtr) (NPP npp, |
| NPObject *obj, |
| NPIdentifier propertyName, |
| const NPVariant *value); |
| typedef bool (*NPN_HasPropertyProcPtr) (NPP, |
| NPObject *npobj, |
| NPIdentifier propertyName); |
| typedef bool (*NPN_HasMethodProcPtr) (NPP npp, |
| NPObject *npobj, |
| NPIdentifier methodName); |
| typedef bool (*NPN_RemovePropertyProcPtr) (NPP npp, |
| NPObject *obj, |
| NPIdentifier propertyName); |
| typedef void (*NPN_SetExceptionProcPtr) (NPObject *obj, |
| const NPUTF8 *message); |
| typedef void (*NPN_PushPopupsEnabledStateProcPtr)(NPP npp, |
| NPBool enabled); |
| typedef void (*NPN_PopPopupsEnabledStateProcPtr)(NPP npp); |
| typedef bool (*NPN_EnumerateProcPtr)(NPP npp, |
| NPObject *obj, |
| NPIdentifier **identifier, |
| uint32_t *count); |
| typedef void (*NPN_PluginThreadAsyncCallProcPtr)(NPP instance, |
| void (*func)(void *), |
| void *userData); |
| typedef bool (*NPN_ConstructProcPtr)(NPP npp, |
| NPObject* obj, |
| const NPVariant *args, |
| uint32_t argCount, |
| NPVariant *result); |
| |
| // |
| // NPAPI Function table of NPP functions (functions provided by plugin to host) |
| // |
| typedef struct _NPPluginFuncs { |
| unsigned short size; |
| unsigned short version; |
| NPP_NewProcPtr newp; |
| NPP_DestroyProcPtr destroy; |
| NPP_SetWindowProcPtr setwindow; |
| NPP_NewStreamProcPtr newstream; |
| NPP_DestroyStreamProcPtr destroystream; |
| NPP_StreamAsFileProcPtr asfile; |
| NPP_WriteReadyProcPtr writeready; |
| NPP_WriteProcPtr write; |
| NPP_PrintProcPtr print; |
| NPP_HandleEventProcPtr event; |
| NPP_URLNotifyProcPtr urlnotify; |
| JRIGlobalRef javaClass; |
| NPP_GetValueProcPtr getvalue; |
| NPP_SetValueProcPtr setvalue; |
| } NPPluginFuncs; |
| |
| // |
| // NPAPI Function table NPN functions (functions provided by host to plugin) |
| // |
| typedef struct _NPNetscapeFuncs { |
| uint16 size; |
| uint16 version; |
| NPN_GetURLProcPtr geturl; |
| NPN_PostURLProcPtr posturl; |
| NPN_RequestReadProcPtr requestread; |
| NPN_NewStreamProcPtr newstream; |
| NPN_WriteProcPtr write; |
| NPN_DestroyStreamProcPtr destroystream; |
| NPN_StatusProcPtr status; |
| NPN_UserAgentProcPtr uagent; |
| NPN_MemAllocProcPtr memalloc; |
| NPN_MemFreeProcPtr memfree; |
| NPN_MemFlushProcPtr memflush; |
| NPN_ReloadPluginsProcPtr reloadplugins; |
| NPN_GetJavaEnvProcPtr getJavaEnv; |
| NPN_GetJavaPeerProcPtr getJavaPeer; |
| NPN_GetURLNotifyProcPtr geturlnotify; |
| NPN_PostURLNotifyProcPtr posturlnotify; |
| NPN_GetValueProcPtr getvalue; |
| NPN_SetValueProcPtr setvalue; |
| NPN_InvalidateRectProcPtr invalidaterect; |
| NPN_InvalidateRegionProcPtr invalidateregion; |
| NPN_ForceRedrawProcPtr forceredraw; |
| |
| NPN_GetStringIdentifierProcPtr getstringidentifier; |
| NPN_GetStringIdentifiersProcPtr getstringidentifiers; |
| NPN_GetIntIdentifierProcPtr getintidentifier; |
| NPN_IdentifierIsStringProcPtr identifierisstring; |
| NPN_UTF8FromIdentifierProcPtr utf8fromidentifier; |
| NPN_IntFromIdentifierProcPtr intfromidentifier; |
| NPN_CreateObjectProcPtr createobject; |
| NPN_RetainObjectProcPtr retainobject; |
| NPN_ReleaseObjectProcPtr releaseobject; |
| NPN_InvokeProcPtr invoke; |
| NPN_InvokeDefaultProcPtr invokeDefault; |
| NPN_EvaluateProcPtr evaluate; |
| NPN_GetPropertyProcPtr getproperty; |
| NPN_SetPropertyProcPtr setproperty; |
| NPN_RemovePropertyProcPtr removeproperty; |
| NPN_HasPropertyProcPtr hasproperty; |
| NPN_HasMethodProcPtr hasmethod; |
| NPN_ReleaseVariantValueProcPtr releasevariantvalue; |
| NPN_SetExceptionProcPtr setexception; |
| NPN_PushPopupsEnabledStateProcPtr pushpopupsenabledstate; |
| NPN_PopPopupsEnabledStateProcPtr poppopupsenabledstate; |
| // comment these out since they aren't provided by Firefox 1.5 and |
| // we don't currently use them anyway. |
| // NPN_EnumerateProcPtr enumerate; |
| // NPN_PluginThreadAsyncCallProcPtr pluginthreadasynccall; |
| // NPN_ConstructProcPtr construct; |
| } NPNetscapeFuncs; |
| |
| // |
| // NPAPI DLL entry points |
| // |
| |
| typedef NPError (STDCALL * NP_InitializeFunc)(NPNetscapeFuncs* pFuncs); |
| typedef NPError (STDCALL * NP_GetEntryPointsFunc)(NPPluginFuncs* pFuncs); |
| typedef NPError (STDCALL * NP_ShutdownFunc)(void); |
| |
| |
| #ifdef __cplusplus |
| } // extern "C" |
| #endif |
| |
| #endif // _NPHOSTAPI_H_ |