using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Runtime.InteropServices.ComTypes; using System.Text; using System.Threading.Tasks; namespace Tango.Video.DirectShow { [Guid("0000000b-0000-0000-C000-000000000046"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface IStorage { [PreserveSig] int CreateStream( [In, MarshalAs(UnmanagedType.LPWStr)] string pwcsName, [In] STGM grfMode, [In] int reserved1, [In] int reserved2, #if USING_NET11 [Out] out UCOMIStream ppstm #else [Out] out IStream ppstm #endif ); [PreserveSig] int OpenStream( [In, MarshalAs(UnmanagedType.LPWStr)] string pwcsName, [In] IntPtr reserved1, [In] STGM grfMode, [In] int reserved2, #if USING_NET11 [Out] out UCOMIStream ppstm #else [Out] out IStream ppstm #endif ); [PreserveSig] int CreateStorage( [In, MarshalAs(UnmanagedType.LPWStr)] string pwcsName, [In] STGM grfMode, [In] int reserved1, [In] int reserved2, [Out] out IStorage ppstg ); [PreserveSig] int OpenStorage( [In, MarshalAs(UnmanagedType.LPWStr)] string pwcsName, [In] IStorage pstgPriority, [In] STGM grfMode, [In] int snbExclude, [In] int reserved, [Out] out IStorage ppstg ); [PreserveSig] int CopyTo( [In] int ciidExclude, [In] Guid[] rgiidExclude, [In] string[] snbExclude, [In] IStorage pstgDest ); [PreserveSig] int MoveElementTo( [In, MarshalAs(UnmanagedType.LPWStr)] string pwcsName, [In] IStorage pstgDest, [In, MarshalAs(UnmanagedType.LPWStr)] string pwcsNewName, [In] STGM grfFlags ); [PreserveSig] int Commit([In] STGC grfCommitFlags); [PreserveSig] int Revert(); [PreserveSig] int EnumElements( [In] int reserved1, [In] IntPtr reserved2, [In] int reserved3, [Out, MarshalAs(UnmanagedType.Interface)] out object ppenum ); [PreserveSig] int DestroyElement([In, MarshalAs(UnmanagedType.LPWStr)] string pwcsName); [PreserveSig] int RenameElement( [In, MarshalAs(UnmanagedType.LPWStr)] string pwcsOldName, [In, MarshalAs(UnmanagedType.LPWStr)] string pwcsNewName ); [PreserveSig] int SetElementTimes( [In, MarshalAs(UnmanagedType.LPWStr)] string pwcsName, #if USING_NET11 [In] FILETIME pctime, [In] FILETIME patime, [In] FILETIME pmtime #else [In] System.Runtime.InteropServices.ComTypes.FILETIME pctime, [In] System.Runtime.InteropServices.ComTypes.FILETIME patime, [In] System.Runtime.InteropServices.ComTypes.FILETIME pmtime #endif ); [PreserveSig] int SetClass([In, MarshalAs(UnmanagedType.LPStruct)] Guid clsid); [PreserveSig] int SetStateBits( [In] int grfStateBits, [In] int grfMask ); [PreserveSig] int Stat( #if USING_NET11 [Out] out STATSTG pStatStg, #else [Out] out System.Runtime.InteropServices.ComTypes.STATSTG pStatStg, #endif [In] int grfStatFlag ); } }