« Gecko Plugin API Reference « Plug-in Side Plug-in API


Creates a new instance of a plug-in.


#include <npapi.h>
NPError NPP_New(NPMIMEType    pluginType,
                NPP instance, uint16 mode,
                int16 argc,   char *argn[],
                char *argv[], NPSavedData *saved);


The function has the following parameters:

Pointer to the MIME type for new plug-in instance.
Contains instance-specific private data for the plug-in and the browser. This data is stored in instance->pdata.
Display mode of plug-in. Values:
  • NP_EMBED: (1) Instance was created by an EMBED tag and shares the browser window with other content.
  • NP_FULL: (2) Instance was created by a separate file and is the primary content in the window.
Number of HTML arguments in the EMBED tag for an embedded plug-in; determines the number of attributes in the argn and argv arrays.
Array of attribute names passed to the plug-in from the EMBED tag.
Array of attribute values passed to the plug-in from the EMBED tag.
Pointer to data saved by NPP_Destroy for a previous instance of this plug-in at the same URL. If non-null, the browser passes ownership of the NPSavedData object back to the plug-in. The plug-in is responsible for freeing the memory for the NPSavedData and the buffer it contains.


  • If successful, the function returns NPERR_NO_ERROR.
  • If unsuccessful, the function returns an error code. For possible values, see Error Codes.


NPP_New creates a new instance of a plug-in. It is called after NP_Initialize and is passed the MIME type, embedded or full-screen display mode, and, for embedded plug-ins, information about HTML EMBED arguments.

A new instance pointer (NPP instance) is created by the plug-in, which is valid until the instance is destroyed with NPP_Destroy.

If instance data was saved from a previous instance of the plug-in by the NPP_Destroy function, it is returned in the saved parameter for the current instance to use.

All attributes in the EMBED tag (standard and private) are passed in NPP_New in the argn and argv arrays. The browser ignores any non-standard attributes within an EMBED tag. This gives developers a chance to use private attributes to communicate instance-specific options or other information to the plug-in. Place private options at the end of the list of standard attributes in the EMBED Tag.

See Also

NPP_Destroy, NP_Shutdown, NPP, NPSavedData