Rewrite C -> C# callback interface using delgates