I'd like to give it a try, this is what I'm thinking of (i'll put everything here, it's not necessary a must read, it's before creating a PR)
Add support for ExecQueryAsync in WMIConnection.
The motivation is to be able to query WMI and obtain a Future object. It could lead in the future to use of wmi crate in heim for windows (if @svartalf agrees of course).
Thanks for your words of encouragement, I set it as a personnal challenge and... I'm in for a looong dive into unsafe Rust! I set myself a deadline at the begining of March 2021, we'll see then how things have unfold.
First hurdle is to provide an implementation of winapi::um::wbemcli::IWbemObjectSink to the ExecQueryAsync. I can't see yet a safe way to do it, my best idea so far (not tested) is to cast a pointer to a #[repr(C)] Rust struct that provides an implementation.
I have to dig into how the com crates implements its com::class! macro and if I could take something there. As it works in pair with the com::interface! macro, I can't use it on the winapi::um::wbemcli::IWbemObjectSink.
I'll keep you updated of my progress, if I make any 😄