using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; namespace Interop.Lmx; [ComImport] [Guid("FA5DE931-208A-11D4-82B8-00104B5F96A7")] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [ComConversionLoss] public interface IAutomationObject { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void Initialize([In][MarshalAs(UnmanagedType.LPWStr)] string Name, [In] int ObjectID, [In][MarshalAs(UnmanagedType.IUnknown)] object pAccessManager, [In][MarshalAs(UnmanagedType.IUnknown)] object pScheduler, [In][MarshalAs(UnmanagedType.Interface)] ICheckpointer pCheckpointer, [In][MarshalAs(UnmanagedType.Interface)] IAutomationObjectCheckpoint pAutomationObjectCheckpoint, [In][MarshalAs(UnmanagedType.Interface)] IDeployCompleteNotification pDeployCompleteNotification, [In][MarshalAs(UnmanagedType.Interface)] ISecurityChecker pSecurityChecker, [In][MarshalAs(UnmanagedType.Interface)] IUserAuthenticator pUserAuthenticator, [In][MarshalAs(UnmanagedType.Interface)] IEventPublisher pEventPublisher, [In][MarshalAs(UnmanagedType.IUnknown)] object objectSyncMgr); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void Startup([In] ESTARTUPCONTEXT startupContext); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void Shutdown(); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void Execute(); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void GetAccessRights([In] ref VBGUID userId, [In] ref VBGUID userIdVerifier, [In] bool verifiedByUser, [In] ref MxAttributeHandle AttributeHandle, [ComAliasName("Interop.Lmx.MxAccessRights")] out MxAccessRights accessRights); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void GetAttribute([In][ComAliasName("Interop.Lmx.MxOperationContext")] MxOperationContext Context, [In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pMxValue, out short pQuality, out MxStatus pStatus); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void SystemSetAttribute([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In][MarshalAs(UnmanagedType.Interface)] MxValue pDataOut, out MxStatus pStatus); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void UserSetAttribute([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In] ref VBGUID userId, [In] ref VBGUID verifier, [In] bool verifiedByUser, [In][MarshalAs(UnmanagedType.LPWStr)] string engineName, out MxStatus pStatus); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void SupervisorySetAttribute([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In] int callbackAttributeId, out MxStatus pStatus); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void Subscribe([In] ref MxAttributeHandle pMxAttributeHandle, [In] int index, out bool isDynamic); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void Unsubscribe([In] ref MxAttributeHandle pMxAttributeHandle); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void GetSubscriptionChanges([In][MarshalAs(UnmanagedType.Interface)] IAccessManagerProvider pAccessManagerProvider); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void GetCheckpointChanges(); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void OnHostScanStateChange([In] bool bEngineOnScan); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void GetStatusDescription([In] ref MxAttributeHandle pMxAttributeHandle, [In] ref MxStatus pStatus, [MarshalAs(UnmanagedType.BStr)] out string pDescription); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] IntPtr GetAttributeCollection([In] ref _RequestAttributeInfo pRequestAttributeInfo); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void NoReferencesOutstanding([In] ref MxAttributeHandle pMxAttributeHandle); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void GetAttributeData([In] ref MxAttributeHandle AttributeHandle, [Out] IntPtr attributeData); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void GetState(out ObjectStateEnum state); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void UpdateAndCheckpointAttribute([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In] ref MxStatus pStatus); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void GetVersionIndependentCodebase([MarshalAs(UnmanagedType.BStr)] out string codeBase); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void GetRequiredHostFeature(out Guid hostFeature); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void GetObjectCategory(out int category); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void HasChangesToCheckpoint(out bool __MIDL__IAutomationObject0000); }