什么是P/Invoke使用的"APPCOMMAND"变量?

Fra*_*ank 7 c# pinvoke sendmessage

我正在StackOverflow上搜索,找到了C#中静音音量的答案.我不明白答案是怎么回事.我从来没有深入到Marshaling或P/Invoke.我之前使用过它们但从未明白我在做什么.

所以这就是我困惑的事情:

private const int APPCOMMAND_VOLUME_MUTE = 0x80000;
private const int WM_APPCOMMAND = 0x319;
Run Code Online (Sandbox Code Playgroud)
  • 在声明这些内容时,它们的名称是否重要,或者它们只是被视为任何整数,无论​​它们被称为什么?

  • 你在哪里的价值观0x800000x319从何而来?

Dan*_*ard 4

这些值是在 中定义的Winuser.h,更常见的是包含在Windows.h.

WM_APPCOMMAND 的 Winuser 常量记录在此 MSDN 页面上。

与任何变量一样,如何在代码中命名这些变量在技术上取决于您。但是,通常的做法是使命名与您所调用的库(在本例中为 Winuser.h)使用的命名保持一致。我认为没有理由给它们起其他名字。