>>>
None of this even explores the refcounting going on.
I'd like to short-circuit all these QueryInterface calls. Something
like:
Host: read meta-data
- find DLL for plugin ID
- read DLL's GMPI_VERSION compat list
Host: load plugin DLL
Host: call DLL's GMPI_GetFactory(highest common GMPI_VERSION)
Host: call factory->CreatePlugin(plugin ID)
Plug: return plugin object
<<<
I'm in favor of simplifying, but if we are going to allow COM to creep
in at all then I'd ask that the basic GMPI plugin itself be an
IGmpiPlugin. In other words factor->CreatePlugin gives you back a COM
pointer, which inherits from IUnknown. You don't need the initial
QueryInterface because the factory does that for you.
>>>
While we're simplifying, can someone remind me why GUIDs matter? We
don't
really need a globally unique ID for every plugin, do we? Within any
GMPI
installation, you already can have unique IDs that are simpler and more
meaningful: the path to a DLL file and an index code within that DLL
file.
We need all this information anyway, and it is guaranteed unique on a
system...
<<<
This doesn't allow project files to be exchanged between machines that
have different install locations. Nor does it enable the (commercially
desireable) ability to have a centralized database of all plugins in the
known universe.
----------------------------------------------------------------------
Generalized Music Plugin Interface (GMPI) public discussion list
Participation in this list is contingent upon your abiding by the
following rules: Please stay on topic. You are responsible for your own
words. Please respect your fellow subscribers. Please do not
redistribute anyone else's words without their permission.
Archive: http://www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe