using System.Runtime.CompilerServices; using System.Runtime.InteropServices; namespace Interop.NmxAdptr; [ComImport] [Guid("575008DB-845D-46C6-A906-F6F8CA86F315")] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] public interface INmxService { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void RegisterEngine([In] int lEngineID, [In][MarshalAs(UnmanagedType.BStr)] string bstrEngineName, [In][MarshalAs(UnmanagedType.Interface)] INmxSvcCallback pNmxCallback); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void UnRegisterEngine([In] int lEngineID); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void Connect([In] int lLocalEngineID, [In] int lRemoteGalaxyID, [In] int lRemotePlatformID, [In] int lRemoteEngineID); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void TransferData([In] int lRemoteGalaxyID, [In] int lRemotePlatformID, [In] int lRemoteEngineID, [In] int lSize, [In] ref byte pMsgBody); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void AddSubscriberEngine([In] int lLocalEngineID, [In] int lSubscriberGalaxyID, [In] int lSubscriberPlatformID, [In] int lSubscriberEngineID); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void RemoveSubscriberEngine([In] int lLocalEngineID, [In] int lSubscriberGalaxyID, [In] int lSubscriberPlatformID, [In] int lSubscriberEngineID); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void SetHeartbeatSendInterval([In] int lTicksPerBeat, [In] int lMaxMissedTicks); }