I don't understand why you need to synchronise anything.

COM operates on an instance basis : every control will have its own instance, and shouldn't have any shared resources.

You don't just have 1 COM object which persists throughout the application : you have many COM objects (one for each call to CoCreateInstance).

It seriously sounds like there's a problem with your control and not a problem with COM.

Without knowing more about the implementation of your COM object I can't really help any further.

Darwen.