Get requested interface.
Interfaces are a rich, effective way of separating behavior from implementation.
Exposing classes directly will tend to increase the coupling between client and server. Since a derived class must learn some of the details of the base class to accurately augment its behavior, implementation inheritance tends to increase the coupling between objects. You'll be able to define role-based security privileges to your components and let administrators decide which users to assign to those roles. It is unclear whether existing COM objects will be able to take advantage of the extended security model. As a result, an object might actually stay in memory long after its reference count has dropped to zero.