You need to create a equivalent CLI class of native struct and Enums.
public ref class ManagedAVCodecDescriptor {
ManagedAVCodecIDClass id;
ManagedAVMediaTypeClass type;
String^ name;
String^ long_name;
int props;
};
Enum equivalent class will look like this:
public enum class ManagedAVCodecIDClass
{
xyx = 1,
abc = 2,
...
}
Now in your AVCodecDescriptorWrapper you should get AVCodecDescriptor object and put all information in the ManagedAVCodecDescriptor object and pass it to C# class.
ManagedAVCodecDescriptor^ mObject = gcnew ManagedAVCodecDescriptor();
mObject.setSomeValue(nativeStruct->somevalue);
and pass mObject to C# code as general C# object.