【发布时间】:2022-08-03 19:11:11
【问题描述】:
我正在使用 rust for windows 来使用 win32 API。
但是,我需要初始化 com 库以使用一些 Windows API,但我找不到一些类 ID (CLSID) 来创建实例。
我需要找到用于创建实例的 Speech ISpVoice CLSID。CLSID_SpVoice 是 CLSID。
另外,我找不到一些宏,例如“FAILED”和“SUCCEEDED”。
如果有人可以指导我,将不胜感激!
另外,如果我的代码中有任何错误,请突出显示我。
代码:
use windows::Win32::System::Com::{CoInitializeEx, CoCreateInstance};
use windows::Win32::System::{Com, Ole};
use windows::core::{ HRESULT, Error };
use windows::Win32::Media::Speech::ISpVoice;
fn main() {
let speaker: ISpVoice;
unsafe {
if CoInitializeEx(std::ptr::null(), Com::COINIT_MULTITHREADED) ==Result::Ok(()) {
let hr: HRESULT = CoCreateInstance(, punkouter, dwclscontext)
}
}
}
如果有什么不清楚的,请告诉我!
-
magnumdb.com/search?q=CLSID_SpVoice => 96749377-3391-11d2-9ee3-00c04f797396。该站点还告诉您该值在 %ProgramFiles(x86)%\\Windows Kits\\10\\Include\\10.0.22621.0\\um\\sapi53.h 的 Windows SDK 标头中可用(适应您的设置和SDK 版本)。 SUCCEEDED 在这里定义 docs.microsoft.com/en-us/windows/win32/api/winerror/… 和 FAILED 这里 docs.microsoft.com/en-us/windows/win32/api/winerror/…
-
@Simon Mourier,我没有要求 C++ 标头,我要求的是 Windows 板条箱(Rust For Windows)。两者是不同的。
-
我只是假设
#define SUCCEEDED(hr) (((HRESULT)(hr)) >= 0)对于任何程序员来说都很容易理解。
标签: winapi rust com clsid windows-rs