using System.Runtime.CompilerServices; using System.Runtime.InteropServices; namespace Interop.Lmx; [ComImport] [ClassInterface(ClassInterfaceType.None)] [TypeLibType(TypeLibTypeFlags.FCanCreate)] [Guid("45A85368-B5F7-4547-83CC-AD2294C4F628")] public class SchedulerClass : IScheduler, Scheduler { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void Initialize([In][MarshalAs(UnmanagedType.Interface)] WatchdogObject pWatchdog, [In][MarshalAs(UnmanagedType.IUnknown)] object pAccessManager, [In][MarshalAs(UnmanagedType.Interface)] ICheckpointer pCheckpointer, [In][MarshalAs(UnmanagedType.IUnknown)] object objectSyncManager); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void Run([ComAliasName("Interop.Lmx.EngineExitStatus")] ref EngineExitStatus exitStatus); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void RegisterAutomationObject([In][MarshalAs(UnmanagedType.LPWStr)] string Name, [In] int id, [In][MarshalAs(UnmanagedType.Interface)] CoBaseRuntimeObject pAutomationObject, [In][MarshalAs(UnmanagedType.Interface)] MxReference pMxReference, [In] int RelativeOrder); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void UnRegisterAutomationObject([In] int id); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void SetScanPeriod([In] int ScanPeriod); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void SetScanState([In] int ObjectID, [In] bool ScanState); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void GetObjectTimeStamp(out _FILETIME pFileTime, out short offset); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void CheckpointObjects(); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void Shutdown(); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void RegisterSchedulerClient([In] uint callbackMask, [In][MarshalAs(UnmanagedType.Interface)] ISchedulerClient schedulerClient, out int cookie); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void UnregisterSchedulerClient([In] int cookie); }