我在哪里可以find一个Windows API常量列表,在一个没有.NET的环境

我想find一些Windows API常量的值,例如但不限于LVM_ENABLEGROUPVIEWWM_SHOWWINDOW

在网上看着我到MSDN ,告诉我他们是用什么,但不是底层的价值观。

在stackoverflow有一个非常类似的问题, 我在哪里可以find一个Windows API常量的列表 ,但所有的答案是.net,或者假设我有Windows SDK,据我所知我没有。

那我在哪里可以find他们?

如果它有所作为,我正在使用delphi2007年,虽然它在消息单位有很多的内容,它并没有包括所有这些,包括一些最新的。

谢谢

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

Pinvoke.net可以在一个捏(常量),但不一定拥有一切。

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

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

其他人可以,如Kevin和GameCat提到的,可以在Windows SDK中的头文件(.h)中找到,可以从MSDN下载。

优秀的Delphi JEDI项目已经将大部分Windows API头文件转换成了delphi / pascal。 在JEDI网站查看win32api。

您可以查看窗口单元源(和相关单元)的常量。 他们的使用意见有限。

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

否则在互联网上的MSDN。

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

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

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

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; 

WM_SHOWWINDOW应该在Delphi 2007的Windows.pas中 – 开始搜索SW_HIDE 。 或者,您可以在翻译API调用的过程中查看这篇文章 ,它不仅具有您正在查找的值,还显示了如何以类型安全的方式使用它们。

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

更一般地说,如果您在MSDN(或Delphi帮助文件)上查找任何API调用,它将在函数信息下方的底部列出头文件的名称。 如果这个头文件在Win * .h中,请查看Windows.pas。 大多数其他的东西都可以在这个名字的pas文件中找到(所以commctrl.h变成了commctrl.pas)。

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

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

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