Show / Hide Table of Contents

Class Hook<T>

Manages a hook which can be used to intercept a call to native function. This class is basically a thin wrapper around the LocalHook type to provide helper functions.

Inheritance
System.Object
Hook<T>
Implements
System.IDisposable
IDalamudHook
Inherited Members
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.ToString()
Namespace: Dalamud.Hooking
Assembly: Dalamud.dll
Syntax
public sealed class Hook<T> : IDisposable, IDalamudHook where T : Delegate
Type Parameters
Name Description
T

Delegate type to represents a function prototype. This must be the same prototype as original function do.

Constructors

| Improve this Doc View Source

Hook(IntPtr, T)

Initializes a new instance of the Hook<T> class. Hook is not activated until Enable() method is called.

Declaration
public Hook(IntPtr address, T detour)
Parameters
Type Name Description
System.IntPtr address

A memory address to install a hook.

T detour

Callback function. Delegate must have a same original function prototype.

| Improve this Doc View Source

Hook(IntPtr, T, Boolean)

Initializes a new instance of the Hook<T> class. Hook is not activated until Enable() method is called. Please do not use MinHook unless you have thoroughly troubleshot why Reloaded does not work.

Declaration
public Hook(IntPtr address, T detour, bool useMinHook)
Parameters
Type Name Description
System.IntPtr address

A memory address to install a hook.

T detour

Callback function. Delegate must have a same original function prototype.

System.Boolean useMinHook

Use the MinHook hooking library instead of Reloaded.

Properties

| Improve this Doc View Source

Address

Gets a memory address of the target function.

Declaration
public IntPtr Address { get; }
Property Value
Type Description
System.IntPtr
Exceptions
Type Condition
System.ObjectDisposedException

Hook is already disposed.

| Improve this Doc View Source

BackendName

Gets the name of the hooking backend used for the hook.

Declaration
public string BackendName { get; }
Property Value
Type Description
System.String
| Improve this Doc View Source

IsDisposed

Gets a value indicating whether or not the hook has been disposed.

Declaration
public bool IsDisposed { get; }
Property Value
Type Description
System.Boolean
| Improve this Doc View Source

IsEnabled

Gets a value indicating whether or not the hook is enabled.

Declaration
public bool IsEnabled { get; }
Property Value
Type Description
System.Boolean
| Improve this Doc View Source

Original

Gets a delegate function that can be used to call the actual function as if function is not hooked yet.

Declaration
public T Original { get; }
Property Value
Type Description
T
Exceptions
Type Condition
System.ObjectDisposedException

Hook is already disposed.

Methods

| Improve this Doc View Source

Disable()

Stops intercepting a call to the function.

Declaration
public void Disable()
| Improve this Doc View Source

Dispose()

Remove a hook from the current process.

Declaration
public void Dispose()
| Improve this Doc View Source

Enable()

Starts intercepting a call to the function.

Declaration
public void Enable()
| Improve this Doc View Source

FromSymbol(String, String, T)

Creates a hook. Hooking address is inferred by calling to GetProcAddress() function. The hook is not activated until Enable() method is called.

Declaration
public static Hook<T> FromSymbol(string moduleName, string exportName, T detour)
Parameters
Type Name Description
System.String moduleName

A name of the module currently loaded in the memory. (e.g. ws2_32.dll).

System.String exportName

A name of the exported function name (e.g. send).

T detour

Callback function. Delegate must have a same original function prototype.

Returns
Type Description
Hook<T>

The hook with the supplied parameters.

| Improve this Doc View Source

FromSymbol(String, String, T, Boolean)

Creates a hook. Hooking address is inferred by calling to GetProcAddress() function. The hook is not activated until Enable() method is called. Please do not use MinHook unless you have thoroughly troubleshot why Reloaded does not work.

Declaration
public static Hook<T> FromSymbol(string moduleName, string exportName, T detour, bool useMinHook)
Parameters
Type Name Description
System.String moduleName

A name of the module currently loaded in the memory. (e.g. ws2_32.dll).

System.String exportName

A name of the exported function name (e.g. send).

T detour

Callback function. Delegate must have a same original function prototype.

System.Boolean useMinHook

Use the MinHook hooking library instead of Reloaded.

Returns
Type Description
Hook<T>

The hook with the supplied parameters.

Implements

System.IDisposable
IDalamudHook
  • Improve this Doc
  • View Source
In This Article
Back to top Generated by DocFX