包含哪些 API?
除了少数例外,Windows SDK 提供的所有 Windows API 都包含在内。这些 API 的定义是从元数据中收集并转换为 Rust 绑定的。生成 Rust 绑定的过程特意省略了一些 API。API 仅在以下情况下才会被排除:(1)不适合 Rust 开发者,并且(2)对 windows 和 windows-sys crate 的总体大小造成很大影响。
Xaml API 被排除在外,因为它在没有 Xaml 团队提供的直接语言支持的情况下几乎无法使用。Xaml 也专注于并针对 C# 应用开发,因此此 API 不适用于 Rust 开发者。MsHtml API 也被排除在外,因为它仅适用于 Microsoft 较旧的脚本语言,例如 JScript 和 VBScript。按代码行数衡量,它也是迄今为止最大的单个模块。除此之外,一些已弃用和不可用的 API 被排除在外。您可以确切地看到 windows crate 排除的内容以及 windows-sys crate 排除的内容。
除此之外,windows-sys
crate 目前排除了所有 COM 和 WinRT API。windows-sys
crate 仅包含声明,如果没有 windows crate 提供的抽象,COM 和 WinRT 调用将过于繁琐。这里有一些关于选择 windows 和 windows-sys crate 的提示。