1 #![allow(unused_variables, non_upper_case_globals, non_snake_case, unused_unsafe, non_camel_case_types, dead_code, clippy::all)]
2 pub struct GameList {}
3 impl GameList {
4     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
5     pub fn FindAllAsync() -> ::windows::runtime::Result<super::super::super::Foundation::IAsyncOperation<super::super::super::Foundation::Collections::IVectorView<GameListEntry>>> {
6         Self::IGameListStatics(|this| unsafe {
7             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
8             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IAsyncOperation<super::super::super::Foundation::Collections::IVectorView<GameListEntry>>>(result__)
9         })
10     }
11     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
12     pub fn FindAllAsyncPackageFamilyName<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(packagefamilyname: Param0) -> ::windows::runtime::Result<super::super::super::Foundation::IAsyncOperation<super::super::super::Foundation::Collections::IVectorView<GameListEntry>>> {
13         Self::IGameListStatics(|this| unsafe {
14             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
15             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), packagefamilyname.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::IAsyncOperation<super::super::super::Foundation::Collections::IVectorView<GameListEntry>>>(result__)
16         })
17     }
18     #[cfg(feature = "Foundation")]
19     pub fn GameAdded<'a, Param0: ::windows::runtime::IntoParam<'a, GameListChangedEventHandler>>(handler: Param0) -> ::windows::runtime::Result<super::super::super::Foundation::EventRegistrationToken> {
20         Self::IGameListStatics(|this| unsafe {
21             let mut result__: super::super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
22             (::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__)
23         })
24     }
25     #[cfg(feature = "Foundation")]
26     pub fn RemoveGameAdded<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(token: Param0) -> ::windows::runtime::Result<()> {
27         Self::IGameListStatics(|this| unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() })
28     }
29     #[cfg(feature = "Foundation")]
30     pub fn GameRemoved<'a, Param0: ::windows::runtime::IntoParam<'a, GameListRemovedEventHandler>>(handler: Param0) -> ::windows::runtime::Result<super::super::super::Foundation::EventRegistrationToken> {
31         Self::IGameListStatics(|this| unsafe {
32             let mut result__: super::super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
33             (::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__)
34         })
35     }
36     #[cfg(feature = "Foundation")]
37     pub fn RemoveGameRemoved<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(token: Param0) -> ::windows::runtime::Result<()> {
38         Self::IGameListStatics(|this| unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() })
39     }
40     #[cfg(feature = "Foundation")]
41     pub fn GameUpdated<'a, Param0: ::windows::runtime::IntoParam<'a, GameListChangedEventHandler>>(handler: Param0) -> ::windows::runtime::Result<super::super::super::Foundation::EventRegistrationToken> {
42         Self::IGameListStatics(|this| unsafe {
43             let mut result__: super::super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
44             (::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__)
45         })
46     }
47     #[cfg(feature = "Foundation")]
48     pub fn RemoveGameUpdated<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::super::Foundation::EventRegistrationToken>>(token: Param0) -> ::windows::runtime::Result<()> {
49         Self::IGameListStatics(|this| unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() })
50     }
51     #[cfg(feature = "Foundation")]
52     pub fn MergeEntriesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, GameListEntry>, Param1: ::windows::runtime::IntoParam<'a, GameListEntry>>(left: Param0, right: Param1) -> ::windows::runtime::Result<super::super::super::Foundation::IAsyncOperation<GameListEntry>> {
53         Self::IGameListStatics2(|this| unsafe {
54             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
55             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), left.into_param().abi(), right.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::IAsyncOperation<GameListEntry>>(result__)
56         })
57     }
58     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
59     pub fn UnmergeEntryAsync<'a, Param0: ::windows::runtime::IntoParam<'a, GameListEntry>>(mergedentry: Param0) -> ::windows::runtime::Result<super::super::super::Foundation::IAsyncOperation<super::super::super::Foundation::Collections::IVectorView<GameListEntry>>> {
60         Self::IGameListStatics2(|this| unsafe {
61             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
62             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), mergedentry.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::IAsyncOperation<super::super::super::Foundation::Collections::IVectorView<GameListEntry>>>(result__)
63         })
64     }
65     pub fn IGameListStatics<R, F: FnOnce(&IGameListStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
66         static mut SHARED: ::windows::runtime::FactoryCache<GameList, IGameListStatics> = ::windows::runtime::FactoryCache::new();
67         unsafe { SHARED.call(callback) }
68     }
69     pub fn IGameListStatics2<R, F: FnOnce(&IGameListStatics2) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
70         static mut SHARED: ::windows::runtime::FactoryCache<GameList, IGameListStatics2> = ::windows::runtime::FactoryCache::new();
71         unsafe { SHARED.call(callback) }
72     }
73 }
74 impl ::windows::runtime::RuntimeName for GameList {
75     const NAME: &'static str = "Windows.Gaming.Preview.GamesEnumeration.GameList";
76 }
77 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
78 #[repr(transparent)]
79 pub struct GameListCategory(pub i32);
80 impl GameListCategory {
81     pub const Candidate: GameListCategory = GameListCategory(0i32);
82     pub const ConfirmedBySystem: GameListCategory = GameListCategory(1i32);
83     pub const ConfirmedByUser: GameListCategory = GameListCategory(2i32);
84 }
85 impl ::std::convert::From<i32> for GameListCategory {
86     fn from(value: i32) -> Self {
87         Self(value)
88     }
89 }
90 unsafe impl ::windows::runtime::Abi for GameListCategory {
91     type Abi = Self;
92     type DefaultType = Self;
93 }
94 unsafe impl ::windows::runtime::RuntimeType for GameListCategory {
95     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Gaming.Preview.GamesEnumeration.GameListCategory;i4)");
96 }
97 #[repr(transparent)]
98 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
99 pub struct GameListChangedEventHandler(::windows::runtime::IUnknown);
100 impl GameListChangedEventHandler {
101     pub fn new<F: FnMut(&::std::option::Option<GameListEntry>) -> ::windows::runtime::Result<()> + 'static>(invoke: F) -> Self {
102         let com = GameListChangedEventHandler_box::<F> {
103             vtable: &GameListChangedEventHandler_box::<F>::VTABLE,
104             count: ::windows::runtime::RefCount::new(1),
105             invoke,
106         };
107         unsafe { std::mem::transmute(::std::boxed::Box::new(com)) }
108     }
109     pub fn Invoke<'a, Param0: ::windows::runtime::IntoParam<'a, GameListEntry>>(&self, game: Param0) -> ::windows::runtime::Result<()> {
110         let this = self;
111         unsafe { (::windows::runtime::Interface::vtable(this).3)(::std::mem::transmute_copy(this), game.into_param().abi()).ok() }
112     }
113 }
114 unsafe impl ::windows::runtime::RuntimeType for GameListChangedEventHandler {
115     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"delegate({25f6a421-d8f5-4d91-b40e-53d5e86fde64})");
116 }
117 unsafe impl ::windows::runtime::Interface for GameListChangedEventHandler {
118     type Vtable = GameListChangedEventHandler_abi;
119     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(636920865, 55541, 19857, [180, 14, 83, 213, 232, 111, 222, 100]);
120 }
121 #[repr(C)]
122 #[doc(hidden)]
123 pub struct GameListChangedEventHandler_abi(
124     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
125     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
126     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
127     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, game: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
128 );
129 #[repr(C)]
130 struct GameListChangedEventHandler_box<F: FnMut(&::std::option::Option<GameListEntry>) -> ::windows::runtime::Result<()> + 'static> {
131     vtable: *const GameListChangedEventHandler_abi,
132     invoke: F,
133     count: ::windows::runtime::RefCount,
134 }
135 impl<F: FnMut(&::std::option::Option<GameListEntry>) -> ::windows::runtime::Result<()> + 'static> GameListChangedEventHandler_box<F> {
136     const VTABLE: GameListChangedEventHandler_abi = GameListChangedEventHandler_abi(Self::QueryInterface, Self::AddRef, Self::Release, Self::Invoke);
137     unsafe extern "system" fn QueryInterface(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT {
138         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
139         *interface = if iid == &<GameListChangedEventHandler as ::windows::runtime::Interface>::IID || iid == &<::windows::runtime::IUnknown as ::windows::runtime::Interface>::IID || iid == &<::windows::runtime::IAgileObject as ::windows::runtime::Interface>::IID {
140             &mut (*this).vtable as *mut _ as _
141         } else {
142             ::std::ptr::null_mut()
143         };
144         if (*interface).is_null() {
145             ::windows::runtime::HRESULT(0x8000_4002)
146         } else {
147             (*this).count.add_ref();
148             ::windows::runtime::HRESULT(0)
149         }
150     }
151     unsafe extern "system" fn AddRef(this: ::windows::runtime::RawPtr) -> u32 {
152         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
153         (*this).count.add_ref()
154     }
155     unsafe extern "system" fn Release(this: ::windows::runtime::RawPtr) -> u32 {
156         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
157         let remaining = (*this).count.release();
158         if remaining == 0 {
159             Box::from_raw(this);
160         }
161         remaining
162     }
163     unsafe extern "system" fn Invoke(this: ::windows::runtime::RawPtr, game: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT {
164         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
165         ((*this).invoke)(&*(&game as *const <GameListEntry as ::windows::runtime::Abi>::Abi as *const <GameListEntry as ::windows::runtime::Abi>::DefaultType)).into()
166     }
167 }
168 #[repr(transparent)]
169 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
170 pub struct GameListEntry(::windows::runtime::IInspectable);
171 impl GameListEntry {
172     #[cfg(feature = "ApplicationModel")]
173     pub fn DisplayInfo(&self) -> ::windows::runtime::Result<super::super::super::ApplicationModel::AppDisplayInfo> {
174         let this = self;
175         unsafe {
176             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
177             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::ApplicationModel::AppDisplayInfo>(result__)
178         }
179     }
180     #[cfg(feature = "Foundation")]
181     pub fn LaunchAsync(&self) -> ::windows::runtime::Result<super::super::super::Foundation::IAsyncOperation<bool>> {
182         let this = self;
183         unsafe {
184             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
185             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IAsyncOperation<bool>>(result__)
186         }
187     }
188     pub fn Category(&self) -> ::windows::runtime::Result<GameListCategory> {
189         let this = self;
190         unsafe {
191             let mut result__: GameListCategory = ::std::mem::zeroed();
192             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<GameListCategory>(result__)
193         }
194     }
195     #[cfg(feature = "Foundation_Collections")]
196     pub fn Properties(&self) -> ::windows::runtime::Result<super::super::super::Foundation::Collections::IMapView<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>> {
197         let this = self;
198         unsafe {
199             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
200             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IMapView<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>(result__)
201         }
202     }
203     #[cfg(feature = "Foundation")]
204     pub fn SetCategoryAsync(&self, value: GameListCategory) -> ::windows::runtime::Result<super::super::super::Foundation::IAsyncAction> {
205         let this = self;
206         unsafe {
207             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
208             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), value, &mut result__).from_abi::<super::super::super::Foundation::IAsyncAction>(result__)
209         }
210     }
211     pub fn LaunchableState(&self) -> ::windows::runtime::Result<GameListEntryLaunchableState> {
212         let this = &::windows::runtime::Interface::cast::<IGameListEntry2>(self)?;
213         unsafe {
214             let mut result__: GameListEntryLaunchableState = ::std::mem::zeroed();
215             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<GameListEntryLaunchableState>(result__)
216         }
217     }
218     #[cfg(feature = "Storage")]
219     pub fn LauncherExecutable(&self) -> ::windows::runtime::Result<super::super::super::Storage::IStorageFile> {
220         let this = &::windows::runtime::Interface::cast::<IGameListEntry2>(self)?;
221         unsafe {
222             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
223             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Storage::IStorageFile>(result__)
224         }
225     }
226     pub fn LaunchParameters(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
227         let this = &::windows::runtime::Interface::cast::<IGameListEntry2>(self)?;
228         unsafe {
229             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
230             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
231         }
232     }
233     #[cfg(all(feature = "Foundation", feature = "Storage"))]
234     pub fn SetLauncherExecutableFileAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::super::Storage::IStorageFile>>(&self, executablefile: Param0) -> ::windows::runtime::Result<super::super::super::Foundation::IAsyncAction> {
235         let this = &::windows::runtime::Interface::cast::<IGameListEntry2>(self)?;
236         unsafe {
237             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
238             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), executablefile.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::IAsyncAction>(result__)
239         }
240     }
241     #[cfg(all(feature = "Foundation", feature = "Storage"))]
242     pub fn SetLauncherExecutableFileWithParamsAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::super::Storage::IStorageFile>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, executablefile: Param0, launchparams: Param1) -> ::windows::runtime::Result<super::super::super::Foundation::IAsyncAction> {
243         let this = &::windows::runtime::Interface::cast::<IGameListEntry2>(self)?;
244         unsafe {
245             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
246             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), executablefile.into_param().abi(), launchparams.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::IAsyncAction>(result__)
247         }
248     }
249     pub fn TitleId(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
250         let this = &::windows::runtime::Interface::cast::<IGameListEntry2>(self)?;
251         unsafe {
252             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
253             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
254         }
255     }
256     #[cfg(feature = "Foundation")]
257     pub fn SetTitleIdAsync<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, id: Param0) -> ::windows::runtime::Result<super::super::super::Foundation::IAsyncAction> {
258         let this = &::windows::runtime::Interface::cast::<IGameListEntry2>(self)?;
259         unsafe {
260             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
261             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), id.into_param().abi(), &mut result__).from_abi::<super::super::super::Foundation::IAsyncAction>(result__)
262         }
263     }
264     pub fn GameModeConfiguration(&self) -> ::windows::runtime::Result<GameModeConfiguration> {
265         let this = &::windows::runtime::Interface::cast::<IGameListEntry2>(self)?;
266         unsafe {
267             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
268             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<GameModeConfiguration>(result__)
269         }
270     }
271 }
272 unsafe impl ::windows::runtime::RuntimeType for GameListEntry {
273     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Gaming.Preview.GamesEnumeration.GameListEntry;{735924d3-811f-4494-b69c-c641a0c61543})");
274 }
275 unsafe impl ::windows::runtime::Interface for GameListEntry {
276     type Vtable = IGameListEntry_abi;
277     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1935221971, 33055, 17556, [182, 156, 198, 65, 160, 198, 21, 67]);
278 }
279 impl ::windows::runtime::RuntimeName for GameListEntry {
280     const NAME: &'static str = "Windows.Gaming.Preview.GamesEnumeration.GameListEntry";
281 }
282 impl ::std::convert::From<GameListEntry> for ::windows::runtime::IUnknown {
283     fn from(value: GameListEntry) -> Self {
284         unsafe { ::std::mem::transmute(value) }
285     }
286 }
287 impl ::std::convert::From<&GameListEntry> for ::windows::runtime::IUnknown {
288     fn from(value: &GameListEntry) -> Self {
289         ::std::convert::From::from(::std::clone::Clone::clone(value))
290     }
291 }
292 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for GameListEntry {
293     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
294         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
295     }
296 }
297 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &GameListEntry {
298     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
299         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
300     }
301 }
302 impl ::std::convert::From<GameListEntry> for ::windows::runtime::IInspectable {
303     fn from(value: GameListEntry) -> Self {
304         value.0
305     }
306 }
307 impl ::std::convert::From<&GameListEntry> for ::windows::runtime::IInspectable {
308     fn from(value: &GameListEntry) -> Self {
309         value.0.clone()
310     }
311 }
312 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for GameListEntry {
313     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
314         ::windows::runtime::Param::Owned(self.0)
315     }
316 }
317 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a GameListEntry {
318     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
319         ::windows::runtime::Param::Borrowed(&self.0)
320     }
321 }
322 impl ::std::convert::From<GameListEntry> for IGameListEntry {
323     fn from(value: GameListEntry) -> Self {
324         unsafe { ::std::mem::transmute(value) }
325     }
326 }
327 impl ::std::convert::From<&GameListEntry> for IGameListEntry {
328     fn from(value: &GameListEntry) -> Self {
329         ::std::convert::From::from(::std::clone::Clone::clone(value))
330     }
331 }
332 impl<'a> ::windows::runtime::IntoParam<'a, IGameListEntry> for GameListEntry {
333     fn into_param(self) -> ::windows::runtime::Param<'a, IGameListEntry> {
334         ::windows::runtime::Param::Owned(::std::convert::Into::<IGameListEntry>::into(self))
335     }
336 }
337 impl<'a> ::windows::runtime::IntoParam<'a, IGameListEntry> for &GameListEntry {
338     fn into_param(self) -> ::windows::runtime::Param<'a, IGameListEntry> {
339         ::windows::runtime::Param::Owned(::std::convert::Into::<IGameListEntry>::into(::std::clone::Clone::clone(self)))
340     }
341 }
342 unsafe impl ::std::marker::Send for GameListEntry {}
343 unsafe impl ::std::marker::Sync for GameListEntry {}
344 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
345 #[repr(transparent)]
346 pub struct GameListEntryLaunchableState(pub i32);
347 impl GameListEntryLaunchableState {
348     pub const NotLaunchable: GameListEntryLaunchableState = GameListEntryLaunchableState(0i32);
349     pub const ByLastRunningFullPath: GameListEntryLaunchableState = GameListEntryLaunchableState(1i32);
350     pub const ByUserProvidedPath: GameListEntryLaunchableState = GameListEntryLaunchableState(2i32);
351     pub const ByTile: GameListEntryLaunchableState = GameListEntryLaunchableState(3i32);
352 }
353 impl ::std::convert::From<i32> for GameListEntryLaunchableState {
354     fn from(value: i32) -> Self {
355         Self(value)
356     }
357 }
358 unsafe impl ::windows::runtime::Abi for GameListEntryLaunchableState {
359     type Abi = Self;
360     type DefaultType = Self;
361 }
362 unsafe impl ::windows::runtime::RuntimeType for GameListEntryLaunchableState {
363     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Gaming.Preview.GamesEnumeration.GameListEntryLaunchableState;i4)");
364 }
365 #[repr(transparent)]
366 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
367 pub struct GameListRemovedEventHandler(::windows::runtime::IUnknown);
368 impl GameListRemovedEventHandler {
369     pub fn new<F: FnMut(&::windows::runtime::HSTRING) -> ::windows::runtime::Result<()> + 'static>(invoke: F) -> Self {
370         let com = GameListRemovedEventHandler_box::<F> {
371             vtable: &GameListRemovedEventHandler_box::<F>::VTABLE,
372             count: ::windows::runtime::RefCount::new(1),
373             invoke,
374         };
375         unsafe { std::mem::transmute(::std::boxed::Box::new(com)) }
376     }
377     pub fn Invoke<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, identifier: Param0) -> ::windows::runtime::Result<()> {
378         let this = self;
379         unsafe { (::windows::runtime::Interface::vtable(this).3)(::std::mem::transmute_copy(this), identifier.into_param().abi()).ok() }
380     }
381 }
382 unsafe impl ::windows::runtime::RuntimeType for GameListRemovedEventHandler {
383     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"delegate({10c5648f-6c8f-4712-9b38-474bc22e76d8})");
384 }
385 unsafe impl ::windows::runtime::Interface for GameListRemovedEventHandler {
386     type Vtable = GameListRemovedEventHandler_abi;
387     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(281371791, 27791, 18194, [155, 56, 71, 75, 194, 46, 118, 216]);
388 }
389 #[repr(C)]
390 #[doc(hidden)]
391 pub struct GameListRemovedEventHandler_abi(
392     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
393     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
394     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
395     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, identifier: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
396 );
397 #[repr(C)]
398 struct GameListRemovedEventHandler_box<F: FnMut(&::windows::runtime::HSTRING) -> ::windows::runtime::Result<()> + 'static> {
399     vtable: *const GameListRemovedEventHandler_abi,
400     invoke: F,
401     count: ::windows::runtime::RefCount,
402 }
403 impl<F: FnMut(&::windows::runtime::HSTRING) -> ::windows::runtime::Result<()> + 'static> GameListRemovedEventHandler_box<F> {
404     const VTABLE: GameListRemovedEventHandler_abi = GameListRemovedEventHandler_abi(Self::QueryInterface, Self::AddRef, Self::Release, Self::Invoke);
405     unsafe extern "system" fn QueryInterface(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT {
406         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
407         *interface = if iid == &<GameListRemovedEventHandler as ::windows::runtime::Interface>::IID || iid == &<::windows::runtime::IUnknown as ::windows::runtime::Interface>::IID || iid == &<::windows::runtime::IAgileObject as ::windows::runtime::Interface>::IID {
408             &mut (*this).vtable as *mut _ as _
409         } else {
410             ::std::ptr::null_mut()
411         };
412         if (*interface).is_null() {
413             ::windows::runtime::HRESULT(0x8000_4002)
414         } else {
415             (*this).count.add_ref();
416             ::windows::runtime::HRESULT(0)
417         }
418     }
419     unsafe extern "system" fn AddRef(this: ::windows::runtime::RawPtr) -> u32 {
420         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
421         (*this).count.add_ref()
422     }
423     unsafe extern "system" fn Release(this: ::windows::runtime::RawPtr) -> u32 {
424         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
425         let remaining = (*this).count.release();
426         if remaining == 0 {
427             Box::from_raw(this);
428         }
429         remaining
430     }
431     unsafe extern "system" fn Invoke(this: ::windows::runtime::RawPtr, identifier: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT {
432         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
433         ((*this).invoke)(&*(&identifier as *const <::windows::runtime::HSTRING as ::windows::runtime::Abi>::Abi as *const <::windows::runtime::HSTRING as ::windows::runtime::Abi>::DefaultType)).into()
434     }
435 }
436 #[repr(transparent)]
437 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
438 pub struct GameModeConfiguration(::windows::runtime::IInspectable);
439 impl GameModeConfiguration {
440     pub fn IsEnabled(&self) -> ::windows::runtime::Result<bool> {
441         let this = self;
442         unsafe {
443             let mut result__: bool = ::std::mem::zeroed();
444             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
445         }
446     }
447     pub fn SetIsEnabled(&self, value: bool) -> ::windows::runtime::Result<()> {
448         let this = self;
449         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
450     }
451     #[cfg(feature = "Foundation_Collections")]
452     pub fn RelatedProcessNames(&self) -> ::windows::runtime::Result<super::super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>> {
453         let this = self;
454         unsafe {
455             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
456             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>>(result__)
457         }
458     }
459     #[cfg(feature = "Foundation")]
460     pub fn PercentGpuTimeAllocatedToGame(&self) -> ::windows::runtime::Result<super::super::super::Foundation::IReference<i32>> {
461         let this = self;
462         unsafe {
463             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
464             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IReference<i32>>(result__)
465         }
466     }
467     #[cfg(feature = "Foundation")]
468     pub fn SetPercentGpuTimeAllocatedToGame<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::super::Foundation::IReference<i32>>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
469         let this = self;
470         unsafe { (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
471     }
472     #[cfg(feature = "Foundation")]
473     pub fn PercentGpuMemoryAllocatedToGame(&self) -> ::windows::runtime::Result<super::super::super::Foundation::IReference<i32>> {
474         let this = self;
475         unsafe {
476             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
477             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IReference<i32>>(result__)
478         }
479     }
480     #[cfg(feature = "Foundation")]
481     pub fn SetPercentGpuMemoryAllocatedToGame<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::super::Foundation::IReference<i32>>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
482         let this = self;
483         unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
484     }
485     #[cfg(feature = "Foundation")]
486     pub fn PercentGpuMemoryAllocatedToSystemCompositor(&self) -> ::windows::runtime::Result<super::super::super::Foundation::IReference<i32>> {
487         let this = self;
488         unsafe {
489             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
490             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IReference<i32>>(result__)
491         }
492     }
493     #[cfg(feature = "Foundation")]
494     pub fn SetPercentGpuMemoryAllocatedToSystemCompositor<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::super::Foundation::IReference<i32>>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
495         let this = self;
496         unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
497     }
498     #[cfg(feature = "Foundation")]
499     pub fn MaxCpuCount(&self) -> ::windows::runtime::Result<super::super::super::Foundation::IReference<i32>> {
500         let this = self;
501         unsafe {
502             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
503             (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IReference<i32>>(result__)
504         }
505     }
506     #[cfg(feature = "Foundation")]
507     pub fn SetMaxCpuCount<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::super::Foundation::IReference<i32>>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
508         let this = self;
509         unsafe { (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
510     }
511     #[cfg(feature = "Foundation")]
512     pub fn CpuExclusivityMaskLow(&self) -> ::windows::runtime::Result<super::super::super::Foundation::IReference<i32>> {
513         let this = self;
514         unsafe {
515             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
516             (::windows::runtime::Interface::vtable(this).17)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IReference<i32>>(result__)
517         }
518     }
519     #[cfg(feature = "Foundation")]
520     pub fn SetCpuExclusivityMaskLow<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::super::Foundation::IReference<i32>>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
521         let this = self;
522         unsafe { (::windows::runtime::Interface::vtable(this).18)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
523     }
524     #[cfg(feature = "Foundation")]
525     pub fn CpuExclusivityMaskHigh(&self) -> ::windows::runtime::Result<super::super::super::Foundation::IReference<i32>> {
526         let this = self;
527         unsafe {
528             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
529             (::windows::runtime::Interface::vtable(this).19)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IReference<i32>>(result__)
530         }
531     }
532     #[cfg(feature = "Foundation")]
533     pub fn SetCpuExclusivityMaskHigh<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::super::Foundation::IReference<i32>>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
534         let this = self;
535         unsafe { (::windows::runtime::Interface::vtable(this).20)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
536     }
537     pub fn AffinitizeToExclusiveCpus(&self) -> ::windows::runtime::Result<bool> {
538         let this = self;
539         unsafe {
540             let mut result__: bool = ::std::mem::zeroed();
541             (::windows::runtime::Interface::vtable(this).21)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
542         }
543     }
544     pub fn SetAffinitizeToExclusiveCpus(&self, value: bool) -> ::windows::runtime::Result<()> {
545         let this = self;
546         unsafe { (::windows::runtime::Interface::vtable(this).22)(::std::mem::transmute_copy(this), value).ok() }
547     }
548     #[cfg(feature = "Foundation")]
549     pub fn SaveAsync(&self) -> ::windows::runtime::Result<super::super::super::Foundation::IAsyncAction> {
550         let this = self;
551         unsafe {
552             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
553             (::windows::runtime::Interface::vtable(this).23)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IAsyncAction>(result__)
554         }
555     }
556 }
557 unsafe impl ::windows::runtime::RuntimeType for GameModeConfiguration {
558     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Gaming.Preview.GamesEnumeration.GameModeConfiguration;{78e591af-b142-4ef0-8830-55bc2be4f5ea})");
559 }
560 unsafe impl ::windows::runtime::Interface for GameModeConfiguration {
561     type Vtable = IGameModeConfiguration_abi;
562     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2028310959, 45378, 20208, [136, 48, 85, 188, 43, 228, 245, 234]);
563 }
564 impl ::windows::runtime::RuntimeName for GameModeConfiguration {
565     const NAME: &'static str = "Windows.Gaming.Preview.GamesEnumeration.GameModeConfiguration";
566 }
567 impl ::std::convert::From<GameModeConfiguration> for ::windows::runtime::IUnknown {
568     fn from(value: GameModeConfiguration) -> Self {
569         unsafe { ::std::mem::transmute(value) }
570     }
571 }
572 impl ::std::convert::From<&GameModeConfiguration> for ::windows::runtime::IUnknown {
573     fn from(value: &GameModeConfiguration) -> Self {
574         ::std::convert::From::from(::std::clone::Clone::clone(value))
575     }
576 }
577 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for GameModeConfiguration {
578     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
579         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
580     }
581 }
582 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &GameModeConfiguration {
583     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
584         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
585     }
586 }
587 impl ::std::convert::From<GameModeConfiguration> for ::windows::runtime::IInspectable {
588     fn from(value: GameModeConfiguration) -> Self {
589         value.0
590     }
591 }
592 impl ::std::convert::From<&GameModeConfiguration> for ::windows::runtime::IInspectable {
593     fn from(value: &GameModeConfiguration) -> Self {
594         value.0.clone()
595     }
596 }
597 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for GameModeConfiguration {
598     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
599         ::windows::runtime::Param::Owned(self.0)
600     }
601 }
602 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a GameModeConfiguration {
603     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
604         ::windows::runtime::Param::Borrowed(&self.0)
605     }
606 }
607 unsafe impl ::std::marker::Send for GameModeConfiguration {}
608 unsafe impl ::std::marker::Sync for GameModeConfiguration {}
609 #[repr(transparent)]
610 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
611 pub struct GameModeUserConfiguration(::windows::runtime::IInspectable);
612 impl GameModeUserConfiguration {
613     #[cfg(feature = "Foundation_Collections")]
614     pub fn GamingRelatedProcessNames(&self) -> ::windows::runtime::Result<super::super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>> {
615         let this = self;
616         unsafe {
617             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
618             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>>(result__)
619         }
620     }
621     #[cfg(feature = "Foundation")]
622     pub fn SaveAsync(&self) -> ::windows::runtime::Result<super::super::super::Foundation::IAsyncAction> {
623         let this = self;
624         unsafe {
625             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
626             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IAsyncAction>(result__)
627         }
628     }
629     pub fn GetDefault() -> ::windows::runtime::Result<GameModeUserConfiguration> {
630         Self::IGameModeUserConfigurationStatics(|this| unsafe {
631             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
632             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<GameModeUserConfiguration>(result__)
633         })
634     }
635     pub fn IGameModeUserConfigurationStatics<R, F: FnOnce(&IGameModeUserConfigurationStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
636         static mut SHARED: ::windows::runtime::FactoryCache<GameModeUserConfiguration, IGameModeUserConfigurationStatics> = ::windows::runtime::FactoryCache::new();
637         unsafe { SHARED.call(callback) }
638     }
639 }
640 unsafe impl ::windows::runtime::RuntimeType for GameModeUserConfiguration {
641     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Gaming.Preview.GamesEnumeration.GameModeUserConfiguration;{72d34af4-756b-470f-a0c2-ba62a90795db})");
642 }
643 unsafe impl ::windows::runtime::Interface for GameModeUserConfiguration {
644     type Vtable = IGameModeUserConfiguration_abi;
645     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1926449908, 30059, 18191, [160, 194, 186, 98, 169, 7, 149, 219]);
646 }
647 impl ::windows::runtime::RuntimeName for GameModeUserConfiguration {
648     const NAME: &'static str = "Windows.Gaming.Preview.GamesEnumeration.GameModeUserConfiguration";
649 }
650 impl ::std::convert::From<GameModeUserConfiguration> for ::windows::runtime::IUnknown {
651     fn from(value: GameModeUserConfiguration) -> Self {
652         unsafe { ::std::mem::transmute(value) }
653     }
654 }
655 impl ::std::convert::From<&GameModeUserConfiguration> for ::windows::runtime::IUnknown {
656     fn from(value: &GameModeUserConfiguration) -> Self {
657         ::std::convert::From::from(::std::clone::Clone::clone(value))
658     }
659 }
660 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for GameModeUserConfiguration {
661     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
662         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
663     }
664 }
665 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &GameModeUserConfiguration {
666     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
667         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
668     }
669 }
670 impl ::std::convert::From<GameModeUserConfiguration> for ::windows::runtime::IInspectable {
671     fn from(value: GameModeUserConfiguration) -> Self {
672         value.0
673     }
674 }
675 impl ::std::convert::From<&GameModeUserConfiguration> for ::windows::runtime::IInspectable {
676     fn from(value: &GameModeUserConfiguration) -> Self {
677         value.0.clone()
678     }
679 }
680 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for GameModeUserConfiguration {
681     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
682         ::windows::runtime::Param::Owned(self.0)
683     }
684 }
685 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a GameModeUserConfiguration {
686     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
687         ::windows::runtime::Param::Borrowed(&self.0)
688     }
689 }
690 unsafe impl ::std::marker::Send for GameModeUserConfiguration {}
691 unsafe impl ::std::marker::Sync for GameModeUserConfiguration {}
692 #[repr(transparent)]
693 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
694 pub struct IGameListEntry(::windows::runtime::IInspectable);
695 unsafe impl ::windows::runtime::Interface for IGameListEntry {
696     type Vtable = IGameListEntry_abi;
697     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1935221971, 33055, 17556, [182, 156, 198, 65, 160, 198, 21, 67]);
698 }
699 impl IGameListEntry {
700     #[cfg(feature = "ApplicationModel")]
701     pub fn DisplayInfo(&self) -> ::windows::runtime::Result<super::super::super::ApplicationModel::AppDisplayInfo> {
702         let this = self;
703         unsafe {
704             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
705             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::ApplicationModel::AppDisplayInfo>(result__)
706         }
707     }
708     #[cfg(feature = "Foundation")]
709     pub fn LaunchAsync(&self) -> ::windows::runtime::Result<super::super::super::Foundation::IAsyncOperation<bool>> {
710         let this = self;
711         unsafe {
712             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
713             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::IAsyncOperation<bool>>(result__)
714         }
715     }
716     pub fn Category(&self) -> ::windows::runtime::Result<GameListCategory> {
717         let this = self;
718         unsafe {
719             let mut result__: GameListCategory = ::std::mem::zeroed();
720             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<GameListCategory>(result__)
721         }
722     }
723     #[cfg(feature = "Foundation_Collections")]
724     pub fn Properties(&self) -> ::windows::runtime::Result<super::super::super::Foundation::Collections::IMapView<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>> {
725         let this = self;
726         unsafe {
727             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
728             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::super::Foundation::Collections::IMapView<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>(result__)
729         }
730     }
731     #[cfg(feature = "Foundation")]
732     pub fn SetCategoryAsync(&self, value: GameListCategory) -> ::windows::runtime::Result<super::super::super::Foundation::IAsyncAction> {
733         let this = self;
734         unsafe {
735             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
736             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), value, &mut result__).from_abi::<super::super::super::Foundation::IAsyncAction>(result__)
737         }
738     }
739 }
740 unsafe impl ::windows::runtime::RuntimeType for IGameListEntry {
741     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"{735924d3-811f-4494-b69c-c641a0c61543}");
742 }
743 impl ::std::convert::From<IGameListEntry> for ::windows::runtime::IUnknown {
744     fn from(value: IGameListEntry) -> Self {
745         unsafe { ::std::mem::transmute(value) }
746     }
747 }
748 impl ::std::convert::From<&IGameListEntry> for ::windows::runtime::IUnknown {
749     fn from(value: &IGameListEntry) -> Self {
750         ::std::convert::From::from(::std::clone::Clone::clone(value))
751     }
752 }
753 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IGameListEntry {
754     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
755         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
756     }
757 }
758 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IGameListEntry {
759     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
760         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
761     }
762 }
763 impl ::std::convert::From<IGameListEntry> for ::windows::runtime::IInspectable {
764     fn from(value: IGameListEntry) -> Self {
765         value.0
766     }
767 }
768 impl ::std::convert::From<&IGameListEntry> for ::windows::runtime::IInspectable {
769     fn from(value: &IGameListEntry) -> Self {
770         value.0.clone()
771     }
772 }
773 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for IGameListEntry {
774     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
775         ::windows::runtime::Param::Owned(self.0)
776     }
777 }
778 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a IGameListEntry {
779     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
780         ::windows::runtime::Param::Borrowed(&self.0)
781     }
782 }
783 #[repr(C)]
784 #[doc(hidden)]
785 pub struct IGameListEntry_abi(
786     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
787     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
788     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
789     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
790     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
791     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
792     #[cfg(feature = "ApplicationModel")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
793     #[cfg(not(feature = "ApplicationModel"))] usize,
794     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
795     #[cfg(not(feature = "Foundation"))] usize,
796     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut GameListCategory) -> ::windows::runtime::HRESULT,
797     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
798     #[cfg(not(feature = "Foundation_Collections"))] usize,
799     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: GameListCategory, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
800     #[cfg(not(feature = "Foundation"))] usize,
801 );
802 #[repr(transparent)]
803 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
804 #[doc(hidden)]
805 pub struct IGameListEntry2(::windows::runtime::IInspectable);
806 unsafe impl ::windows::runtime::Interface for IGameListEntry2 {
807     type Vtable = IGameListEntry2_abi;
808     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3628765067, 34633, 18981, [144, 211, 246, 197, 164, 39, 136, 109]);
809 }
810 #[repr(C)]
811 #[doc(hidden)]
812 pub struct IGameListEntry2_abi(
813     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
814     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
815     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
816     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
817     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
818     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
819     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut GameListEntryLaunchableState) -> ::windows::runtime::HRESULT,
820     #[cfg(feature = "Storage")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
821     #[cfg(not(feature = "Storage"))] usize,
822     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
823     #[cfg(all(feature = "Foundation", feature = "Storage"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, executablefile: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
824     #[cfg(not(all(feature = "Foundation", feature = "Storage")))] usize,
825     #[cfg(all(feature = "Foundation", feature = "Storage"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, executablefile: ::windows::runtime::RawPtr, launchparams: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
826     #[cfg(not(all(feature = "Foundation", feature = "Storage")))] usize,
827     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
828     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, id: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
829     #[cfg(not(feature = "Foundation"))] usize,
830     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
831 );
832 #[repr(transparent)]
833 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
834 #[doc(hidden)]
835 pub struct IGameListStatics(::windows::runtime::IInspectable);
836 unsafe impl ::windows::runtime::Interface for IGameListStatics {
837     type Vtable = IGameListStatics_abi;
838     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(769462127, 40038, 19205, [148, 92, 214, 237, 120, 73, 27, 140]);
839 }
840 #[repr(C)]
841 #[doc(hidden)]
842 pub struct IGameListStatics_abi(
843     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
844     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
845     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
846     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
847     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
848     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
849     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
850     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
851     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, packagefamilyname: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
852     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
853     #[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,
854     #[cfg(not(feature = "Foundation"))] usize,
855     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
856     #[cfg(not(feature = "Foundation"))] usize,
857     #[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,
858     #[cfg(not(feature = "Foundation"))] usize,
859     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
860     #[cfg(not(feature = "Foundation"))] usize,
861     #[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,
862     #[cfg(not(feature = "Foundation"))] usize,
863     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
864     #[cfg(not(feature = "Foundation"))] usize,
865 );
866 #[repr(transparent)]
867 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
868 #[doc(hidden)]
869 pub struct IGameListStatics2(::windows::runtime::IInspectable);
870 unsafe impl ::windows::runtime::Interface for IGameListStatics2 {
871     type Vtable = IGameListStatics2_abi;
872     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(962535576, 59930, 17834, [146, 104, 168, 57, 5, 104, 111, 39]);
873 }
874 #[repr(C)]
875 #[doc(hidden)]
876 pub struct IGameListStatics2_abi(
877     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
878     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
879     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
880     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
881     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
882     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
883     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, left: ::windows::runtime::RawPtr, right: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
884     #[cfg(not(feature = "Foundation"))] usize,
885     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, mergedentry: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
886     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
887 );
888 #[repr(transparent)]
889 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
890 #[doc(hidden)]
891 pub struct IGameModeConfiguration(::windows::runtime::IInspectable);
892 unsafe impl ::windows::runtime::Interface for IGameModeConfiguration {
893     type Vtable = IGameModeConfiguration_abi;
894     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2028310959, 45378, 20208, [136, 48, 85, 188, 43, 228, 245, 234]);
895 }
896 #[repr(C)]
897 #[doc(hidden)]
898 pub struct IGameModeConfiguration_abi(
899     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
900     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
901     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
902     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
903     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
904     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
905     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
906     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT,
907     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
908     #[cfg(not(feature = "Foundation_Collections"))] usize,
909     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
910     #[cfg(not(feature = "Foundation"))] usize,
911     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
912     #[cfg(not(feature = "Foundation"))] usize,
913     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
914     #[cfg(not(feature = "Foundation"))] usize,
915     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
916     #[cfg(not(feature = "Foundation"))] usize,
917     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
918     #[cfg(not(feature = "Foundation"))] usize,
919     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
920     #[cfg(not(feature = "Foundation"))] usize,
921     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
922     #[cfg(not(feature = "Foundation"))] usize,
923     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
924     #[cfg(not(feature = "Foundation"))] usize,
925     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
926     #[cfg(not(feature = "Foundation"))] usize,
927     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
928     #[cfg(not(feature = "Foundation"))] usize,
929     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
930     #[cfg(not(feature = "Foundation"))] usize,
931     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
932     #[cfg(not(feature = "Foundation"))] usize,
933     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
934     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT,
935     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
936     #[cfg(not(feature = "Foundation"))] usize,
937 );
938 #[repr(transparent)]
939 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
940 #[doc(hidden)]
941 pub struct IGameModeUserConfiguration(::windows::runtime::IInspectable);
942 unsafe impl ::windows::runtime::Interface for IGameModeUserConfiguration {
943     type Vtable = IGameModeUserConfiguration_abi;
944     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1926449908, 30059, 18191, [160, 194, 186, 98, 169, 7, 149, 219]);
945 }
946 #[repr(C)]
947 #[doc(hidden)]
948 pub struct IGameModeUserConfiguration_abi(
949     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
950     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
951     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
952     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
953     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
954     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
955     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
956     #[cfg(not(feature = "Foundation_Collections"))] usize,
957     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
958     #[cfg(not(feature = "Foundation"))] usize,
959 );
960 #[repr(transparent)]
961 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
962 #[doc(hidden)]
963 pub struct IGameModeUserConfigurationStatics(::windows::runtime::IInspectable);
964 unsafe impl ::windows::runtime::Interface for IGameModeUserConfigurationStatics {
965     type Vtable = IGameModeUserConfigurationStatics_abi;
966     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1850792316, 26346, 18318, [164, 161, 245, 124, 14, 141, 0, 231]);
967 }
968 #[repr(C)]
969 #[doc(hidden)]
970 pub struct IGameModeUserConfigurationStatics_abi(
971     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
972     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
973     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
974     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
975     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
976     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
977     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
978 );
979