using System.Runtime.CompilerServices; using System.Runtime.InteropServices; namespace Interop.Lmx; [ComImport] [Guid("4F8CED37-2A43-11D3-87E0-00A0C982C01C")] [ClassInterface(ClassInterfaceType.None)] [TypeLibType(TypeLibTypeFlags.FCanCreate)] public class WatchdogObjectClass : IWatchdog, WatchdogObject { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void RequestWatchdogMonitor([In] int lmsStartupTimeout = 30000, [In] int lmsShutdownTimeout = 30000, [In] int lmsWatchdogTime = 60000, [In] int lWatchdogFault = 3, [In] tagWatchdogTimeoutAction lWatchdogAction = tagWatchdogTimeoutAction.TIMEOUT_NO_ACTION); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void StartupCompleted(); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void SetStartupTimeout([In] int lmsPeriod); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void SetShutdownTimeout([In] int lmsPeriod); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void GetShutdownEvent([In] int lmsShutdownTimeout, [MarshalAs(UnmanagedType.BStr)] out string pbstrEventName); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void SetWatchdogTime([In] int lmsWaitTime); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void SetWatchdogFaults([In] uint dwFaults); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void SetWatchdogAction([In] tagWatchdogTimeoutAction action); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void ResetWatchdog(); }