> I have a DMO that I've created that I would like to use > in a graph in a 2nd application. I would like to not > have to register the DMO but to create it while building > the graph (create it internally to the 2nd application). > It looks like the DMOWrapper can't take an instantiated > COM object but a ref to a classid to create the object > itself. Is this the case? Is it possible to create an > instance of a DMO that's not registered and use it in a > graph?
It's an undocomented behavior, but IDMOWrapperFilter::Init() only uses the DMO's CLSID in CoCreateInstance() and ignores the category GUID.
So you should be able to use CoRegisterClassObject(CLSCTX_INPROC_SERVER,REGCLS_ MULTI_ SEPARATE) to register the DMO's IClassFactory internally, without globally registering the inproc server.
You can implement the class factory yourself or re-use the implementation in the BaseClasses or in ATL and so on.