They're all basically library files. They contain a group of re-usable code performing certain functions or providing certain objects for any applications to use.
If you're familiar with Access, you can think of a VBA module as a potential library file that's statically linked. .DLL = Dynamically Linked library so you don't have to know the path of the dll file; just the name of the file (ProgID is the technical term, if my memory serves) so you can just use registry to retrieve the desired file.
In VBA editor if you go to Tools -> References, and add say, Microsoft Excel Object Library, you're adding a .DLL file. DAO is also a .DLL of its own.
OCX usually means ActiveX controls, but there are several other library files with different extensions as well.
HTH.