using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; namespace Interop.Lmx; [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("8948FFF4-4529-4447-9115-C69041A49B00")] public interface IDataConsumer1 : IDataConsumer { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void RegisterCallback([In][MarshalAs(UnmanagedType.Interface)] IDataConsumerCallback pCallback); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void UnregisterCallback(); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new int ResolveNamespace([In][MarshalAs(UnmanagedType.BStr)] string bstrNamespace); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void ResolveReference([In] int lNamespaceId, [In][MarshalAs(UnmanagedType.BStr)] string bstrName, [In][MarshalAs(UnmanagedType.BStr)] string bstrContext, [In] int lItemId, [In] ulong ulUserData); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void Subscribe([In] int lNamespaceId, [In] int lItemId, [In] ulong ulUserData, [In] int bActive); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void UnregisterReference([In] int lNamespaceId, [In] int lItemId); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void ActivateSuspend([In] int lNamespaceId, [In] int lItemId, [In] ulong ulUserData, [In] int bActive); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void Write([In] int lNamespaceId, [In] int lItemId, [In] ulong ulUserData, [In] ref Guid userId, [In] ref Guid verifierId, [In] bool bUserVerified, [In] _FILETIME ItemTimestamp, [In] uint ItemQuality, [In] ref _IVariant ItemValue, [In] uint MxOperationType, [In] int arrayIndex, [In] bool bArrayIndexValid); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void Write2([In] int lNamespaceId, [In] int lItemId, [In] ulong ulUserData, [In] ref Guid userId, [In] ref Guid verifierId, [In] bool bUserVerified, [In] uint ItemQuality, [In][MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] IDataVariant[] ItemValue, [In] uint MxOperationType, [In] int arrayIndex, [In] bool bArrayIndexValid); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void WriteWithReasonDesc([In] int lNamespaceId, [In] int lItemId, [In] ulong ulUserData, [In] ref Guid userId, [In] ref Guid verifierId, [In] bool bUserVerified, [In] _FILETIME ItemTimestamp, [In] short ItemQuality, [In] ref _IVariant ItemValue, [In][MarshalAs(UnmanagedType.LPWStr)] string reasonDescription, [In] uint MxOperationType, [In] int arrayIndex, [In] bool bArrayIndexValid); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new uint ProcessMessages(out int lSize, [Out] IntPtr updates, [Out] IntPtr pResultCode); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new uint ProcessMessages2(out int lSize, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out ItemDataUpdate2[] updates, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out MxResultCode[] pResultCode); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new uint ProcessRegistration(out int lSize, [Out] IntPtr responses, [Out] IntPtr pResultCode); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new uint ProcessRegistration2(out int lSize, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out ItemRegistrationResponse[] responses, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out MxResultCode[] pResultCode); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new uint ProcessSubscription(out int lSize, [Out] IntPtr responses, [Out] IntPtr pResultCode); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new uint ProcessSubscription2(out int lSize, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out ItemSubscriptionResponse[] responses, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out MxResultCode[] pResultCode); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new uint ProcessUnregister(out int lSize, [Out] IntPtr responses, [Out] IntPtr pResultCode); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new uint ProcessUnregister2(out int lSize, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out ItemUnregisterResponse[] responses, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out MxResultCode[] pResultCode); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new uint ProcessWriteComplete(out int lSize, [Out] IntPtr responses, [Out] IntPtr pResultCode); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new uint ProcessWriteComplete2(out int lSize, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out ItemWriteResponse[] responses, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out MxResultCode[] pResultCode); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new uint ProcessActivateSuspend(out int lSize, [Out] IntPtr responses, [Out] IntPtr pResultCode); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new uint ProcessActivateSuspend2(out int lSize, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out ItemActiveResponse[] responses, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_RECORD)] out MxResultCode[] pResultCode); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void IsConnected([In] int namespaceId, out int connected); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void Shutdown(); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void UnregisterReferenceEx([In] int lNamespaceId, [In] int lItemId, [In] int isSubscribed); }