Base interface for all function pointers. Sub-interfaces define methods annotated with
InvokeCFunctionPointer that invoke the method referenced by this function pointer. Since
the signature of the invocation method is not known, it is not possible to define a single
generic invocation method here.