Deprecated
This feature has been removed from the Web standards. Though some browsers may still support it, it is in the process of being dropped. Avoid using it and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.
The articles below describe each of the APIs related to NPAPI plugins.
- Browser-side plug-in API
- This chapter describes methods in the plug-in API that are provided by the browser; these allow call back to the browser to request information, tell the browser to repaint part of the window, and so forth. The names of all of these methods begin with
NPN_
to indicate that they are implemented by the browser and called by the plug-in. - NP_GetMIMEDescription
NP_GetMIMEDescription
returns a supported MIME Type list for your plugin. It works on Unix (Linux) and MacOS. On Windows you have to define supported mimetypes in the dll resource file.- NP_GetValue
- Allows the browser to query the plug-in for information.
- NP_Initialize
- Provides global initialization for a plug-in.
- NP_Port
- Contains information required by the window field of an NPWindow structure.
- NP_Shutdown
- Provides global deinitialization for a plug-in.
- NPAnyCallbackStruct
- Contains information required during embedded mode printing.
- NPAPI plug-in side API
- This chapter describes methods in the plug-in API that are available from the plug-in object; these allow plug-ins to interact with the browser. The names of all of these methods begin with
NPP_
to indicate that they are implemented by the plug-in and called by the browser. - NPByteRange
- Represents a particular range of bytes from a stream.
- NPClass
NPClass
is a structure that holds a set of pointers to functions that make up the behavior of an instance of anNPClass
(i.e. anNPObject
).- NPEmbedPrint
- Substructure of NPPrint that contains platform-specific information used during embedded mode printing.
- NPEvent
- Represents an event passed by
NPP_HandleEvent()
to a windowless plug-in. - NPFullPrint
- Substructure of NPPrint that contains platform-specific information used during full-page mode printing.
- NPIdentifier
NPIdentifier
is an opaque type used for method and property identifiers, such as strings or integers.NPIdentifier
s are unique, in that for any given string or integer, there is only oneNPIdentifier
. The lifetime ofNPIdentifier
s is controlled by the browser.- NPN NewStream
- Requests the creation of a new data stream produced by the plug-in and consumed by the browser.
- NPN_CreateObject
- Allocates a new
NPObject
. - NPN_DestroyStream
- Closes and deletes a stream.
- NPN_Enumerate
- Gets the names of the properties and methods of the specified
NPObject
. - NPN_Evaluate
- Evaluates a script in the scope of the specified
NPObject
. - NPN_ForceRedraw
- Asks the plugin host to immediately (synchronously) repaint invalid areas.
- NPN_GetAuthenticationInfo
- The function is called by plugins to get HTTP authentication information from the browser.
- NPN_GetIntIdentifier
- Returns an opaque identifier for the integer that is passed in.
- NPN_GetProperty
- Gets the value of a property on the specified
NPObject
. - NPN_GetStringIdentifier
- Returns an opaque identifier for the string that is passed in.
- NPN_GetStringIdentifiers
- Returns an array of opaque identifiers for the names that are passed in.
- NPN_GetURL
- Asks the browser to create a stream for the specified URL.
- NPN_GetURLNotify
- Requests creation of a new stream with the contents of the specified URL; gets notification of the result.
- NPN_GetValue
- Allows the plug-in to query the browser for information.
- NPN_GetValueForURL
- Provides information to a plugin which is associated with a given URL, for example the cookies or preferred proxy.
- NPN_HasMethod
- Determines whether or not the specified
NPObject
has a particular method. - NPN_HasProperty
- Determines whether or not the specified
NPObject
has a particular property. - NPN_IdentifierIsString
- Determines whether or not an identifier is a string.
- NPN_IntFromIdentifier
- Returns the integer value corresponding to the given integer identifier.
- NPN_InvalidateRect
- Invalidates the specified portion of the plugin's drawing area, adding it to the region that needs to be redrawn when the plugin next repaints its contents.
- NPN_InvalidateRegion
- Invalidates the specified drawing region prior to repainting or refreshing a windowless plug-in.
- NPN_Invoke
- Invokes a method on the given
NPObject
. - NPN_InvokeDefault
- Invokes the default method, if one exists, on the given
NPObject
. - NPN_MemAlloc
- Allocates memory from the browser's memory space.
- NPN_MemFlush
- Requests that the browser free a specified amount of memory.
- NPN_MemFree
- Deallocates a block of allocated memory.
- NPN_PluginThreadAsyncCall
- Thread safe way to request that the browser calls a plug-in function on the browser or plugin thread (the thread on which the plug-in was initiated).
- NPN_PostURL
- Posts data to a URL.
- NPN_PostURLNotify
- Posts data to a URL, and receives notification of the result.
- NPN_ReleaseObject
- Decrements the reference count of the given
NPObject
. If the reference count reaches 0, theNPObject
is deallocated by calling itsdeallocate
function if one is provided; if one is not provided,free()
is used.
- NPN_ReleaseVariantValue
NPN_ReleaseVariantValue()
releases the value in the given variant.- NPN_ReloadPlugins
- Reloads all of the installed plugins.
- NPN_RemoveProperty
- Removes a property from the specified
NPObject
. - NPN_RequestRead
- Requests a range of bytes from a seekable stream. This initiates a read operation; the actual data is received through subsequent calls to
NPP_WriteReady()
andNPP_Write()
. - NPN_RetainObject
- Increments the reference count of the given
NPObject
. - NPN_SetException
- A plugin can call this function to indicate that a call to one of the plugin's
NPObject
s generated an error. - NPN_SetProperty
- Sets the value of a property on the specified
NPObject
. - NPN_SetValue
- Implemented by browsers. This call is used to inform the browser of variable information controlled by the plugin.
- NPN_SetValueForURL
- Allows a plugin to change the stored information associated with a URL, in particular its cookies. (While the API theoretically allows the preferred proxy for a given URL to be changed, doing so does not have much meaning given how proxies are configured, and is not supported.)
- NPN_Status
- Lets a plug-in display a message on the browser's status line.
- NPN_UserAgent
- Returns the browser's user agent field. This can be used to handle variations in different browsers (or versions thereof) when implementing your plug-in.
- NPN_UTF8FromIdentifier
- Returns the UTF-8 string corresponding to the given string identifier.
- NPN_Version
- Lets plugins obtain version information, both of the plug-in API and of the browser itself.
- NPN_Write
- Pushes data into a stream produced by the plug-in and consumed by the browser.
- NPNVariable
- See NPN_GetValue.
- NPObject
NPObject
is a structure that holds a pointer to anNPClass
and an integer reference count, and possibly also implementation specific (i.e. plugin specific, or browser specific) members.- NPP
- Represents a single instance of a plug-in. You specify one of these to any NPAPI function that needs to know which plug-in to work with.
- NPP_Destroy
- Deletes a specific instance of a plug-in.
- NPP_DestroyStream
- Tells the plug-in that a stream is about to be closed or destroyed.
- NPP_GetValue
- Allows the browser to query the plug-in for information.
- NPP_HandleEvent
- Delivers a platform-specific window event to the instance.
- NPP_New
- Creates a new instance of a plug-in.
- NPP_NewStream
- Notifies a plug-in instance of a new data stream.
- NPP_Print
- Requests a platform-specific print operation for an embedded or full-screen plug-in.
- NPP_SetValue
- Implemented by plugins. This call is used to inform plugins of variable information controlled by the browser.
- NPP_SetWindow
- Tells the plug-in when a window is created, moved, sized, or destroyed.
- NPP_StreamAsFile
- Provides a local file name for the data from a stream.
- NPP_URLNotify
- Notifies the plug-in instance of the completion of a URL request.
- NPP_Write
- Delivers data to a plug-in instance. (Remark: Hence the name "NPP_Write" is misleading - just think of:"Data_Arrived")
- NPP_WriteReady
- Determines maximum number of bytes that the plug-in can consume.
- NPPrint
- Contains information the plug-in needs to print itself in full-page or embedded mode.
- NPPrintCallbackStruct
- Contains information required by the
platformPrint
field of theNPEmbedPrint
structure during embedded mode printing on Unix systems. - NPPVariable
- See NPN_SetValue.
- NPRect
- Represents a rectangular area of a plug-in's content area.
- NPRegion
- Represents a platform-defined region of a page.
- NPSavedData
- Block of instance information saved after the plug-in instance is deleted; can be returned to the plug-in to restore the data in future instances of the plug-in.
- NPSetWindowCallbackStruct
- Contains information about the plug-in's Unix window environment.
- NPStream
- Represents a stream of data either produced by the browser and consumed by the plug-in, or produced by the plug-in and consumed by the browser.
- NPString
- NPString is a struct that holds a pointer to a sequence of 8-bit units (
NPUTF8
) making up a UTF-8 string, and the number of 8-bit units in the UTF-8 string. - NPUTF8
NPUTF8
is a byte representing an 8-bit unit of a UTF-8 character. This is not the same thing as an entire UTF-8 character, which may be comprised of multipleNPUTF8
bytes.- NPVariant
NPVariant
is a struct that holds a value and the type of that value. The value is held in a union, and the type is one of types defined in theNPVariantType
enumeration.- NPVariantType
NPVariantType
is an enumeration that is used to identify the data type of anNPVariant
structure.- NPWindow
- Contains information about the target into which the plug-in instance can draw.