我知道你會恨我這種問題。但有人可以告訴我下面的代碼在做什麼?這個API究竟是什麼,它在幹什麼?
我的意思是有一些庫加載,我明白了。加上有一些方法,我仍然不明白。
F.e:
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
下面是代碼:
private static class API
{
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern IntPtr SetWindowsHookEx(
int idHook,
HookDel lpfn,
IntPtr hMod,
uint dwThreadId);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool UnhookWindowsHookEx(IntPtr hhk);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern IntPtr CallNextHookEx(
IntPtr hhk,
int nCode,
IntPtr wParam,
IntPtr lParam);
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern IntPtr GetModuleHandle(
string lpModuleName);
}
你不必解釋給我行線。至少請給我一些參考資料,以便我可以閱讀它。
Thx提前!
所有的代碼都是聲明一些P/Invoke提供的方法。它本身並沒有做任何事情。那些在運行時使用的方法如何更重要地回答它們的用途。 –