AAFA Developer Support

Public Member Functions
IAAFPluginManager Interface Reference

This interface is used with an object representing an AAF class definition. More...

List of all members.

Public Member Functions

HRESULT RegisterSharedPlugins ()
 Attempts to load and register all of the AAF plugin files found in shared installation directory.
HRESULT RegisterPluginDirectory ([in] aafCharacter_constptr directoryName)
 Attempts to load and register all of the AAF plugin files found in the given directory.
HRESULT RegisterPluginFile ([in] aafCharacter_constptr fileName)
 Attempts to load and register all of the AAF plugins found in the given file.
HRESULT EnumLoadedPlugins ([in, ref] aafUID_constref categoryID,[out, retval] IEnumAAFLoadedPlugins **ppEnum)
 Returns an enumerator which enumerates over all of the loaded plugin choices through the *ppEnum argument.
HRESULT CreatePluginDefinition ([in, ref] aafUID_constref pluginDefID,[in] IAAFDictionary *pDictionary,[out] IAAFDefObject **ppPluginDef)
 Given a plugin definition ID, find a plugin and manufactures a plugin descriptor of the correct class for this plugin, filling in the values, and returning the definition through the pPluginDesc argument.
HRESULT CreateInstance ([in] REFCLSID rclsid,[in] IUnknown *pUnkOuter,[in] REFIID riid,[out, iid_is(riid)] void **ppPlugin)
 Create an object contained within one of the loaded plugin files.

Detailed Description

This interface is used with an object representing an AAF class definition.

The operations on a class definition include managing the position of the class within the class heirarchy, and accessing property definitions associated with the class.

In addition to the specific error results listed for each method, all methods in this interface may also return one of the following values:

AAFRESULT_NOMEMORY

Definition at line 21839 of file AAF.idl.


Member Function Documentation

HRESULT IAAFPluginManager::CreateInstance ( [in] REFCLSID  rclsid,
[in] IUnknown *  pUnkOuter,
[in] REFIID  riid,
[out, iid_is(riid)] void **  ppPlugin 
)

Create an object contained within one of the loaded plugin files.

Succeeds if all of the following are true:

  • the rclsid was found by the plugin manager
  • the interface corresponding to riid is supported by the plugin
  • if pUnkOuter is not NULL and given plugin supports aggregation and riid must be a reference to IID_IUnknown.

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

  • succeeded. (This is the only code indicating success.)

E_INVALIDARG

  • if ppPlugin is null.
  • pUnkOuter is not NULL and riid is not IID_IUnknown.

AAFRESULT_EXTENSION_NOT_FOUND

  • The given rclsid could not be found by the Plugin Manager.

E_NOINTERFACE

  • if initial interface given by riid is not supported by the plugin.
Parameters:
rclsid[in] The class id of the plugin object do you want to create
pUnkOuter[in] The controlling unknown of the new instance
riid[in] The IID of the initialial interface for the new plugin instance
ppPlugin[out,iid_is(riid)] The IID of the initialial interface for the new plugin instance
HRESULT IAAFPluginManager::CreatePluginDefinition ( [in, ref] aafUID_constref  pluginDefID,
[in] IAAFDictionary pDictionary,
[out] IAAFDefObject **  ppPluginDef 
)

Given a plugin definition ID, find a plugin and manufactures a plugin descriptor of the correct class for this plugin, filling in the values, and returning the definition through the pPluginDesc argument.

The returned definition is AddRef()ed before it is returned. You must call QueryInterface on the result in order to find the correct interface, and are responsible for adding the definition to the correct place in the dictionary, as well as preventing duplicates. The resulting definiton has the plugin descriptor already attached.

Succeeds if all of the following are true:

  • the pPluginDesc pointer is valid.

If this method fails nothing will be written to *ppEnum.

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

  • succeeded. (This is the only code indicating success.)

AAFRESULT_NULL_PARAM

  • if pPluginDesc is null.
Parameters:
pluginDefID[in, ref] Which plugin definition do you want to create
pDictionary[in] The dictionary of the file where the descriptor is to be created
ppPluginDef[out] The interface of the returned definition
HRESULT IAAFPluginManager::EnumLoadedPlugins ( [in, ref] aafUID_constref  categoryID,
[out, retval] IEnumAAFLoadedPlugins **  ppEnum 
)

Returns an enumerator which enumerates over all of the loaded plugin choices through the *ppEnum argument.

The returned enumerator is AddRef()ed before it is returned.

Succeeds if all of the following are true:

  • the ppEnum pointer is valid.

If this method fails nothing will be written to *ppEnum.

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

  • succeeded. (This is the only code indicating success.)

AAFRESULT_NULL_PARAM

  • if ppEnum is null.
Parameters:
categoryID[in, ref] Which category ID do we want to enumerate
ppEnum[out,retval] Loaded Plugin Enumeration
HRESULT IAAFPluginManager::RegisterPluginDirectory ( [in] aafCharacter_constptr  directoryName)

Attempts to load and register all of the AAF plugin files found in the given directory.

Parameters:
directoryName[in] Pointer to the name of directory to look for plugins.
HRESULT IAAFPluginManager::RegisterPluginFile ( [in] aafCharacter_constptr  fileName)

Attempts to load and register all of the AAF plugins found in the given file.

Parameters:
fileName[in] Pointer to the name of plugin file to register.
HRESULT IAAFPluginManager::RegisterSharedPlugins ( )

Attempts to load and register all of the AAF plugin files found in shared installation directory.


Generated on Wed Jul 4 2012 22:13:30 for AAF COM API by doxygen 1.7.4