using System.Runtime.CompilerServices; using System.Runtime.InteropServices; namespace Interop.NmxAdptr; [ComImport] [ClassInterface(ClassInterfaceType.None)] [TypeLibType(TypeLibTypeFlags.FCanCreate)] [Guid("851252A1-C628-4897-A52B-206B50842AD8")] public class FMCObjClass : IFMC, FMCObj, IUdpMessage { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void Initialize([In] int lPlatformID, [In] int lCookie, [In][MarshalAs(UnmanagedType.BStr)] string bstrAddress, [In] int lPort, [In][MarshalAs(UnmanagedType.Interface)] IFMCCallback pCallback, [In][MarshalAs(UnmanagedType.BStr)] string bstrMulticastGroup, [In] int lMultiCastPort = 5001); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void RequestConnection([In] int lSize, [In] ref byte pMsgBody); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void Connect([In][MarshalAs(UnmanagedType.BStr)] string bstrPartnerIP, [In] int lPartnerPort, [In] int lPlatformID, [In] int timeToWaitForConnection = 500); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void SendData([In] int lPlatformID, [In] int lMessageID, [In][ComAliasName("Interop.NmxAdptr.ActionTypes")] ActionTypes usType, [In] int lSize, [In] ref byte pMsgBody, [In] int dwTimeOut = 0); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void UnInitialize(); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void DisConnect([In] int lPlatformID); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void ConnectEx([In][MarshalAs(UnmanagedType.BStr)] string bstrPartnerIP, [In] int lPartnerPort, [In] int timeToWaitForConnection); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void SendUdpData([In] int lPlatformID, [In] int lMessageID, [In][ComAliasName("Interop.NmxAdptr.ActionTypes")] ActionTypes usType, [In] int lSize, [In] ref byte pMsgBody); }