Important: The information in this document is obsolete and should not be used for new development.
When iMovie starts, it looks in the iMovie Plugins folder for plug-in bundles or files, as identified by their creator, 'Hway' and type:
'titl', for title plug-ins
'trans', for transition plug-ins
'filt', for effects plug-ins
Constants for these creator and type values are as follows:
kPluginFileCreator
' Hway'
kPluginTitleFileType
'titl'
kPluginTransitionFileType
'tran'
kPluginFilterFileType
'fltr'
When your plug-in is identified by its type and creator, it must check its compatibility with the current version of iMovie. If it is not compatible, it must return an error code, upon receipt of which, iMovie will discontinue loading the plug-in. For further version information, see the section “API Release Versions.”
If the plug-in reports itself to be compatible, it must pass iMovie a string with one or more menu names to be presented in the menus to identify the services your plug-in can provide for the user. The name string is in KResMenuNames, a STR# resource with ID 16000.
Note that the ability to use multiple names allows you to provide multiple services within a single plug-in. If your plug-in takes advantage of this facility, it must be able to recognize any of its names and perform the service associated with that name.
As part of the calling sequence, the index of the selected menu name in the STR# resource is passed to the plug-in in the which parameter. The plug-in uses this index to identify and perform the appropriate service. For example, the services Flying Letters and Flying Words, shown in the menu in figure 1, are provided by the Flying Titles plug-in. These two services, then, correspond to indexes of 0, and 1, and the menu names for those services are retrieved from the STR# resource using those resource indices.
A STR# resource of ID 18000, identified by the constant kResGroupNames, must be created to provide for group names, to allow the future possibility of grouping related menu names into sub-menus. Although group names are not currently used, it is recommended that your plug-in provide this string. For example, you might want to provide a short version of your company name.
A STR# resource of ID 15000, identified by the constant kResProgrammerNames, must be created to allow for a file to be associated with the specific plug-in servicethat created it. See “Processing Phase”for more detail.
Last updated: 2007-09-04