The AAFPlugin interface describes the calls of a plugin. More...
Public Member Functions | |
HRESULT | CountDefinitions ([out] aafUInt32 *pDefCount) |
This method returns the number of subclasses of AAFDefObject associated with this plugin,. | |
HRESULT | GetIndexedDefinitionID ([in] aafUInt32 index,[out] aafUID_t *pPluginID) |
This method returns the unique ID of the AAFDefObject associated with this Plugin. | |
HRESULT | GetPluginDescriptorID ([out] aafUID_t *pPluginID) |
This method returns the unique ID of the AAFPluginDescriptor associated with this Plugin. | |
HRESULT | GetIndexedDefinitionObject ([in] aafUInt32 index,[in] IAAFDictionary *pDictionary,[out] IAAFDefObject **pDefObject) |
This method manufactures a definition object of the correct class for this plugin, and fills in the values. | |
HRESULT | CreateDescriptor ([in] IAAFDictionary *pDictionary,[out] IAAFPluginDef **pPluginDef) |
This method manufactures a plugin descriptor of the correct class for this plugin, and fills in the values. |
The AAFPlugin interface describes the calls of a plugin.
The AAFPluginManager keeps a copy of each plugin in a table, along with cached copies of pertinant metadata about the plugin, and instantiates a copy of the plugin.
Definition at line 4076 of file AAFPlugin.idl.
HRESULT IAAFPlugin::CountDefinitions | ( | [out] aafUInt32 * | pDefCount | ) |
This method returns the number of subclasses of AAFDefObject associated with this plugin,.
and will be called once at startup by the plugin manager. A non-zero index is used when a single piece of code implements more than one definition, which is not to be confused with multiple plugin interfaces existing in a single plugin file. An example where an index other than one would be useful is an interpolator which implements multiple types of interpolation (ex. linear, constant, etc...), but has one entry point for all types. Codecs will have only one definition per interface, but may have many interfaces clumped together into a single file. If this method fails nothing will be written to *pDefCount.
This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:
AAFRESULT_SUCCESS
AAFRESULT_NULL_PARAM
pDefCount | [out] The number of definitions associated with this plugin |
HRESULT IAAFPlugin::CreateDescriptor | ( | [in] IAAFDictionary * | pDictionary, |
[out] IAAFPluginDef ** | pPluginDef | ||
) |
This method manufactures a plugin descriptor of the correct class for this plugin, and fills in the values.
You must call QueryInterface on the result in order to find the corret interface. The dictionary supplied should be for the file where the descriptor will go, but the descriptor will not be added to the file by this function. The supplied dictionary also needs no former knowledge of the new descriptor. This function will be called by the plugin manager in order to add the correct plugin descriptors to a file.
Succeeds if all of the following are true:
If this method fails nothing will be written to *pPluginDef.
This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:
AAFRESULT_SUCCESS
AAFRESULT_NULL_PARAM
pDictionary | [in] The dictionary to use when creating the descriptor |
pPluginDef | [out] The interface of the pluggable definition |
HRESULT IAAFPlugin::GetIndexedDefinitionID | ( | [in] aafUInt32 | index, |
[out] aafUID_t * | pPluginID | ||
) |
This method returns the unique ID of the AAFDefObject associated with this Plugin.
This range of indices will be from 0 to one less than the total number of codecs, operation groups, classes, types, containers, etc.. implemented by this plugin. A non-zero index is used when a single piece of code implements more than one definition, which is not to be confused with multiple plugin interfaces existing in a single plugin file. An example where an index other than one would be useful is an interpolator which implements multiple types of interpolation (ex. linear, constant, etc...), but has one entry point for all types. Codecs will have only one definition per interface, but may have many interfaces clumped together into a single file. Succeeds if all of the following are true:
If this method fails nothing will be written to *pPluginID.
This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:
AAFRESULT_SUCCESS
AAFRESULT_NULL_PARAM
AAFRESULT_INDEX_RANGE
index | [in] An index from 0 to the number of definitions - 1 |
pPluginID | [out] The unique media object id |
HRESULT IAAFPlugin::GetIndexedDefinitionObject | ( | [in] aafUInt32 | index, |
[in] IAAFDictionary * | pDictionary, | ||
[out] IAAFDefObject ** | pDefObject | ||
) |
This method manufactures a definition object of the correct class for this plugin, and fills in the values.
You must call QueryInterface on the result in order to find the correct interface. The dictionary supplied should be for the file where the definition will go, but the definition will not be added to the file by this function. The supplied dictionary also needs no former knowledge of the new definition. This function will be called by the plugin manager in order to add the correct definition objects to a file. A non-zero index is used when a single piece of code implements more than one definition, which is not to be confused with multiple plugin interfaces existing in a single plugin file. An example where an index other than one would be useful is an interpolator which implements multiple types of interpolation (ex. linear, constant, etc...), but has one entry point for all types. Codecs will have only one definition per interface, but may have many interfaces clumped together into a single file. Succeeds if all of the following are true:
If this method fails nothing will be written to *pDefObject.
This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:
AAFRESULT_SUCCESS
AAFRESULT_NULL_PARAM
index | [in] An index from 0 to the number of definitions - 1 |
pDictionary | [in] The dictionary to use when creating the definition |
pDefObject | [out] The interface of the pluggable definition |
HRESULT IAAFPlugin::GetPluginDescriptorID | ( | [out] aafUID_t * | pPluginID | ) |
This method returns the unique ID of the AAFPluginDescriptor associated with this Plugin.
This method is called by the plugin manager to determine if a particular plugin descriptor (indicating a particular plugin) is already in the current file, so that the full create function does not need to be called.
Succeeds if all of the following are true:
If this method fails nothing will be written to *pPluginID.
This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:
AAFRESULT_SUCCESS
AAFRESULT_NULL_PARAM
pPluginID | [out] The unique media object id |