[uuid(df773070-0199-11d2-815b-006008119d7a)]
interface nsIPlugin : nsIFactory

Methods

 Creates a new plugin instance, based on a MIME type. This
 allows different impelementations to be created depending on
 the specified MIME type.
void createPluginInstance(in nsISupports aOuter, in nsIIDRef aIID, in string aPluginMIMEType, [retval, iid_is(aIID)] out nsQIResult aResult)
 Returns the MIME description for the plugin. The MIME description 
 is a colon-separated string containg the plugin MIME type, plugin
 data file extension, and plugin name, e.g.:

 "application/x-simple-plugin:smp:Simple Sample Plug-in"

 (Corresponds to NPP_GetMIMEDescription.)

 @param aMIMEDescription - the resulting MIME description 
 @result                 - NS_OK if this operation was successful
void getMIMEDescription(out constCharPtr aMIMEDescription)
 Returns the value of a variable associated with the plugin.

 (Corresponds to NPP_GetValue.)

 @param aVariable - the plugin variable to get
 @param aValue    - the address of where to store the resulting value
 @result          - NS_OK if this operation was successful
void getValue(in nsPluginVariable aVariable, in voidPtr aValue)
 Initializes the plugin and will be called before any new instances are
 created. It is passed browserInterfaces on which QueryInterface
 may be used to obtain an nsIPluginManager, and other interfaces.

 @param browserInterfaces - an object that allows access to other browser
 interfaces via QueryInterface
 @result - NS_OK if this operation was successful
void initialize()
 Called when the browser is done with the plugin factory, or when
 the plugin is disabled by the user.

 (Corresponds to NPP_Shutdown.)

 @result - NS_OK if this operation was successful
void shutdown()