J = I + use ATL macros and templates including full self registration **** .idl **** interface IXxxx : IDispatch library XxxxLibrary coclass CoXxxx **** .h **** class CCoTest : CComObjectRootEx, CComCoClass, IDispatchImpl **** registry **** auto via DllRegisterServer and DllUnegisterServer in DLL **** C++ usage **** import tlb IXxxxPtr p IXxxxPtr.CreateInstance() or: IXxxxPtr p() **** C# usage **** CoXxxx co = new CoXxxxClass() IXxxx o = (IXxxx)co **** dynamic C# usage **** dynamic o = Activator.CreateInstance() **** VBS usage **** Set o = CreateObject()