在非.net环境中,我在哪里可以找到Windows API常量列表

时间:2009-07-01 20:20:24

标签: windows delphi

我想找到一些Windows API常量的值,例如但不限于 LVM_ENABLEGROUPVIEW & WM_SHOWWINDOW

在网上查看引导我MSDN,它告诉我它们的用途,但不是基础值。

stackOverflow上有一个非常类似的问题Where can I find a list of windows API constants,但是所有答案都是针对.net的,或者假设我有Windows SDK,据我所知,我没有。

那么我在哪里可以找到它们?

如果它有所作为我正在使用Delphi 2007,虽然它在消息单元中有很多内容,但它没有全部内容,包括一些最新的内容。

由于

7 个答案:

答案 0 :(得分:11)

下载SDK并使用您喜爱的全文搜索工具搜索标题文件(所有.h文件)。

Pinvoke.net可以用于压缩(常数),但不一定都有。

消息值在所有开发环境中都是不变的。

答案 1 :(得分:2)

大多数都可以在VCL源代码中找到,主要是在Windows.pas文件中。最好的办法是进行搜索|在文件中查找,键入要查找其值的常量的名称,设置“搜索目录”选项,将文件掩码设置为* .pas,然后输入包含该文件夹的路径Windows.pas。 IDE将查找常量的所有用法并将它们放在“搜索结果”窗口中;双击该窗口中的源代码行将打开该行的文件。

其他人可以像Kevin和GameCat所提到的那样,可以在Windows SDK的标题(.h)文件中找到,可以从MSDN下载。

答案 2 :(得分:2)

优秀的Delphi JEDI项目已将大多数Windows API头文件转换为delphi / pascal。查看JEDI网站上的win32api。

答案 3 :(得分:1)

您可以查看常量的Windows单位源(和相关单位)。他们对使用的评论有限。

Windows SDK帮助提供了更多答案。

在互联网上使用MSDN。

获取完整列表需要进行一些研究。但最终你将能够找到所有的答案。

答案 4 :(得分:1)

您可以使用ApiViewer。 最初是为VB6开发的,它可以设置为以对象pascal语言显示声明,这可以为您节省一些打字。

请注意,它的数据库并不完美。一些函数definitios是不正确的,也有一些常量(比如0xFFFF而不是0xFFFFFFFF)。

答案 5 :(得分:1)

LVM_ENABLEGROUPVIEW和co位于CommCtrls.pas中 - 它们可能在Delphi 2007中,但我没有检查过:

  LVM_FIRST               = $1000;     
  LVM_SETGROUPMETRICS         = LVM_FIRST + 155;
  LVM_GETGROUPMETRICS         = LVM_FIRST + 156;
  LVM_ENABLEGROUPVIEW         = LVM_FIRST + 157;
  LVM_SORTGROUPS              = LVM_FIRST + 158;
对于Delphi 2007,

WM_SHOWWINDOW应该在Windows.pas中 - 开始搜索SW_HIDE。或者,您可以查看this post on translating API calls,它不仅具有您正在寻找的值,还会显示如何以类型安全的方式使用它们。

Delphi 2007的CommCtrl.pas有很多消息和API宏在VCL的任何地方都没有使用,在Delphi中没有记录,单位总是值得一看。

更一般地说,如果你在MSDN(或Delphi帮助文件)上查找任何API调用,它会在功能信息下面的底部列出头文件的名称。如果此标头位于Win * .h中,请查看Windows.pas。大多数其他东西都可以在带有该名称的pas文件中找到(所以commctrl.h变成了commctrl.pas)。

更新: LVM_ENABLEGROUPVIEW以及ListView_EnableGroupView宏可在Delphi 2007上使用。

答案 6 :(得分:0)

除了其他人所说的(所有有效和好的建议),谷歌是你的朋友。搜索“#define WM_Whatever”。

例如:http://www.google.si/search?&q=%23define+LVM_ENABLEGROUPVIEW