Difference between revisions of "NET:Lavish.InnerSpace.dll"

From Lavish Software Wiki
Jump to navigation Jump to search
Line 51: Line 51:
  
 
== LavishScriptAPI namespace ==
 
== LavishScriptAPI namespace ==
 +
=== Delegates namespace ===
 +
*public delegate int [[NET:LavishScriptAPI.Delegates.CommandTarget|CommandTarget]]([In] int argc, uint argvToken);
 +
*public delegate void [[NET:LavishScriptAPI.Delegates.EventTarget|EventTarget]]([In] int argc, [In] uint argvToken, [In] Object ThisObject);
 +
 
=== LavishScript ===
 
=== LavishScript ===
 
*static public int [[NET:LavishScriptAPI.LavishScript.ExecuteCommand|ExecuteCommand]]([In] string Command);
 
*static public int [[NET:LavishScriptAPI.LavishScript.ExecuteCommand|ExecuteCommand]]([In] string Command);

Revision as of 01:09, 3 December 2006

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 uint RealGetArg(uint Arg, StringBuilder buf, int buflen, uint argv);
  • 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

  • public delegate int CommandTarget([In] int argc, uint argvToken);
  • public delegate void EventTarget([In] int argc, [In] uint argvToken, [In] Object ThisObject);

LavishScript

  • static public int ExecuteCommand([In] string Command);
  • static public int RealDataParse([In] string ToParse, StringBuilder buf, [In] int buflen);
  • 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] int argc, [In] string[] argv);
  • static public bool DetachEventTarget([In] uint EventID, [In] EventTarget Target);
  • static public bool AttachEventTarget([In] uint EventID, [In] EventTarget Target);

LavishScript.Commands

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

LavishVMAPI namespace

LavishVM

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

Frame

See Also