avoid ICustomMarshaler on the callback signature