]> git.proxmox.com Git - rustc.git/blame - vendor/windows/src/Windows/Win32/UI/Shell/PropertiesSystem/impl.rs
New upstream version 1.70.0+dfsg1
[rustc.git] / vendor / windows / src / Windows / Win32 / UI / Shell / PropertiesSystem / impl.rs
CommitLineData
353b0b11
FG
1#[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
2pub trait ICreateObject_Impl: Sized {
3 fn CreateObject(&self, clsid: *const ::windows::core::GUID, punkouter: ::core::option::Option<&::windows::core::IUnknown>, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>;
4}
5impl ::windows::core::RuntimeName for ICreateObject {}
6impl ICreateObject_Vtbl {
7 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICreateObject_Impl, const OFFSET: isize>() -> ICreateObject_Vtbl {
8 unsafe extern "system" fn CreateObject<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICreateObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, clsid: *const ::windows::core::GUID, punkouter: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
9 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
10 let this = (*this).get_impl();
11 this.CreateObject(::core::mem::transmute_copy(&clsid), ::windows::core::from_raw_borrowed(&punkouter), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
12 }
13 Self { base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(), CreateObject: CreateObject::<Identity, Impl, OFFSET> }
14 }
15 pub fn matches(iid: &windows::core::GUID) -> bool {
16 iid == &<ICreateObject as ::windows::core::ComInterface>::IID
17 }
18}
19#[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
20pub trait IDelayedPropertyStoreFactory_Impl: Sized + IPropertyStoreFactory_Impl {
21 fn GetDelayedPropertyStore(&self, flags: GETPROPERTYSTOREFLAGS, dwstoreid: u32, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>;
22}
23impl ::windows::core::RuntimeName for IDelayedPropertyStoreFactory {}
24impl IDelayedPropertyStoreFactory_Vtbl {
25 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDelayedPropertyStoreFactory_Impl, const OFFSET: isize>() -> IDelayedPropertyStoreFactory_Vtbl {
26 unsafe extern "system" fn GetDelayedPropertyStore<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDelayedPropertyStoreFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: GETPROPERTYSTOREFLAGS, dwstoreid: u32, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
27 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
28 let this = (*this).get_impl();
29 this.GetDelayedPropertyStore(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&dwstoreid), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
30 }
31 Self { base__: IPropertyStoreFactory_Vtbl::new::<Identity, Impl, OFFSET>(), GetDelayedPropertyStore: GetDelayedPropertyStore::<Identity, Impl, OFFSET> }
32 }
33 pub fn matches(iid: &windows::core::GUID) -> bool {
34 iid == &<IDelayedPropertyStoreFactory as ::windows::core::ComInterface>::IID || iid == &<IPropertyStoreFactory as ::windows::core::ComInterface>::IID
35 }
36}
37#[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
38pub trait IInitializeWithFile_Impl: Sized {
39 fn Initialize(&self, pszfilepath: &::windows::core::PCWSTR, grfmode: u32) -> ::windows::core::Result<()>;
40}
41impl ::windows::core::RuntimeName for IInitializeWithFile {}
42impl IInitializeWithFile_Vtbl {
43 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IInitializeWithFile_Impl, const OFFSET: isize>() -> IInitializeWithFile_Vtbl {
44 unsafe extern "system" fn Initialize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IInitializeWithFile_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszfilepath: ::windows::core::PCWSTR, grfmode: u32) -> ::windows::core::HRESULT {
45 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
46 let this = (*this).get_impl();
47 this.Initialize(::core::mem::transmute(&pszfilepath), ::core::mem::transmute_copy(&grfmode)).into()
48 }
49 Self { base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Initialize: Initialize::<Identity, Impl, OFFSET> }
50 }
51 pub fn matches(iid: &windows::core::GUID) -> bool {
52 iid == &<IInitializeWithFile as ::windows::core::ComInterface>::IID
53 }
54}
55#[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
56#[cfg(feature = "Win32_System_Com")]
57pub trait IInitializeWithStream_Impl: Sized {
58 fn Initialize(&self, pstream: ::core::option::Option<&super::super::super::System::Com::IStream>, grfmode: u32) -> ::windows::core::Result<()>;
59}
60#[cfg(feature = "Win32_System_Com")]
61impl ::windows::core::RuntimeName for IInitializeWithStream {}
62#[cfg(feature = "Win32_System_Com")]
63impl IInitializeWithStream_Vtbl {
64 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IInitializeWithStream_Impl, const OFFSET: isize>() -> IInitializeWithStream_Vtbl {
65 unsafe extern "system" fn Initialize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IInitializeWithStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstream: *mut ::core::ffi::c_void, grfmode: u32) -> ::windows::core::HRESULT {
66 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
67 let this = (*this).get_impl();
68 this.Initialize(::windows::core::from_raw_borrowed(&pstream), ::core::mem::transmute_copy(&grfmode)).into()
69 }
70 Self { base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Initialize: Initialize::<Identity, Impl, OFFSET> }
71 }
72 pub fn matches(iid: &windows::core::GUID) -> bool {
73 iid == &<IInitializeWithStream as ::windows::core::ComInterface>::IID
74 }
75}
76#[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"implement\"`*"]
77#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
78pub trait INamedPropertyStore_Impl: Sized {
79 fn GetNamedValue(&self, pszname: &::windows::core::PCWSTR) -> ::windows::core::Result<super::super::super::System::Com::StructuredStorage::PROPVARIANT>;
80 fn SetNamedValue(&self, pszname: &::windows::core::PCWSTR, propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::Result<()>;
81 fn GetNameCount(&self) -> ::windows::core::Result<u32>;
82 fn GetNameAt(&self, iprop: u32) -> ::windows::core::Result<::windows::core::BSTR>;
83}
84#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
85impl ::windows::core::RuntimeName for INamedPropertyStore {}
86#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
87impl INamedPropertyStore_Vtbl {
88 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: INamedPropertyStore_Impl, const OFFSET: isize>() -> INamedPropertyStore_Vtbl {
89 unsafe extern "system" fn GetNamedValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: INamedPropertyStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszname: ::windows::core::PCWSTR, ppropvar: *mut super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT {
90 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
91 let this = (*this).get_impl();
92 match this.GetNamedValue(::core::mem::transmute(&pszname)) {
93 ::core::result::Result::Ok(ok__) => {
94 ::core::ptr::write(ppropvar, ::core::mem::transmute(ok__));
95 ::windows::core::HRESULT(0)
96 }
97 ::core::result::Result::Err(err) => err.into(),
98 }
99 }
100 unsafe extern "system" fn SetNamedValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: INamedPropertyStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszname: ::windows::core::PCWSTR, propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT {
101 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
102 let this = (*this).get_impl();
103 this.SetNamedValue(::core::mem::transmute(&pszname), ::core::mem::transmute_copy(&propvar)).into()
104 }
105 unsafe extern "system" fn GetNameCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: INamedPropertyStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwcount: *mut u32) -> ::windows::core::HRESULT {
106 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
107 let this = (*this).get_impl();
108 match this.GetNameCount() {
109 ::core::result::Result::Ok(ok__) => {
110 ::core::ptr::write(pdwcount, ::core::mem::transmute(ok__));
111 ::windows::core::HRESULT(0)
112 }
113 ::core::result::Result::Err(err) => err.into(),
114 }
115 }
116 unsafe extern "system" fn GetNameAt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: INamedPropertyStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, iprop: u32, pbstrname: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
117 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
118 let this = (*this).get_impl();
119 match this.GetNameAt(::core::mem::transmute_copy(&iprop)) {
120 ::core::result::Result::Ok(ok__) => {
121 ::core::ptr::write(pbstrname, ::core::mem::transmute(ok__));
122 ::windows::core::HRESULT(0)
123 }
124 ::core::result::Result::Err(err) => err.into(),
125 }
126 }
127 Self {
128 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
129 GetNamedValue: GetNamedValue::<Identity, Impl, OFFSET>,
130 SetNamedValue: SetNamedValue::<Identity, Impl, OFFSET>,
131 GetNameCount: GetNameCount::<Identity, Impl, OFFSET>,
132 GetNameAt: GetNameAt::<Identity, Impl, OFFSET>,
133 }
134 }
135 pub fn matches(iid: &windows::core::GUID) -> bool {
136 iid == &<INamedPropertyStore as ::windows::core::ComInterface>::IID
137 }
138}
139#[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
140pub trait IObjectWithPropertyKey_Impl: Sized {
141 fn SetPropertyKey(&self, key: *const PROPERTYKEY) -> ::windows::core::Result<()>;
142 fn GetPropertyKey(&self, pkey: *mut PROPERTYKEY) -> ::windows::core::Result<()>;
143}
144impl ::windows::core::RuntimeName for IObjectWithPropertyKey {}
145impl IObjectWithPropertyKey_Vtbl {
146 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IObjectWithPropertyKey_Impl, const OFFSET: isize>() -> IObjectWithPropertyKey_Vtbl {
147 unsafe extern "system" fn SetPropertyKey<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IObjectWithPropertyKey_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: *const PROPERTYKEY) -> ::windows::core::HRESULT {
148 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
149 let this = (*this).get_impl();
150 this.SetPropertyKey(::core::mem::transmute_copy(&key)).into()
151 }
152 unsafe extern "system" fn GetPropertyKey<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IObjectWithPropertyKey_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pkey: *mut PROPERTYKEY) -> ::windows::core::HRESULT {
153 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
154 let this = (*this).get_impl();
155 this.GetPropertyKey(::core::mem::transmute_copy(&pkey)).into()
156 }
157 Self {
158 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
159 SetPropertyKey: SetPropertyKey::<Identity, Impl, OFFSET>,
160 GetPropertyKey: GetPropertyKey::<Identity, Impl, OFFSET>,
161 }
162 }
163 pub fn matches(iid: &windows::core::GUID) -> bool {
164 iid == &<IObjectWithPropertyKey as ::windows::core::ComInterface>::IID
165 }
166}
167#[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
168pub trait IPersistSerializedPropStorage_Impl: Sized {
169 fn SetFlags(&self, flags: i32) -> ::windows::core::Result<()>;
170 fn SetPropertyStorage(&self, psps: *const SERIALIZEDPROPSTORAGE, cb: u32) -> ::windows::core::Result<()>;
171 fn GetPropertyStorage(&self, ppsps: *mut *mut SERIALIZEDPROPSTORAGE, pcb: *mut u32) -> ::windows::core::Result<()>;
172}
173impl ::windows::core::RuntimeName for IPersistSerializedPropStorage {}
174impl IPersistSerializedPropStorage_Vtbl {
175 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPersistSerializedPropStorage_Impl, const OFFSET: isize>() -> IPersistSerializedPropStorage_Vtbl {
176 unsafe extern "system" fn SetFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPersistSerializedPropStorage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: i32) -> ::windows::core::HRESULT {
177 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
178 let this = (*this).get_impl();
179 this.SetFlags(::core::mem::transmute_copy(&flags)).into()
180 }
181 unsafe extern "system" fn SetPropertyStorage<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPersistSerializedPropStorage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psps: *const SERIALIZEDPROPSTORAGE, cb: u32) -> ::windows::core::HRESULT {
182 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
183 let this = (*this).get_impl();
184 this.SetPropertyStorage(::core::mem::transmute_copy(&psps), ::core::mem::transmute_copy(&cb)).into()
185 }
186 unsafe extern "system" fn GetPropertyStorage<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPersistSerializedPropStorage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppsps: *mut *mut SERIALIZEDPROPSTORAGE, pcb: *mut u32) -> ::windows::core::HRESULT {
187 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
188 let this = (*this).get_impl();
189 this.GetPropertyStorage(::core::mem::transmute_copy(&ppsps), ::core::mem::transmute_copy(&pcb)).into()
190 }
191 Self {
192 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
193 SetFlags: SetFlags::<Identity, Impl, OFFSET>,
194 SetPropertyStorage: SetPropertyStorage::<Identity, Impl, OFFSET>,
195 GetPropertyStorage: GetPropertyStorage::<Identity, Impl, OFFSET>,
196 }
197 }
198 pub fn matches(iid: &windows::core::GUID) -> bool {
199 iid == &<IPersistSerializedPropStorage as ::windows::core::ComInterface>::IID
200 }
201}
202#[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
203pub trait IPersistSerializedPropStorage2_Impl: Sized + IPersistSerializedPropStorage_Impl {
204 fn GetPropertyStorageSize(&self) -> ::windows::core::Result<u32>;
205 fn GetPropertyStorageBuffer(&self, psps: *mut SERIALIZEDPROPSTORAGE, cb: u32, pcbwritten: *mut u32) -> ::windows::core::Result<()>;
206}
207impl ::windows::core::RuntimeName for IPersistSerializedPropStorage2 {}
208impl IPersistSerializedPropStorage2_Vtbl {
209 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPersistSerializedPropStorage2_Impl, const OFFSET: isize>() -> IPersistSerializedPropStorage2_Vtbl {
210 unsafe extern "system" fn GetPropertyStorageSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPersistSerializedPropStorage2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcb: *mut u32) -> ::windows::core::HRESULT {
211 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
212 let this = (*this).get_impl();
213 match this.GetPropertyStorageSize() {
214 ::core::result::Result::Ok(ok__) => {
215 ::core::ptr::write(pcb, ::core::mem::transmute(ok__));
216 ::windows::core::HRESULT(0)
217 }
218 ::core::result::Result::Err(err) => err.into(),
219 }
220 }
221 unsafe extern "system" fn GetPropertyStorageBuffer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPersistSerializedPropStorage2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psps: *mut SERIALIZEDPROPSTORAGE, cb: u32, pcbwritten: *mut u32) -> ::windows::core::HRESULT {
222 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
223 let this = (*this).get_impl();
224 this.GetPropertyStorageBuffer(::core::mem::transmute_copy(&psps), ::core::mem::transmute_copy(&cb), ::core::mem::transmute_copy(&pcbwritten)).into()
225 }
226 Self {
227 base__: IPersistSerializedPropStorage_Vtbl::new::<Identity, Impl, OFFSET>(),
228 GetPropertyStorageSize: GetPropertyStorageSize::<Identity, Impl, OFFSET>,
229 GetPropertyStorageBuffer: GetPropertyStorageBuffer::<Identity, Impl, OFFSET>,
230 }
231 }
232 pub fn matches(iid: &windows::core::GUID) -> bool {
233 iid == &<IPersistSerializedPropStorage2 as ::windows::core::ComInterface>::IID || iid == &<IPersistSerializedPropStorage as ::windows::core::ComInterface>::IID
234 }
235}
236#[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"implement\"`*"]
237#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
238pub trait IPropertyChange_Impl: Sized + IObjectWithPropertyKey_Impl {
239 fn ApplyToPropVariant(&self, propvarin: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::Result<super::super::super::System::Com::StructuredStorage::PROPVARIANT>;
240}
241#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
242impl ::windows::core::RuntimeName for IPropertyChange {}
243#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
244impl IPropertyChange_Vtbl {
245 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyChange_Impl, const OFFSET: isize>() -> IPropertyChange_Vtbl {
246 unsafe extern "system" fn ApplyToPropVariant<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyChange_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, propvarin: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, ppropvarout: *mut super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT {
247 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
248 let this = (*this).get_impl();
249 match this.ApplyToPropVariant(::core::mem::transmute_copy(&propvarin)) {
250 ::core::result::Result::Ok(ok__) => {
251 ::core::ptr::write(ppropvarout, ::core::mem::transmute(ok__));
252 ::windows::core::HRESULT(0)
253 }
254 ::core::result::Result::Err(err) => err.into(),
255 }
256 }
257 Self { base__: IObjectWithPropertyKey_Vtbl::new::<Identity, Impl, OFFSET>(), ApplyToPropVariant: ApplyToPropVariant::<Identity, Impl, OFFSET> }
258 }
259 pub fn matches(iid: &windows::core::GUID) -> bool {
260 iid == &<IPropertyChange as ::windows::core::ComInterface>::IID || iid == &<IObjectWithPropertyKey as ::windows::core::ComInterface>::IID
261 }
262}
263#[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
264pub trait IPropertyChangeArray_Impl: Sized {
265 fn GetCount(&self) -> ::windows::core::Result<u32>;
266 fn GetAt(&self, iindex: u32, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>;
267 fn InsertAt(&self, iindex: u32, ppropchange: ::core::option::Option<&IPropertyChange>) -> ::windows::core::Result<()>;
268 fn Append(&self, ppropchange: ::core::option::Option<&IPropertyChange>) -> ::windows::core::Result<()>;
269 fn AppendOrReplace(&self, ppropchange: ::core::option::Option<&IPropertyChange>) -> ::windows::core::Result<()>;
270 fn RemoveAt(&self, iindex: u32) -> ::windows::core::Result<()>;
271 fn IsKeyInArray(&self, key: *const PROPERTYKEY) -> ::windows::core::Result<()>;
272}
273impl ::windows::core::RuntimeName for IPropertyChangeArray {}
274impl IPropertyChangeArray_Vtbl {
275 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyChangeArray_Impl, const OFFSET: isize>() -> IPropertyChangeArray_Vtbl {
276 unsafe extern "system" fn GetCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyChangeArray_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcoperations: *mut u32) -> ::windows::core::HRESULT {
277 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
278 let this = (*this).get_impl();
279 match this.GetCount() {
280 ::core::result::Result::Ok(ok__) => {
281 ::core::ptr::write(pcoperations, ::core::mem::transmute(ok__));
282 ::windows::core::HRESULT(0)
283 }
284 ::core::result::Result::Err(err) => err.into(),
285 }
286 }
287 unsafe extern "system" fn GetAt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyChangeArray_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, iindex: u32, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
288 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
289 let this = (*this).get_impl();
290 this.GetAt(::core::mem::transmute_copy(&iindex), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
291 }
292 unsafe extern "system" fn InsertAt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyChangeArray_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, iindex: u32, ppropchange: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
293 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
294 let this = (*this).get_impl();
295 this.InsertAt(::core::mem::transmute_copy(&iindex), ::windows::core::from_raw_borrowed(&ppropchange)).into()
296 }
297 unsafe extern "system" fn Append<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyChangeArray_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppropchange: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
298 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
299 let this = (*this).get_impl();
300 this.Append(::windows::core::from_raw_borrowed(&ppropchange)).into()
301 }
302 unsafe extern "system" fn AppendOrReplace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyChangeArray_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppropchange: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
303 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
304 let this = (*this).get_impl();
305 this.AppendOrReplace(::windows::core::from_raw_borrowed(&ppropchange)).into()
306 }
307 unsafe extern "system" fn RemoveAt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyChangeArray_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, iindex: u32) -> ::windows::core::HRESULT {
308 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
309 let this = (*this).get_impl();
310 this.RemoveAt(::core::mem::transmute_copy(&iindex)).into()
311 }
312 unsafe extern "system" fn IsKeyInArray<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyChangeArray_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: *const PROPERTYKEY) -> ::windows::core::HRESULT {
313 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
314 let this = (*this).get_impl();
315 this.IsKeyInArray(::core::mem::transmute_copy(&key)).into()
316 }
317 Self {
318 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
319 GetCount: GetCount::<Identity, Impl, OFFSET>,
320 GetAt: GetAt::<Identity, Impl, OFFSET>,
321 InsertAt: InsertAt::<Identity, Impl, OFFSET>,
322 Append: Append::<Identity, Impl, OFFSET>,
323 AppendOrReplace: AppendOrReplace::<Identity, Impl, OFFSET>,
324 RemoveAt: RemoveAt::<Identity, Impl, OFFSET>,
325 IsKeyInArray: IsKeyInArray::<Identity, Impl, OFFSET>,
326 }
327 }
328 pub fn matches(iid: &windows::core::GUID) -> bool {
329 iid == &<IPropertyChangeArray as ::windows::core::ComInterface>::IID
330 }
331}
332#[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Search_Common\"`, `\"implement\"`*"]
333#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Search_Common"))]
334pub trait IPropertyDescription_Impl: Sized {
335 fn GetPropertyKey(&self, pkey: *mut PROPERTYKEY) -> ::windows::core::Result<()>;
336 fn GetCanonicalName(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
337 fn GetPropertyType(&self) -> ::windows::core::Result<u16>;
338 fn GetDisplayName(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
339 fn GetEditInvitation(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
340 fn GetTypeFlags(&self, mask: PROPDESC_TYPE_FLAGS) -> ::windows::core::Result<PROPDESC_TYPE_FLAGS>;
341 fn GetViewFlags(&self) -> ::windows::core::Result<PROPDESC_VIEW_FLAGS>;
342 fn GetDefaultColumnWidth(&self) -> ::windows::core::Result<u32>;
343 fn GetDisplayType(&self) -> ::windows::core::Result<PROPDESC_DISPLAYTYPE>;
344 fn GetColumnState(&self) -> ::windows::core::Result<u32>;
345 fn GetGroupingRange(&self) -> ::windows::core::Result<PROPDESC_GROUPING_RANGE>;
346 fn GetRelativeDescriptionType(&self) -> ::windows::core::Result<PROPDESC_RELATIVEDESCRIPTION_TYPE>;
347 fn GetRelativeDescription(&self, propvar1: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, propvar2: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, ppszdesc1: *mut ::windows::core::PWSTR, ppszdesc2: *mut ::windows::core::PWSTR) -> ::windows::core::Result<()>;
348 fn GetSortDescription(&self) -> ::windows::core::Result<PROPDESC_SORTDESCRIPTION>;
349 fn GetSortDescriptionLabel(&self, fdescending: super::super::super::Foundation::BOOL) -> ::windows::core::Result<::windows::core::PWSTR>;
350 fn GetAggregationType(&self) -> ::windows::core::Result<PROPDESC_AGGREGATION_TYPE>;
351 fn GetConditionType(&self, pcontype: *mut PROPDESC_CONDITION_TYPE, popdefault: *mut super::super::super::System::Search::Common::CONDITION_OPERATION) -> ::windows::core::Result<()>;
352 fn GetEnumTypeList(&self, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>;
353 fn CoerceToCanonicalValue(&self, ppropvar: *mut super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::Result<()>;
354 fn FormatForDisplay(&self, propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, pdfflags: PROPDESC_FORMAT_FLAGS) -> ::windows::core::Result<::windows::core::PWSTR>;
355 fn IsValueCanonical(&self, propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::Result<()>;
356}
357#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Search_Common"))]
358impl ::windows::core::RuntimeName for IPropertyDescription {}
359#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Search_Common"))]
360impl IPropertyDescription_Vtbl {
361 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescription_Impl, const OFFSET: isize>() -> IPropertyDescription_Vtbl {
362 unsafe extern "system" fn GetPropertyKey<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescription_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pkey: *mut PROPERTYKEY) -> ::windows::core::HRESULT {
363 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
364 let this = (*this).get_impl();
365 this.GetPropertyKey(::core::mem::transmute_copy(&pkey)).into()
366 }
367 unsafe extern "system" fn GetCanonicalName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescription_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszname: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
368 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
369 let this = (*this).get_impl();
370 match this.GetCanonicalName() {
371 ::core::result::Result::Ok(ok__) => {
372 ::core::ptr::write(ppszname, ::core::mem::transmute(ok__));
373 ::windows::core::HRESULT(0)
374 }
375 ::core::result::Result::Err(err) => err.into(),
376 }
377 }
378 unsafe extern "system" fn GetPropertyType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescription_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvartype: *mut u16) -> ::windows::core::HRESULT {
379 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
380 let this = (*this).get_impl();
381 match this.GetPropertyType() {
382 ::core::result::Result::Ok(ok__) => {
383 ::core::ptr::write(pvartype, ::core::mem::transmute(ok__));
384 ::windows::core::HRESULT(0)
385 }
386 ::core::result::Result::Err(err) => err.into(),
387 }
388 }
389 unsafe extern "system" fn GetDisplayName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescription_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszname: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
390 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
391 let this = (*this).get_impl();
392 match this.GetDisplayName() {
393 ::core::result::Result::Ok(ok__) => {
394 ::core::ptr::write(ppszname, ::core::mem::transmute(ok__));
395 ::windows::core::HRESULT(0)
396 }
397 ::core::result::Result::Err(err) => err.into(),
398 }
399 }
400 unsafe extern "system" fn GetEditInvitation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescription_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszinvite: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
401 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
402 let this = (*this).get_impl();
403 match this.GetEditInvitation() {
404 ::core::result::Result::Ok(ok__) => {
405 ::core::ptr::write(ppszinvite, ::core::mem::transmute(ok__));
406 ::windows::core::HRESULT(0)
407 }
408 ::core::result::Result::Err(err) => err.into(),
409 }
410 }
411 unsafe extern "system" fn GetTypeFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescription_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: PROPDESC_TYPE_FLAGS, ppdtflags: *mut PROPDESC_TYPE_FLAGS) -> ::windows::core::HRESULT {
412 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
413 let this = (*this).get_impl();
414 match this.GetTypeFlags(::core::mem::transmute_copy(&mask)) {
415 ::core::result::Result::Ok(ok__) => {
416 ::core::ptr::write(ppdtflags, ::core::mem::transmute(ok__));
417 ::windows::core::HRESULT(0)
418 }
419 ::core::result::Result::Err(err) => err.into(),
420 }
421 }
422 unsafe extern "system" fn GetViewFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescription_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppdvflags: *mut PROPDESC_VIEW_FLAGS) -> ::windows::core::HRESULT {
423 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
424 let this = (*this).get_impl();
425 match this.GetViewFlags() {
426 ::core::result::Result::Ok(ok__) => {
427 ::core::ptr::write(ppdvflags, ::core::mem::transmute(ok__));
428 ::windows::core::HRESULT(0)
429 }
430 ::core::result::Result::Err(err) => err.into(),
431 }
432 }
433 unsafe extern "system" fn GetDefaultColumnWidth<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescription_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcxchars: *mut u32) -> ::windows::core::HRESULT {
434 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
435 let this = (*this).get_impl();
436 match this.GetDefaultColumnWidth() {
437 ::core::result::Result::Ok(ok__) => {
438 ::core::ptr::write(pcxchars, ::core::mem::transmute(ok__));
439 ::windows::core::HRESULT(0)
440 }
441 ::core::result::Result::Err(err) => err.into(),
442 }
443 }
444 unsafe extern "system" fn GetDisplayType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescription_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdisplaytype: *mut PROPDESC_DISPLAYTYPE) -> ::windows::core::HRESULT {
445 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
446 let this = (*this).get_impl();
447 match this.GetDisplayType() {
448 ::core::result::Result::Ok(ok__) => {
449 ::core::ptr::write(pdisplaytype, ::core::mem::transmute(ok__));
450 ::windows::core::HRESULT(0)
451 }
452 ::core::result::Result::Err(err) => err.into(),
453 }
454 }
455 unsafe extern "system" fn GetColumnState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescription_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcsflags: *mut u32) -> ::windows::core::HRESULT {
456 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
457 let this = (*this).get_impl();
458 match this.GetColumnState() {
459 ::core::result::Result::Ok(ok__) => {
460 ::core::ptr::write(pcsflags, ::core::mem::transmute(ok__));
461 ::windows::core::HRESULT(0)
462 }
463 ::core::result::Result::Err(err) => err.into(),
464 }
465 }
466 unsafe extern "system" fn GetGroupingRange<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescription_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pgr: *mut PROPDESC_GROUPING_RANGE) -> ::windows::core::HRESULT {
467 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
468 let this = (*this).get_impl();
469 match this.GetGroupingRange() {
470 ::core::result::Result::Ok(ok__) => {
471 ::core::ptr::write(pgr, ::core::mem::transmute(ok__));
472 ::windows::core::HRESULT(0)
473 }
474 ::core::result::Result::Err(err) => err.into(),
475 }
476 }
477 unsafe extern "system" fn GetRelativeDescriptionType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescription_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prdt: *mut PROPDESC_RELATIVEDESCRIPTION_TYPE) -> ::windows::core::HRESULT {
478 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
479 let this = (*this).get_impl();
480 match this.GetRelativeDescriptionType() {
481 ::core::result::Result::Ok(ok__) => {
482 ::core::ptr::write(prdt, ::core::mem::transmute(ok__));
483 ::windows::core::HRESULT(0)
484 }
485 ::core::result::Result::Err(err) => err.into(),
486 }
487 }
488 unsafe extern "system" fn GetRelativeDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescription_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, propvar1: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, propvar2: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, ppszdesc1: *mut ::windows::core::PWSTR, ppszdesc2: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
489 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
490 let this = (*this).get_impl();
491 this.GetRelativeDescription(::core::mem::transmute_copy(&propvar1), ::core::mem::transmute_copy(&propvar2), ::core::mem::transmute_copy(&ppszdesc1), ::core::mem::transmute_copy(&ppszdesc2)).into()
492 }
493 unsafe extern "system" fn GetSortDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescription_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psd: *mut PROPDESC_SORTDESCRIPTION) -> ::windows::core::HRESULT {
494 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
495 let this = (*this).get_impl();
496 match this.GetSortDescription() {
497 ::core::result::Result::Ok(ok__) => {
498 ::core::ptr::write(psd, ::core::mem::transmute(ok__));
499 ::windows::core::HRESULT(0)
500 }
501 ::core::result::Result::Err(err) => err.into(),
502 }
503 }
504 unsafe extern "system" fn GetSortDescriptionLabel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescription_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fdescending: super::super::super::Foundation::BOOL, ppszdescription: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
505 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
506 let this = (*this).get_impl();
507 match this.GetSortDescriptionLabel(::core::mem::transmute_copy(&fdescending)) {
508 ::core::result::Result::Ok(ok__) => {
509 ::core::ptr::write(ppszdescription, ::core::mem::transmute(ok__));
510 ::windows::core::HRESULT(0)
511 }
512 ::core::result::Result::Err(err) => err.into(),
513 }
514 }
515 unsafe extern "system" fn GetAggregationType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescription_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, paggtype: *mut PROPDESC_AGGREGATION_TYPE) -> ::windows::core::HRESULT {
516 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
517 let this = (*this).get_impl();
518 match this.GetAggregationType() {
519 ::core::result::Result::Ok(ok__) => {
520 ::core::ptr::write(paggtype, ::core::mem::transmute(ok__));
521 ::windows::core::HRESULT(0)
522 }
523 ::core::result::Result::Err(err) => err.into(),
524 }
525 }
526 unsafe extern "system" fn GetConditionType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescription_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcontype: *mut PROPDESC_CONDITION_TYPE, popdefault: *mut super::super::super::System::Search::Common::CONDITION_OPERATION) -> ::windows::core::HRESULT {
527 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
528 let this = (*this).get_impl();
529 this.GetConditionType(::core::mem::transmute_copy(&pcontype), ::core::mem::transmute_copy(&popdefault)).into()
530 }
531 unsafe extern "system" fn GetEnumTypeList<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescription_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
532 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
533 let this = (*this).get_impl();
534 this.GetEnumTypeList(::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
535 }
536 unsafe extern "system" fn CoerceToCanonicalValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescription_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppropvar: *mut super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT {
537 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
538 let this = (*this).get_impl();
539 this.CoerceToCanonicalValue(::core::mem::transmute_copy(&ppropvar)).into()
540 }
541 unsafe extern "system" fn FormatForDisplay<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescription_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, pdfflags: PROPDESC_FORMAT_FLAGS, ppszdisplay: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
542 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
543 let this = (*this).get_impl();
544 match this.FormatForDisplay(::core::mem::transmute_copy(&propvar), ::core::mem::transmute_copy(&pdfflags)) {
545 ::core::result::Result::Ok(ok__) => {
546 ::core::ptr::write(ppszdisplay, ::core::mem::transmute(ok__));
547 ::windows::core::HRESULT(0)
548 }
549 ::core::result::Result::Err(err) => err.into(),
550 }
551 }
552 unsafe extern "system" fn IsValueCanonical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescription_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT {
553 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
554 let this = (*this).get_impl();
555 this.IsValueCanonical(::core::mem::transmute_copy(&propvar)).into()
556 }
557 Self {
558 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
559 GetPropertyKey: GetPropertyKey::<Identity, Impl, OFFSET>,
560 GetCanonicalName: GetCanonicalName::<Identity, Impl, OFFSET>,
561 GetPropertyType: GetPropertyType::<Identity, Impl, OFFSET>,
562 GetDisplayName: GetDisplayName::<Identity, Impl, OFFSET>,
563 GetEditInvitation: GetEditInvitation::<Identity, Impl, OFFSET>,
564 GetTypeFlags: GetTypeFlags::<Identity, Impl, OFFSET>,
565 GetViewFlags: GetViewFlags::<Identity, Impl, OFFSET>,
566 GetDefaultColumnWidth: GetDefaultColumnWidth::<Identity, Impl, OFFSET>,
567 GetDisplayType: GetDisplayType::<Identity, Impl, OFFSET>,
568 GetColumnState: GetColumnState::<Identity, Impl, OFFSET>,
569 GetGroupingRange: GetGroupingRange::<Identity, Impl, OFFSET>,
570 GetRelativeDescriptionType: GetRelativeDescriptionType::<Identity, Impl, OFFSET>,
571 GetRelativeDescription: GetRelativeDescription::<Identity, Impl, OFFSET>,
572 GetSortDescription: GetSortDescription::<Identity, Impl, OFFSET>,
573 GetSortDescriptionLabel: GetSortDescriptionLabel::<Identity, Impl, OFFSET>,
574 GetAggregationType: GetAggregationType::<Identity, Impl, OFFSET>,
575 GetConditionType: GetConditionType::<Identity, Impl, OFFSET>,
576 GetEnumTypeList: GetEnumTypeList::<Identity, Impl, OFFSET>,
577 CoerceToCanonicalValue: CoerceToCanonicalValue::<Identity, Impl, OFFSET>,
578 FormatForDisplay: FormatForDisplay::<Identity, Impl, OFFSET>,
579 IsValueCanonical: IsValueCanonical::<Identity, Impl, OFFSET>,
580 }
581 }
582 pub fn matches(iid: &windows::core::GUID) -> bool {
583 iid == &<IPropertyDescription as ::windows::core::ComInterface>::IID
584 }
585}
586#[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Search_Common\"`, `\"implement\"`*"]
587#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Search_Common"))]
588pub trait IPropertyDescription2_Impl: Sized + IPropertyDescription_Impl {
589 fn GetImageReferenceForValue(&self, propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::Result<::windows::core::PWSTR>;
590}
591#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Search_Common"))]
592impl ::windows::core::RuntimeName for IPropertyDescription2 {}
593#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Search_Common"))]
594impl IPropertyDescription2_Vtbl {
595 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescription2_Impl, const OFFSET: isize>() -> IPropertyDescription2_Vtbl {
596 unsafe extern "system" fn GetImageReferenceForValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescription2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, ppszimageres: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
597 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
598 let this = (*this).get_impl();
599 match this.GetImageReferenceForValue(::core::mem::transmute_copy(&propvar)) {
600 ::core::result::Result::Ok(ok__) => {
601 ::core::ptr::write(ppszimageres, ::core::mem::transmute(ok__));
602 ::windows::core::HRESULT(0)
603 }
604 ::core::result::Result::Err(err) => err.into(),
605 }
606 }
607 Self {
608 base__: IPropertyDescription_Vtbl::new::<Identity, Impl, OFFSET>(),
609 GetImageReferenceForValue: GetImageReferenceForValue::<Identity, Impl, OFFSET>,
610 }
611 }
612 pub fn matches(iid: &windows::core::GUID) -> bool {
613 iid == &<IPropertyDescription2 as ::windows::core::ComInterface>::IID || iid == &<IPropertyDescription as ::windows::core::ComInterface>::IID
614 }
615}
616#[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Search_Common\"`, `\"implement\"`*"]
617#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Search_Common"))]
618pub trait IPropertyDescriptionAliasInfo_Impl: Sized + IPropertyDescription_Impl {
619 fn GetSortByAlias(&self, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>;
620 fn GetAdditionalSortByAliases(&self, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>;
621}
622#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Search_Common"))]
623impl ::windows::core::RuntimeName for IPropertyDescriptionAliasInfo {}
624#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Search_Common"))]
625impl IPropertyDescriptionAliasInfo_Vtbl {
626 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescriptionAliasInfo_Impl, const OFFSET: isize>() -> IPropertyDescriptionAliasInfo_Vtbl {
627 unsafe extern "system" fn GetSortByAlias<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescriptionAliasInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
628 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
629 let this = (*this).get_impl();
630 this.GetSortByAlias(::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
631 }
632 unsafe extern "system" fn GetAdditionalSortByAliases<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescriptionAliasInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
633 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
634 let this = (*this).get_impl();
635 this.GetAdditionalSortByAliases(::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
636 }
637 Self {
638 base__: IPropertyDescription_Vtbl::new::<Identity, Impl, OFFSET>(),
639 GetSortByAlias: GetSortByAlias::<Identity, Impl, OFFSET>,
640 GetAdditionalSortByAliases: GetAdditionalSortByAliases::<Identity, Impl, OFFSET>,
641 }
642 }
643 pub fn matches(iid: &windows::core::GUID) -> bool {
644 iid == &<IPropertyDescriptionAliasInfo as ::windows::core::ComInterface>::IID || iid == &<IPropertyDescription as ::windows::core::ComInterface>::IID
645 }
646}
647#[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
648pub trait IPropertyDescriptionList_Impl: Sized {
649 fn GetCount(&self) -> ::windows::core::Result<u32>;
650 fn GetAt(&self, ielem: u32, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>;
651}
652impl ::windows::core::RuntimeName for IPropertyDescriptionList {}
653impl IPropertyDescriptionList_Vtbl {
654 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescriptionList_Impl, const OFFSET: isize>() -> IPropertyDescriptionList_Vtbl {
655 unsafe extern "system" fn GetCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescriptionList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcelem: *mut u32) -> ::windows::core::HRESULT {
656 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
657 let this = (*this).get_impl();
658 match this.GetCount() {
659 ::core::result::Result::Ok(ok__) => {
660 ::core::ptr::write(pcelem, ::core::mem::transmute(ok__));
661 ::windows::core::HRESULT(0)
662 }
663 ::core::result::Result::Err(err) => err.into(),
664 }
665 }
666 unsafe extern "system" fn GetAt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescriptionList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ielem: u32, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
667 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
668 let this = (*this).get_impl();
669 this.GetAt(::core::mem::transmute_copy(&ielem), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
670 }
671 Self {
672 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
673 GetCount: GetCount::<Identity, Impl, OFFSET>,
674 GetAt: GetAt::<Identity, Impl, OFFSET>,
675 }
676 }
677 pub fn matches(iid: &windows::core::GUID) -> bool {
678 iid == &<IPropertyDescriptionList as ::windows::core::ComInterface>::IID
679 }
680}
681#[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Search_Common\"`, `\"implement\"`*"]
682#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Search_Common"))]
683pub trait IPropertyDescriptionRelatedPropertyInfo_Impl: Sized + IPropertyDescription_Impl {
684 fn GetRelatedProperty(&self, pszrelationshipname: &::windows::core::PCWSTR, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>;
685}
686#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Search_Common"))]
687impl ::windows::core::RuntimeName for IPropertyDescriptionRelatedPropertyInfo {}
688#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Search_Common"))]
689impl IPropertyDescriptionRelatedPropertyInfo_Vtbl {
690 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescriptionRelatedPropertyInfo_Impl, const OFFSET: isize>() -> IPropertyDescriptionRelatedPropertyInfo_Vtbl {
691 unsafe extern "system" fn GetRelatedProperty<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescriptionRelatedPropertyInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszrelationshipname: ::windows::core::PCWSTR, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
692 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
693 let this = (*this).get_impl();
694 this.GetRelatedProperty(::core::mem::transmute(&pszrelationshipname), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
695 }
696 Self { base__: IPropertyDescription_Vtbl::new::<Identity, Impl, OFFSET>(), GetRelatedProperty: GetRelatedProperty::<Identity, Impl, OFFSET> }
697 }
698 pub fn matches(iid: &windows::core::GUID) -> bool {
699 iid == &<IPropertyDescriptionRelatedPropertyInfo as ::windows::core::ComInterface>::IID || iid == &<IPropertyDescription as ::windows::core::ComInterface>::IID
700 }
701}
702#[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Search_Common\"`, `\"implement\"`*"]
703#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Search_Common"))]
704pub trait IPropertyDescriptionSearchInfo_Impl: Sized + IPropertyDescription_Impl {
705 fn GetSearchInfoFlags(&self) -> ::windows::core::Result<PROPDESC_SEARCHINFO_FLAGS>;
706 fn GetColumnIndexType(&self) -> ::windows::core::Result<PROPDESC_COLUMNINDEX_TYPE>;
707 fn GetProjectionString(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
708 fn GetMaxSize(&self) -> ::windows::core::Result<u32>;
709}
710#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Search_Common"))]
711impl ::windows::core::RuntimeName for IPropertyDescriptionSearchInfo {}
712#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Search_Common"))]
713impl IPropertyDescriptionSearchInfo_Vtbl {
714 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescriptionSearchInfo_Impl, const OFFSET: isize>() -> IPropertyDescriptionSearchInfo_Vtbl {
715 unsafe extern "system" fn GetSearchInfoFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescriptionSearchInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppdsiflags: *mut PROPDESC_SEARCHINFO_FLAGS) -> ::windows::core::HRESULT {
716 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
717 let this = (*this).get_impl();
718 match this.GetSearchInfoFlags() {
719 ::core::result::Result::Ok(ok__) => {
720 ::core::ptr::write(ppdsiflags, ::core::mem::transmute(ok__));
721 ::windows::core::HRESULT(0)
722 }
723 ::core::result::Result::Err(err) => err.into(),
724 }
725 }
726 unsafe extern "system" fn GetColumnIndexType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescriptionSearchInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppdcitype: *mut PROPDESC_COLUMNINDEX_TYPE) -> ::windows::core::HRESULT {
727 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
728 let this = (*this).get_impl();
729 match this.GetColumnIndexType() {
730 ::core::result::Result::Ok(ok__) => {
731 ::core::ptr::write(ppdcitype, ::core::mem::transmute(ok__));
732 ::windows::core::HRESULT(0)
733 }
734 ::core::result::Result::Err(err) => err.into(),
735 }
736 }
737 unsafe extern "system" fn GetProjectionString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescriptionSearchInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszprojection: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
738 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
739 let this = (*this).get_impl();
740 match this.GetProjectionString() {
741 ::core::result::Result::Ok(ok__) => {
742 ::core::ptr::write(ppszprojection, ::core::mem::transmute(ok__));
743 ::windows::core::HRESULT(0)
744 }
745 ::core::result::Result::Err(err) => err.into(),
746 }
747 }
748 unsafe extern "system" fn GetMaxSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyDescriptionSearchInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcbmaxsize: *mut u32) -> ::windows::core::HRESULT {
749 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
750 let this = (*this).get_impl();
751 match this.GetMaxSize() {
752 ::core::result::Result::Ok(ok__) => {
753 ::core::ptr::write(pcbmaxsize, ::core::mem::transmute(ok__));
754 ::windows::core::HRESULT(0)
755 }
756 ::core::result::Result::Err(err) => err.into(),
757 }
758 }
759 Self {
760 base__: IPropertyDescription_Vtbl::new::<Identity, Impl, OFFSET>(),
761 GetSearchInfoFlags: GetSearchInfoFlags::<Identity, Impl, OFFSET>,
762 GetColumnIndexType: GetColumnIndexType::<Identity, Impl, OFFSET>,
763 GetProjectionString: GetProjectionString::<Identity, Impl, OFFSET>,
764 GetMaxSize: GetMaxSize::<Identity, Impl, OFFSET>,
765 }
766 }
767 pub fn matches(iid: &windows::core::GUID) -> bool {
768 iid == &<IPropertyDescriptionSearchInfo as ::windows::core::ComInterface>::IID || iid == &<IPropertyDescription as ::windows::core::ComInterface>::IID
769 }
770}
771#[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"implement\"`*"]
772#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
773pub trait IPropertyEnumType_Impl: Sized {
774 fn GetEnumType(&self) -> ::windows::core::Result<PROPENUMTYPE>;
775 fn GetValue(&self) -> ::windows::core::Result<super::super::super::System::Com::StructuredStorage::PROPVARIANT>;
776 fn GetRangeMinValue(&self) -> ::windows::core::Result<super::super::super::System::Com::StructuredStorage::PROPVARIANT>;
777 fn GetRangeSetValue(&self) -> ::windows::core::Result<super::super::super::System::Com::StructuredStorage::PROPVARIANT>;
778 fn GetDisplayText(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
779}
780#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
781impl ::windows::core::RuntimeName for IPropertyEnumType {}
782#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
783impl IPropertyEnumType_Vtbl {
784 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyEnumType_Impl, const OFFSET: isize>() -> IPropertyEnumType_Vtbl {
785 unsafe extern "system" fn GetEnumType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyEnumType_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, penumtype: *mut PROPENUMTYPE) -> ::windows::core::HRESULT {
786 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
787 let this = (*this).get_impl();
788 match this.GetEnumType() {
789 ::core::result::Result::Ok(ok__) => {
790 ::core::ptr::write(penumtype, ::core::mem::transmute(ok__));
791 ::windows::core::HRESULT(0)
792 }
793 ::core::result::Result::Err(err) => err.into(),
794 }
795 }
796 unsafe extern "system" fn GetValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyEnumType_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppropvar: *mut super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT {
797 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
798 let this = (*this).get_impl();
799 match this.GetValue() {
800 ::core::result::Result::Ok(ok__) => {
801 ::core::ptr::write(ppropvar, ::core::mem::transmute(ok__));
802 ::windows::core::HRESULT(0)
803 }
804 ::core::result::Result::Err(err) => err.into(),
805 }
806 }
807 unsafe extern "system" fn GetRangeMinValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyEnumType_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppropvarmin: *mut super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT {
808 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
809 let this = (*this).get_impl();
810 match this.GetRangeMinValue() {
811 ::core::result::Result::Ok(ok__) => {
812 ::core::ptr::write(ppropvarmin, ::core::mem::transmute(ok__));
813 ::windows::core::HRESULT(0)
814 }
815 ::core::result::Result::Err(err) => err.into(),
816 }
817 }
818 unsafe extern "system" fn GetRangeSetValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyEnumType_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppropvarset: *mut super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT {
819 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
820 let this = (*this).get_impl();
821 match this.GetRangeSetValue() {
822 ::core::result::Result::Ok(ok__) => {
823 ::core::ptr::write(ppropvarset, ::core::mem::transmute(ok__));
824 ::windows::core::HRESULT(0)
825 }
826 ::core::result::Result::Err(err) => err.into(),
827 }
828 }
829 unsafe extern "system" fn GetDisplayText<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyEnumType_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszdisplay: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
830 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
831 let this = (*this).get_impl();
832 match this.GetDisplayText() {
833 ::core::result::Result::Ok(ok__) => {
834 ::core::ptr::write(ppszdisplay, ::core::mem::transmute(ok__));
835 ::windows::core::HRESULT(0)
836 }
837 ::core::result::Result::Err(err) => err.into(),
838 }
839 }
840 Self {
841 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
842 GetEnumType: GetEnumType::<Identity, Impl, OFFSET>,
843 GetValue: GetValue::<Identity, Impl, OFFSET>,
844 GetRangeMinValue: GetRangeMinValue::<Identity, Impl, OFFSET>,
845 GetRangeSetValue: GetRangeSetValue::<Identity, Impl, OFFSET>,
846 GetDisplayText: GetDisplayText::<Identity, Impl, OFFSET>,
847 }
848 }
849 pub fn matches(iid: &windows::core::GUID) -> bool {
850 iid == &<IPropertyEnumType as ::windows::core::ComInterface>::IID
851 }
852}
853#[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"implement\"`*"]
854#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
855pub trait IPropertyEnumType2_Impl: Sized + IPropertyEnumType_Impl {
856 fn GetImageReference(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
857}
858#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
859impl ::windows::core::RuntimeName for IPropertyEnumType2 {}
860#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
861impl IPropertyEnumType2_Vtbl {
862 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyEnumType2_Impl, const OFFSET: isize>() -> IPropertyEnumType2_Vtbl {
863 unsafe extern "system" fn GetImageReference<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyEnumType2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszimageres: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
864 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
865 let this = (*this).get_impl();
866 match this.GetImageReference() {
867 ::core::result::Result::Ok(ok__) => {
868 ::core::ptr::write(ppszimageres, ::core::mem::transmute(ok__));
869 ::windows::core::HRESULT(0)
870 }
871 ::core::result::Result::Err(err) => err.into(),
872 }
873 }
874 Self { base__: IPropertyEnumType_Vtbl::new::<Identity, Impl, OFFSET>(), GetImageReference: GetImageReference::<Identity, Impl, OFFSET> }
875 }
876 pub fn matches(iid: &windows::core::GUID) -> bool {
877 iid == &<IPropertyEnumType2 as ::windows::core::ComInterface>::IID || iid == &<IPropertyEnumType as ::windows::core::ComInterface>::IID
878 }
879}
880#[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"implement\"`*"]
881#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
882pub trait IPropertyEnumTypeList_Impl: Sized {
883 fn GetCount(&self) -> ::windows::core::Result<u32>;
884 fn GetAt(&self, itype: u32, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>;
885 fn GetConditionAt(&self, nindex: u32, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>;
886 fn FindMatchingIndex(&self, propvarcmp: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::Result<u32>;
887}
888#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
889impl ::windows::core::RuntimeName for IPropertyEnumTypeList {}
890#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
891impl IPropertyEnumTypeList_Vtbl {
892 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyEnumTypeList_Impl, const OFFSET: isize>() -> IPropertyEnumTypeList_Vtbl {
893 unsafe extern "system" fn GetCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyEnumTypeList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pctypes: *mut u32) -> ::windows::core::HRESULT {
894 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
895 let this = (*this).get_impl();
896 match this.GetCount() {
897 ::core::result::Result::Ok(ok__) => {
898 ::core::ptr::write(pctypes, ::core::mem::transmute(ok__));
899 ::windows::core::HRESULT(0)
900 }
901 ::core::result::Result::Err(err) => err.into(),
902 }
903 }
904 unsafe extern "system" fn GetAt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyEnumTypeList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, itype: u32, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
905 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
906 let this = (*this).get_impl();
907 this.GetAt(::core::mem::transmute_copy(&itype), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
908 }
909 unsafe extern "system" fn GetConditionAt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyEnumTypeList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nindex: u32, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
910 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
911 let this = (*this).get_impl();
912 this.GetConditionAt(::core::mem::transmute_copy(&nindex), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
913 }
914 unsafe extern "system" fn FindMatchingIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyEnumTypeList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, propvarcmp: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, pnindex: *mut u32) -> ::windows::core::HRESULT {
915 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
916 let this = (*this).get_impl();
917 match this.FindMatchingIndex(::core::mem::transmute_copy(&propvarcmp)) {
918 ::core::result::Result::Ok(ok__) => {
919 ::core::ptr::write(pnindex, ::core::mem::transmute(ok__));
920 ::windows::core::HRESULT(0)
921 }
922 ::core::result::Result::Err(err) => err.into(),
923 }
924 }
925 Self {
926 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
927 GetCount: GetCount::<Identity, Impl, OFFSET>,
928 GetAt: GetAt::<Identity, Impl, OFFSET>,
929 GetConditionAt: GetConditionAt::<Identity, Impl, OFFSET>,
930 FindMatchingIndex: FindMatchingIndex::<Identity, Impl, OFFSET>,
931 }
932 }
933 pub fn matches(iid: &windows::core::GUID) -> bool {
934 iid == &<IPropertyEnumTypeList as ::windows::core::ComInterface>::IID
935 }
936}
937#[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"implement\"`*"]
938#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
939pub trait IPropertyStore_Impl: Sized {
940 fn GetCount(&self) -> ::windows::core::Result<u32>;
941 fn GetAt(&self, iprop: u32, pkey: *mut PROPERTYKEY) -> ::windows::core::Result<()>;
942 fn GetValue(&self, key: *const PROPERTYKEY) -> ::windows::core::Result<super::super::super::System::Com::StructuredStorage::PROPVARIANT>;
943 fn SetValue(&self, key: *const PROPERTYKEY, propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::Result<()>;
944 fn Commit(&self) -> ::windows::core::Result<()>;
945}
946#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
947impl ::windows::core::RuntimeName for IPropertyStore {}
948#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
949impl IPropertyStore_Vtbl {
950 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyStore_Impl, const OFFSET: isize>() -> IPropertyStore_Vtbl {
951 unsafe extern "system" fn GetCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cprops: *mut u32) -> ::windows::core::HRESULT {
952 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
953 let this = (*this).get_impl();
954 match this.GetCount() {
955 ::core::result::Result::Ok(ok__) => {
956 ::core::ptr::write(cprops, ::core::mem::transmute(ok__));
957 ::windows::core::HRESULT(0)
958 }
959 ::core::result::Result::Err(err) => err.into(),
960 }
961 }
962 unsafe extern "system" fn GetAt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, iprop: u32, pkey: *mut PROPERTYKEY) -> ::windows::core::HRESULT {
963 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
964 let this = (*this).get_impl();
965 this.GetAt(::core::mem::transmute_copy(&iprop), ::core::mem::transmute_copy(&pkey)).into()
966 }
967 unsafe extern "system" fn GetValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: *const PROPERTYKEY, pv: *mut super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT {
968 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
969 let this = (*this).get_impl();
970 match this.GetValue(::core::mem::transmute_copy(&key)) {
971 ::core::result::Result::Ok(ok__) => {
972 ::core::ptr::write(pv, ::core::mem::transmute(ok__));
973 ::windows::core::HRESULT(0)
974 }
975 ::core::result::Result::Err(err) => err.into(),
976 }
977 }
978 unsafe extern "system" fn SetValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: *const PROPERTYKEY, propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT {
979 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
980 let this = (*this).get_impl();
981 this.SetValue(::core::mem::transmute_copy(&key), ::core::mem::transmute_copy(&propvar)).into()
982 }
983 unsafe extern "system" fn Commit<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
984 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
985 let this = (*this).get_impl();
986 this.Commit().into()
987 }
988 Self {
989 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
990 GetCount: GetCount::<Identity, Impl, OFFSET>,
991 GetAt: GetAt::<Identity, Impl, OFFSET>,
992 GetValue: GetValue::<Identity, Impl, OFFSET>,
993 SetValue: SetValue::<Identity, Impl, OFFSET>,
994 Commit: Commit::<Identity, Impl, OFFSET>,
995 }
996 }
997 pub fn matches(iid: &windows::core::GUID) -> bool {
998 iid == &<IPropertyStore as ::windows::core::ComInterface>::IID
999 }
1000}
1001#[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"implement\"`*"]
1002#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
1003pub trait IPropertyStoreCache_Impl: Sized + IPropertyStore_Impl {
1004 fn GetState(&self, key: *const PROPERTYKEY) -> ::windows::core::Result<PSC_STATE>;
1005 fn GetValueAndState(&self, key: *const PROPERTYKEY, ppropvar: *mut super::super::super::System::Com::StructuredStorage::PROPVARIANT, pstate: *mut PSC_STATE) -> ::windows::core::Result<()>;
1006 fn SetState(&self, key: *const PROPERTYKEY, state: PSC_STATE) -> ::windows::core::Result<()>;
1007 fn SetValueAndState(&self, key: *const PROPERTYKEY, ppropvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, state: PSC_STATE) -> ::windows::core::Result<()>;
1008}
1009#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
1010impl ::windows::core::RuntimeName for IPropertyStoreCache {}
1011#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
1012impl IPropertyStoreCache_Vtbl {
1013 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyStoreCache_Impl, const OFFSET: isize>() -> IPropertyStoreCache_Vtbl {
1014 unsafe extern "system" fn GetState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyStoreCache_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: *const PROPERTYKEY, pstate: *mut PSC_STATE) -> ::windows::core::HRESULT {
1015 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1016 let this = (*this).get_impl();
1017 match this.GetState(::core::mem::transmute_copy(&key)) {
1018 ::core::result::Result::Ok(ok__) => {
1019 ::core::ptr::write(pstate, ::core::mem::transmute(ok__));
1020 ::windows::core::HRESULT(0)
1021 }
1022 ::core::result::Result::Err(err) => err.into(),
1023 }
1024 }
1025 unsafe extern "system" fn GetValueAndState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyStoreCache_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: *const PROPERTYKEY, ppropvar: *mut super::super::super::System::Com::StructuredStorage::PROPVARIANT, pstate: *mut PSC_STATE) -> ::windows::core::HRESULT {
1026 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1027 let this = (*this).get_impl();
1028 this.GetValueAndState(::core::mem::transmute_copy(&key), ::core::mem::transmute_copy(&ppropvar), ::core::mem::transmute_copy(&pstate)).into()
1029 }
1030 unsafe extern "system" fn SetState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyStoreCache_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: *const PROPERTYKEY, state: PSC_STATE) -> ::windows::core::HRESULT {
1031 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1032 let this = (*this).get_impl();
1033 this.SetState(::core::mem::transmute_copy(&key), ::core::mem::transmute_copy(&state)).into()
1034 }
1035 unsafe extern "system" fn SetValueAndState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyStoreCache_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: *const PROPERTYKEY, ppropvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, state: PSC_STATE) -> ::windows::core::HRESULT {
1036 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1037 let this = (*this).get_impl();
1038 this.SetValueAndState(::core::mem::transmute_copy(&key), ::core::mem::transmute_copy(&ppropvar), ::core::mem::transmute_copy(&state)).into()
1039 }
1040 Self {
1041 base__: IPropertyStore_Vtbl::new::<Identity, Impl, OFFSET>(),
1042 GetState: GetState::<Identity, Impl, OFFSET>,
1043 GetValueAndState: GetValueAndState::<Identity, Impl, OFFSET>,
1044 SetState: SetState::<Identity, Impl, OFFSET>,
1045 SetValueAndState: SetValueAndState::<Identity, Impl, OFFSET>,
1046 }
1047 }
1048 pub fn matches(iid: &windows::core::GUID) -> bool {
1049 iid == &<IPropertyStoreCache as ::windows::core::ComInterface>::IID || iid == &<IPropertyStore as ::windows::core::ComInterface>::IID
1050 }
1051}
1052#[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
1053pub trait IPropertyStoreCapabilities_Impl: Sized {
1054 fn IsPropertyWritable(&self, key: *const PROPERTYKEY) -> ::windows::core::Result<()>;
1055}
1056impl ::windows::core::RuntimeName for IPropertyStoreCapabilities {}
1057impl IPropertyStoreCapabilities_Vtbl {
1058 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyStoreCapabilities_Impl, const OFFSET: isize>() -> IPropertyStoreCapabilities_Vtbl {
1059 unsafe extern "system" fn IsPropertyWritable<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyStoreCapabilities_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: *const PROPERTYKEY) -> ::windows::core::HRESULT {
1060 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1061 let this = (*this).get_impl();
1062 this.IsPropertyWritable(::core::mem::transmute_copy(&key)).into()
1063 }
1064 Self { base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(), IsPropertyWritable: IsPropertyWritable::<Identity, Impl, OFFSET> }
1065 }
1066 pub fn matches(iid: &windows::core::GUID) -> bool {
1067 iid == &<IPropertyStoreCapabilities as ::windows::core::ComInterface>::IID
1068 }
1069}
1070#[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
1071pub trait IPropertyStoreFactory_Impl: Sized {
1072 fn GetPropertyStore(&self, flags: GETPROPERTYSTOREFLAGS, punkfactory: ::core::option::Option<&::windows::core::IUnknown>, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>;
1073 fn GetPropertyStoreForKeys(&self, rgkeys: *const PROPERTYKEY, ckeys: u32, flags: GETPROPERTYSTOREFLAGS, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>;
1074}
1075impl ::windows::core::RuntimeName for IPropertyStoreFactory {}
1076impl IPropertyStoreFactory_Vtbl {
1077 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyStoreFactory_Impl, const OFFSET: isize>() -> IPropertyStoreFactory_Vtbl {
1078 unsafe extern "system" fn GetPropertyStore<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyStoreFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: GETPROPERTYSTOREFLAGS, punkfactory: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1079 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1080 let this = (*this).get_impl();
1081 this.GetPropertyStore(::core::mem::transmute_copy(&flags), ::windows::core::from_raw_borrowed(&punkfactory), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
1082 }
1083 unsafe extern "system" fn GetPropertyStoreForKeys<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyStoreFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rgkeys: *const PROPERTYKEY, ckeys: u32, flags: GETPROPERTYSTOREFLAGS, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1084 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1085 let this = (*this).get_impl();
1086 this.GetPropertyStoreForKeys(::core::mem::transmute_copy(&rgkeys), ::core::mem::transmute_copy(&ckeys), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
1087 }
1088 Self {
1089 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
1090 GetPropertyStore: GetPropertyStore::<Identity, Impl, OFFSET>,
1091 GetPropertyStoreForKeys: GetPropertyStoreForKeys::<Identity, Impl, OFFSET>,
1092 }
1093 }
1094 pub fn matches(iid: &windows::core::GUID) -> bool {
1095 iid == &<IPropertyStoreFactory as ::windows::core::ComInterface>::IID
1096 }
1097}
1098#[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"implement\"`*"]
1099#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
1100pub trait IPropertySystem_Impl: Sized {
1101 fn GetPropertyDescription(&self, propkey: *const PROPERTYKEY, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>;
1102 fn GetPropertyDescriptionByName(&self, pszcanonicalname: &::windows::core::PCWSTR, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>;
1103 fn GetPropertyDescriptionListFromString(&self, pszproplist: &::windows::core::PCWSTR, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>;
1104 fn EnumeratePropertyDescriptions(&self, filteron: PROPDESC_ENUMFILTER, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>;
1105 fn FormatForDisplay(&self, key: *const PROPERTYKEY, propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, pdff: PROPDESC_FORMAT_FLAGS, psztext: ::windows::core::PWSTR, cchtext: u32) -> ::windows::core::Result<()>;
1106 fn FormatForDisplayAlloc(&self, key: *const PROPERTYKEY, propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, pdff: PROPDESC_FORMAT_FLAGS) -> ::windows::core::Result<::windows::core::PWSTR>;
1107 fn RegisterPropertySchema(&self, pszpath: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
1108 fn UnregisterPropertySchema(&self, pszpath: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
1109 fn RefreshPropertySchema(&self) -> ::windows::core::Result<()>;
1110}
1111#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
1112impl ::windows::core::RuntimeName for IPropertySystem {}
1113#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
1114impl IPropertySystem_Vtbl {
1115 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertySystem_Impl, const OFFSET: isize>() -> IPropertySystem_Vtbl {
1116 unsafe extern "system" fn GetPropertyDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertySystem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, propkey: *const PROPERTYKEY, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1117 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1118 let this = (*this).get_impl();
1119 this.GetPropertyDescription(::core::mem::transmute_copy(&propkey), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
1120 }
1121 unsafe extern "system" fn GetPropertyDescriptionByName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertySystem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszcanonicalname: ::windows::core::PCWSTR, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1122 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1123 let this = (*this).get_impl();
1124 this.GetPropertyDescriptionByName(::core::mem::transmute(&pszcanonicalname), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
1125 }
1126 unsafe extern "system" fn GetPropertyDescriptionListFromString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertySystem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszproplist: ::windows::core::PCWSTR, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1127 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1128 let this = (*this).get_impl();
1129 this.GetPropertyDescriptionListFromString(::core::mem::transmute(&pszproplist), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
1130 }
1131 unsafe extern "system" fn EnumeratePropertyDescriptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertySystem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, filteron: PROPDESC_ENUMFILTER, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1132 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1133 let this = (*this).get_impl();
1134 this.EnumeratePropertyDescriptions(::core::mem::transmute_copy(&filteron), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
1135 }
1136 unsafe extern "system" fn FormatForDisplay<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertySystem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: *const PROPERTYKEY, propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, pdff: PROPDESC_FORMAT_FLAGS, psztext: ::windows::core::PWSTR, cchtext: u32) -> ::windows::core::HRESULT {
1137 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1138 let this = (*this).get_impl();
1139 this.FormatForDisplay(::core::mem::transmute_copy(&key), ::core::mem::transmute_copy(&propvar), ::core::mem::transmute_copy(&pdff), ::core::mem::transmute_copy(&psztext), ::core::mem::transmute_copy(&cchtext)).into()
1140 }
1141 unsafe extern "system" fn FormatForDisplayAlloc<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertySystem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: *const PROPERTYKEY, propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, pdff: PROPDESC_FORMAT_FLAGS, ppszdisplay: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
1142 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1143 let this = (*this).get_impl();
1144 match this.FormatForDisplayAlloc(::core::mem::transmute_copy(&key), ::core::mem::transmute_copy(&propvar), ::core::mem::transmute_copy(&pdff)) {
1145 ::core::result::Result::Ok(ok__) => {
1146 ::core::ptr::write(ppszdisplay, ::core::mem::transmute(ok__));
1147 ::windows::core::HRESULT(0)
1148 }
1149 ::core::result::Result::Err(err) => err.into(),
1150 }
1151 }
1152 unsafe extern "system" fn RegisterPropertySchema<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertySystem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszpath: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
1153 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1154 let this = (*this).get_impl();
1155 this.RegisterPropertySchema(::core::mem::transmute(&pszpath)).into()
1156 }
1157 unsafe extern "system" fn UnregisterPropertySchema<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertySystem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszpath: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
1158 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1159 let this = (*this).get_impl();
1160 this.UnregisterPropertySchema(::core::mem::transmute(&pszpath)).into()
1161 }
1162 unsafe extern "system" fn RefreshPropertySchema<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertySystem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1163 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1164 let this = (*this).get_impl();
1165 this.RefreshPropertySchema().into()
1166 }
1167 Self {
1168 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
1169 GetPropertyDescription: GetPropertyDescription::<Identity, Impl, OFFSET>,
1170 GetPropertyDescriptionByName: GetPropertyDescriptionByName::<Identity, Impl, OFFSET>,
1171 GetPropertyDescriptionListFromString: GetPropertyDescriptionListFromString::<Identity, Impl, OFFSET>,
1172 EnumeratePropertyDescriptions: EnumeratePropertyDescriptions::<Identity, Impl, OFFSET>,
1173 FormatForDisplay: FormatForDisplay::<Identity, Impl, OFFSET>,
1174 FormatForDisplayAlloc: FormatForDisplayAlloc::<Identity, Impl, OFFSET>,
1175 RegisterPropertySchema: RegisterPropertySchema::<Identity, Impl, OFFSET>,
1176 UnregisterPropertySchema: UnregisterPropertySchema::<Identity, Impl, OFFSET>,
1177 RefreshPropertySchema: RefreshPropertySchema::<Identity, Impl, OFFSET>,
1178 }
1179 }
1180 pub fn matches(iid: &windows::core::GUID) -> bool {
1181 iid == &<IPropertySystem as ::windows::core::ComInterface>::IID
1182 }
1183}
1184#[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
1185pub trait IPropertySystemChangeNotify_Impl: Sized {
1186 fn SchemaRefreshed(&self) -> ::windows::core::Result<()>;
1187}
1188impl ::windows::core::RuntimeName for IPropertySystemChangeNotify {}
1189impl IPropertySystemChangeNotify_Vtbl {
1190 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertySystemChangeNotify_Impl, const OFFSET: isize>() -> IPropertySystemChangeNotify_Vtbl {
1191 unsafe extern "system" fn SchemaRefreshed<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertySystemChangeNotify_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1192 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1193 let this = (*this).get_impl();
1194 this.SchemaRefreshed().into()
1195 }
1196 Self { base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(), SchemaRefreshed: SchemaRefreshed::<Identity, Impl, OFFSET> }
1197 }
1198 pub fn matches(iid: &windows::core::GUID) -> bool {
1199 iid == &<IPropertySystemChangeNotify as ::windows::core::ComInterface>::IID
1200 }
1201}
1202#[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"implement\"`*"]
1203#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
1204pub trait IPropertyUI_Impl: Sized {
1205 fn ParsePropertyName(&self, pszname: &::windows::core::PCWSTR, pfmtid: *mut ::windows::core::GUID, ppid: *mut u32, pcheaten: *mut u32) -> ::windows::core::Result<()>;
1206 fn GetCannonicalName(&self, fmtid: *const ::windows::core::GUID, pid: u32, pwsztext: ::windows::core::PWSTR, cchtext: u32) -> ::windows::core::Result<()>;
1207 fn GetDisplayName(&self, fmtid: *const ::windows::core::GUID, pid: u32, flags: PROPERTYUI_NAME_FLAGS, pwsztext: ::windows::core::PWSTR, cchtext: u32) -> ::windows::core::Result<()>;
1208 fn GetPropertyDescription(&self, fmtid: *const ::windows::core::GUID, pid: u32, pwsztext: ::windows::core::PWSTR, cchtext: u32) -> ::windows::core::Result<()>;
1209 fn GetDefaultWidth(&self, fmtid: *const ::windows::core::GUID, pid: u32) -> ::windows::core::Result<u32>;
1210 fn GetFlags(&self, fmtid: *const ::windows::core::GUID, pid: u32) -> ::windows::core::Result<PROPERTYUI_FLAGS>;
1211 fn FormatForDisplay(&self, fmtid: *const ::windows::core::GUID, pid: u32, ppropvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, puiff: PROPERTYUI_FORMAT_FLAGS, pwsztext: ::windows::core::PWSTR, cchtext: u32) -> ::windows::core::Result<()>;
1212 fn GetHelpInfo(&self, fmtid: *const ::windows::core::GUID, pid: u32, pwszhelpfile: ::windows::core::PWSTR, cch: u32, puhelpid: *mut u32) -> ::windows::core::Result<()>;
1213}
1214#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
1215impl ::windows::core::RuntimeName for IPropertyUI {}
1216#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
1217impl IPropertyUI_Vtbl {
1218 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyUI_Impl, const OFFSET: isize>() -> IPropertyUI_Vtbl {
1219 unsafe extern "system" fn ParsePropertyName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyUI_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszname: ::windows::core::PCWSTR, pfmtid: *mut ::windows::core::GUID, ppid: *mut u32, pcheaten: *mut u32) -> ::windows::core::HRESULT {
1220 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1221 let this = (*this).get_impl();
1222 this.ParsePropertyName(::core::mem::transmute(&pszname), ::core::mem::transmute_copy(&pfmtid), ::core::mem::transmute_copy(&ppid), ::core::mem::transmute_copy(&pcheaten)).into()
1223 }
1224 unsafe extern "system" fn GetCannonicalName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyUI_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fmtid: *const ::windows::core::GUID, pid: u32, pwsztext: ::windows::core::PWSTR, cchtext: u32) -> ::windows::core::HRESULT {
1225 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1226 let this = (*this).get_impl();
1227 this.GetCannonicalName(::core::mem::transmute_copy(&fmtid), ::core::mem::transmute_copy(&pid), ::core::mem::transmute_copy(&pwsztext), ::core::mem::transmute_copy(&cchtext)).into()
1228 }
1229 unsafe extern "system" fn GetDisplayName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyUI_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fmtid: *const ::windows::core::GUID, pid: u32, flags: PROPERTYUI_NAME_FLAGS, pwsztext: ::windows::core::PWSTR, cchtext: u32) -> ::windows::core::HRESULT {
1230 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1231 let this = (*this).get_impl();
1232 this.GetDisplayName(::core::mem::transmute_copy(&fmtid), ::core::mem::transmute_copy(&pid), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&pwsztext), ::core::mem::transmute_copy(&cchtext)).into()
1233 }
1234 unsafe extern "system" fn GetPropertyDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyUI_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fmtid: *const ::windows::core::GUID, pid: u32, pwsztext: ::windows::core::PWSTR, cchtext: u32) -> ::windows::core::HRESULT {
1235 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1236 let this = (*this).get_impl();
1237 this.GetPropertyDescription(::core::mem::transmute_copy(&fmtid), ::core::mem::transmute_copy(&pid), ::core::mem::transmute_copy(&pwsztext), ::core::mem::transmute_copy(&cchtext)).into()
1238 }
1239 unsafe extern "system" fn GetDefaultWidth<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyUI_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fmtid: *const ::windows::core::GUID, pid: u32, pcxchars: *mut u32) -> ::windows::core::HRESULT {
1240 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1241 let this = (*this).get_impl();
1242 match this.GetDefaultWidth(::core::mem::transmute_copy(&fmtid), ::core::mem::transmute_copy(&pid)) {
1243 ::core::result::Result::Ok(ok__) => {
1244 ::core::ptr::write(pcxchars, ::core::mem::transmute(ok__));
1245 ::windows::core::HRESULT(0)
1246 }
1247 ::core::result::Result::Err(err) => err.into(),
1248 }
1249 }
1250 unsafe extern "system" fn GetFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyUI_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fmtid: *const ::windows::core::GUID, pid: u32, pflags: *mut PROPERTYUI_FLAGS) -> ::windows::core::HRESULT {
1251 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1252 let this = (*this).get_impl();
1253 match this.GetFlags(::core::mem::transmute_copy(&fmtid), ::core::mem::transmute_copy(&pid)) {
1254 ::core::result::Result::Ok(ok__) => {
1255 ::core::ptr::write(pflags, ::core::mem::transmute(ok__));
1256 ::windows::core::HRESULT(0)
1257 }
1258 ::core::result::Result::Err(err) => err.into(),
1259 }
1260 }
1261 unsafe extern "system" fn FormatForDisplay<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyUI_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fmtid: *const ::windows::core::GUID, pid: u32, ppropvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, puiff: PROPERTYUI_FORMAT_FLAGS, pwsztext: ::windows::core::PWSTR, cchtext: u32) -> ::windows::core::HRESULT {
1262 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1263 let this = (*this).get_impl();
1264 this.FormatForDisplay(::core::mem::transmute_copy(&fmtid), ::core::mem::transmute_copy(&pid), ::core::mem::transmute_copy(&ppropvar), ::core::mem::transmute_copy(&puiff), ::core::mem::transmute_copy(&pwsztext), ::core::mem::transmute_copy(&cchtext)).into()
1265 }
1266 unsafe extern "system" fn GetHelpInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPropertyUI_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fmtid: *const ::windows::core::GUID, pid: u32, pwszhelpfile: ::windows::core::PWSTR, cch: u32, puhelpid: *mut u32) -> ::windows::core::HRESULT {
1267 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1268 let this = (*this).get_impl();
1269 this.GetHelpInfo(::core::mem::transmute_copy(&fmtid), ::core::mem::transmute_copy(&pid), ::core::mem::transmute_copy(&pwszhelpfile), ::core::mem::transmute_copy(&cch), ::core::mem::transmute_copy(&puhelpid)).into()
1270 }
1271 Self {
1272 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
1273 ParsePropertyName: ParsePropertyName::<Identity, Impl, OFFSET>,
1274 GetCannonicalName: GetCannonicalName::<Identity, Impl, OFFSET>,
1275 GetDisplayName: GetDisplayName::<Identity, Impl, OFFSET>,
1276 GetPropertyDescription: GetPropertyDescription::<Identity, Impl, OFFSET>,
1277 GetDefaultWidth: GetDefaultWidth::<Identity, Impl, OFFSET>,
1278 GetFlags: GetFlags::<Identity, Impl, OFFSET>,
1279 FormatForDisplay: FormatForDisplay::<Identity, Impl, OFFSET>,
1280 GetHelpInfo: GetHelpInfo::<Identity, Impl, OFFSET>,
1281 }
1282 }
1283 pub fn matches(iid: &windows::core::GUID) -> bool {
1284 iid == &<IPropertyUI as ::windows::core::ComInterface>::IID
1285 }
1286}