Sequences of Operations Required to Load a Plug-in
---------------------------------------------------

The following sequence of operations needs to be performed by a host
before it can start telling a plug-in what to do via its ``mainEntry``
function.

1. the binary containing the plug-in is loaded,
2. (if implemented by plugin and host): the host calls the plug-in's ``OfxSetHost`` function
3. the number of plug-ins is determined via the
   ``OfxGetNumberOfPlugins``
   function,
4. for each plug-in defined in the binary

   1. ``OfxGetPlugin`` is called,
   2. the pluginApi and apiVersion of the returned OfxPlugin struct are examined,
   3. if the plug-in's API or its version are not supported, the plug-in
      is ignored and we skip to the next one,
   4. the plug-in's pointer is recorded in a plug-in cache,
   5. an appropriate OfxHost struct is passed to the plug-in via setHost in the returned OfxPlugin struct.
