NET:Lavish.InnerSpace.dll

From Lavish Software Wiki
Jump to navigation Jump to search

Overview

All Inner Space bootstrapped API are designed to be used along with, and similar to most .NET API (e.g. System). The major difference is that System uses a namespace tree, whereas Inner Space's API sets each presently consist of one namespace, with a tree of classes containing static functions. The present API will later be complemented with wrapper classes.

Reference Lavish.InnerSpace.dll to use the API described on this page. When used outside of Inner Space, all API are stubs that will generally do nothing or return a failure code. Exceptions are not thrown. To detect whether the application is loaded via Inner Space, check InnerSpace.GetBuildNumber(), which will be 0 if not loaded.

InnerSpaceAPI namespace

InnerSpace

  • static public void Echo([In] string Output);
  • static public uint GetBuildNumber;
  • static public string Path;
  • static public T GetArg<T>(uint arg, uint argv)

InnerSpace.Input

Inner Space virtualizes application input, such that all input can be emulated regardless of the application's active (or inactive) state. All input devices supporting DirectInput, in addition to G15 G-Keys (and M-keys, but not changing the light at this time -- sorry! G15 LCD would be an output topic, so that does not belong in Input.) are supported.

Keyboard Emulation

Not yet implemented
  • static public bool KeyPress([In] string Combo, [In] bool Hold);
  • static public bool KeyRelease([In] string Combo);
  • static public bool Type([In] string Text);

Mouse Emulation

Not yet implemented
  • static public bool MousePress([In] uint Button, [In] bool Hold);
  • static public bool MouseRelease([In] uint Button);
  • static public bool MouseTo([In] int X, [In] int Y);
  • static public bool GetMousePos([Out] int X, [Out] int Y);
  • static public bool MouseWheel([In] int Offset);
  • static public bool IsPendingInput();
  • static public uint GetVKeyName([In]int VKey, StringBuilder buf, [In]uint buflen);

Device-specific Input

Not yet implemented
  • static public bool GetDeviceByName([In] string Name, [Out] uint DeviceID);
  • static public bool GetDeviceName([In] uint DeviceID, StringBuilder buf, [In]uint buflen);
  • static public bool GetInputByName([In] uint DeviceID, [In] string Name, [Out] uint InputID);
  • static public bool GetInputName([In] uint DeviceID, [In] uint InputID, StringBuilder buf, [In]uint buflen);
  • static public bool EnumDevices([In]DeviceEnum Callback, [In] IntPtr pData);
  • static public bool EnumInputs([In] uint DeviceID, [In]InputEnum Callback, [In] IntPtr pData);
  • static public bool SetInputState([In] uint DeviceID, [In] uint InputID, [In]float Position);
  • static public bool GetInputState([In] uint DeviceID, [In] uint InputID, [Out]float Position);
  • static public bool Press([In] uint DeviceID,[In] uint ButtonID);
  • static public bool Release([In] uint DeviceID,[In] uint ButtonID);

InnerSpace.Memory

InnerSpace.Memory is a mechanism for using memory protection services to hide memory modifications from anti-cheat systems. As such, the original value is stored for later restoring the change to its original value. Memory protection services are implemented by extensions such as ISXEQ and ISXWarden to provide a common mechanism for modifying and protecting those modifications.

API

Not yet implemented
  • static public bool WriteMemory([In] uint BaseAddress, [In] byte[] Data, [In] uint Size);
  • static public bool UnwriteMemory([In] uint BaseAddress);

LavishScriptAPI namespace

Delegates namespace

LavishScript

  • static public int ExecuteCommand([In] string Command);
  • static public int ExecuteCommandEx([In] string Command, [In] params string[] args);
  • static public bool DataParse<T>([In] string ToParse, ref T obj);

LavishScript.Events

  • static public uint RegisterEvent([In] string Name);
  • static public bool ExecuteEvent([In] uint EventID, [In] params string[] args);
  • static public bool DetachEventTarget([In] uint EventID, [In] System.EventHandler<LSEventArgs> Target);
  • static public bool AttachEventTarget([In] uint EventID, [In] System.EventHandler<LSEventArgs> Target);

LavishScript.Commands

  • static public bool AddCommand([In] string Command, [In] CommandTarget Function);
  • static public void RemoveCommand([In] string Command);

LavishScript.Objects

LavishScript Objects

LavishVMAPI namespace

LavishVM

  • static public IntPtr GetAPI(string Library, string Name, uint Version);

Frame

See Also