COM with JUCE?


I'm investigating developing an application that will be used on both OS X and Windows. One of the desires/requirements for this application is to be able to extend support for various functionality over time. 

For example, I would like to define an interface for compressing audio (or other random functionality) have have a series of libraries to perform different types of compression. At some point in the future I may want add a new codec library that can be shipped to existing customers. They would install the in codec library (wrapped in my custom library with a predefined interface).

This type of thing can be acomplished using COM on Windows. 

One of the primary things I want to insulate myself from is requiring the exact same compiler for building these new libraries. It's reasonable to require the same compiler settings and not using STL in the interfaces (only using POD data types).

Are there existing tools in JUCE to support this type of workflow?

If not, are there any recommendations as how to support this requirement (libraries, techniques, etc.)?



I've never been a big fan of COM - for something like this you may be better-off just using a flat C binary API and wrapping it in C++ objects on either side.

But if you do decide that COM is best for you there are a few internal helper classes inside juce that you might want to have a look at and copy.

Could you point me to those helper methods?

Grep for ComSmartPtr