From 1dd8958309e2ae7e6d0f5f2237581e7c09715abb Mon Sep 17 00:00:00 2001 From: Nerixyz Date: Wed, 2 Feb 2022 17:04:55 +0100 Subject: [PATCH] fix: use reference to T in ::new --- crates/libs/windows/src/core/agile_reference.rs | 5 ++++- crates/tests/agile_reference/tests/tests.rs | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/crates/libs/windows/src/core/agile_reference.rs b/crates/libs/windows/src/core/agile_reference.rs index f11876ab4a..9f626c495b 100644 --- a/crates/libs/windows/src/core/agile_reference.rs +++ b/crates/libs/windows/src/core/agile_reference.rs @@ -9,7 +9,10 @@ pub struct AgileReference(IAgileReference, PhantomData); impl AgileReference { /// Creates an agile reference to the object. - pub fn new<'a, O: IntoParam<'a, IUnknown>>(object: O) -> Result { + pub fn new<'a>(object: &'a T) -> Result + where + &'a T: IntoParam<'a, IUnknown>, + { unsafe { RoGetAgileReference(AGILEREFERENCE_DEFAULT, &T::IID, object).map(|reference| Self(reference, Default::default())) } } diff --git a/crates/tests/agile_reference/tests/tests.rs b/crates/tests/agile_reference/tests/tests.rs index 88141b8305..91ed3befb2 100644 --- a/crates/tests/agile_reference/tests/tests.rs +++ b/crates/tests/agile_reference/tests/tests.rs @@ -4,7 +4,7 @@ use windows::Media::Control::GlobalSystemMediaTransportControlsSessionManager; #[test] fn test() -> Result<()> { let manager = GlobalSystemMediaTransportControlsSessionManager::RequestAsync()?.get()?; - let reference = AgileReference::::new(&manager)?; + let reference = AgileReference::new(&manager)?; let handle = std::thread::spawn(move || { let manager = reference.resolve()?;