using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; namespace Interop.Lmx; [ComImport] [ComConversionLoss] [TypeLibType(TypeLibTypeFlags.FCanCreate)] [Guid("22595C10-28B9-11D3-87E0-00A0C982C01C")] [ClassInterface(ClassInterfaceType.None)] public class BootstrapProcessControllerObjectClass : IBootstrapProcessController, BootstrapProcessControllerObject { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void StartPlatformProcess([In] int lPrivateData, [In][MarshalAs(UnmanagedType.LPWStr)] string szVendor, [In][MarshalAs(UnmanagedType.LPWStr)] string szExecutable, [In][MarshalAs(UnmanagedType.LPWStr)] string szCmdLnArgs, [In][MarshalAs(UnmanagedType.LPWStr)] string szProcessCtrlArgs, [MarshalAs(UnmanagedType.BStr)] out string pszProcessId); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void ShutdownPlatformProcess([In][MarshalAs(UnmanagedType.LPWStr)] string szProcessId, [In] int lmsShutdownTimeout); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void GetPlatformProcessStatus([In][MarshalAs(UnmanagedType.LPWStr)] string szProcessId, out tagPlatformProcessStatus pProcessRunState); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void ShutdownAllPlatformProcesses(); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void GetPlatformProcessList(out int plTotalProcesses, [Out] IntPtr ppPlatformProcessList); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void SetCmdStartOptions([In] int lProcessId, [In][MarshalAs(UnmanagedType.LPWStr)] string szCmdOption); [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] public virtual extern void GetCmdStartOptions([In] int lProcessId, [MarshalAs(UnmanagedType.BStr)] out string pszCmdOption); }