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 { internal sealed class NativeMethods { private NativeMethods() { } [DllImport("ole32.dll")] #if USING_NET11 public static extern int CreateBindCtx(int reserved, out UCOMIBindCtx ppbc); #else public static extern int CreateBindCtx(int reserved, out IBindCtx ppbc); #endif [DllImport("ole32.dll")] #if USING_NET11 public static extern int MkParseDisplayName(UCOMIBindCtx pcb, [MarshalAs(UnmanagedType.LPWStr)] string szUserName, out int pchEaten, out UCOMIMoniker ppmk); #else public static extern int MkParseDisplayName(IBindCtx pcb, [MarshalAs(UnmanagedType.LPWStr)] string szUserName, out int pchEaten, out IMoniker ppmk); #endif [DllImport("oleaut32.dll", CharSet = CharSet.Unicode, ExactSpelling = true)] public static extern int OleCreatePropertyFrame( [In] IntPtr hwndOwner, [In] int x, [In] int y, [In, MarshalAs(UnmanagedType.LPWStr)] string lpszCaption, [In] int cObjects, [In, MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.IUnknown)] object[] ppUnk, [In] int cPages, [In] IntPtr pPageClsID, [In] int lcid, [In] int dwReserved, [In] IntPtr pvReserved ); [DllImport("ole32.dll", CharSet = CharSet.Unicode, ExactSpelling = true)] public static extern int StgCreateDocfile( [In, MarshalAs(UnmanagedType.LPWStr)] string pwcsName, [In] STGM grfMode, [In] int reserved, [Out] out IStorage ppstgOpen ); [DllImport("ole32.dll", CharSet = CharSet.Unicode, ExactSpelling = true)] public static extern int StgIsStorageFile([In, MarshalAs(UnmanagedType.LPWStr)] string pwcsName); [DllImport("ole32.dll", CharSet = CharSet.Unicode, ExactSpelling = true)] public static extern int StgOpenStorage( [In, MarshalAs(UnmanagedType.LPWStr)] string pwcsName, [In] IStorage pstgPriority, [In] STGM grfMode, [In] IntPtr snbExclude, [In] int reserved, [Out] out IStorage ppstgOpen ); } }