To extend Shameel's answer:
COM components come with a type library, which describes the public interface that the component exposes. This is what the C# interop uses to build cover classes for COM, and it looks like you can use
TypeLibConverter.ConvertTypeLibToAssembly[
^] to create a .Net Assembly which you can then reflect on in the normal way.
OCXs/ActiveX controls are COM components with a graphical representation and the same game should work for them.
In general, though, unmanaged DLLs are not self describing, and it is therefore not possible to get full reflection information on them. You should be able to get a list of functions (check the Windows API to see if it has a method for it), but you won't be able to find parameters or return types because they are not specified anywhere.