32次重大发布

0.33.0 2024年8月14日
0.32.0 2024年7月24日
0.31.0 2024年6月12日
0.29.0 2024年3月1日
0.7.0 2021年11月9日

#21 in Windows API

Download history 15279/week @ 2024-05-04 16040/week @ 2024-05-11 16246/week @ 2024-05-18 16754/week @ 2024-05-25 16965/week @ 2024-06-01 14123/week @ 2024-06-08 15114/week @ 2024-06-15 15185/week @ 2024-06-22 16403/week @ 2024-06-29 16509/week @ 2024-07-06 17931/week @ 2024-07-13 19195/week @ 2024-07-20 19576/week @ 2024-07-27 20164/week @ 2024-08-03 21771/week @ 2024-08-10 17249/week @ 2024-08-17

81,515每月下载量
用于203个crate (13个直接使用)

MIT许可证

33MB
45K SLoC

webview2-com

此crate实现了对WebView2 COM API的Rust绑定,以及构建独立GUI应用程序托管WebView2所必需的几个重要的Win32 API。这些绑定由Windows crate在webview2-com-sys中生成。

入门指南

在您的Cargo.toml中包含对webview2-com的引用

[dependencies]
webview2-com = "0.33"

查看文档或查看sample.rs示例(改编自microsoft/windows-samples-rs)以获取更多信息。

安全性

大多数绑定都透明地从webview2-com-sys重新导出,并且它们仍然标记为unsafe。与围绕-sys crate的典型惯用Rust crate不同,此crate的重点是编写尽可能少的手动包装代码。这样,webview2-com可以投影100%的WebView2 COM API,但缺点是您需要将大多数使用包裹在unsafe块或函数中。

便利类型

此crate添加的大多数代码由实现回调和设置选项所需的COM接口的便利类型组成

  • callback.rs:实现了WebView2使用的所有事件接收器处理程序接口。
  • options.rs:实现了ICoreWebView2EnvironmentOptions...接口,这些接口会传递给CreateCoreWebView2EnvironmentWithOptions,以便在需要自定义环境时使用。结构体CoreWebView2EnvironmentOptions具有对所有支持字段的公共访问器,使用Rust类型,因此您不需要使用单独的ICoreWebView2EnvironmentOptions... COM接口来初始化或检索它们。

还有一些处理PWSTR输入/输出参数的实用工具,可能很有用。

  • pwstr.rs:包括string_from_pcwstrtake_pwstrpwstr_from_str

Windows元数据

Windows crate需要描述API的Windows元数据(winmd)文件。本crate中使用的文件是由webview2-win32md项目生成的。本crate需要它来使用来自Windows crate的#[implement]宏。

依赖项

128MB
~2M SLoC