访问 Microsoft Windows API

通过在 Visual Basic 应用程序中声明外部过程,能够访问 Windows API (以及其它的外部 DLL)。在声明了过程之后,调用它的方法与 Visual Basic 自己的过程相同。

最常用的外部过程是组成 Microsoft Windows 自身的过程。Windows API 中包含了成千上万的函数、例程、类型和常数定义,在 Visual Basic 工程中可以声明并使用它们。但是,这些过程是用 C 语言编写的,在 Visual Basic 中使用它们之前必须先进行声明。DLL 过程的声明是比较复杂的。尽管也可以自己进行声明转换,最简单的办法是使用 Visual Basic 专门提供的预定义 Windows API 声明。

Win32api.txt 文件中包含 Visual Basic 中经常使用的许多 Windows API 的过程声明,该文件位于 Visual Basic 主目录下的 \Winapi 子目录中。要使用该文件中的函数、类型等定义时,只需将其从该文件复制到 Visual Basic 模块中即可。要查看并复制 Win32api.txt 中的过程,可以使用 API Viewer 应用程序,也可以使用其它的文本编辑器。

注意   Windows API 中包含大量的代码。如果需要该 API 集合中包含的过程和其它细节的参考信息,请参考 Win32 SDK,它包含在 Microsoft Developer Network Library CD 中。

使用 API Viewer 应用程序

API Viewer 应用程序可以用来浏览包含在文本文件或者 Microsoft Jet 数据库中的声明语句、常数、类型。找到自己需要的过程之后,可将代码复制到剪贴板上,然后将其粘贴到 Visual Basic 应用程序中。您可以在您的应用程序中添加任意个过程。

API Viewer 应用程序

要查看一个 API 文件,请按照以下步骤执行:

  1. 从“外接程序”菜单中,打开外接程序管理器并加载“API 浏览器”。

  2. 从“外接程序”菜单中单击“API 浏览器”。

  3. 打开您想查看的文本或数据库文件。
  4. 从“API 类型”列表中选择您想查看的项目类型。

注意 您可以使 API 浏览器自动显示您上一次在其中查看的文件,方法是在它打开时,选择“视图 \ 加载上一个文件”。


要将过程添加到您的 Visual Basic 代码,请按照以下步骤执行:

  1. 单击您想在“可用项”列表中复制的过程。

  2. 单击“添加”。该项目会出现在“选定项”列表中。

  3. 通过单击“声明范围”组中的“公有”或“私有的”指出项目的范围。

  4. 要从“选定项”列表框中删除一个条目,请单击该项并单击“移除”。

  5. 要从“选定项”列表框中删除所有条目,请单击“清除”。

要将选定的项目复制到剪贴板,请按照以下步骤执行:

  1. 单击“复制”。则“选定项”列表中的所有项目都被复制。

  2. 打开 Visual Basic 工程,进入需要加入 API 信息的模块。

  3. 先设置粘贴声明语句、常数、和/或类型的插入点,然后从“编辑”菜单中选择“粘贴”。

将文本文件转换为 Jet 数据库文件

为了提高检索的速度,可以将 Win32api.txt 文件转换为 Jet 数据库文件,使用数据库文件显示列表的速度要快得多。

要将一个文本文件转换为一个 jet 数据库文件,请按照以下步骤执行:

  1. 启动 API 浏览器应用程序。

  2. 单击“文件 \ 加载文本文件”并打开您想要转换的.txt 文件。

  3. 单击“文件 \ 转换文本为数据库”。为您的数据库文件选择文件名和位置。然后单击“确定”。
    自动加载 API 文件

如果在命令行上为 Apilod32.exe 指定一个文本文件或数据库,则在启动 API Viewer 时将自动加载该文件。可以使用下面的语法使 API Viewer 应用程序在启动时加载选择的文件:

Apilod32.exe {/T|/D} filename
参数 描述
/T API Viewer 将文件作为文本文件加载。/T 必须是大写的。
/D API Viewer 将文件作为数据库文件加载。/D 必须是大写的。
filename 要打开的文件的路径。

/T、/D 与 filename 参数中间必须有一个空格。如果找不到文件,将显示出一条出错信息。如果指定的文件不是数据库或文本文件,在试图加载文件时也会显示出错误信息。

提示 您可以通过使用一个 DOS 窗口漫游到安装 API 浏览器应用程序的目录,然后输入“apiload /?”,来查看显示命令行语法参数的提示。



使用文本编辑器查看 Win32api.txt 文件

也可使用文本编辑器(例如 Microsoft Word 或者 WordPad)加载 Win32api.txt 文件并查找需要的过程。这种方法同样可以将过程复制到应用程序中的 Visual Basic 模块中。

提示   不要将 Win32api.txt 文件整个加载到模块中。因为该文件相当大,它将用掉相当可观的内存。而应用程序中实际用到的声明通常并不很多,因此只需选择性地复制需要的声明。

使用其它来源的过程

如果过程所在的 DLL 不是操作系统的一部分,必须先确定它的正确声明形式。帮助主题“声明 DLL 过程”中详尽地解释了 Declare 语句的语法。

注意   如果使用 Visual C++ (或类似工具)创建将要由 Visual Basic 调用的 DLL ,则请使用 __stdcall 调用约定。不要使用缺省的调用约定(_cdecl)。