c# - 这个 API 到底是什么,它在做什么?

标签 c# api external dllimport

我知道你会因为这种问题而恨我。但是有人可以告诉我以下代码在做什么吗?

我的意思是加载了一些库,我明白了。还有一些方法,我还是不明白。

例如:

[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);
    }

您不必逐行向我解释。请至少给我一些可以阅读的引用。

提前致谢!

最佳答案

此代码使用 P/Invoke允许 C# 代码调用多个与 Windows Hooks 相关的 Win32 API 函数.

发布的代码只定义了方法;它不调用它们,所以它自己不做任何事情。它只允许您使用代码其他部分的方法。

关于c# - 这个 API 到底是什么,它在做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6801717/

相关文章:

c# - 何时何地进行依赖注入(inject)。您能澄清一下吗?

api - 谷歌地图 API : how to reduce costs

Hadoop Hive 外部表位置?

c# - 在不中断更改的情况下在 SignalR 方法中添加额外参数

c# - Bootstrap 导航栏下拉菜单在 asp.net 中不起作用

api - 如何防止对 RESTful 数据服务的蛮力攻击

javascript - 从 Django 模型读取数据,还是通过 API?

javascript - 使用链接调用将文件插入 div 的 javascript 函数

c++ - 外部链接的 C 库中的异常传播

c# - MEF 导出是否每次都根据请求进行缓存或发现?