NPAPI plugin reference

Deprecated
This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. 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 an NPClass (i.e. an NPObject).
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. NPIdentifiers are unique, in that for any given string or integer, there is only one NPIdentifier. The lifetime of NPIdentifiers 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, the NPObject is deallocated by calling its deallocate 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() and NPP_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 NPObjects 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 an NPClass 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 the NPEmbedPrint 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 multiple NPUTF8 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 the NPVariantType enumeration.
NPVariantType
NPVariantType is an enumeration that is used to identify the data type of an NPVariant structure.
NPWindow
Contains information about the target into which the plug-in instance can draw.