The COM object is likely to be the easiest route if you are talking VB6 instead of VB.NET, provided you define the IDL as a ole automation object and not just a dispinterface. An automation interface object supports early binding, which makes it reasonably easy to work with in VB6.
If it's VB.Net you are using, then a C style DLL with exports would be fairly easy to use via
PInvoke[
^] provided the metods needed required only relatively simple parameters (complex parameters like structures can also be handled, but there is a bit more learning curve.