// For the case where we already have a native IDirectInput8 object and we want to override some of it's functions. public unsafe IDirectInput8(DirectInput8.IDirectInput8 *InNativeIDirectInput8, YggdrasillInterface iface) { Context = InNativeIDirectInput8; Interface = iface; /* Hook up any functions we care about */ OverrideFunctions(); }
// For the case where we already have a native IDirect3D8 object and we want to override some of it's functions. public unsafe IDirect3D8(D3D8.IDirect3D8 *InContext, YggdrasillInterface iface) { Context = InContext; Interface = iface; // Override the functions in the vtable of the context with our own. OverrideFunctions(); }
public unsafe IDirectInputDevice8(DirectInput8.IDirectInputDevice8 *InDevice, YggdrasillInterface iface) { Device = InDevice; Interface = iface; /* Hook up any functions we care about */ OverrideFunctions(); }
// For the case where we don't have a native IDirect3D object so we want one created for us. public IDirect3D8(uint SdkVersion, YggdrasillInterface iface) { // Create the real IDirect3D8 object. Context = D3D8.Direct3DCreate8(SdkVersion); Interface = iface; // Override the functions in the vtable of the context with our own. OverrideFunctions(); }
// For the case where we don't have a native IDirectInput8 object so we want one created for us. public unsafe IDirectInput8(IntPtr hInst, UInt32 dwVersion, IntPtr riidltf, DirectInput8.IDirectInput8 **ppvOut, IntPtr punkOuter, YggdrasillInterface iface, out int rv) { // Create the real IDirectInput8 object. rv = DirectInput8.DirectInput8Create(hInst, dwVersion, riidltf, ppvOut, punkOuter); Context = *ppvOut; Interface = iface; /* Hook up any functions we care about */ OverrideFunctions(); }
public Mithos(RemoteHooking.IContext InContext, string channel, bool disableime, bool windowed) { Interface = RemoteHooking.IpcConnectClient <YggdrasillInterface>(channel); }