using System;
using Process.NET.Memory;
using Process.NET.Modules;
using Process.NET.Native.Types;
using Process.NET.Threads;
using Process.NET.Windows;
namespace Process.NET
{
///
/// A class that offers several tools to interact with a process.
///
///
public interface IProcess : IDisposable
{
///
/// Provide access to the opened process.
///
System.Diagnostics.Process Native { get; set; }
///
/// The process handle opened with all rights.
///
SafeMemoryHandle Handle { get; set; }
///
/// Class for reading and writing memory.
///
IMemory Memory { get; set; }
///
/// Factory for manipulating threads.
///
IThreadFactory ThreadFactory { get; set; }
///
/// Factory for manipulating modules and libraries.
///
IModuleFactory ModuleFactory { get; set; }
///
/// Factory for manipulating memory space.
///
IMemoryFactory MemoryFactory { get; set; }
///
/// Factory for manipulating windows.
///
IWindowFactory WindowFactory { get; set; }
///
/// Gets the specified module in the process.
///
/// The name of module.
/// .
IProcessModule this[string moduleName] { get; }
///
/// Gets a pointer to the specified address in the process.
///
/// The address pointed.
///
///
///
IPointer this[IntPtr intPtr] { get; }
}
}