Actually the whole problem reduces to being able to pass an interface as a parameter to a function:

namespace InterfaceTest
{

    public interface class Intf
    {
        void Read();
    };

    public ref class Class1
    {
        void Something(Intf i)
        {
        }
    };

}


This yields on the function 'Something':

error C3149: 'InterfaceTest::Intf' : cannot use this type here without a top-level '^'

Thanks