using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; namespace Interop.Lmx; [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("BA83493C-3C8C-4C47-88D7-028FA880C42F")] public interface IAutomationObject3 : IAutomationObject2 { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new 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)] new void Startup([In] ESTARTUPCONTEXT startupContext); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void Shutdown(); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void Execute(); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new 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)] new 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)] new 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)] new 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)] new void SupervisorySetAttribute([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In] int callbackAttributeId, out MxStatus pStatus); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void Subscribe([In] ref MxAttributeHandle pMxAttributeHandle, [In] int index, out bool isDynamic); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void Unsubscribe([In] ref MxAttributeHandle pMxAttributeHandle); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void GetSubscriptionChanges([In][MarshalAs(UnmanagedType.Interface)] IAccessManagerProvider pAccessManagerProvider); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void GetCheckpointChanges(); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void OnHostScanStateChange([In] bool bEngineOnScan); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void GetStatusDescription([In] ref MxAttributeHandle pMxAttributeHandle, [In] ref MxStatus pStatus, [MarshalAs(UnmanagedType.BStr)] out string pDescription); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new IntPtr GetAttributeCollection([In] ref _RequestAttributeInfo pRequestAttributeInfo); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void NoReferencesOutstanding([In] ref MxAttributeHandle pMxAttributeHandle); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void GetAttributeData([In] ref MxAttributeHandle AttributeHandle, [Out] IntPtr attributeData); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void GetState(out ObjectStateEnum state); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void UpdateAndCheckpointAttribute([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In] ref MxStatus pStatus); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void GetVersionIndependentCodebase([MarshalAs(UnmanagedType.BStr)] out string codeBase); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void GetRequiredHostFeature(out Guid hostFeature); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void GetObjectCategory(out int category); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void HasChangesToCheckpoint(out bool __MIDL__IAutomationObject0000); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void SystemSetAttributeEx([In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pValue, [In][MarshalAs(UnmanagedType.Interface)] MxValue pDataOut, out MxStatus pStatus, int CallbackID); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void UserSetAttributeEx([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, int CallbackID); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void GetAttributeEx([In][ComAliasName("Interop.Lmx.MxOperationContext")] MxOperationContext Context, [In] ref MxAttributeHandle pMxAttributeHandle, [In][MarshalAs(UnmanagedType.Interface)] MxValue pMxValue, out short pQuality, out MxStatus pStatus, out uint GetAttributeStatus); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void SetState([In] ObjectStateEnum state); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void ShutdownCachedObject(); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void PrepareCachedObjectForStartup(); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void UpdateAttributesFromRuntimeCheckpoint([In] int primitive, [In] uint bufSize, [In] ref byte buffer); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void GetPrimitiveCheckpointChanges([In] int primitive, [In][MarshalAs(UnmanagedType.Interface)] IStream stream); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] new void GetObjectId(out int ObjectID); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] void Invoke([In] int lMode, [In][MarshalAs(UnmanagedType.Struct)] ref object vPara); }