> Hello, simple question (so to say). > > I ham trying to manage interoo for interface arrays. > > This interface definition is not working. It is for a DirectShow > Interface: > > [ComVisible(true), ComImport, > Guid("56a86892-0ad4-11ce-b03a-0020af0ba770"), > InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] > public interface IEnumPins { > [PreserveSig] > int Next( > [In] int cPins, > [Out, MarshalAs(UnmanagedType.LPArray, > SizeParamIndex=2)] out IPin[] ppPins, > [Out] out int pcFetched ); > > [PreserveSig] > int Skip( [In] int cPins ); > void Reset(); > void Clone( [Out] out IEnumPins ppEnum ); > } > > When trying to use the next function, I get this error: > > An unhandled exception of type > 'System.Runtime.InteropServices.MarshalDirectiveException' occurred in > thonaconsulting.directshow.dll > Additional information: Can not use SizeParamIndex for byref > array parameters. > > That is sad, because I stop having clues on how to get this out. > Basically I try to get the next x pins. The 2nd parameter (index 1) > returns an array to the pints taken, and the third parameter returns > the number of pins put into the arrray. > > The error appears under .NET framework 1.1 - no way to check 1.0 > easly. > The stack trace shows that the error apears within the marshalling:
at ThonaConsulting.DirectShow.IEnumPins.Next(Int32 cPins, IPin[]& ppPins, Int32& pcFetched) at ThonaConsulting.DirectShow.Utilities.FilterUtility.GetPin(IBaseFilter Filter, PinDirection Direction) in c:\work\thonaconsulting\directshow\thonaconsulting.directshow\utilities\ filterutility.cs:line 29 > Any clues? > > Thomas Tomiczek > THONA Consulting Ltd. > (Microsoft MVP C#/.NET) You can read messages from the Advanced DOTNET archive, unsubscribe from Advanced DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com.