using System.Runtime.CompilerServices; using System.Runtime.InteropServices; namespace Interop.LmxProxy; [ComImport] [Guid("CC49CA45-D8CB-11D3-823B-00104B5F96A7")] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] public interface IMxSystemConnection { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] int SystemRegisterReference([In][MarshalAs(UnmanagedType.Interface)] MxReference pMxReference, [In] bool subscribe); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void SystemUnregisterReference([In] int hRef); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] [return: MarshalAs(UnmanagedType.Interface)] MxValue SystemGetAttribute([In] int hRef, out short pMxDataQuality, out MxStatus pMxStatus, [MarshalAs(UnmanagedType.BStr)] out string pStatusDescription); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] [return: MarshalAs(UnmanagedType.Interface)] MxValue SystemGetAttributeBlocking([In] int hRef, out short pMxDataQuality, out MxStatus pMxStatus, [MarshalAs(UnmanagedType.BStr)] out string pStatusDescription); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void SystemSetAttribute([In] int hRef, [In][MarshalAs(UnmanagedType.Interface)] MxValue pMxValueIn, [In][MarshalAs(UnmanagedType.Interface)] IMxCallback pMxCallback); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void SystemSetAttributeGuaranteed([In] int hRef, [In][MarshalAs(UnmanagedType.Interface)] MxValue pMxValue); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] [return: MarshalAs(UnmanagedType.Interface)] MxValue SystemSetAttributeBlocking([In] int hRef, [In][MarshalAs(UnmanagedType.Interface)] MxValue pMxValueIn, out MxStatus pMxStatus, [MarshalAs(UnmanagedType.BStr)] out string pStatusDescription); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] [return: MarshalAs(UnmanagedType.BStr)] string SystemGetQualityDescription([In] ref short mxDataQuality); }