1 #![allow(unused_variables, non_upper_case_globals, non_snake_case, unused_unsafe, non_camel_case_types, dead_code, clippy::all)]
2 #[repr(transparent)]
3 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4 #[doc(hidden)]
5 pub struct IPnpObject(::windows::runtime::IInspectable);
6 unsafe impl ::windows::runtime::Interface for IPnpObject {
7 type Vtable = IPnpObject_abi;
8 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2512806488, 29499, 19087, [147, 163, 219, 7, 138, 200, 112, 193]);
b1null9 }
10 #[repr(C)]
11 #[doc(hidden)]
12 pub struct IPnpObject_abi(
13 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
14 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
15 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
16 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
17 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
18 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
19 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut PnpObjectType) -> ::windows::runtime::HRESULT,
20 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
21 #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
22 #[cfg(not(feature = "Foundation_Collections"))] usize,
23 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, updateinfo: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
24 );
25 #[repr(transparent)]
26 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
27 #[doc(hidden)]
28 pub struct IPnpObjectStatics(::windows::runtime::IInspectable);
29 unsafe impl ::windows::runtime::Interface for IPnpObjectStatics {
30 type Vtable = IPnpObjectStatics_abi;
31 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3015911997, 53608, 18016, [187, 243, 167, 51, 177, 75, 110, 1]);
32 }
33 #[repr(C)]
34 #[doc(hidden)]
35 pub struct IPnpObjectStatics_abi(
36 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
37 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
38 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
39 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
40 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
41 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
42 #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, r#type: PnpObjectType, id: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, requestedproperties: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
43 #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
b2null44 #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, r#type: PnpObjectType, requestedproperties: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
45 #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
46 #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, r#type: PnpObjectType, requestedproperties: ::windows::runtime::RawPtr, aqsfilter: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
47 #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
48 #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, r#type: PnpObjectType, requestedproperties: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
49 #[cfg(not(feature = "Foundation_Collections"))] usize,
50 #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, r#type: PnpObjectType, requestedproperties: ::windows::runtime::RawPtr, aqsfilter: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
51 #[cfg(not(feature = "Foundation_Collections"))] usize,
52 );
53 #[repr(transparent)]
54 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
55 #[doc(hidden)]
56 pub struct IPnpObjectUpdate(::windows::runtime::IInspectable);
57 unsafe impl ::windows::runtime::Interface for IPnpObjectUpdate {
58 type Vtable = IPnpObjectUpdate_abi;
59 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1868163090, 30, 18500, [188, 198, 67, 40, 134, 133, 106, 23]);
60 }
61 #[repr(C)]
62 #[doc(hidden)]
63 pub struct IPnpObjectUpdate_abi(
64 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
65 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
66 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
67 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
68 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
69 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
70 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut PnpObjectType) -> ::windows::runtime::HRESULT,
71 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
72 #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
73 #[cfg(not(feature = "Foundation_Collections"))] usize,
74 );
75 #[repr(transparent)]
76 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
77 #[doc(hidden)]
78 pub struct IPnpObjectWatcher(::windows::runtime::IInspectable);
79 unsafe impl ::windows::runtime::Interface for IPnpObjectWatcher {
80 type Vtable = IPnpObjectWatcher_abi;
81 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2211011752, 18290, 19066, [172, 168, 228, 140, 66, 168, 156, 68]);
82 }
83 #[repr(C)]
84 #[doc(hidden)]
85 pub struct IPnpObjectWatcher_abi(
86 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
87 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
88 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
89 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
90 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
91 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
92 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, handler: ::windows::runtime::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
93 #[cfg(not(feature = "Foundation"))] usize,
94 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
95 #[cfg(not(feature = "Foundation"))] usize,
96 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, handler: ::windows::runtime::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
97 #[cfg(not(feature = "Foundation"))] usize,
98 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
99 #[cfg(not(feature = "Foundation"))] usize,
100 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, handler: ::windows::runtime::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
101 #[cfg(not(feature = "Foundation"))] usize,
102 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
103 #[cfg(not(feature = "Foundation"))] usize,
104 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, handler: ::windows::runtime::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
105 #[cfg(not(feature = "Foundation"))] usize,
106 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
107 #[cfg(not(feature = "Foundation"))] usize,
108 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, handler: ::windows::runtime::RawPtr, result__: *mut super::super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
109 #[cfg(not(feature = "Foundation"))] usize,
110 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
111 #[cfg(not(feature = "Foundation"))] usize,
112 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::DeviceWatcherStatus) -> ::windows::runtime::HRESULT,
113 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
114 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
115 );
116 #[repr(transparent)]
117 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
118 pub struct PnpObject(::windows::runtime::IInspectable);
119 impl PnpObject {
120 pub fn Type(&self) -> ::windows::runtime::Result<PnpObjectType> {
121 let this = self;
122 unsafe {
123 let mut result__: PnpObjectType = ::std::mem::zeroed();
124 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<PnpObjectType>(result__)
125 }
126 }
127 pub fn Id(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
128 let this = self;
129 unsafe {
130 let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
131 (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
132 }
133 }
134 #[cfg(feature = "Foundation_Collections")]
135 pub fn Properties(&self) -> ::windows::runtime::Result<super::super::super::Foundation::Collections::IMapView<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>> {
136 let this = self;
137 unsafe {
138 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
139 (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IMapView<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>(result__)
140 }
141 }
142 pub fn Update<'a, Param0: ::windows::runtime::IntoParam<'a, PnpObjectUpdate>>(&self, updateinfo: Param0) -> ::windows::runtime::Result<()> {
143 let this = self;
144 unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), updateinfo.into_param().abi()).ok() }
145 }
146 #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
147 pub fn CreateFromIdAsync<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>, Param2: ::windows::runtime::IntoParam<'a, super::super::super::Foundation::Collections::IIterable<::windows::runtime::HSTRING>>>(r#type: PnpObjectType, id: Param1, requestedproperties: Param2) -> ::windows::runtime::Result<super::super::super::Foundation::IAsyncOperation<PnpObject>> {
148 Self::IPnpObjectStatics(|this| unsafe {
149 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
150 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), r#type, id.into_param().abi(), requestedproperties.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::IAsyncOperation<PnpObject>>(result__)
151 })
152 }
153 #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
154 pub fn FindAllAsync<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::super::Foundation::Collections::IIterable<::windows::runtime::HSTRING>>>(r#type: PnpObjectType, requestedproperties: Param1) -> ::windows::runtime::Result<super::super::super::Foundation::IAsyncOperation<PnpObjectCollection>> {
155 Self::IPnpObjectStatics(|this| unsafe {
156 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
157 (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), r#type, requestedproperties.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::IAsyncOperation<PnpObjectCollection>>(result__)
158 })
159 }
160 #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
161 pub fn FindAllAsyncAqsFilter<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::super::Foundation::Collections::IIterable<::windows::runtime::HSTRING>>, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(r#type: PnpObjectType, requestedproperties: Param1, aqsfilter: Param2) -> ::windows::runtime::Result<super::super::super::Foundation::IAsyncOperation<PnpObjectCollection>> {
162 Self::IPnpObjectStatics(|this| unsafe {
163 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
164 (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), r#type, requestedproperties.into_param().abi(), aqsfilter.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::IAsyncOperation<PnpObjectCollection>>(result__)
165 })
166 }
167 #[cfg(feature = "Foundation_Collections")]
168 pub fn CreateWatcher<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::super::Foundation::Collections::IIterable<::windows::runtime::HSTRING>>>(r#type: PnpObjectType, requestedproperties: Param1) -> ::windows::runtime::Result<PnpObjectWatcher> {
169 Self::IPnpObjectStatics(|this| unsafe {
170 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
171 (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), r#type, requestedproperties.into_param().abi(), &mut result__).from_abi::<PnpObjectWatcher>(result__)
172 })
173 }
174 #[cfg(feature = "Foundation_Collections")]
175 pub fn CreateWatcherAqsFilter<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::super::Foundation::Collections::IIterable<::windows::runtime::HSTRING>>, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(r#type: PnpObjectType, requestedproperties: Param1, aqsfilter: Param2) -> ::windows::runtime::Result<PnpObjectWatcher> {
176 Self::IPnpObjectStatics(|this| unsafe {
177 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
178 (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), r#type, requestedproperties.into_param().abi(), aqsfilter.into_param().abi(), &mut result__).from_abi::<PnpObjectWatcher>(result__)
179 })
180 }
181 pub fn IPnpObjectStatics<R, F: FnOnce(&IPnpObjectStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
182 static mut SHARED: ::windows::runtime::FactoryCache<PnpObject, IPnpObjectStatics> = ::windows::runtime::FactoryCache::new();
183 unsafe { SHARED.call(callback) }
184 }
185 }
186 unsafe impl ::windows::runtime::RuntimeType for PnpObject {
187 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Enumeration.Pnp.PnpObject;{95c66258-733b-4a8f-93a3-db078ac870c1})");
188 }
189 unsafe impl ::windows::runtime::Interface for PnpObject {
190 type Vtable = IPnpObject_abi;
191 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2512806488, 29499, 19087, [147, 163, 219, 7, 138, 200, 112, 193]);
192 }
193 impl ::windows::runtime::RuntimeName for PnpObject {
194 const NAME: &'static str = "Windows.Devices.Enumeration.Pnp.PnpObject";
195 }
196 impl ::std::convert::From<PnpObject> for ::windows::runtime::IUnknown {
197 fn from(value: PnpObject) -> Self {
198 unsafe { ::std::mem::transmute(value) }
199 }
200 }
201 impl ::std::convert::From<&PnpObject> for ::windows::runtime::IUnknown {
202 fn from(value: &PnpObject) -> Self {
203 ::std::convert::From::from(::std::clone::Clone::clone(value))
204 }
205 }
206 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for PnpObject {
207 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
208 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
209 }
210 }
211 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &PnpObject {
212 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
213 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
214 }
215 }
216 impl ::std::convert::From<PnpObject> for ::windows::runtime::IInspectable {
217 fn from(value: PnpObject) -> Self {
218 value.0
219 }
220 }
221 impl ::std::convert::From<&PnpObject> for ::windows::runtime::IInspectable {
222 fn from(value: &PnpObject) -> Self {
223 value.0.clone()
224 }
225 }
226 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for PnpObject {
227 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
228 ::windows::runtime::Param::Owned(self.0)
229 }
230 }
231 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a PnpObject {
232 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
233 ::windows::runtime::Param::Borrowed(&self.0)
234 }
235 }
236 unsafe impl ::std::marker::Send for PnpObject {}
237 unsafe impl ::std::marker::Sync for PnpObject {}
238 #[cfg(feature = "Foundation_Collections")]
239 #[repr(transparent)]
240 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
241 pub struct PnpObjectCollection(::windows::runtime::IInspectable);
242 #[cfg(feature = "Foundation_Collections")]
243 impl PnpObjectCollection {
244 #[cfg(feature = "Foundation_Collections")]
245 pub fn GetAt(&self, index: u32) -> ::windows::runtime::Result<PnpObject> {
246 let this = self;
247 unsafe {
248 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
249 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), index, &mut result__).from_abi::<PnpObject>(result__)
250 }
251 }
252 #[cfg(feature = "Foundation_Collections")]
253 pub fn Size(&self) -> ::windows::runtime::Result<u32> {
254 let this = self;
255 unsafe {
256 let mut result__: u32 = ::std::mem::zeroed();
257 (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
258 }
259 }
260 #[cfg(feature = "Foundation_Collections")]
261 pub fn IndexOf<'a, Param0: ::windows::runtime::IntoParam<'a, PnpObject>>(&self, value: Param0, index: &mut u32) -> ::windows::runtime::Result<bool> {
262 let this = self;
263 unsafe {
264 let mut result__: bool = ::std::mem::zeroed();
265 (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value.into_param().abi(), index, &mut result__).from_abi::<bool>(result__)
266 }
267 }
268 #[cfg(feature = "Foundation_Collections")]
269 pub fn GetMany(&self, startindex: u32, items: &mut [<PnpObject as ::windows::runtime::Abi>::DefaultType]) -> ::windows::runtime::Result<u32> {
270 let this = self;
271 unsafe {
272 let mut result__: u32 = ::std::mem::zeroed();
273 (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), startindex, items.len() as u32, ::std::mem::transmute_copy(&items), &mut result__).from_abi::<u32>(result__)
274 }
275 }
276 #[cfg(feature = "Foundation_Collections")]
277 pub fn First(&self) -> ::windows::runtime::Result<super::super::super::Foundation::Collections::IIterator<PnpObject>> {
278 let this = &::windows::runtime::Interface::cast::<super::super::super::Foundation::Collections::IIterable<PnpObject>>(self)?;
279 unsafe {
280 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
281 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IIterator<PnpObject>>(result__)
282 }
283 }
284 }
285 #[cfg(feature = "Foundation_Collections")]
286 unsafe impl ::windows::runtime::RuntimeType for PnpObjectCollection {
287 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Enumeration.Pnp.PnpObjectCollection;pinterface({bbe1fa4c-b0e3-4583-baef-1f1b2e483e56};rc(Windows.Devices.Enumeration.Pnp.PnpObject;{95c66258-733b-4a8f-93a3-db078ac870c1})))");
288 }
289 #[cfg(feature = "Foundation_Collections")]
290 unsafe impl ::windows::runtime::Interface for PnpObjectCollection {
291 type Vtable = super::super::super::Foundation::Collections::IVectorView_abi<PnpObject>;
292 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_signature(<super::super::super::Foundation::Collections::IVectorView<PnpObject> as ::windows::runtime::RuntimeType>::SIGNATURE);
293 }
294 #[cfg(feature = "Foundation_Collections")]
295 impl ::windows::runtime::RuntimeName for PnpObjectCollection {
296 const NAME: &'static str = "Windows.Devices.Enumeration.Pnp.PnpObjectCollection";
297 }
298 #[cfg(feature = "Foundation_Collections")]
299 impl ::std::convert::From<PnpObjectCollection> for ::windows::runtime::IUnknown {
300 fn from(value: PnpObjectCollection) -> Self {
301 unsafe { ::std::mem::transmute(value) }
302 }
303 }
304 #[cfg(feature = "Foundation_Collections")]
305 impl ::std::convert::From<&PnpObjectCollection> for ::windows::runtime::IUnknown {
306 fn from(value: &PnpObjectCollection) -> Self {
307 ::std::convert::From::from(::std::clone::Clone::clone(value))
308 }
309 }
310 #[cfg(feature = "Foundation_Collections")]
311 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for PnpObjectCollection {
312 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
313 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
314 }
315 }
316 #[cfg(feature = "Foundation_Collections")]
317 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &PnpObjectCollection {
318 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
319 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
320 }
321 }
322 #[cfg(feature = "Foundation_Collections")]
323 impl ::std::convert::From<PnpObjectCollection> for ::windows::runtime::IInspectable {
324 fn from(value: PnpObjectCollection) -> Self {
325 value.0
326 }
327 }
328 #[cfg(feature = "Foundation_Collections")]
329 impl ::std::convert::From<&PnpObjectCollection> for ::windows::runtime::IInspectable {
330 fn from(value: &PnpObjectCollection) -> Self {
331 value.0.clone()
332 }
333 }
334 #[cfg(feature = "Foundation_Collections")]
335 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for PnpObjectCollection {
336 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
337 ::windows::runtime::Param::Owned(self.0)
338 }
339 }
340 #[cfg(feature = "Foundation_Collections")]
341 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a PnpObjectCollection {
342 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
343 ::windows::runtime::Param::Borrowed(&self.0)
344 }
345 }
346 #[cfg(feature = "Foundation_Collections")]
347 impl ::std::convert::From<PnpObjectCollection> for super::super::super::Foundation::Collections::IVectorView<PnpObject> {
348 fn from(value: PnpObjectCollection) -> Self {
349 unsafe { ::std::mem::transmute(value) }
350 }
351 }
352 #[cfg(feature = "Foundation_Collections")]
353 impl ::std::convert::From<&PnpObjectCollection> for super::super::super::Foundation::Collections::IVectorView<PnpObject> {
354 fn from(value: &PnpObjectCollection) -> Self {
355 ::std::convert::From::from(::std::clone::Clone::clone(value))
356 }
357 }
358 #[cfg(feature = "Foundation_Collections")]
359 impl<'a> ::windows::runtime::IntoParam<'a, super::super::super::Foundation::Collections::IVectorView<PnpObject>> for PnpObjectCollection {
360 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::super::Foundation::Collections::IVectorView<PnpObject>> {
361 ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::super::Foundation::Collections::IVectorView<PnpObject>>::into(self))
362 }
363 }
364 #[cfg(feature = "Foundation_Collections")]
365 impl<'a> ::windows::runtime::IntoParam<'a, super::super::super::Foundation::Collections::IVectorView<PnpObject>> for &PnpObjectCollection {
366 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::super::Foundation::Collections::IVectorView<PnpObject>> {
367 ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::super::Foundation::Collections::IVectorView<PnpObject>>::into(::std::clone::Clone::clone(self)))
368 }
369 }
370 #[cfg(feature = "Foundation_Collections")]
371 impl ::std::convert::TryFrom<PnpObjectCollection> for super::super::super::Foundation::Collections::IIterable<PnpObject> {
372 type Error = ::windows::runtime::Error;
373 fn try_from(value: PnpObjectCollection) -> ::windows::runtime::Result<Self> {
374 ::std::convert::TryFrom::try_from(&value)
375 }
376 }
377 #[cfg(feature = "Foundation_Collections")]
378 impl ::std::convert::TryFrom<&PnpObjectCollection> for super::super::super::Foundation::Collections::IIterable<PnpObject> {
379 type Error = ::windows::runtime::Error;
380 fn try_from(value: &PnpObjectCollection) -> ::windows::runtime::Result<Self> {
381 ::windows::runtime::Interface::cast(value)
382 }
383 }
384 #[cfg(feature = "Foundation_Collections")]
385 impl<'a> ::windows::runtime::IntoParam<'a, super::super::super::Foundation::Collections::IIterable<PnpObject>> for PnpObjectCollection {
386 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::super::Foundation::Collections::IIterable<PnpObject>> {
387 ::windows::runtime::IntoParam::into_param(&self)
388 }
389 }
390 #[cfg(feature = "Foundation_Collections")]
391 impl<'a> ::windows::runtime::IntoParam<'a, super::super::super::Foundation::Collections::IIterable<PnpObject>> for &PnpObjectCollection {
392 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::super::Foundation::Collections::IIterable<PnpObject>> {
393 ::std::convert::TryInto::<super::super::super::Foundation::Collections::IIterable<PnpObject>>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
394 }
395 }
396 #[cfg(feature = "Foundation_Collections")]
397 unsafe impl ::std::marker::Send for PnpObjectCollection {}
398 #[cfg(feature = "Foundation_Collections")]
399 unsafe impl ::std::marker::Sync for PnpObjectCollection {}
400 #[cfg(all(feature = "Foundation_Collections"))]
401 impl ::std::iter::IntoIterator for PnpObjectCollection {
402 type Item = PnpObject;
403 type IntoIter = super::super::super::Foundation::Collections::VectorViewIterator<Self::Item>;
404 fn into_iter(self) -> Self::IntoIter {
405 ::std::iter::IntoIterator::into_iter(&self)
406 }
407 }
408 #[cfg(all(feature = "Foundation_Collections"))]
409 impl ::std::iter::IntoIterator for &PnpObjectCollection {
410 type Item = PnpObject;
411 type IntoIter = super::super::super::Foundation::Collections::VectorViewIterator<Self::Item>;
412 fn into_iter(self) -> Self::IntoIter {
413 super::super::super::Foundation::Collections::VectorViewIterator::new(::std::convert::TryInto::try_into(self).ok())
414 }
415 }
416 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
417 #[repr(transparent)]
418 pub struct PnpObjectType(pub i32);
419 impl PnpObjectType {
420 pub const Unknown: PnpObjectType = PnpObjectType(0i32);
421 pub const DeviceInterface: PnpObjectType = PnpObjectType(1i32);
422 pub const DeviceContainer: PnpObjectType = PnpObjectType(2i32);
423 pub const Device: PnpObjectType = PnpObjectType(3i32);
424 pub const DeviceInterfaceClass: PnpObjectType = PnpObjectType(4i32);
425 pub const AssociationEndpoint: PnpObjectType = PnpObjectType(5i32);
426 pub const AssociationEndpointContainer: PnpObjectType = PnpObjectType(6i32);
427 pub const AssociationEndpointService: PnpObjectType = PnpObjectType(7i32);
428 pub const DevicePanel: PnpObjectType = PnpObjectType(8i32);
429 }
430 impl ::std::convert::From<i32> for PnpObjectType {
431 fn from(value: i32) -> Self {
432 Self(value)
433 }
434 }
435 unsafe impl ::windows::runtime::Abi for PnpObjectType {
436 type Abi = Self;
437 type DefaultType = Self;
438 }
439 unsafe impl ::windows::runtime::RuntimeType for PnpObjectType {
440 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Devices.Enumeration.Pnp.PnpObjectType;i4)");
441 }
442 #[repr(transparent)]
443 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
444 pub struct PnpObjectUpdate(::windows::runtime::IInspectable);
445 impl PnpObjectUpdate {
446 pub fn Type(&self) -> ::windows::runtime::Result<PnpObjectType> {
447 let this = self;
448 unsafe {
449 let mut result__: PnpObjectType = ::std::mem::zeroed();
450 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<PnpObjectType>(result__)
451 }
452 }
453 pub fn Id(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
454 let this = self;
455 unsafe {
456 let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
457 (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
458 }
459 }
460 #[cfg(feature = "Foundation_Collections")]
461 pub fn Properties(&self) -> ::windows::runtime::Result<super::super::super::Foundation::Collections::IMapView<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>> {
462 let this = self;
463 unsafe {
464 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
465 (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IMapView<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>(result__)
466 }
467 }
468 }
469 unsafe impl ::windows::runtime::RuntimeType for PnpObjectUpdate {
470 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Enumeration.Pnp.PnpObjectUpdate;{6f59e812-001e-4844-bcc6-432886856a17})");
471 }
472 unsafe impl ::windows::runtime::Interface for PnpObjectUpdate {
473 type Vtable = IPnpObjectUpdate_abi;
474 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1868163090, 30, 18500, [188, 198, 67, 40, 134, 133, 106, 23]);
475 }
476 impl ::windows::runtime::RuntimeName for PnpObjectUpdate {
477 const NAME: &'static str = "Windows.Devices.Enumeration.Pnp.PnpObjectUpdate";
478 }
479 impl ::std::convert::From<PnpObjectUpdate> for ::windows::runtime::IUnknown {
480 fn from(value: PnpObjectUpdate) -> Self {
481 unsafe { ::std::mem::transmute(value) }
482 }
483 }
484 impl ::std::convert::From<&PnpObjectUpdate> for ::windows::runtime::IUnknown {
485 fn from(value: &PnpObjectUpdate) -> Self {
486 ::std::convert::From::from(::std::clone::Clone::clone(value))
487 }
488 }
489 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for PnpObjectUpdate {
490 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
491 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
492 }
493 }
494 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &PnpObjectUpdate {
495 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
496 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
497 }
498 }
499 impl ::std::convert::From<PnpObjectUpdate> for ::windows::runtime::IInspectable {
500 fn from(value: PnpObjectUpdate) -> Self {
501 value.0
502 }
503 }
504 impl ::std::convert::From<&PnpObjectUpdate> for ::windows::runtime::IInspectable {
505 fn from(value: &PnpObjectUpdate) -> Self {
506 value.0.clone()
507 }
508 }
509 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for PnpObjectUpdate {
510 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
511 ::windows::runtime::Param::Owned(self.0)
512 }
513 }
514 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a PnpObjectUpdate {
515 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
516 ::windows::runtime::Param::Borrowed(&self.0)
517 }
518 }
519 unsafe impl ::std::marker::Send for PnpObjectUpdate {}
520 unsafe impl ::std::marker::Sync for PnpObjectUpdate {}
521 #[repr(transparent)]
522 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
523 pub struct PnpObjectWatcher(::windows::runtime::IInspectable);
524 impl PnpObjectWatcher {
525 #[cfg(feature = "Foundation")]
526 pub fn Added<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<PnpObjectWatcher, PnpObject>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::super::Foundation::EventRegistrationToken> {
527 let this = self;
528 unsafe {
529 let mut result__: super::super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
530 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
531 }
532 }
533 #[cfg(feature = "Foundation")]
534 pub fn RemoveAdded<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
535 let this = self;
536 unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
537 }
538 #[cfg(feature = "Foundation")]
539 pub fn Updated<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<PnpObjectWatcher, PnpObjectUpdate>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::super::Foundation::EventRegistrationToken> {
540 let this = self;
541 unsafe {
542 let mut result__: super::super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
543 (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
544 }
545 }
546 #[cfg(feature = "Foundation")]
547 pub fn RemoveUpdated<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
548 let this = self;
549 unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
550 }
551 #[cfg(feature = "Foundation")]
552 pub fn Removed<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<PnpObjectWatcher, PnpObjectUpdate>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::super::Foundation::EventRegistrationToken> {
553 let this = self;
554 unsafe {
555 let mut result__: super::super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
556 (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
557 }
558 }
559 #[cfg(feature = "Foundation")]
560 pub fn RemoveRemoved<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
561 let this = self;
562 unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
563 }
564 #[cfg(feature = "Foundation")]
565 pub fn EnumerationCompleted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<PnpObjectWatcher, ::windows::runtime::IInspectable>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::super::Foundation::EventRegistrationToken> {
566 let this = self;
567 unsafe {
568 let mut result__: super::super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
569 (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
570 }
571 }
572 #[cfg(feature = "Foundation")]
573 pub fn RemoveEnumerationCompleted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
574 let this = self;
575 unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
576 }
577 #[cfg(feature = "Foundation")]
578 pub fn Stopped<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::super::Foundation::TypedEventHandler<PnpObjectWatcher, ::windows::runtime::IInspectable>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::super::Foundation::EventRegistrationToken> {
579 let this = self;
580 unsafe {
581 let mut result__: super::super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
582 (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::EventRegistrationToken>(result__)
583 }
584 }
585 #[cfg(feature = "Foundation")]
586 pub fn RemoveStopped<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
587 let this = self;
588 unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
589 }
590 pub fn Status(&self) -> ::windows::runtime::Result<super::DeviceWatcherStatus> {
591 let this = self;
592 unsafe {
593 let mut result__: super::DeviceWatcherStatus = ::std::mem::zeroed();
594 (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::DeviceWatcherStatus>(result__)
595 }
596 }
597 pub fn Start(&self) -> ::windows::runtime::Result<()> {
598 let this = self;
599 unsafe { (::windows::runtime::Interface::vtable(this).17)(::std::mem::transmute_copy(this)).ok() }
600 }
601 pub fn Stop(&self) -> ::windows::runtime::Result<()> {
602 let this = self;
603 unsafe { (::windows::runtime::Interface::vtable(this).18)(::std::mem::transmute_copy(this)).ok() }
604 }
605 }
606 unsafe impl ::windows::runtime::RuntimeType for PnpObjectWatcher {
607 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Enumeration.Pnp.PnpObjectWatcher;{83c95ca8-4772-4a7a-aca8-e48c42a89c44})");
608 }
609 unsafe impl ::windows::runtime::Interface for PnpObjectWatcher {
610 type Vtable = IPnpObjectWatcher_abi;
611 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2211011752, 18290, 19066, [172, 168, 228, 140, 66, 168, 156, 68]);
612 }
613 impl ::windows::runtime::RuntimeName for PnpObjectWatcher {
614 const NAME: &'static str = "Windows.Devices.Enumeration.Pnp.PnpObjectWatcher";
615 }
616 impl ::std::convert::From<PnpObjectWatcher> for ::windows::runtime::IUnknown {
617 fn from(value: PnpObjectWatcher) -> Self {
618 unsafe { ::std::mem::transmute(value) }
619 }
620 }
621 impl ::std::convert::From<&PnpObjectWatcher> for ::windows::runtime::IUnknown {
622 fn from(value: &PnpObjectWatcher) -> Self {
623 ::std::convert::From::from(::std::clone::Clone::clone(value))
624 }
625 }
626 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for PnpObjectWatcher {
627 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
628 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
629 }
630 }
631 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &PnpObjectWatcher {
632 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
633 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
634 }
635 }
636 impl ::std::convert::From<PnpObjectWatcher> for ::windows::runtime::IInspectable {
637 fn from(value: PnpObjectWatcher) -> Self {
638 value.0
639 }
640 }
641 impl ::std::convert::From<&PnpObjectWatcher> for ::windows::runtime::IInspectable {
642 fn from(value: &PnpObjectWatcher) -> Self {
643 value.0.clone()
644 }
645 }
646 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for PnpObjectWatcher {
647 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
648 ::windows::runtime::Param::Owned(self.0)
649 }
650 }
651 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a PnpObjectWatcher {
652 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
653 ::windows::runtime::Param::Borrowed(&self.0)
654 }
655 }
656 unsafe impl ::std::marker::Send for PnpObjectWatcher {}
657 unsafe impl ::std::marker::Sync for PnpObjectWatcher {}
658