using System.Runtime.CompilerServices; using System.Runtime.InteropServices; namespace Interop.Lmx; [ComImport] [Guid("C42B2C1C-7DF0-4265-8CD0-01CBC0B00AB7")] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] public interface IPrimitiveRuntimeSite { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] short GetParentId([In] short primitiveId); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void GetChildPrimitives([In] short primitiveId, [In][Out][MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_I2)] ref short[] primitiveList); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void GetAttributeIds([In] short primitiveId, [In][Out][MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_I2)] ref short[] attributeList); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] short AddAttribute([In][MarshalAs(UnmanagedType.LPWStr)] string strAttributeName, [In] MxAttributeCategory newAttributeCategory, [In] bool vbHasRtSetHandlerFlag); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void RemoveAttribute([In] short attributeId); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void GetEventPublisher([MarshalAs(UnmanagedType.Interface)] out IEventPublisher eventPublisher); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void AddErrorMessage([In][MarshalAs(UnmanagedType.LPWStr)] string errorMessage); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void AddWarningMessage([In][MarshalAs(UnmanagedType.LPWStr)] string warningMessage); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void GetAttribute([In] ref AttributeHandle pHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pMxValue); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void SetAttribute([In] ref AttributeHandle pHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pNewVal); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] [return: MarshalAs(UnmanagedType.BStr)] string AppEvent([In][MarshalAs(UnmanagedType.LPWStr)] string attrName, [In] VBFILETIME timeStamp, [In] int timeOffset, [In][MarshalAs(UnmanagedType.LPWStr)] string desc, [In][MarshalAs(UnmanagedType.LPWStr)] string oldValue, [In][MarshalAs(UnmanagedType.LPWStr)] string newValue); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] [return: MarshalAs(UnmanagedType.BStr)] string MessageEvent([In][MarshalAs(UnmanagedType.LPWStr)] string attrName, [In] VBFILETIME timeStamp, [In] int timeOffset, [In][MarshalAs(UnmanagedType.LPWStr)] string desc, [In][MarshalAs(UnmanagedType.LPWStr)] string message, [In] int confirmRequired, [In] int confirmReceived, [In] int inputRequired, [In] int inputReceived, [In][MarshalAs(UnmanagedType.LPWStr)] string input); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] short GetScanTimeUTC(out _FILETIME time); }