#winapi #api-bindings #audio

hwnd

良好的文档,偏向安全的,稳健的,低级API绑定到HWND相关的API

2个版本

0.0.0-2024-01-05 2024年1月5日
0.0.0-2024-01-03 2024年1月3日

#148 in Windows API

Apache-2.0 OR MIT

350KB
2.5K SLoC

良好的文档,偏向安全的,稳健的,低级API绑定到HWND相关的API。

GitHub crates.io docs.rs License Build Status

存在理由

预期用途包括

  • 构建更高级API的基础模块。
  • 与现有的win32消耗型C或C++代码库进行互操作(增量RIIRing?)
  • 直接用于需要额外抽象/高级API的场合。

按优先级排序,服务这些用例的目标是

  1. API应该尽可能稳健。
    • 大量单元测试和/或文档测试以尝试破坏安全API。
    • 彻底记录任何必须保持unsafe的函数或特质的文档。
  2. 尽可能保持与原始Windows类型和API的一对一映射。
    • 与现有的C或C++代码库实现最大兼容性。
    • 避免无休止的yak shaving。
    • 通常不鼓励进行额外的错误检查/调试垃圾邮件,以免用户新的边缘情况感到惊讶,除非为了避免稳健性问题。
  3. 尽可能使API更安全。
    • 通常仍需要一些unsafe来实现这些API。
    • 消除完全稳健的API中的unsafe将使审核剩余的unsafe代码更容易。
  4. 提供出色的文档。
    • 为一切提供Rust特定示例。
    • 彻底记录边缘情况、错误代码等。
    • 旨在比MSDN更好。

许可证

许可方式为以下两者之一

任选其一。

贡献

除非你明确说明,否则根据Apache-2.0许可证定义的,你故意提交给作品中的任何贡献,都将如上所述双重许可,无任何附加条款或条件。

依赖项

~0–1.2MB
~11K SLoC