As you might have already be aware of, this is very likely an issue of 32bit (Acad2004) and 64bit (Acad2016).
While you may think the #If directive would solve the issue by making the external function to return correct data type according to corresponding VBA version, it probably would not work because in your #If...#Else #End If, both branches point to the same DLL files, which unlikely be both 32-bit version and 64-bit version iin the same DLL file. It is either 32-bit, or 64-bit. For Acad2016 64-bit, you'll need 64-bit version of the said DLL.