#if NETFX

using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

namespace IWshRuntimeLibrary
{
	// Token: 0x02000007 RID: 7
	[Guid("41904400-BE18-11D3-A28B-00104BD35090")]
	[TypeLibType(4160)]
	[ComImport]
	internal interface IWshShell3 : IWshShell2
	{
		// Token: 0x1700000C RID: 12
		// (get) Token: 0x0600002D RID: 45
		[DispId(100)]
		IWshCollection SpecialFolders { [DispId(100)] [MethodImpl(MethodImplOptions.InternalCall)] [return: MarshalAs(UnmanagedType.Interface)] get; }

		// Token: 0x1700000D RID: 13
		// (get) Token: 0x0600002E RID: 46
		[DispId(200)]
		IWshEnvironment Environment { [DispId(200)] [MethodImpl(MethodImplOptions.InternalCall)] [return: MarshalAs(UnmanagedType.Interface)] get; }

		// Token: 0x0600002F RID: 47
		[DispId(1000)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		int Run([MarshalAs(UnmanagedType.BStr)] [In] string Command, [MarshalAs(UnmanagedType.Struct)] [In] ref object WindowStyle, [MarshalAs(UnmanagedType.Struct)] [In] ref object WaitOnReturn);

		// Token: 0x06000030 RID: 48
		[DispId(1001)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		int Popup([MarshalAs(UnmanagedType.BStr)] [In] string Text, [MarshalAs(UnmanagedType.Struct)] [In] ref object SecondsToWait, [MarshalAs(UnmanagedType.Struct)] [In] ref object Title, [MarshalAs(UnmanagedType.Struct)] [In] ref object Type);

		// Token: 0x06000031 RID: 49
		[DispId(1002)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		[return: MarshalAs(UnmanagedType.IDispatch)]
		object CreateShortcut([MarshalAs(UnmanagedType.BStr)] [In] string PathLink);

		// Token: 0x06000032 RID: 50
		[DispId(1006)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		[return: MarshalAs(UnmanagedType.BStr)]
		string ExpandEnvironmentStrings([MarshalAs(UnmanagedType.BStr)] [In] string Src);

		// Token: 0x06000033 RID: 51
		[DispId(2000)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		[return: MarshalAs(UnmanagedType.Struct)]
		object RegRead([MarshalAs(UnmanagedType.BStr)] [In] string Name);

		// Token: 0x06000034 RID: 52
		[DispId(2001)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		void RegWrite([MarshalAs(UnmanagedType.BStr)] [In] string Name, [MarshalAs(UnmanagedType.Struct)] [In] ref object Value, [MarshalAs(UnmanagedType.Struct)] [In] ref object Type);

		// Token: 0x06000035 RID: 53
		[DispId(2002)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		void RegDelete([MarshalAs(UnmanagedType.BStr)] [In] string Name);

		// Token: 0x06000036 RID: 54
		[DispId(3000)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		bool LogEvent([MarshalAs(UnmanagedType.Struct)] [In] ref object Type, [MarshalAs(UnmanagedType.BStr)] [In] string Message, [MarshalAs(UnmanagedType.BStr)] [In] string Target = "");

		// Token: 0x06000037 RID: 55
		[DispId(3010)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		bool AppActivate([MarshalAs(UnmanagedType.Struct)] [In] ref object App, [MarshalAs(UnmanagedType.Struct)] [In] ref object Wait);

		// Token: 0x06000038 RID: 56
		[DispId(3011)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		void SendKeys([MarshalAs(UnmanagedType.BStr)] [In] string Keys, [MarshalAs(UnmanagedType.Struct)] [In] ref object Wait);

		// Token: 0x06000039 RID: 57
		[DispId(3012)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		[return: MarshalAs(UnmanagedType.Interface)]
		WshExec Exec([MarshalAs(UnmanagedType.BStr)] [In] string Command);

		// Token: 0x1700000E RID: 14
		// (get) Token: 0x0600003A RID: 58
		// (set) Token: 0x0600003B RID: 59
		[DispId(3013)]
		string CurrentDirectory { [DispId(3013)] [MethodImpl(MethodImplOptions.InternalCall)] [return: MarshalAs(UnmanagedType.BStr)] get; [DispId(3013)] [MethodImpl(MethodImplOptions.InternalCall)] [param: MarshalAs(UnmanagedType.BStr)] set; }
	}
}

#endif