I have create an inproc server using VC++ (implemented in DLL). At first,
I use COM interface and it's accessible from VC. later I modify it to include
Dispinterface using IDispatch. I was think when I add a reference to the
dll, I should be able to call the server method from VB. but VB claim -
"can't add reference to project", i read the help, and it say it's because
the object is not automation object.

Okay, then I create a type library for the server and add reference to the
type library. I call the method and it work!!

so, my question is what condition should I satisfy so that the server will
become an Automation Server ?? so that it will be listed in the Automation
Object using Ole/Com object viewer.

second, When we create an activeX DLL in VB. we only need to add reference
to the DLL file and it will work !! (without type library, probably the type
library is embedded in the DLL), how can this possible without type library