static unsafe int DirectInput8Create_Hooked(IntPtr hInst, UInt32 dwVersion, IntPtr riidltf, DirectInput8.IDirectInput8 **ppvOut, IntPtr punkOuter) { Mithos This = (Mithos)HookRuntimeInfo.Callback; int rv; This.di8 = new IDirectInput8(hInst, dwVersion, riidltf, ppvOut, punkOuter, Interface, out rv); return(rv); }
// 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 static extern int DirectInput8Create(IntPtr hInst, UInt32 dwVersion, IntPtr riidltf, DirectInput8.IDirectInput8 **ppvOut, IntPtr punkOuter);