I am guessing the first parameter of the AddFontMemResourceEx() has some issue. I have tried to pass ByteArrayInputStream, FileInputStream, byte and memory. None of them seem to work. I am not getting any exception but it just doesnot set the fourth parameter, it always zero.
If I recall correctly, PVOID is little more than void *, in other words any generic pointer. That would mean you should use Pointer as the parameter type. You can still use Memory as the argument since Memory extends Pointer. The signature would then become this:
Instead of 0 for the third argument you would use Pointer.NULL.