using System.Drawing; using System.Runtime.InteropServices; namespace VideoPlayLib.MadVR { [ComImport, System.Security.SuppressUnmanagedCodeSecurity] [Guid("8FAB7F31-06EF-444C-A798-10314E185532")] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] public interface IMadVRInfo { // The memory for strings and binary data is allocated by the callee // by using LocalAlloc. It is the caller's responsibility to release the // memory by calling LocalFree. // Field names and LPWSTR values should be read case insensitive. [PreserveSig] int GetBool([In, MarshalAs(UnmanagedType.LPStr)]string field, [Out]out bool value); [PreserveSig] int GetInt([In, MarshalAs(UnmanagedType.LPStr)]string field, [Out, MarshalAs(UnmanagedType.I4)]out int value); [PreserveSig] int GetSize([In, MarshalAs(UnmanagedType.LPStr)]string field, [Out] out Size value); [PreserveSig] int GetRect([In, MarshalAs(UnmanagedType.LPStr)]string field, [Out]out Rectangle value); [PreserveSig] int GetUlonglong([In, MarshalAs(UnmanagedType.LPStr)]string field, [Out]out ulong value); [PreserveSig] int GetDouble([In, MarshalAs(UnmanagedType.LPStr)]string field, [Out]out double value); [PreserveSig] int GetString([In, MarshalAs(UnmanagedType.LPStr)]string field, [Out]out string value, out int chars); [PreserveSig] int GetBin([In, MarshalAs(UnmanagedType.LPStr)]string field, [Out]out byte[] value, [Out]out int size); } }