using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; namespace Interop.NmxAdptr; [ComImport] [Guid("42DB0512-28BE-11D3-80C0-00104B5F96A7")] [ComConversionLoss] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] public interface INmx { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void Initialize([In] int dwPlatformId, [In] int dwEngineId, [In] int dwQueueExtent); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void InitializeAnonymous(out int pPlatformId, out int pEngineId); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void CreateGuaranteedQueue([In] int dwQueueExtent); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void DeleteGuaranteedQueue([In] int dwEngineId); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void SetQueueExtent([In] int dwNewExtent, [In][ComAliasName("Interop.NmxAdptr.EQUEUETYPE")] EQUEUETYPE EQUEUETYPE); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void GetQueueExtent(out int dwQueueExtent, [In][ComAliasName("Interop.NmxAdptr.EQUEUETYPE")] EQUEUETYPE EQUEUETYPE); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void GetQueueInfo(out int NumberMessagesQueued, out int QueueSizeInBytes); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void PutRequest([In] int dwClusterId, [In] int dwPlatformId, [In] int dwEngineId, [In] byte byPriority, [In] int dwSize, [In] ref byte pData, out int pdwRequestHandle); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void PutResponse([In] int dwGalaxyId, [In] int dwPlatformId, [In] int dwEngineId, [In] int dwRequestHandle, [In] int dwSize, [In] ref byte pData); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void GetRequest(out int pdwGalaxyId, out int pdwPlatformId, out int pdwEngineId, out int pdwRequestHandle, out int pdwSize, [Out] IntPtr pData, out bool pReplyRequired); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void GetResponse(out int pdwResponseCode, out int pdwRequestHandle, out int pdwSize, [Out] IntPtr pData); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void PutMessageNoReply([In] int dwGalaxyId, [In] int dwPlatformId, [In] int dwEngineId, [In] byte byPriority, [In] int dwSize, [In] ref byte pData, out int pdwRequestHandle); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void GetVersionInfo([MarshalAs(UnmanagedType.BStr)] out string nmxversion); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void SetMessageTimeout([In] int TimeoutValue); }