Show / Hide Table of Contents

    Class Hook

    Inheritance
    System.Object
    Hook
    Hook<T>
    Hook<TFrom, TTo>
    Implements
    IDetour
    System.IDisposable
    Namespace: MonoMod.RuntimeDetour
    Assembly: MonoMod.RuntimeDetour.dll
    Syntax
    public class Hook : Object, IDetour, IDisposable

    Constructors

    Hook(Delegate, Delegate)

    Declaration
    public Hook(Delegate from, Delegate to)
    Parameters
    Type Name Description
    System.Delegate from
    System.Delegate to

    Hook(Delegate, Delegate, HookConfig)

    Declaration
    public Hook(Delegate from, Delegate to, HookConfig config)
    Parameters
    Type Name Description
    System.Delegate from
    System.Delegate to
    HookConfig config

    Hook(Delegate, Delegate, ref HookConfig)

    Declaration
    public Hook(Delegate from, Delegate to, ref HookConfig config)
    Parameters
    Type Name Description
    System.Delegate from
    System.Delegate to
    HookConfig config

    Hook(Delegate, IntPtr)

    Declaration
    public Hook(Delegate from, IntPtr to)
    Parameters
    Type Name Description
    System.Delegate from
    System.IntPtr to

    Hook(Delegate, IntPtr, HookConfig)

    Declaration
    public Hook(Delegate from, IntPtr to, HookConfig config)
    Parameters
    Type Name Description
    System.Delegate from
    System.IntPtr to
    HookConfig config

    Hook(Delegate, IntPtr, ref HookConfig)

    Declaration
    public Hook(Delegate from, IntPtr to, ref HookConfig config)
    Parameters
    Type Name Description
    System.Delegate from
    System.IntPtr to
    HookConfig config

    Hook(Expression, Delegate)

    Declaration
    public Hook(Expression from, Delegate to)
    Parameters
    Type Name Description
    System.Linq.Expressions.Expression from
    System.Delegate to

    Hook(Expression, Delegate, HookConfig)

    Declaration
    public Hook(Expression from, Delegate to, HookConfig config)
    Parameters
    Type Name Description
    System.Linq.Expressions.Expression from
    System.Delegate to
    HookConfig config

    Hook(Expression, Delegate, ref HookConfig)

    Declaration
    public Hook(Expression from, Delegate to, ref HookConfig config)
    Parameters
    Type Name Description
    System.Linq.Expressions.Expression from
    System.Delegate to
    HookConfig config

    Hook(Expression, IntPtr)

    Declaration
    public Hook(Expression from, IntPtr to)
    Parameters
    Type Name Description
    System.Linq.Expressions.Expression from
    System.IntPtr to

    Hook(Expression, IntPtr, HookConfig)

    Declaration
    public Hook(Expression from, IntPtr to, HookConfig config)
    Parameters
    Type Name Description
    System.Linq.Expressions.Expression from
    System.IntPtr to
    HookConfig config

    Hook(Expression, IntPtr, ref HookConfig)

    Declaration
    public Hook(Expression from, IntPtr to, ref HookConfig config)
    Parameters
    Type Name Description
    System.Linq.Expressions.Expression from
    System.IntPtr to
    HookConfig config

    Hook(Expression<Action>, Delegate)

    Declaration
    public Hook(Expression<Action> from, Delegate to)
    Parameters
    Type Name Description
    System.Linq.Expressions.Expression<System.Action> from
    System.Delegate to

    Hook(Expression<Action>, Delegate, HookConfig)

    Declaration
    public Hook(Expression<Action> from, Delegate to, HookConfig config)
    Parameters
    Type Name Description
    System.Linq.Expressions.Expression<System.Action> from
    System.Delegate to
    HookConfig config

    Hook(Expression<Action>, Delegate, ref HookConfig)

    Declaration
    public Hook(Expression<Action> from, Delegate to, ref HookConfig config)
    Parameters
    Type Name Description
    System.Linq.Expressions.Expression<System.Action> from
    System.Delegate to
    HookConfig config

    Hook(Expression<Action>, IntPtr)

    Declaration
    public Hook(Expression<Action> from, IntPtr to)
    Parameters
    Type Name Description
    System.Linq.Expressions.Expression<System.Action> from
    System.IntPtr to

    Hook(Expression<Action>, IntPtr, HookConfig)

    Declaration
    public Hook(Expression<Action> from, IntPtr to, HookConfig config)
    Parameters
    Type Name Description
    System.Linq.Expressions.Expression<System.Action> from
    System.IntPtr to
    HookConfig config

    Hook(Expression<Action>, IntPtr, ref HookConfig)

    Declaration
    public Hook(Expression<Action> from, IntPtr to, ref HookConfig config)
    Parameters
    Type Name Description
    System.Linq.Expressions.Expression<System.Action> from
    System.IntPtr to
    HookConfig config

    Hook(MethodBase, Delegate)

    Declaration
    public Hook(MethodBase method, Delegate to)
    Parameters
    Type Name Description
    System.Reflection.MethodBase method
    System.Delegate to

    Hook(MethodBase, Delegate, HookConfig)

    Declaration
    public Hook(MethodBase method, Delegate to, HookConfig config)
    Parameters
    Type Name Description
    System.Reflection.MethodBase method
    System.Delegate to
    HookConfig config

    Hook(MethodBase, Delegate, ref HookConfig)

    Declaration
    public Hook(MethodBase method, Delegate to, ref HookConfig config)
    Parameters
    Type Name Description
    System.Reflection.MethodBase method
    System.Delegate to
    HookConfig config

    Hook(MethodBase, IntPtr)

    Declaration
    public Hook(MethodBase method, IntPtr to)
    Parameters
    Type Name Description
    System.Reflection.MethodBase method
    System.IntPtr to

    Hook(MethodBase, IntPtr, HookConfig)

    Declaration
    public Hook(MethodBase method, IntPtr to, HookConfig config)
    Parameters
    Type Name Description
    System.Reflection.MethodBase method
    System.IntPtr to
    HookConfig config

    Hook(MethodBase, IntPtr, ref HookConfig)

    Declaration
    public Hook(MethodBase method, IntPtr to, ref HookConfig config)
    Parameters
    Type Name Description
    System.Reflection.MethodBase method
    System.IntPtr to
    HookConfig config

    Hook(MethodBase, MethodInfo)

    Declaration
    public Hook(MethodBase from, MethodInfo to)
    Parameters
    Type Name Description
    System.Reflection.MethodBase from
    System.Reflection.MethodInfo to

    Hook(MethodBase, MethodInfo, HookConfig)

    Declaration
    public Hook(MethodBase from, MethodInfo to, HookConfig config)
    Parameters
    Type Name Description
    System.Reflection.MethodBase from
    System.Reflection.MethodInfo to
    HookConfig config

    Hook(MethodBase, MethodInfo, ref HookConfig)

    Declaration
    public Hook(MethodBase from, MethodInfo to, ref HookConfig config)
    Parameters
    Type Name Description
    System.Reflection.MethodBase from
    System.Reflection.MethodInfo to
    HookConfig config

    Hook(MethodBase, MethodInfo, Object)

    Declaration
    public Hook(MethodBase from, MethodInfo to, object target)
    Parameters
    Type Name Description
    System.Reflection.MethodBase from
    System.Reflection.MethodInfo to
    System.Object target

    Hook(MethodBase, MethodInfo, Object, HookConfig)

    Declaration
    public Hook(MethodBase from, MethodInfo to, object target, HookConfig config)
    Parameters
    Type Name Description
    System.Reflection.MethodBase from
    System.Reflection.MethodInfo to
    System.Object target
    HookConfig config

    Hook(MethodBase, MethodInfo, Object, ref HookConfig)

    Declaration
    public Hook(MethodBase from, MethodInfo to, object target, ref HookConfig config)
    Parameters
    Type Name Description
    System.Reflection.MethodBase from
    System.Reflection.MethodInfo to
    System.Object target
    HookConfig config

    Fields

    DelegateTarget

    Declaration
    public readonly object DelegateTarget
    Field Value
    Type Description
    System.Object

    Method

    Declaration
    public readonly MethodBase Method
    Field Value
    Type Description
    System.Reflection.MethodBase

    OnDetour

    Declaration
    public static Func<Hook, MethodBase, MethodBase, object, bool> OnDetour
    Field Value
    Type Description
    System.Func<Hook, System.Reflection.MethodBase, System.Reflection.MethodBase, System.Object, System.Boolean>

    OnGenerateTrampoline

    Declaration
    public static Func<Hook, MethodBase, MethodBase> OnGenerateTrampoline
    Field Value
    Type Description
    System.Func<Hook, System.Reflection.MethodBase, System.Reflection.MethodBase>

    OnUndo

    Declaration
    public static Func<Hook, bool> OnUndo
    Field Value
    Type Description
    System.Func<Hook, System.Boolean>

    Target

    Declaration
    public readonly MethodBase Target
    Field Value
    Type Description
    System.Reflection.MethodBase

    TargetReal

    Declaration
    public readonly MethodBase TargetReal
    Field Value
    Type Description
    System.Reflection.MethodBase

    Properties

    Detour

    Declaration
    public Detour Detour { get; }
    Property Value
    Type Description
    Detour

    IsApplied

    Declaration
    public bool IsApplied { get; }
    Property Value
    Type Description
    System.Boolean

    IsValid

    Declaration
    public bool IsValid { get; }
    Property Value
    Type Description
    System.Boolean

    Methods

    Apply()

    Declaration
    public void Apply()

    Dispose()

    Declaration
    public void Dispose()

    Free()

    Declaration
    public void Free()

    GenerateTrampoline(MethodBase)

    Declaration
    public MethodBase GenerateTrampoline(MethodBase signature = null)
    Parameters
    Type Name Description
    System.Reflection.MethodBase signature
    Returns
    Type Description
    System.Reflection.MethodBase

    GenerateTrampoline<T>()

    Generate a new DynamicMethod with which you can invoke the previous state.

    Declaration
    public T GenerateTrampoline<T>()
        where T : Delegate
    Returns
    Type Description
    T
    Type Parameters
    Name Description
    T

    Undo()

    Declaration
    public void Undo()

    Implements

    IDetour
    System.IDisposable
    Back to top Yet another C# modding swiss army knife.