INVOICES acts as an OLE automation server by exposing a set of objects that implement the IDispatch interface. You can access the interface either by looking up functions and methods dynamically in runtime (late binding), or by using the dispatch IDs of the interface at compile time (early binding). The latter requires the type library file, EHICOM10.tlb, which can be found in INVOICES' Bin folder.
Early binding has the advantage that you can use tools that wrap the OLE mechanics and provide easy-to-use interfaces (objects) that you use to access INVOICES objects and methods. It is also faster compared to late binding. The disadvantage is that you must recompile your code each time a new version of INVOICES has interface changes made to its objects.
Late binding has the advantage that changes made in INVOICES do not affect the OLE automation client (the DLL) and do not require recompiling (unless the particular function you call has changed). The disadvantage is that it is somewhat slower than early binding and more complicated to use.