// AForge Direct Show Library // AForge.NET framework // // Copyright © Andrew Kirillov, 2007 // andrew.kirillov@gmail.com // namespace AForge.Video.DirectShow.Internals { using System; using System.Runtime.InteropServices; /// /// Enumerates pins on a filter. /// /// [ComImport, Guid( "56A86892-0AD4-11CE-B03A-0020AF0BA770" ), InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] internal interface IEnumPins { /// /// Retrieves a specified number of pins. /// /// /// Number of pins to retrieve. /// Array of size cPins that is filled with IPin pointers. /// Receives the number of pins retrieved. /// /// Return's HRESULT error code. /// [PreserveSig] int Next( [In] int cPins, [Out, MarshalAs( UnmanagedType.LPArray, SizeParamIndex = 0 )] IPin[] pins, [Out] out int pinsFetched ); /// /// Skips a specified number of pins in the enumeration sequence. /// /// /// Number of pins to skip. /// /// Return's HRESULT error code. /// [PreserveSig] int Skip( [In] int cPins ); /// /// Resets the enumeration sequence to the beginning. /// /// /// Return's HRESULT error code. /// [PreserveSig] int Reset( ); /// /// Makes a copy of the enumerator with the same enumeration state. /// /// /// Duplicate of the enumerator. /// /// Return's HRESULT error code. /// [PreserveSig] int Clone( [Out] out IEnumPins enumPins ); } }