OK, this is all getting very confusing now! Sorry Jeff, you are of course right - if you have a type library then VB CAN access the object (although the TypeLib will need to contain the vtable for the object, not the DispIDs). If the TypeLib contains just the DispIDs (a dispinterface), then you'll still need IDispatch to call the functions!!!! This is still early binding, but a special case called DispID binding. Fortunately, the type library is probably more likely to contain vtable info, enabling VB to employ the faster vtable binding - hence what you're saying is essentially right. (Please forgive me if I'm teaching you to suck eggs here).
When I said, "if an object does not implement a dual interface, you cannot call it from VB", I meant to say "if YOUR object". I was referring to the mythical object that jmaster3 is talking about, and I was also assuming that he/she has no type library. I was assuming this because if the object (dll?) had one built in, then one would assume that this question would not have been asked, (add the dll into Project, References, and off you go...) and if the TypeLib was stored separately, then one would assume that jmaster3 would know about it, as this is not very common. In the absence of a type library AND an IDispatch interface, VB is, as I say, helpless, and in this situation I would suggest that so would I be, as I certainly cannot think of any easy way to create a type library given this starting point.
Note that if you do have an object that has a type library, with a vtable definition, and no IDispatch interface, then you are faced with the interesting situation of an object to which you can ONLY early bind!
Well, this has all been very interesting, but to be quite honest, I'm not even sure if the initial question has been answered!! I can't answer it without more information. What exactly is the problem jmaster3 is having, and what is the object he wants to use.....