1 /*** Autogenerated by WIDL 6.4 from include/propsys.idl - Do not edit ***/
2 
3 #ifdef _WIN32
4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
6 #endif
7 #include <rpc.h>
8 #include <rpcndr.h>
9 #endif
10 
11 #ifndef COM_NO_WINDOWS_H
12 #include <windows.h>
13 #include <ole2.h>
14 #endif
15 
16 #ifndef __propsys_h__
17 #define __propsys_h__
18 
19 /* Forward declarations */
20 
21 #ifndef __IInitializeWithFile_FWD_DEFINED__
22 #define __IInitializeWithFile_FWD_DEFINED__
23 typedef interface IInitializeWithFile IInitializeWithFile;
24 #ifdef __cplusplus
25 interface IInitializeWithFile;
26 #endif /* __cplusplus */
27 #endif
28 
29 #ifndef __IInitializeWithStream_FWD_DEFINED__
30 #define __IInitializeWithStream_FWD_DEFINED__
31 typedef interface IInitializeWithStream IInitializeWithStream;
32 #ifdef __cplusplus
33 interface IInitializeWithStream;
34 #endif /* __cplusplus */
35 #endif
36 
37 #ifndef __IPropertyStore_FWD_DEFINED__
38 #define __IPropertyStore_FWD_DEFINED__
39 typedef interface IPropertyStore IPropertyStore;
40 #ifdef __cplusplus
41 interface IPropertyStore;
42 #endif /* __cplusplus */
43 #endif
44 
45 #ifndef __INamedPropertyStore_FWD_DEFINED__
46 #define __INamedPropertyStore_FWD_DEFINED__
47 typedef interface INamedPropertyStore INamedPropertyStore;
48 #ifdef __cplusplus
49 interface INamedPropertyStore;
50 #endif /* __cplusplus */
51 #endif
52 
53 #ifndef __IObjectWithPropertyKey_FWD_DEFINED__
54 #define __IObjectWithPropertyKey_FWD_DEFINED__
55 typedef interface IObjectWithPropertyKey IObjectWithPropertyKey;
56 #ifdef __cplusplus
57 interface IObjectWithPropertyKey;
58 #endif /* __cplusplus */
59 #endif
60 
61 #ifndef __IPropertyChange_FWD_DEFINED__
62 #define __IPropertyChange_FWD_DEFINED__
63 typedef interface IPropertyChange IPropertyChange;
64 #ifdef __cplusplus
65 interface IPropertyChange;
66 #endif /* __cplusplus */
67 #endif
68 
69 #ifndef __IPropertyChangeArray_FWD_DEFINED__
70 #define __IPropertyChangeArray_FWD_DEFINED__
71 typedef interface IPropertyChangeArray IPropertyChangeArray;
72 #ifdef __cplusplus
73 interface IPropertyChangeArray;
74 #endif /* __cplusplus */
75 #endif
76 
77 #ifndef __IPropertyStoreCapabilities_FWD_DEFINED__
78 #define __IPropertyStoreCapabilities_FWD_DEFINED__
79 typedef interface IPropertyStoreCapabilities IPropertyStoreCapabilities;
80 #ifdef __cplusplus
81 interface IPropertyStoreCapabilities;
82 #endif /* __cplusplus */
83 #endif
84 
85 #ifndef __IPropertyStoreCache_FWD_DEFINED__
86 #define __IPropertyStoreCache_FWD_DEFINED__
87 typedef interface IPropertyStoreCache IPropertyStoreCache;
88 #ifdef __cplusplus
89 interface IPropertyStoreCache;
90 #endif /* __cplusplus */
91 #endif
92 
93 #ifndef __IPropertyEnumType_FWD_DEFINED__
94 #define __IPropertyEnumType_FWD_DEFINED__
95 typedef interface IPropertyEnumType IPropertyEnumType;
96 #ifdef __cplusplus
97 interface IPropertyEnumType;
98 #endif /* __cplusplus */
99 #endif
100 
101 #ifndef __IPropertyEnumType2_FWD_DEFINED__
102 #define __IPropertyEnumType2_FWD_DEFINED__
103 typedef interface IPropertyEnumType2 IPropertyEnumType2;
104 #ifdef __cplusplus
105 interface IPropertyEnumType2;
106 #endif /* __cplusplus */
107 #endif
108 
109 #ifndef __IPropertyEnumTypeList_FWD_DEFINED__
110 #define __IPropertyEnumTypeList_FWD_DEFINED__
111 typedef interface IPropertyEnumTypeList IPropertyEnumTypeList;
112 #ifdef __cplusplus
113 interface IPropertyEnumTypeList;
114 #endif /* __cplusplus */
115 #endif
116 
117 #ifndef __IPropertyDescription_FWD_DEFINED__
118 #define __IPropertyDescription_FWD_DEFINED__
119 typedef interface IPropertyDescription IPropertyDescription;
120 #ifdef __cplusplus
121 interface IPropertyDescription;
122 #endif /* __cplusplus */
123 #endif
124 
125 #ifndef __IPropertyDescription2_FWD_DEFINED__
126 #define __IPropertyDescription2_FWD_DEFINED__
127 typedef interface IPropertyDescription2 IPropertyDescription2;
128 #ifdef __cplusplus
129 interface IPropertyDescription2;
130 #endif /* __cplusplus */
131 #endif
132 
133 #ifndef __IPropertyDescriptionAliasInfo_FWD_DEFINED__
134 #define __IPropertyDescriptionAliasInfo_FWD_DEFINED__
135 typedef interface IPropertyDescriptionAliasInfo IPropertyDescriptionAliasInfo;
136 #ifdef __cplusplus
137 interface IPropertyDescriptionAliasInfo;
138 #endif /* __cplusplus */
139 #endif
140 
141 #ifndef __IPropertyDescriptionSearchInfo_FWD_DEFINED__
142 #define __IPropertyDescriptionSearchInfo_FWD_DEFINED__
143 typedef interface IPropertyDescriptionSearchInfo IPropertyDescriptionSearchInfo;
144 #ifdef __cplusplus
145 interface IPropertyDescriptionSearchInfo;
146 #endif /* __cplusplus */
147 #endif
148 
149 #ifndef __IPropertyDescriptionRelatedPropertyInfo_FWD_DEFINED__
150 #define __IPropertyDescriptionRelatedPropertyInfo_FWD_DEFINED__
151 typedef interface IPropertyDescriptionRelatedPropertyInfo IPropertyDescriptionRelatedPropertyInfo;
152 #ifdef __cplusplus
153 interface IPropertyDescriptionRelatedPropertyInfo;
154 #endif /* __cplusplus */
155 #endif
156 
157 #ifndef __IPropertySystem_FWD_DEFINED__
158 #define __IPropertySystem_FWD_DEFINED__
159 typedef interface IPropertySystem IPropertySystem;
160 #ifdef __cplusplus
161 interface IPropertySystem;
162 #endif /* __cplusplus */
163 #endif
164 
165 #ifndef __IPropertyDescriptionList_FWD_DEFINED__
166 #define __IPropertyDescriptionList_FWD_DEFINED__
167 typedef interface IPropertyDescriptionList IPropertyDescriptionList;
168 #ifdef __cplusplus
169 interface IPropertyDescriptionList;
170 #endif /* __cplusplus */
171 #endif
172 
173 #ifndef __IPropertyStoreFactory_FWD_DEFINED__
174 #define __IPropertyStoreFactory_FWD_DEFINED__
175 typedef interface IPropertyStoreFactory IPropertyStoreFactory;
176 #ifdef __cplusplus
177 interface IPropertyStoreFactory;
178 #endif /* __cplusplus */
179 #endif
180 
181 #ifndef __IDelayedPropertyStoreFactory_FWD_DEFINED__
182 #define __IDelayedPropertyStoreFactory_FWD_DEFINED__
183 typedef interface IDelayedPropertyStoreFactory IDelayedPropertyStoreFactory;
184 #ifdef __cplusplus
185 interface IDelayedPropertyStoreFactory;
186 #endif /* __cplusplus */
187 #endif
188 
189 #ifndef __IPersistSerializedPropStorage_FWD_DEFINED__
190 #define __IPersistSerializedPropStorage_FWD_DEFINED__
191 typedef interface IPersistSerializedPropStorage IPersistSerializedPropStorage;
192 #ifdef __cplusplus
193 interface IPersistSerializedPropStorage;
194 #endif /* __cplusplus */
195 #endif
196 
197 #ifndef __IPersistSerializedPropStorage2_FWD_DEFINED__
198 #define __IPersistSerializedPropStorage2_FWD_DEFINED__
199 typedef interface IPersistSerializedPropStorage2 IPersistSerializedPropStorage2;
200 #ifdef __cplusplus
201 interface IPersistSerializedPropStorage2;
202 #endif /* __cplusplus */
203 #endif
204 
205 #ifndef __IPropertySystemChangeNotify_FWD_DEFINED__
206 #define __IPropertySystemChangeNotify_FWD_DEFINED__
207 typedef interface IPropertySystemChangeNotify IPropertySystemChangeNotify;
208 #ifdef __cplusplus
209 interface IPropertySystemChangeNotify;
210 #endif /* __cplusplus */
211 #endif
212 
213 #ifndef __ICreateObject_FWD_DEFINED__
214 #define __ICreateObject_FWD_DEFINED__
215 typedef interface ICreateObject ICreateObject;
216 #ifdef __cplusplus
217 interface ICreateObject;
218 #endif /* __cplusplus */
219 #endif
220 
221 #ifndef __InMemoryPropertyStore_FWD_DEFINED__
222 #define __InMemoryPropertyStore_FWD_DEFINED__
223 #ifdef __cplusplus
224 typedef class InMemoryPropertyStore InMemoryPropertyStore;
225 #else
226 typedef struct InMemoryPropertyStore InMemoryPropertyStore;
227 #endif /* defined __cplusplus */
228 #endif /* defined __InMemoryPropertyStore_FWD_DEFINED__ */
229 
230 #ifndef __PropertySystem_FWD_DEFINED__
231 #define __PropertySystem_FWD_DEFINED__
232 #ifdef __cplusplus
233 typedef class PropertySystem PropertySystem;
234 #else
235 typedef struct PropertySystem PropertySystem;
236 #endif /* defined __cplusplus */
237 #endif /* defined __PropertySystem_FWD_DEFINED__ */
238 
239 /* Headers for imported files */
240 
241 #include <objidl.h>
242 #include <oleidl.h>
243 #include <ocidl.h>
244 #include <shtypes.h>
245 #include <structuredquerycondition.h>
246 
247 #ifdef __cplusplus
248 extern "C" {
249 #endif
250 
251 /**
252  * This file is part of the mingw-w64 runtime package.
253  * No warranty is given; refer to the file DISCLAIMER within this package.
254  */
255 
256 #include <winapifamily.h>
257 
258 
259 #ifndef PSSTDAPI
260 #ifdef _PROPSYS_
261 #define PSSTDAPI STDAPI
262 #define PSSTDAPI_(type)   STDAPI_(type)
263 #else
264 #define PSSTDAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE
265 #define PSSTDAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE
266 #endif
267 #endif
268 
269 #if 0
270 typedef PROPERTYKEY *REFPROPERTYKEY;
271 #endif
272 
273 #include <propkeydef.h>
274 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
275 /*****************************************************************************
276  * IInitializeWithFile interface
277  */
278 #ifndef __IInitializeWithFile_INTERFACE_DEFINED__
279 #define __IInitializeWithFile_INTERFACE_DEFINED__
280 
281 DEFINE_GUID(IID_IInitializeWithFile, 0xb7d14566, 0x0509, 0x4cce, 0xa7,0x1f, 0x0a,0x55,0x42,0x33,0xbd,0x9b);
282 #if defined(__cplusplus) && !defined(CINTERFACE)
283 MIDL_INTERFACE("b7d14566-0509-4cce-a71f-0a554233bd9b")
284 IInitializeWithFile : public IUnknown
285 {
286     virtual HRESULT STDMETHODCALLTYPE Initialize(
287         LPCWSTR pszFilePath,
288         DWORD grfMode) = 0;
289 
290 };
291 #ifdef __CRT_UUID_DECL
292 __CRT_UUID_DECL(IInitializeWithFile, 0xb7d14566, 0x0509, 0x4cce, 0xa7,0x1f, 0x0a,0x55,0x42,0x33,0xbd,0x9b)
293 #endif
294 #else
295 typedef struct IInitializeWithFileVtbl {
296     BEGIN_INTERFACE
297 
298     /*** IUnknown methods ***/
299     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
300         IInitializeWithFile *This,
301         REFIID riid,
302         void **ppvObject);
303 
304     ULONG (STDMETHODCALLTYPE *AddRef)(
305         IInitializeWithFile *This);
306 
307     ULONG (STDMETHODCALLTYPE *Release)(
308         IInitializeWithFile *This);
309 
310     /*** IInitializeWithFile methods ***/
311     HRESULT (STDMETHODCALLTYPE *Initialize)(
312         IInitializeWithFile *This,
313         LPCWSTR pszFilePath,
314         DWORD grfMode);
315 
316     END_INTERFACE
317 } IInitializeWithFileVtbl;
318 
319 interface IInitializeWithFile {
320     CONST_VTBL IInitializeWithFileVtbl* lpVtbl;
321 };
322 
323 #ifdef COBJMACROS
324 #ifndef WIDL_C_INLINE_WRAPPERS
325 /*** IUnknown methods ***/
326 #define IInitializeWithFile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
327 #define IInitializeWithFile_AddRef(This) (This)->lpVtbl->AddRef(This)
328 #define IInitializeWithFile_Release(This) (This)->lpVtbl->Release(This)
329 /*** IInitializeWithFile methods ***/
330 #define IInitializeWithFile_Initialize(This,pszFilePath,grfMode) (This)->lpVtbl->Initialize(This,pszFilePath,grfMode)
331 #else
332 /*** IUnknown methods ***/
333 static FORCEINLINE HRESULT IInitializeWithFile_QueryInterface(IInitializeWithFile* This,REFIID riid,void **ppvObject) {
334     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
335 }
336 static FORCEINLINE ULONG IInitializeWithFile_AddRef(IInitializeWithFile* This) {
337     return This->lpVtbl->AddRef(This);
338 }
339 static FORCEINLINE ULONG IInitializeWithFile_Release(IInitializeWithFile* This) {
340     return This->lpVtbl->Release(This);
341 }
342 /*** IInitializeWithFile methods ***/
343 static FORCEINLINE HRESULT IInitializeWithFile_Initialize(IInitializeWithFile* This,LPCWSTR pszFilePath,DWORD grfMode) {
344     return This->lpVtbl->Initialize(This,pszFilePath,grfMode);
345 }
346 #endif
347 #endif
348 
349 #endif
350 
351 
352 #endif  /* __IInitializeWithFile_INTERFACE_DEFINED__ */
353 
354 
355 /*****************************************************************************
356  * IInitializeWithStream interface
357  */
358 #ifndef __IInitializeWithStream_INTERFACE_DEFINED__
359 #define __IInitializeWithStream_INTERFACE_DEFINED__
360 
361 DEFINE_GUID(IID_IInitializeWithStream, 0xb824b49d, 0x22ac, 0x4161, 0xac,0x8a, 0x99,0x16,0xe8,0xfa,0x3f,0x7f);
362 #if defined(__cplusplus) && !defined(CINTERFACE)
363 MIDL_INTERFACE("b824b49d-22ac-4161-ac8a-9916e8fa3f7f")
364 IInitializeWithStream : public IUnknown
365 {
366     virtual HRESULT STDMETHODCALLTYPE Initialize(
367         IStream *pstream,
368         DWORD grfMode) = 0;
369 
370 };
371 #ifdef __CRT_UUID_DECL
372 __CRT_UUID_DECL(IInitializeWithStream, 0xb824b49d, 0x22ac, 0x4161, 0xac,0x8a, 0x99,0x16,0xe8,0xfa,0x3f,0x7f)
373 #endif
374 #else
375 typedef struct IInitializeWithStreamVtbl {
376     BEGIN_INTERFACE
377 
378     /*** IUnknown methods ***/
379     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
380         IInitializeWithStream *This,
381         REFIID riid,
382         void **ppvObject);
383 
384     ULONG (STDMETHODCALLTYPE *AddRef)(
385         IInitializeWithStream *This);
386 
387     ULONG (STDMETHODCALLTYPE *Release)(
388         IInitializeWithStream *This);
389 
390     /*** IInitializeWithStream methods ***/
391     HRESULT (STDMETHODCALLTYPE *Initialize)(
392         IInitializeWithStream *This,
393         IStream *pstream,
394         DWORD grfMode);
395 
396     END_INTERFACE
397 } IInitializeWithStreamVtbl;
398 
399 interface IInitializeWithStream {
400     CONST_VTBL IInitializeWithStreamVtbl* lpVtbl;
401 };
402 
403 #ifdef COBJMACROS
404 #ifndef WIDL_C_INLINE_WRAPPERS
405 /*** IUnknown methods ***/
406 #define IInitializeWithStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
407 #define IInitializeWithStream_AddRef(This) (This)->lpVtbl->AddRef(This)
408 #define IInitializeWithStream_Release(This) (This)->lpVtbl->Release(This)
409 /*** IInitializeWithStream methods ***/
410 #define IInitializeWithStream_Initialize(This,pstream,grfMode) (This)->lpVtbl->Initialize(This,pstream,grfMode)
411 #else
412 /*** IUnknown methods ***/
413 static FORCEINLINE HRESULT IInitializeWithStream_QueryInterface(IInitializeWithStream* This,REFIID riid,void **ppvObject) {
414     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
415 }
416 static FORCEINLINE ULONG IInitializeWithStream_AddRef(IInitializeWithStream* This) {
417     return This->lpVtbl->AddRef(This);
418 }
419 static FORCEINLINE ULONG IInitializeWithStream_Release(IInitializeWithStream* This) {
420     return This->lpVtbl->Release(This);
421 }
422 /*** IInitializeWithStream methods ***/
423 static FORCEINLINE HRESULT IInitializeWithStream_Initialize(IInitializeWithStream* This,IStream *pstream,DWORD grfMode) {
424     return This->lpVtbl->Initialize(This,pstream,grfMode);
425 }
426 #endif
427 #endif
428 
429 #endif
430 
431 HRESULT STDMETHODCALLTYPE IInitializeWithStream_RemoteInitialize_Proxy(
432     IInitializeWithStream* This,
433     IStream *pstream,
434     DWORD grfMode);
435 void __RPC_STUB IInitializeWithStream_RemoteInitialize_Stub(
436     IRpcStubBuffer* This,
437     IRpcChannelBuffer* pRpcChannelBuffer,
438     PRPC_MESSAGE pRpcMessage,
439     DWORD* pdwStubPhase);
440 HRESULT CALLBACK IInitializeWithStream_Initialize_Proxy(
441     IInitializeWithStream* This,
442     IStream *pstream,
443     DWORD grfMode);
444 HRESULT __RPC_STUB IInitializeWithStream_Initialize_Stub(
445     IInitializeWithStream* This,
446     IStream *pstream,
447     DWORD grfMode);
448 
449 #endif  /* __IInitializeWithStream_INTERFACE_DEFINED__ */
450 
451 #endif
452 
453 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
454 /*****************************************************************************
455  * IPropertyStore interface
456  */
457 #ifndef __IPropertyStore_INTERFACE_DEFINED__
458 #define __IPropertyStore_INTERFACE_DEFINED__
459 
460 DEFINE_GUID(IID_IPropertyStore, 0x886d8eeb, 0x8cf2, 0x4446, 0x8d,0x02, 0xcd,0xba,0x1d,0xbd,0xcf,0x99);
461 #if defined(__cplusplus) && !defined(CINTERFACE)
462 MIDL_INTERFACE("886d8eeb-8cf2-4446-8d02-cdba1dbdcf99")
463 IPropertyStore : public IUnknown
464 {
465     virtual HRESULT STDMETHODCALLTYPE GetCount(
466         DWORD *cProps) = 0;
467 
468     virtual HRESULT STDMETHODCALLTYPE GetAt(
469         DWORD iProp,
470         PROPERTYKEY *pkey) = 0;
471 
472     virtual HRESULT STDMETHODCALLTYPE GetValue(
473         REFPROPERTYKEY key,
474         PROPVARIANT *pv) = 0;
475 
476     virtual HRESULT STDMETHODCALLTYPE SetValue(
477         REFPROPERTYKEY key,
478         REFPROPVARIANT propvar) = 0;
479 
480     virtual HRESULT STDMETHODCALLTYPE Commit(
481         ) = 0;
482 
483 };
484 #ifdef __CRT_UUID_DECL
485 __CRT_UUID_DECL(IPropertyStore, 0x886d8eeb, 0x8cf2, 0x4446, 0x8d,0x02, 0xcd,0xba,0x1d,0xbd,0xcf,0x99)
486 #endif
487 #else
488 typedef struct IPropertyStoreVtbl {
489     BEGIN_INTERFACE
490 
491     /*** IUnknown methods ***/
492     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
493         IPropertyStore *This,
494         REFIID riid,
495         void **ppvObject);
496 
497     ULONG (STDMETHODCALLTYPE *AddRef)(
498         IPropertyStore *This);
499 
500     ULONG (STDMETHODCALLTYPE *Release)(
501         IPropertyStore *This);
502 
503     /*** IPropertyStore methods ***/
504     HRESULT (STDMETHODCALLTYPE *GetCount)(
505         IPropertyStore *This,
506         DWORD *cProps);
507 
508     HRESULT (STDMETHODCALLTYPE *GetAt)(
509         IPropertyStore *This,
510         DWORD iProp,
511         PROPERTYKEY *pkey);
512 
513     HRESULT (STDMETHODCALLTYPE *GetValue)(
514         IPropertyStore *This,
515         REFPROPERTYKEY key,
516         PROPVARIANT *pv);
517 
518     HRESULT (STDMETHODCALLTYPE *SetValue)(
519         IPropertyStore *This,
520         REFPROPERTYKEY key,
521         REFPROPVARIANT propvar);
522 
523     HRESULT (STDMETHODCALLTYPE *Commit)(
524         IPropertyStore *This);
525 
526     END_INTERFACE
527 } IPropertyStoreVtbl;
528 
529 interface IPropertyStore {
530     CONST_VTBL IPropertyStoreVtbl* lpVtbl;
531 };
532 
533 #ifdef COBJMACROS
534 #ifndef WIDL_C_INLINE_WRAPPERS
535 /*** IUnknown methods ***/
536 #define IPropertyStore_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
537 #define IPropertyStore_AddRef(This) (This)->lpVtbl->AddRef(This)
538 #define IPropertyStore_Release(This) (This)->lpVtbl->Release(This)
539 /*** IPropertyStore methods ***/
540 #define IPropertyStore_GetCount(This,cProps) (This)->lpVtbl->GetCount(This,cProps)
541 #define IPropertyStore_GetAt(This,iProp,pkey) (This)->lpVtbl->GetAt(This,iProp,pkey)
542 #define IPropertyStore_GetValue(This,key,pv) (This)->lpVtbl->GetValue(This,key,pv)
543 #define IPropertyStore_SetValue(This,key,propvar) (This)->lpVtbl->SetValue(This,key,propvar)
544 #define IPropertyStore_Commit(This) (This)->lpVtbl->Commit(This)
545 #else
546 /*** IUnknown methods ***/
547 static FORCEINLINE HRESULT IPropertyStore_QueryInterface(IPropertyStore* This,REFIID riid,void **ppvObject) {
548     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
549 }
550 static FORCEINLINE ULONG IPropertyStore_AddRef(IPropertyStore* This) {
551     return This->lpVtbl->AddRef(This);
552 }
553 static FORCEINLINE ULONG IPropertyStore_Release(IPropertyStore* This) {
554     return This->lpVtbl->Release(This);
555 }
556 /*** IPropertyStore methods ***/
557 static FORCEINLINE HRESULT IPropertyStore_GetCount(IPropertyStore* This,DWORD *cProps) {
558     return This->lpVtbl->GetCount(This,cProps);
559 }
560 static FORCEINLINE HRESULT IPropertyStore_GetAt(IPropertyStore* This,DWORD iProp,PROPERTYKEY *pkey) {
561     return This->lpVtbl->GetAt(This,iProp,pkey);
562 }
563 static FORCEINLINE HRESULT IPropertyStore_GetValue(IPropertyStore* This,REFPROPERTYKEY key,PROPVARIANT *pv) {
564     return This->lpVtbl->GetValue(This,key,pv);
565 }
566 static FORCEINLINE HRESULT IPropertyStore_SetValue(IPropertyStore* This,REFPROPERTYKEY key,REFPROPVARIANT propvar) {
567     return This->lpVtbl->SetValue(This,key,propvar);
568 }
569 static FORCEINLINE HRESULT IPropertyStore_Commit(IPropertyStore* This) {
570     return This->lpVtbl->Commit(This);
571 }
572 #endif
573 #endif
574 
575 #endif
576 
577 
578 #endif  /* __IPropertyStore_INTERFACE_DEFINED__ */
579 
580 
581 typedef IPropertyStore *LPPROPERTYSTORE;
582 #endif
583 
584 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
585 /*****************************************************************************
586  * INamedPropertyStore interface
587  */
588 #ifndef __INamedPropertyStore_INTERFACE_DEFINED__
589 #define __INamedPropertyStore_INTERFACE_DEFINED__
590 
591 DEFINE_GUID(IID_INamedPropertyStore, 0x71604b0f, 0x97b0, 0x4764, 0x85,0x77, 0x2f,0x13,0xe9,0x8a,0x14,0x22);
592 #if defined(__cplusplus) && !defined(CINTERFACE)
593 MIDL_INTERFACE("71604b0f-97b0-4764-8577-2f13e98a1422")
594 INamedPropertyStore : public IUnknown
595 {
596     virtual HRESULT STDMETHODCALLTYPE GetNamedValue(
597         LPCWSTR pszName,
598         PROPVARIANT *ppropvar) = 0;
599 
600     virtual HRESULT STDMETHODCALLTYPE SetNamedValue(
601         LPCWSTR pszName,
602         REFPROPVARIANT propvar) = 0;
603 
604     virtual HRESULT STDMETHODCALLTYPE GetNameCount(
605         DWORD *pdwCount) = 0;
606 
607     virtual HRESULT STDMETHODCALLTYPE GetNameAt(
608         DWORD iProp,
609         BSTR *pbstrName) = 0;
610 
611 };
612 #ifdef __CRT_UUID_DECL
613 __CRT_UUID_DECL(INamedPropertyStore, 0x71604b0f, 0x97b0, 0x4764, 0x85,0x77, 0x2f,0x13,0xe9,0x8a,0x14,0x22)
614 #endif
615 #else
616 typedef struct INamedPropertyStoreVtbl {
617     BEGIN_INTERFACE
618 
619     /*** IUnknown methods ***/
620     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
621         INamedPropertyStore *This,
622         REFIID riid,
623         void **ppvObject);
624 
625     ULONG (STDMETHODCALLTYPE *AddRef)(
626         INamedPropertyStore *This);
627 
628     ULONG (STDMETHODCALLTYPE *Release)(
629         INamedPropertyStore *This);
630 
631     /*** INamedPropertyStore methods ***/
632     HRESULT (STDMETHODCALLTYPE *GetNamedValue)(
633         INamedPropertyStore *This,
634         LPCWSTR pszName,
635         PROPVARIANT *ppropvar);
636 
637     HRESULT (STDMETHODCALLTYPE *SetNamedValue)(
638         INamedPropertyStore *This,
639         LPCWSTR pszName,
640         REFPROPVARIANT propvar);
641 
642     HRESULT (STDMETHODCALLTYPE *GetNameCount)(
643         INamedPropertyStore *This,
644         DWORD *pdwCount);
645 
646     HRESULT (STDMETHODCALLTYPE *GetNameAt)(
647         INamedPropertyStore *This,
648         DWORD iProp,
649         BSTR *pbstrName);
650 
651     END_INTERFACE
652 } INamedPropertyStoreVtbl;
653 
654 interface INamedPropertyStore {
655     CONST_VTBL INamedPropertyStoreVtbl* lpVtbl;
656 };
657 
658 #ifdef COBJMACROS
659 #ifndef WIDL_C_INLINE_WRAPPERS
660 /*** IUnknown methods ***/
661 #define INamedPropertyStore_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
662 #define INamedPropertyStore_AddRef(This) (This)->lpVtbl->AddRef(This)
663 #define INamedPropertyStore_Release(This) (This)->lpVtbl->Release(This)
664 /*** INamedPropertyStore methods ***/
665 #define INamedPropertyStore_GetNamedValue(This,pszName,ppropvar) (This)->lpVtbl->GetNamedValue(This,pszName,ppropvar)
666 #define INamedPropertyStore_SetNamedValue(This,pszName,propvar) (This)->lpVtbl->SetNamedValue(This,pszName,propvar)
667 #define INamedPropertyStore_GetNameCount(This,pdwCount) (This)->lpVtbl->GetNameCount(This,pdwCount)
668 #define INamedPropertyStore_GetNameAt(This,iProp,pbstrName) (This)->lpVtbl->GetNameAt(This,iProp,pbstrName)
669 #else
670 /*** IUnknown methods ***/
671 static FORCEINLINE HRESULT INamedPropertyStore_QueryInterface(INamedPropertyStore* This,REFIID riid,void **ppvObject) {
672     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
673 }
674 static FORCEINLINE ULONG INamedPropertyStore_AddRef(INamedPropertyStore* This) {
675     return This->lpVtbl->AddRef(This);
676 }
677 static FORCEINLINE ULONG INamedPropertyStore_Release(INamedPropertyStore* This) {
678     return This->lpVtbl->Release(This);
679 }
680 /*** INamedPropertyStore methods ***/
681 static FORCEINLINE HRESULT INamedPropertyStore_GetNamedValue(INamedPropertyStore* This,LPCWSTR pszName,PROPVARIANT *ppropvar) {
682     return This->lpVtbl->GetNamedValue(This,pszName,ppropvar);
683 }
684 static FORCEINLINE HRESULT INamedPropertyStore_SetNamedValue(INamedPropertyStore* This,LPCWSTR pszName,REFPROPVARIANT propvar) {
685     return This->lpVtbl->SetNamedValue(This,pszName,propvar);
686 }
687 static FORCEINLINE HRESULT INamedPropertyStore_GetNameCount(INamedPropertyStore* This,DWORD *pdwCount) {
688     return This->lpVtbl->GetNameCount(This,pdwCount);
689 }
690 static FORCEINLINE HRESULT INamedPropertyStore_GetNameAt(INamedPropertyStore* This,DWORD iProp,BSTR *pbstrName) {
691     return This->lpVtbl->GetNameAt(This,iProp,pbstrName);
692 }
693 #endif
694 #endif
695 
696 #endif
697 
698 
699 #endif  /* __INamedPropertyStore_INTERFACE_DEFINED__ */
700 
701 
702 typedef enum GETPROPERTYSTOREFLAGS {
703     GPS_DEFAULT = 0x0,
704     GPS_HANDLERPROPERTIESONLY = 0x1,
705     GPS_READWRITE = 0x2,
706     GPS_TEMPORARY = 0x4,
707     GPS_FASTPROPERTIESONLY = 0x8,
708     GPS_OPENSLOWITEM = 0x10,
709     GPS_DELAYCREATION = 0x20,
710     GPS_BESTEFFORT = 0x40,
711     GPS_NO_OPLOCK = 0x80,
712     GPS_PREFERQUERYPROPERTIES = 0x100,
713     GPS_MASK_VALID = 0x1ff
714 } GETPROPERTYSTOREFLAGS;
715 
716 DEFINE_ENUM_FLAG_OPERATORS(GETPROPERTYSTOREFLAGS)
717 
718 /*****************************************************************************
719  * IObjectWithPropertyKey interface
720  */
721 #ifndef __IObjectWithPropertyKey_INTERFACE_DEFINED__
722 #define __IObjectWithPropertyKey_INTERFACE_DEFINED__
723 
724 DEFINE_GUID(IID_IObjectWithPropertyKey, 0xfc0ca0a7, 0xc316, 0x4fd2, 0x90,0x31, 0x3e,0x62,0x8e,0x6d,0x4f,0x23);
725 #if defined(__cplusplus) && !defined(CINTERFACE)
726 MIDL_INTERFACE("fc0ca0a7-c316-4fd2-9031-3e628e6d4f23")
727 IObjectWithPropertyKey : public IUnknown
728 {
729     virtual HRESULT STDMETHODCALLTYPE SetPropertyKey(
730         REFPROPERTYKEY key) = 0;
731 
732     virtual HRESULT STDMETHODCALLTYPE GetPropertyKey(
733         PROPERTYKEY *pkey) = 0;
734 
735 };
736 #ifdef __CRT_UUID_DECL
737 __CRT_UUID_DECL(IObjectWithPropertyKey, 0xfc0ca0a7, 0xc316, 0x4fd2, 0x90,0x31, 0x3e,0x62,0x8e,0x6d,0x4f,0x23)
738 #endif
739 #else
740 typedef struct IObjectWithPropertyKeyVtbl {
741     BEGIN_INTERFACE
742 
743     /*** IUnknown methods ***/
744     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
745         IObjectWithPropertyKey *This,
746         REFIID riid,
747         void **ppvObject);
748 
749     ULONG (STDMETHODCALLTYPE *AddRef)(
750         IObjectWithPropertyKey *This);
751 
752     ULONG (STDMETHODCALLTYPE *Release)(
753         IObjectWithPropertyKey *This);
754 
755     /*** IObjectWithPropertyKey methods ***/
756     HRESULT (STDMETHODCALLTYPE *SetPropertyKey)(
757         IObjectWithPropertyKey *This,
758         REFPROPERTYKEY key);
759 
760     HRESULT (STDMETHODCALLTYPE *GetPropertyKey)(
761         IObjectWithPropertyKey *This,
762         PROPERTYKEY *pkey);
763 
764     END_INTERFACE
765 } IObjectWithPropertyKeyVtbl;
766 
767 interface IObjectWithPropertyKey {
768     CONST_VTBL IObjectWithPropertyKeyVtbl* lpVtbl;
769 };
770 
771 #ifdef COBJMACROS
772 #ifndef WIDL_C_INLINE_WRAPPERS
773 /*** IUnknown methods ***/
774 #define IObjectWithPropertyKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
775 #define IObjectWithPropertyKey_AddRef(This) (This)->lpVtbl->AddRef(This)
776 #define IObjectWithPropertyKey_Release(This) (This)->lpVtbl->Release(This)
777 /*** IObjectWithPropertyKey methods ***/
778 #define IObjectWithPropertyKey_SetPropertyKey(This,key) (This)->lpVtbl->SetPropertyKey(This,key)
779 #define IObjectWithPropertyKey_GetPropertyKey(This,pkey) (This)->lpVtbl->GetPropertyKey(This,pkey)
780 #else
781 /*** IUnknown methods ***/
782 static FORCEINLINE HRESULT IObjectWithPropertyKey_QueryInterface(IObjectWithPropertyKey* This,REFIID riid,void **ppvObject) {
783     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
784 }
785 static FORCEINLINE ULONG IObjectWithPropertyKey_AddRef(IObjectWithPropertyKey* This) {
786     return This->lpVtbl->AddRef(This);
787 }
788 static FORCEINLINE ULONG IObjectWithPropertyKey_Release(IObjectWithPropertyKey* This) {
789     return This->lpVtbl->Release(This);
790 }
791 /*** IObjectWithPropertyKey methods ***/
792 static FORCEINLINE HRESULT IObjectWithPropertyKey_SetPropertyKey(IObjectWithPropertyKey* This,REFPROPERTYKEY key) {
793     return This->lpVtbl->SetPropertyKey(This,key);
794 }
795 static FORCEINLINE HRESULT IObjectWithPropertyKey_GetPropertyKey(IObjectWithPropertyKey* This,PROPERTYKEY *pkey) {
796     return This->lpVtbl->GetPropertyKey(This,pkey);
797 }
798 #endif
799 #endif
800 
801 #endif
802 
803 
804 #endif  /* __IObjectWithPropertyKey_INTERFACE_DEFINED__ */
805 
806 
807 typedef enum PKA_FLAGS {
808     PKA_SET = 0,
809     PKA_APPEND = 1,
810     PKA_DELETE = 2
811 } PKA_FLAGS;
812 
813 /*****************************************************************************
814  * IPropertyChange interface
815  */
816 #ifndef __IPropertyChange_INTERFACE_DEFINED__
817 #define __IPropertyChange_INTERFACE_DEFINED__
818 
819 DEFINE_GUID(IID_IPropertyChange, 0xf917bc8a, 0x1bba, 0x4478, 0xa2,0x45, 0x1b,0xde,0x03,0xeb,0x94,0x31);
820 #if defined(__cplusplus) && !defined(CINTERFACE)
821 MIDL_INTERFACE("f917bc8a-1bba-4478-a245-1bde03eb9431")
822 IPropertyChange : public IObjectWithPropertyKey
823 {
824     virtual HRESULT STDMETHODCALLTYPE ApplyToPropVariant(
825         REFPROPVARIANT propvarIn,
826         PROPVARIANT *ppropvarOut) = 0;
827 
828 };
829 #ifdef __CRT_UUID_DECL
830 __CRT_UUID_DECL(IPropertyChange, 0xf917bc8a, 0x1bba, 0x4478, 0xa2,0x45, 0x1b,0xde,0x03,0xeb,0x94,0x31)
831 #endif
832 #else
833 typedef struct IPropertyChangeVtbl {
834     BEGIN_INTERFACE
835 
836     /*** IUnknown methods ***/
837     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
838         IPropertyChange *This,
839         REFIID riid,
840         void **ppvObject);
841 
842     ULONG (STDMETHODCALLTYPE *AddRef)(
843         IPropertyChange *This);
844 
845     ULONG (STDMETHODCALLTYPE *Release)(
846         IPropertyChange *This);
847 
848     /*** IObjectWithPropertyKey methods ***/
849     HRESULT (STDMETHODCALLTYPE *SetPropertyKey)(
850         IPropertyChange *This,
851         REFPROPERTYKEY key);
852 
853     HRESULT (STDMETHODCALLTYPE *GetPropertyKey)(
854         IPropertyChange *This,
855         PROPERTYKEY *pkey);
856 
857     /*** IPropertyChange methods ***/
858     HRESULT (STDMETHODCALLTYPE *ApplyToPropVariant)(
859         IPropertyChange *This,
860         REFPROPVARIANT propvarIn,
861         PROPVARIANT *ppropvarOut);
862 
863     END_INTERFACE
864 } IPropertyChangeVtbl;
865 
866 interface IPropertyChange {
867     CONST_VTBL IPropertyChangeVtbl* lpVtbl;
868 };
869 
870 #ifdef COBJMACROS
871 #ifndef WIDL_C_INLINE_WRAPPERS
872 /*** IUnknown methods ***/
873 #define IPropertyChange_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
874 #define IPropertyChange_AddRef(This) (This)->lpVtbl->AddRef(This)
875 #define IPropertyChange_Release(This) (This)->lpVtbl->Release(This)
876 /*** IObjectWithPropertyKey methods ***/
877 #define IPropertyChange_SetPropertyKey(This,key) (This)->lpVtbl->SetPropertyKey(This,key)
878 #define IPropertyChange_GetPropertyKey(This,pkey) (This)->lpVtbl->GetPropertyKey(This,pkey)
879 /*** IPropertyChange methods ***/
880 #define IPropertyChange_ApplyToPropVariant(This,propvarIn,ppropvarOut) (This)->lpVtbl->ApplyToPropVariant(This,propvarIn,ppropvarOut)
881 #else
882 /*** IUnknown methods ***/
883 static FORCEINLINE HRESULT IPropertyChange_QueryInterface(IPropertyChange* This,REFIID riid,void **ppvObject) {
884     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
885 }
886 static FORCEINLINE ULONG IPropertyChange_AddRef(IPropertyChange* This) {
887     return This->lpVtbl->AddRef(This);
888 }
889 static FORCEINLINE ULONG IPropertyChange_Release(IPropertyChange* This) {
890     return This->lpVtbl->Release(This);
891 }
892 /*** IObjectWithPropertyKey methods ***/
893 static FORCEINLINE HRESULT IPropertyChange_SetPropertyKey(IPropertyChange* This,REFPROPERTYKEY key) {
894     return This->lpVtbl->SetPropertyKey(This,key);
895 }
896 static FORCEINLINE HRESULT IPropertyChange_GetPropertyKey(IPropertyChange* This,PROPERTYKEY *pkey) {
897     return This->lpVtbl->GetPropertyKey(This,pkey);
898 }
899 /*** IPropertyChange methods ***/
900 static FORCEINLINE HRESULT IPropertyChange_ApplyToPropVariant(IPropertyChange* This,REFPROPVARIANT propvarIn,PROPVARIANT *ppropvarOut) {
901     return This->lpVtbl->ApplyToPropVariant(This,propvarIn,ppropvarOut);
902 }
903 #endif
904 #endif
905 
906 #endif
907 
908 
909 #endif  /* __IPropertyChange_INTERFACE_DEFINED__ */
910 
911 
912 /*****************************************************************************
913  * IPropertyChangeArray interface
914  */
915 #ifndef __IPropertyChangeArray_INTERFACE_DEFINED__
916 #define __IPropertyChangeArray_INTERFACE_DEFINED__
917 
918 DEFINE_GUID(IID_IPropertyChangeArray, 0x380f5cad, 0x1b5e, 0x42f2, 0x80,0x5d, 0x63,0x7f,0xd3,0x92,0xd3,0x1e);
919 #if defined(__cplusplus) && !defined(CINTERFACE)
920 MIDL_INTERFACE("380f5cad-1b5e-42f2-805d-637fd392d31e")
921 IPropertyChangeArray : public IUnknown
922 {
923     virtual HRESULT STDMETHODCALLTYPE GetCount(
924         UINT *pcOperations) = 0;
925 
926     virtual HRESULT STDMETHODCALLTYPE GetAt(
927         UINT iIndex,
928         REFIID riid,
929         void **ppv) = 0;
930 
931     virtual HRESULT STDMETHODCALLTYPE InsertAt(
932         UINT iIndex,
933         IPropertyChange *ppropChange) = 0;
934 
935     virtual HRESULT STDMETHODCALLTYPE Append(
936         IPropertyChange *ppropChange) = 0;
937 
938     virtual HRESULT STDMETHODCALLTYPE AppendOrReplace(
939         IPropertyChange *ppropChange) = 0;
940 
941     virtual HRESULT STDMETHODCALLTYPE RemoveAt(
942         UINT iIndex) = 0;
943 
944     virtual HRESULT STDMETHODCALLTYPE IsKeyInArray(
945         REFPROPERTYKEY key) = 0;
946 
947 };
948 #ifdef __CRT_UUID_DECL
949 __CRT_UUID_DECL(IPropertyChangeArray, 0x380f5cad, 0x1b5e, 0x42f2, 0x80,0x5d, 0x63,0x7f,0xd3,0x92,0xd3,0x1e)
950 #endif
951 #else
952 typedef struct IPropertyChangeArrayVtbl {
953     BEGIN_INTERFACE
954 
955     /*** IUnknown methods ***/
956     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
957         IPropertyChangeArray *This,
958         REFIID riid,
959         void **ppvObject);
960 
961     ULONG (STDMETHODCALLTYPE *AddRef)(
962         IPropertyChangeArray *This);
963 
964     ULONG (STDMETHODCALLTYPE *Release)(
965         IPropertyChangeArray *This);
966 
967     /*** IPropertyChangeArray methods ***/
968     HRESULT (STDMETHODCALLTYPE *GetCount)(
969         IPropertyChangeArray *This,
970         UINT *pcOperations);
971 
972     HRESULT (STDMETHODCALLTYPE *GetAt)(
973         IPropertyChangeArray *This,
974         UINT iIndex,
975         REFIID riid,
976         void **ppv);
977 
978     HRESULT (STDMETHODCALLTYPE *InsertAt)(
979         IPropertyChangeArray *This,
980         UINT iIndex,
981         IPropertyChange *ppropChange);
982 
983     HRESULT (STDMETHODCALLTYPE *Append)(
984         IPropertyChangeArray *This,
985         IPropertyChange *ppropChange);
986 
987     HRESULT (STDMETHODCALLTYPE *AppendOrReplace)(
988         IPropertyChangeArray *This,
989         IPropertyChange *ppropChange);
990 
991     HRESULT (STDMETHODCALLTYPE *RemoveAt)(
992         IPropertyChangeArray *This,
993         UINT iIndex);
994 
995     HRESULT (STDMETHODCALLTYPE *IsKeyInArray)(
996         IPropertyChangeArray *This,
997         REFPROPERTYKEY key);
998 
999     END_INTERFACE
1000 } IPropertyChangeArrayVtbl;
1001 
1002 interface IPropertyChangeArray {
1003     CONST_VTBL IPropertyChangeArrayVtbl* lpVtbl;
1004 };
1005 
1006 #ifdef COBJMACROS
1007 #ifndef WIDL_C_INLINE_WRAPPERS
1008 /*** IUnknown methods ***/
1009 #define IPropertyChangeArray_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1010 #define IPropertyChangeArray_AddRef(This) (This)->lpVtbl->AddRef(This)
1011 #define IPropertyChangeArray_Release(This) (This)->lpVtbl->Release(This)
1012 /*** IPropertyChangeArray methods ***/
1013 #define IPropertyChangeArray_GetCount(This,pcOperations) (This)->lpVtbl->GetCount(This,pcOperations)
1014 #define IPropertyChangeArray_GetAt(This,iIndex,riid,ppv) (This)->lpVtbl->GetAt(This,iIndex,riid,ppv)
1015 #define IPropertyChangeArray_InsertAt(This,iIndex,ppropChange) (This)->lpVtbl->InsertAt(This,iIndex,ppropChange)
1016 #define IPropertyChangeArray_Append(This,ppropChange) (This)->lpVtbl->Append(This,ppropChange)
1017 #define IPropertyChangeArray_AppendOrReplace(This,ppropChange) (This)->lpVtbl->AppendOrReplace(This,ppropChange)
1018 #define IPropertyChangeArray_RemoveAt(This,iIndex) (This)->lpVtbl->RemoveAt(This,iIndex)
1019 #define IPropertyChangeArray_IsKeyInArray(This,key) (This)->lpVtbl->IsKeyInArray(This,key)
1020 #else
1021 /*** IUnknown methods ***/
1022 static FORCEINLINE HRESULT IPropertyChangeArray_QueryInterface(IPropertyChangeArray* This,REFIID riid,void **ppvObject) {
1023     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1024 }
1025 static FORCEINLINE ULONG IPropertyChangeArray_AddRef(IPropertyChangeArray* This) {
1026     return This->lpVtbl->AddRef(This);
1027 }
1028 static FORCEINLINE ULONG IPropertyChangeArray_Release(IPropertyChangeArray* This) {
1029     return This->lpVtbl->Release(This);
1030 }
1031 /*** IPropertyChangeArray methods ***/
1032 static FORCEINLINE HRESULT IPropertyChangeArray_GetCount(IPropertyChangeArray* This,UINT *pcOperations) {
1033     return This->lpVtbl->GetCount(This,pcOperations);
1034 }
1035 static FORCEINLINE HRESULT IPropertyChangeArray_GetAt(IPropertyChangeArray* This,UINT iIndex,REFIID riid,void **ppv) {
1036     return This->lpVtbl->GetAt(This,iIndex,riid,ppv);
1037 }
1038 static FORCEINLINE HRESULT IPropertyChangeArray_InsertAt(IPropertyChangeArray* This,UINT iIndex,IPropertyChange *ppropChange) {
1039     return This->lpVtbl->InsertAt(This,iIndex,ppropChange);
1040 }
1041 static FORCEINLINE HRESULT IPropertyChangeArray_Append(IPropertyChangeArray* This,IPropertyChange *ppropChange) {
1042     return This->lpVtbl->Append(This,ppropChange);
1043 }
1044 static FORCEINLINE HRESULT IPropertyChangeArray_AppendOrReplace(IPropertyChangeArray* This,IPropertyChange *ppropChange) {
1045     return This->lpVtbl->AppendOrReplace(This,ppropChange);
1046 }
1047 static FORCEINLINE HRESULT IPropertyChangeArray_RemoveAt(IPropertyChangeArray* This,UINT iIndex) {
1048     return This->lpVtbl->RemoveAt(This,iIndex);
1049 }
1050 static FORCEINLINE HRESULT IPropertyChangeArray_IsKeyInArray(IPropertyChangeArray* This,REFPROPERTYKEY key) {
1051     return This->lpVtbl->IsKeyInArray(This,key);
1052 }
1053 #endif
1054 #endif
1055 
1056 #endif
1057 
1058 
1059 #endif  /* __IPropertyChangeArray_INTERFACE_DEFINED__ */
1060 
1061 
1062 /*****************************************************************************
1063  * IPropertyStoreCapabilities interface
1064  */
1065 #ifndef __IPropertyStoreCapabilities_INTERFACE_DEFINED__
1066 #define __IPropertyStoreCapabilities_INTERFACE_DEFINED__
1067 
1068 DEFINE_GUID(IID_IPropertyStoreCapabilities, 0xc8e2d566, 0x186e, 0x4d49, 0xbf,0x41, 0x69,0x09,0xea,0xd5,0x6a,0xcc);
1069 #if defined(__cplusplus) && !defined(CINTERFACE)
1070 MIDL_INTERFACE("c8e2d566-186e-4d49-bf41-6909ead56acc")
1071 IPropertyStoreCapabilities : public IUnknown
1072 {
1073     virtual HRESULT STDMETHODCALLTYPE IsPropertyWritable(
1074         REFPROPERTYKEY key) = 0;
1075 
1076 };
1077 #ifdef __CRT_UUID_DECL
1078 __CRT_UUID_DECL(IPropertyStoreCapabilities, 0xc8e2d566, 0x186e, 0x4d49, 0xbf,0x41, 0x69,0x09,0xea,0xd5,0x6a,0xcc)
1079 #endif
1080 #else
1081 typedef struct IPropertyStoreCapabilitiesVtbl {
1082     BEGIN_INTERFACE
1083 
1084     /*** IUnknown methods ***/
1085     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1086         IPropertyStoreCapabilities *This,
1087         REFIID riid,
1088         void **ppvObject);
1089 
1090     ULONG (STDMETHODCALLTYPE *AddRef)(
1091         IPropertyStoreCapabilities *This);
1092 
1093     ULONG (STDMETHODCALLTYPE *Release)(
1094         IPropertyStoreCapabilities *This);
1095 
1096     /*** IPropertyStoreCapabilities methods ***/
1097     HRESULT (STDMETHODCALLTYPE *IsPropertyWritable)(
1098         IPropertyStoreCapabilities *This,
1099         REFPROPERTYKEY key);
1100 
1101     END_INTERFACE
1102 } IPropertyStoreCapabilitiesVtbl;
1103 
1104 interface IPropertyStoreCapabilities {
1105     CONST_VTBL IPropertyStoreCapabilitiesVtbl* lpVtbl;
1106 };
1107 
1108 #ifdef COBJMACROS
1109 #ifndef WIDL_C_INLINE_WRAPPERS
1110 /*** IUnknown methods ***/
1111 #define IPropertyStoreCapabilities_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1112 #define IPropertyStoreCapabilities_AddRef(This) (This)->lpVtbl->AddRef(This)
1113 #define IPropertyStoreCapabilities_Release(This) (This)->lpVtbl->Release(This)
1114 /*** IPropertyStoreCapabilities methods ***/
1115 #define IPropertyStoreCapabilities_IsPropertyWritable(This,key) (This)->lpVtbl->IsPropertyWritable(This,key)
1116 #else
1117 /*** IUnknown methods ***/
1118 static FORCEINLINE HRESULT IPropertyStoreCapabilities_QueryInterface(IPropertyStoreCapabilities* This,REFIID riid,void **ppvObject) {
1119     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1120 }
1121 static FORCEINLINE ULONG IPropertyStoreCapabilities_AddRef(IPropertyStoreCapabilities* This) {
1122     return This->lpVtbl->AddRef(This);
1123 }
1124 static FORCEINLINE ULONG IPropertyStoreCapabilities_Release(IPropertyStoreCapabilities* This) {
1125     return This->lpVtbl->Release(This);
1126 }
1127 /*** IPropertyStoreCapabilities methods ***/
1128 static FORCEINLINE HRESULT IPropertyStoreCapabilities_IsPropertyWritable(IPropertyStoreCapabilities* This,REFPROPERTYKEY key) {
1129     return This->lpVtbl->IsPropertyWritable(This,key);
1130 }
1131 #endif
1132 #endif
1133 
1134 #endif
1135 
1136 
1137 #endif  /* __IPropertyStoreCapabilities_INTERFACE_DEFINED__ */
1138 
1139 
1140 /*****************************************************************************
1141  * IPropertyStoreCache interface
1142  */
1143 #ifndef __IPropertyStoreCache_INTERFACE_DEFINED__
1144 #define __IPropertyStoreCache_INTERFACE_DEFINED__
1145 
1146 typedef enum PSC_STATE {
1147     PSC_NORMAL = 0,
1148     PSC_NOTINSOURCE = 1,
1149     PSC_DIRTY = 2,
1150     PSC_READONLY = 3
1151 } PSC_STATE;
1152 
1153 DEFINE_GUID(IID_IPropertyStoreCache, 0x3017056d, 0x9a91, 0x4e90, 0x93,0x7d, 0x74,0x6c,0x72,0xab,0xbf,0x4f);
1154 #if defined(__cplusplus) && !defined(CINTERFACE)
1155 MIDL_INTERFACE("3017056d-9a91-4e90-937d-746c72abbf4f")
1156 IPropertyStoreCache : public IPropertyStore
1157 {
1158     virtual HRESULT STDMETHODCALLTYPE GetState(
1159         REFPROPERTYKEY key,
1160         PSC_STATE *pstate) = 0;
1161 
1162     virtual HRESULT STDMETHODCALLTYPE GetValueAndState(
1163         REFPROPERTYKEY key,
1164         PROPVARIANT *ppropvar,
1165         PSC_STATE *pstate) = 0;
1166 
1167     virtual HRESULT STDMETHODCALLTYPE SetState(
1168         REFPROPERTYKEY key,
1169         PSC_STATE state) = 0;
1170 
1171     virtual HRESULT STDMETHODCALLTYPE SetValueAndState(
1172         REFPROPERTYKEY key,
1173         const PROPVARIANT *ppropvar,
1174         PSC_STATE state) = 0;
1175 
1176 };
1177 #ifdef __CRT_UUID_DECL
1178 __CRT_UUID_DECL(IPropertyStoreCache, 0x3017056d, 0x9a91, 0x4e90, 0x93,0x7d, 0x74,0x6c,0x72,0xab,0xbf,0x4f)
1179 #endif
1180 #else
1181 typedef struct IPropertyStoreCacheVtbl {
1182     BEGIN_INTERFACE
1183 
1184     /*** IUnknown methods ***/
1185     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1186         IPropertyStoreCache *This,
1187         REFIID riid,
1188         void **ppvObject);
1189 
1190     ULONG (STDMETHODCALLTYPE *AddRef)(
1191         IPropertyStoreCache *This);
1192 
1193     ULONG (STDMETHODCALLTYPE *Release)(
1194         IPropertyStoreCache *This);
1195 
1196     /*** IPropertyStore methods ***/
1197     HRESULT (STDMETHODCALLTYPE *GetCount)(
1198         IPropertyStoreCache *This,
1199         DWORD *cProps);
1200 
1201     HRESULT (STDMETHODCALLTYPE *GetAt)(
1202         IPropertyStoreCache *This,
1203         DWORD iProp,
1204         PROPERTYKEY *pkey);
1205 
1206     HRESULT (STDMETHODCALLTYPE *GetValue)(
1207         IPropertyStoreCache *This,
1208         REFPROPERTYKEY key,
1209         PROPVARIANT *pv);
1210 
1211     HRESULT (STDMETHODCALLTYPE *SetValue)(
1212         IPropertyStoreCache *This,
1213         REFPROPERTYKEY key,
1214         REFPROPVARIANT propvar);
1215 
1216     HRESULT (STDMETHODCALLTYPE *Commit)(
1217         IPropertyStoreCache *This);
1218 
1219     /*** IPropertyStoreCache methods ***/
1220     HRESULT (STDMETHODCALLTYPE *GetState)(
1221         IPropertyStoreCache *This,
1222         REFPROPERTYKEY key,
1223         PSC_STATE *pstate);
1224 
1225     HRESULT (STDMETHODCALLTYPE *GetValueAndState)(
1226         IPropertyStoreCache *This,
1227         REFPROPERTYKEY key,
1228         PROPVARIANT *ppropvar,
1229         PSC_STATE *pstate);
1230 
1231     HRESULT (STDMETHODCALLTYPE *SetState)(
1232         IPropertyStoreCache *This,
1233         REFPROPERTYKEY key,
1234         PSC_STATE state);
1235 
1236     HRESULT (STDMETHODCALLTYPE *SetValueAndState)(
1237         IPropertyStoreCache *This,
1238         REFPROPERTYKEY key,
1239         const PROPVARIANT *ppropvar,
1240         PSC_STATE state);
1241 
1242     END_INTERFACE
1243 } IPropertyStoreCacheVtbl;
1244 
1245 interface IPropertyStoreCache {
1246     CONST_VTBL IPropertyStoreCacheVtbl* lpVtbl;
1247 };
1248 
1249 #ifdef COBJMACROS
1250 #ifndef WIDL_C_INLINE_WRAPPERS
1251 /*** IUnknown methods ***/
1252 #define IPropertyStoreCache_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1253 #define IPropertyStoreCache_AddRef(This) (This)->lpVtbl->AddRef(This)
1254 #define IPropertyStoreCache_Release(This) (This)->lpVtbl->Release(This)
1255 /*** IPropertyStore methods ***/
1256 #define IPropertyStoreCache_GetCount(This,cProps) (This)->lpVtbl->GetCount(This,cProps)
1257 #define IPropertyStoreCache_GetAt(This,iProp,pkey) (This)->lpVtbl->GetAt(This,iProp,pkey)
1258 #define IPropertyStoreCache_GetValue(This,key,pv) (This)->lpVtbl->GetValue(This,key,pv)
1259 #define IPropertyStoreCache_SetValue(This,key,propvar) (This)->lpVtbl->SetValue(This,key,propvar)
1260 #define IPropertyStoreCache_Commit(This) (This)->lpVtbl->Commit(This)
1261 /*** IPropertyStoreCache methods ***/
1262 #define IPropertyStoreCache_GetState(This,key,pstate) (This)->lpVtbl->GetState(This,key,pstate)
1263 #define IPropertyStoreCache_GetValueAndState(This,key,ppropvar,pstate) (This)->lpVtbl->GetValueAndState(This,key,ppropvar,pstate)
1264 #define IPropertyStoreCache_SetState(This,key,state) (This)->lpVtbl->SetState(This,key,state)
1265 #define IPropertyStoreCache_SetValueAndState(This,key,ppropvar,state) (This)->lpVtbl->SetValueAndState(This,key,ppropvar,state)
1266 #else
1267 /*** IUnknown methods ***/
1268 static FORCEINLINE HRESULT IPropertyStoreCache_QueryInterface(IPropertyStoreCache* This,REFIID riid,void **ppvObject) {
1269     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1270 }
1271 static FORCEINLINE ULONG IPropertyStoreCache_AddRef(IPropertyStoreCache* This) {
1272     return This->lpVtbl->AddRef(This);
1273 }
1274 static FORCEINLINE ULONG IPropertyStoreCache_Release(IPropertyStoreCache* This) {
1275     return This->lpVtbl->Release(This);
1276 }
1277 /*** IPropertyStore methods ***/
1278 static FORCEINLINE HRESULT IPropertyStoreCache_GetCount(IPropertyStoreCache* This,DWORD *cProps) {
1279     return This->lpVtbl->GetCount(This,cProps);
1280 }
1281 static FORCEINLINE HRESULT IPropertyStoreCache_GetAt(IPropertyStoreCache* This,DWORD iProp,PROPERTYKEY *pkey) {
1282     return This->lpVtbl->GetAt(This,iProp,pkey);
1283 }
1284 static FORCEINLINE HRESULT IPropertyStoreCache_GetValue(IPropertyStoreCache* This,REFPROPERTYKEY key,PROPVARIANT *pv) {
1285     return This->lpVtbl->GetValue(This,key,pv);
1286 }
1287 static FORCEINLINE HRESULT IPropertyStoreCache_SetValue(IPropertyStoreCache* This,REFPROPERTYKEY key,REFPROPVARIANT propvar) {
1288     return This->lpVtbl->SetValue(This,key,propvar);
1289 }
1290 static FORCEINLINE HRESULT IPropertyStoreCache_Commit(IPropertyStoreCache* This) {
1291     return This->lpVtbl->Commit(This);
1292 }
1293 /*** IPropertyStoreCache methods ***/
1294 static FORCEINLINE HRESULT IPropertyStoreCache_GetState(IPropertyStoreCache* This,REFPROPERTYKEY key,PSC_STATE *pstate) {
1295     return This->lpVtbl->GetState(This,key,pstate);
1296 }
1297 static FORCEINLINE HRESULT IPropertyStoreCache_GetValueAndState(IPropertyStoreCache* This,REFPROPERTYKEY key,PROPVARIANT *ppropvar,PSC_STATE *pstate) {
1298     return This->lpVtbl->GetValueAndState(This,key,ppropvar,pstate);
1299 }
1300 static FORCEINLINE HRESULT IPropertyStoreCache_SetState(IPropertyStoreCache* This,REFPROPERTYKEY key,PSC_STATE state) {
1301     return This->lpVtbl->SetState(This,key,state);
1302 }
1303 static FORCEINLINE HRESULT IPropertyStoreCache_SetValueAndState(IPropertyStoreCache* This,REFPROPERTYKEY key,const PROPVARIANT *ppropvar,PSC_STATE state) {
1304     return This->lpVtbl->SetValueAndState(This,key,ppropvar,state);
1305 }
1306 #endif
1307 #endif
1308 
1309 #endif
1310 
1311 
1312 #endif  /* __IPropertyStoreCache_INTERFACE_DEFINED__ */
1313 
1314 
1315 /*****************************************************************************
1316  * IPropertyEnumType interface
1317  */
1318 #ifndef __IPropertyEnumType_INTERFACE_DEFINED__
1319 #define __IPropertyEnumType_INTERFACE_DEFINED__
1320 
1321 typedef enum PROPENUMTYPE {
1322     PET_DISCRETEVALUE = 0,
1323     PET_RANGEDVALUE = 1,
1324     PET_DEFAULTVALUE = 2,
1325     PET_ENDRANGE = 3
1326 } PROPENUMTYPE;
1327 
1328 DEFINE_GUID(IID_IPropertyEnumType, 0x11e1fbf9, 0x2d56, 0x4a6b, 0x8d,0xb3, 0x7c,0xd1,0x93,0xa4,0x71,0xf2);
1329 #if defined(__cplusplus) && !defined(CINTERFACE)
1330 MIDL_INTERFACE("11e1fbf9-2d56-4a6b-8db3-7cd193a471f2")
1331 IPropertyEnumType : public IUnknown
1332 {
1333     virtual HRESULT STDMETHODCALLTYPE GetEnumType(
1334         PROPENUMTYPE *penumtype) = 0;
1335 
1336     virtual HRESULT STDMETHODCALLTYPE GetValue(
1337         PROPVARIANT *ppropvar) = 0;
1338 
1339     virtual HRESULT STDMETHODCALLTYPE GetRangeMinValue(
1340         PROPVARIANT *ppropvarMin) = 0;
1341 
1342     virtual HRESULT STDMETHODCALLTYPE GetRangeSetValue(
1343         PROPVARIANT *ppropvarSet) = 0;
1344 
1345     virtual HRESULT STDMETHODCALLTYPE GetDisplayText(
1346         LPWSTR *ppszDisplay) = 0;
1347 
1348 };
1349 #ifdef __CRT_UUID_DECL
1350 __CRT_UUID_DECL(IPropertyEnumType, 0x11e1fbf9, 0x2d56, 0x4a6b, 0x8d,0xb3, 0x7c,0xd1,0x93,0xa4,0x71,0xf2)
1351 #endif
1352 #else
1353 typedef struct IPropertyEnumTypeVtbl {
1354     BEGIN_INTERFACE
1355 
1356     /*** IUnknown methods ***/
1357     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1358         IPropertyEnumType *This,
1359         REFIID riid,
1360         void **ppvObject);
1361 
1362     ULONG (STDMETHODCALLTYPE *AddRef)(
1363         IPropertyEnumType *This);
1364 
1365     ULONG (STDMETHODCALLTYPE *Release)(
1366         IPropertyEnumType *This);
1367 
1368     /*** IPropertyEnumType methods ***/
1369     HRESULT (STDMETHODCALLTYPE *GetEnumType)(
1370         IPropertyEnumType *This,
1371         PROPENUMTYPE *penumtype);
1372 
1373     HRESULT (STDMETHODCALLTYPE *GetValue)(
1374         IPropertyEnumType *This,
1375         PROPVARIANT *ppropvar);
1376 
1377     HRESULT (STDMETHODCALLTYPE *GetRangeMinValue)(
1378         IPropertyEnumType *This,
1379         PROPVARIANT *ppropvarMin);
1380 
1381     HRESULT (STDMETHODCALLTYPE *GetRangeSetValue)(
1382         IPropertyEnumType *This,
1383         PROPVARIANT *ppropvarSet);
1384 
1385     HRESULT (STDMETHODCALLTYPE *GetDisplayText)(
1386         IPropertyEnumType *This,
1387         LPWSTR *ppszDisplay);
1388 
1389     END_INTERFACE
1390 } IPropertyEnumTypeVtbl;
1391 
1392 interface IPropertyEnumType {
1393     CONST_VTBL IPropertyEnumTypeVtbl* lpVtbl;
1394 };
1395 
1396 #ifdef COBJMACROS
1397 #ifndef WIDL_C_INLINE_WRAPPERS
1398 /*** IUnknown methods ***/
1399 #define IPropertyEnumType_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1400 #define IPropertyEnumType_AddRef(This) (This)->lpVtbl->AddRef(This)
1401 #define IPropertyEnumType_Release(This) (This)->lpVtbl->Release(This)
1402 /*** IPropertyEnumType methods ***/
1403 #define IPropertyEnumType_GetEnumType(This,penumtype) (This)->lpVtbl->GetEnumType(This,penumtype)
1404 #define IPropertyEnumType_GetValue(This,ppropvar) (This)->lpVtbl->GetValue(This,ppropvar)
1405 #define IPropertyEnumType_GetRangeMinValue(This,ppropvarMin) (This)->lpVtbl->GetRangeMinValue(This,ppropvarMin)
1406 #define IPropertyEnumType_GetRangeSetValue(This,ppropvarSet) (This)->lpVtbl->GetRangeSetValue(This,ppropvarSet)
1407 #define IPropertyEnumType_GetDisplayText(This,ppszDisplay) (This)->lpVtbl->GetDisplayText(This,ppszDisplay)
1408 #else
1409 /*** IUnknown methods ***/
1410 static FORCEINLINE HRESULT IPropertyEnumType_QueryInterface(IPropertyEnumType* This,REFIID riid,void **ppvObject) {
1411     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1412 }
1413 static FORCEINLINE ULONG IPropertyEnumType_AddRef(IPropertyEnumType* This) {
1414     return This->lpVtbl->AddRef(This);
1415 }
1416 static FORCEINLINE ULONG IPropertyEnumType_Release(IPropertyEnumType* This) {
1417     return This->lpVtbl->Release(This);
1418 }
1419 /*** IPropertyEnumType methods ***/
1420 static FORCEINLINE HRESULT IPropertyEnumType_GetEnumType(IPropertyEnumType* This,PROPENUMTYPE *penumtype) {
1421     return This->lpVtbl->GetEnumType(This,penumtype);
1422 }
1423 static FORCEINLINE HRESULT IPropertyEnumType_GetValue(IPropertyEnumType* This,PROPVARIANT *ppropvar) {
1424     return This->lpVtbl->GetValue(This,ppropvar);
1425 }
1426 static FORCEINLINE HRESULT IPropertyEnumType_GetRangeMinValue(IPropertyEnumType* This,PROPVARIANT *ppropvarMin) {
1427     return This->lpVtbl->GetRangeMinValue(This,ppropvarMin);
1428 }
1429 static FORCEINLINE HRESULT IPropertyEnumType_GetRangeSetValue(IPropertyEnumType* This,PROPVARIANT *ppropvarSet) {
1430     return This->lpVtbl->GetRangeSetValue(This,ppropvarSet);
1431 }
1432 static FORCEINLINE HRESULT IPropertyEnumType_GetDisplayText(IPropertyEnumType* This,LPWSTR *ppszDisplay) {
1433     return This->lpVtbl->GetDisplayText(This,ppszDisplay);
1434 }
1435 #endif
1436 #endif
1437 
1438 #endif
1439 
1440 
1441 #endif  /* __IPropertyEnumType_INTERFACE_DEFINED__ */
1442 
1443 
1444 /*****************************************************************************
1445  * IPropertyEnumType2 interface
1446  */
1447 #ifndef __IPropertyEnumType2_INTERFACE_DEFINED__
1448 #define __IPropertyEnumType2_INTERFACE_DEFINED__
1449 
1450 DEFINE_GUID(IID_IPropertyEnumType2, 0x9b6e051c, 0x5ddd, 0x4321, 0x90,0x70, 0xfe,0x2a,0xcb,0x55,0xe7,0x94);
1451 #if defined(__cplusplus) && !defined(CINTERFACE)
1452 MIDL_INTERFACE("9b6e051c-5ddd-4321-9070-fe2acb55e794")
1453 IPropertyEnumType2 : public IPropertyEnumType
1454 {
1455     virtual HRESULT STDMETHODCALLTYPE GetImageReference(
1456         LPWSTR *ppszImageRes) = 0;
1457 
1458 };
1459 #ifdef __CRT_UUID_DECL
1460 __CRT_UUID_DECL(IPropertyEnumType2, 0x9b6e051c, 0x5ddd, 0x4321, 0x90,0x70, 0xfe,0x2a,0xcb,0x55,0xe7,0x94)
1461 #endif
1462 #else
1463 typedef struct IPropertyEnumType2Vtbl {
1464     BEGIN_INTERFACE
1465 
1466     /*** IUnknown methods ***/
1467     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1468         IPropertyEnumType2 *This,
1469         REFIID riid,
1470         void **ppvObject);
1471 
1472     ULONG (STDMETHODCALLTYPE *AddRef)(
1473         IPropertyEnumType2 *This);
1474 
1475     ULONG (STDMETHODCALLTYPE *Release)(
1476         IPropertyEnumType2 *This);
1477 
1478     /*** IPropertyEnumType methods ***/
1479     HRESULT (STDMETHODCALLTYPE *GetEnumType)(
1480         IPropertyEnumType2 *This,
1481         PROPENUMTYPE *penumtype);
1482 
1483     HRESULT (STDMETHODCALLTYPE *GetValue)(
1484         IPropertyEnumType2 *This,
1485         PROPVARIANT *ppropvar);
1486 
1487     HRESULT (STDMETHODCALLTYPE *GetRangeMinValue)(
1488         IPropertyEnumType2 *This,
1489         PROPVARIANT *ppropvarMin);
1490 
1491     HRESULT (STDMETHODCALLTYPE *GetRangeSetValue)(
1492         IPropertyEnumType2 *This,
1493         PROPVARIANT *ppropvarSet);
1494 
1495     HRESULT (STDMETHODCALLTYPE *GetDisplayText)(
1496         IPropertyEnumType2 *This,
1497         LPWSTR *ppszDisplay);
1498 
1499     /*** IPropertyEnumType2 methods ***/
1500     HRESULT (STDMETHODCALLTYPE *GetImageReference)(
1501         IPropertyEnumType2 *This,
1502         LPWSTR *ppszImageRes);
1503 
1504     END_INTERFACE
1505 } IPropertyEnumType2Vtbl;
1506 
1507 interface IPropertyEnumType2 {
1508     CONST_VTBL IPropertyEnumType2Vtbl* lpVtbl;
1509 };
1510 
1511 #ifdef COBJMACROS
1512 #ifndef WIDL_C_INLINE_WRAPPERS
1513 /*** IUnknown methods ***/
1514 #define IPropertyEnumType2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1515 #define IPropertyEnumType2_AddRef(This) (This)->lpVtbl->AddRef(This)
1516 #define IPropertyEnumType2_Release(This) (This)->lpVtbl->Release(This)
1517 /*** IPropertyEnumType methods ***/
1518 #define IPropertyEnumType2_GetEnumType(This,penumtype) (This)->lpVtbl->GetEnumType(This,penumtype)
1519 #define IPropertyEnumType2_GetValue(This,ppropvar) (This)->lpVtbl->GetValue(This,ppropvar)
1520 #define IPropertyEnumType2_GetRangeMinValue(This,ppropvarMin) (This)->lpVtbl->GetRangeMinValue(This,ppropvarMin)
1521 #define IPropertyEnumType2_GetRangeSetValue(This,ppropvarSet) (This)->lpVtbl->GetRangeSetValue(This,ppropvarSet)
1522 #define IPropertyEnumType2_GetDisplayText(This,ppszDisplay) (This)->lpVtbl->GetDisplayText(This,ppszDisplay)
1523 /*** IPropertyEnumType2 methods ***/
1524 #define IPropertyEnumType2_GetImageReference(This,ppszImageRes) (This)->lpVtbl->GetImageReference(This,ppszImageRes)
1525 #else
1526 /*** IUnknown methods ***/
1527 static FORCEINLINE HRESULT IPropertyEnumType2_QueryInterface(IPropertyEnumType2* This,REFIID riid,void **ppvObject) {
1528     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1529 }
1530 static FORCEINLINE ULONG IPropertyEnumType2_AddRef(IPropertyEnumType2* This) {
1531     return This->lpVtbl->AddRef(This);
1532 }
1533 static FORCEINLINE ULONG IPropertyEnumType2_Release(IPropertyEnumType2* This) {
1534     return This->lpVtbl->Release(This);
1535 }
1536 /*** IPropertyEnumType methods ***/
1537 static FORCEINLINE HRESULT IPropertyEnumType2_GetEnumType(IPropertyEnumType2* This,PROPENUMTYPE *penumtype) {
1538     return This->lpVtbl->GetEnumType(This,penumtype);
1539 }
1540 static FORCEINLINE HRESULT IPropertyEnumType2_GetValue(IPropertyEnumType2* This,PROPVARIANT *ppropvar) {
1541     return This->lpVtbl->GetValue(This,ppropvar);
1542 }
1543 static FORCEINLINE HRESULT IPropertyEnumType2_GetRangeMinValue(IPropertyEnumType2* This,PROPVARIANT *ppropvarMin) {
1544     return This->lpVtbl->GetRangeMinValue(This,ppropvarMin);
1545 }
1546 static FORCEINLINE HRESULT IPropertyEnumType2_GetRangeSetValue(IPropertyEnumType2* This,PROPVARIANT *ppropvarSet) {
1547     return This->lpVtbl->GetRangeSetValue(This,ppropvarSet);
1548 }
1549 static FORCEINLINE HRESULT IPropertyEnumType2_GetDisplayText(IPropertyEnumType2* This,LPWSTR *ppszDisplay) {
1550     return This->lpVtbl->GetDisplayText(This,ppszDisplay);
1551 }
1552 /*** IPropertyEnumType2 methods ***/
1553 static FORCEINLINE HRESULT IPropertyEnumType2_GetImageReference(IPropertyEnumType2* This,LPWSTR *ppszImageRes) {
1554     return This->lpVtbl->GetImageReference(This,ppszImageRes);
1555 }
1556 #endif
1557 #endif
1558 
1559 #endif
1560 
1561 
1562 #endif  /* __IPropertyEnumType2_INTERFACE_DEFINED__ */
1563 
1564 
1565 /*****************************************************************************
1566  * IPropertyEnumTypeList interface
1567  */
1568 #ifndef __IPropertyEnumTypeList_INTERFACE_DEFINED__
1569 #define __IPropertyEnumTypeList_INTERFACE_DEFINED__
1570 
1571 DEFINE_GUID(IID_IPropertyEnumTypeList, 0xa99400f4, 0x3d84, 0x4557, 0x94,0xba, 0x12,0x42,0xfb,0x2c,0xc9,0xa6);
1572 #if defined(__cplusplus) && !defined(CINTERFACE)
1573 MIDL_INTERFACE("a99400f4-3d84-4557-94ba-1242fb2cc9a6")
1574 IPropertyEnumTypeList : public IUnknown
1575 {
1576     virtual HRESULT STDMETHODCALLTYPE GetCount(
1577         UINT *pctypes) = 0;
1578 
1579     virtual HRESULT STDMETHODCALLTYPE GetAt(
1580         UINT itype,
1581         REFIID riid,
1582         void **ppv) = 0;
1583 
1584     virtual HRESULT STDMETHODCALLTYPE GetConditionAt(
1585         UINT nIndex,
1586         REFIID riid,
1587         void **ppv) = 0;
1588 
1589     virtual HRESULT STDMETHODCALLTYPE FindMatchingIndex(
1590         REFPROPVARIANT propvarCmp,
1591         UINT *pnIndex) = 0;
1592 
1593 };
1594 #ifdef __CRT_UUID_DECL
1595 __CRT_UUID_DECL(IPropertyEnumTypeList, 0xa99400f4, 0x3d84, 0x4557, 0x94,0xba, 0x12,0x42,0xfb,0x2c,0xc9,0xa6)
1596 #endif
1597 #else
1598 typedef struct IPropertyEnumTypeListVtbl {
1599     BEGIN_INTERFACE
1600 
1601     /*** IUnknown methods ***/
1602     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1603         IPropertyEnumTypeList *This,
1604         REFIID riid,
1605         void **ppvObject);
1606 
1607     ULONG (STDMETHODCALLTYPE *AddRef)(
1608         IPropertyEnumTypeList *This);
1609 
1610     ULONG (STDMETHODCALLTYPE *Release)(
1611         IPropertyEnumTypeList *This);
1612 
1613     /*** IPropertyEnumTypeList methods ***/
1614     HRESULT (STDMETHODCALLTYPE *GetCount)(
1615         IPropertyEnumTypeList *This,
1616         UINT *pctypes);
1617 
1618     HRESULT (STDMETHODCALLTYPE *GetAt)(
1619         IPropertyEnumTypeList *This,
1620         UINT itype,
1621         REFIID riid,
1622         void **ppv);
1623 
1624     HRESULT (STDMETHODCALLTYPE *GetConditionAt)(
1625         IPropertyEnumTypeList *This,
1626         UINT nIndex,
1627         REFIID riid,
1628         void **ppv);
1629 
1630     HRESULT (STDMETHODCALLTYPE *FindMatchingIndex)(
1631         IPropertyEnumTypeList *This,
1632         REFPROPVARIANT propvarCmp,
1633         UINT *pnIndex);
1634 
1635     END_INTERFACE
1636 } IPropertyEnumTypeListVtbl;
1637 
1638 interface IPropertyEnumTypeList {
1639     CONST_VTBL IPropertyEnumTypeListVtbl* lpVtbl;
1640 };
1641 
1642 #ifdef COBJMACROS
1643 #ifndef WIDL_C_INLINE_WRAPPERS
1644 /*** IUnknown methods ***/
1645 #define IPropertyEnumTypeList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1646 #define IPropertyEnumTypeList_AddRef(This) (This)->lpVtbl->AddRef(This)
1647 #define IPropertyEnumTypeList_Release(This) (This)->lpVtbl->Release(This)
1648 /*** IPropertyEnumTypeList methods ***/
1649 #define IPropertyEnumTypeList_GetCount(This,pctypes) (This)->lpVtbl->GetCount(This,pctypes)
1650 #define IPropertyEnumTypeList_GetAt(This,itype,riid,ppv) (This)->lpVtbl->GetAt(This,itype,riid,ppv)
1651 #define IPropertyEnumTypeList_GetConditionAt(This,nIndex,riid,ppv) (This)->lpVtbl->GetConditionAt(This,nIndex,riid,ppv)
1652 #define IPropertyEnumTypeList_FindMatchingIndex(This,propvarCmp,pnIndex) (This)->lpVtbl->FindMatchingIndex(This,propvarCmp,pnIndex)
1653 #else
1654 /*** IUnknown methods ***/
1655 static FORCEINLINE HRESULT IPropertyEnumTypeList_QueryInterface(IPropertyEnumTypeList* This,REFIID riid,void **ppvObject) {
1656     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1657 }
1658 static FORCEINLINE ULONG IPropertyEnumTypeList_AddRef(IPropertyEnumTypeList* This) {
1659     return This->lpVtbl->AddRef(This);
1660 }
1661 static FORCEINLINE ULONG IPropertyEnumTypeList_Release(IPropertyEnumTypeList* This) {
1662     return This->lpVtbl->Release(This);
1663 }
1664 /*** IPropertyEnumTypeList methods ***/
1665 static FORCEINLINE HRESULT IPropertyEnumTypeList_GetCount(IPropertyEnumTypeList* This,UINT *pctypes) {
1666     return This->lpVtbl->GetCount(This,pctypes);
1667 }
1668 static FORCEINLINE HRESULT IPropertyEnumTypeList_GetAt(IPropertyEnumTypeList* This,UINT itype,REFIID riid,void **ppv) {
1669     return This->lpVtbl->GetAt(This,itype,riid,ppv);
1670 }
1671 static FORCEINLINE HRESULT IPropertyEnumTypeList_GetConditionAt(IPropertyEnumTypeList* This,UINT nIndex,REFIID riid,void **ppv) {
1672     return This->lpVtbl->GetConditionAt(This,nIndex,riid,ppv);
1673 }
1674 static FORCEINLINE HRESULT IPropertyEnumTypeList_FindMatchingIndex(IPropertyEnumTypeList* This,REFPROPVARIANT propvarCmp,UINT *pnIndex) {
1675     return This->lpVtbl->FindMatchingIndex(This,propvarCmp,pnIndex);
1676 }
1677 #endif
1678 #endif
1679 
1680 #endif
1681 
1682 
1683 #endif  /* __IPropertyEnumTypeList_INTERFACE_DEFINED__ */
1684 
1685 
1686 /*****************************************************************************
1687  * IPropertyDescription interface
1688  */
1689 #ifndef __IPropertyDescription_INTERFACE_DEFINED__
1690 #define __IPropertyDescription_INTERFACE_DEFINED__
1691 
1692 typedef enum PROPDESC_TYPE_FLAGS {
1693     PDTF_DEFAULT = 0x0,
1694     PDTF_MULTIPLEVALUES = 0x1,
1695     PDTF_ISINNATE = 0x2,
1696     PDTF_ISGROUP = 0x4,
1697     PDTF_CANGROUPBY = 0x8,
1698     PDTF_CANSTACKBY = 0x10,
1699     PDTF_ISTREEPROPERTY = 0x20,
1700     PDTF_INCLUDEINFULLTEXTQUERY = 0x40,
1701     PDTF_ISVIEWABLE = 0x80,
1702     PDTF_ISQUERYABLE = 0x100,
1703     PDTF_CANBEPURGED = 0x200,
1704     PDTF_SEARCHRAWVALUE = 0x400,
1705     PDTF_ISSYSTEMPROPERTY = 0x80000000,
1706     PDTF_MASK_ALL = 0x800007ff
1707 } PROPDESC_TYPE_FLAGS;
1708 
1709 DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_TYPE_FLAGS)
1710 
1711 typedef enum PROPDESC_VIEW_FLAGS {
1712     PDVF_DEFAULT = 0x0,
1713     PDVF_CENTERALIGN = 0x1,
1714     PDVF_RIGHTALIGN = 0x2,
1715     PDVF_BEGINNEWGROUP = 0x4,
1716     PDVF_FILLAREA = 0x8,
1717     PDVF_SORTDESCENDING = 0x10,
1718     PDVF_SHOWONLYIFPRESENT = 0x20,
1719     PDVF_SHOWBYDEFAULT = 0x40,
1720     PDVF_SHOWINPRIMARYLIST = 0x80,
1721     PDVF_SHOWINSECONDARYLIST = 0x100,
1722     PDVF_HIDELABEL = 0x200,
1723     PDVF_HIDDEN = 0x800,
1724     PDVF_CANWRAP = 0x1000,
1725     PDVF_MASK_ALL = 0x1bff
1726 } PROPDESC_VIEW_FLAGS;
1727 
1728 DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_VIEW_FLAGS)
1729 
1730 typedef enum PROPDESC_DISPLAYTYPE {
1731     PDDT_STRING = 0,
1732     PDDT_NUMBER = 1,
1733     PDDT_BOOLEAN = 2,
1734     PDDT_DATETIME = 3,
1735     PDDT_ENUMERATED = 4
1736 } PROPDESC_DISPLAYTYPE;
1737 
1738 typedef enum PROPDESC_GROUPING_RANGE {
1739     PDGR_DISCRETE = 0,
1740     PDGR_ALPHANUMERIC = 1,
1741     PDGR_SIZE = 2,
1742     PDGR_DYNAMIC = 3,
1743     PDGR_DATE = 4,
1744     PDGR_PERCENT = 5,
1745     PDGR_ENUMERATED = 6
1746 } PROPDESC_GROUPING_RANGE;
1747 
1748 typedef enum PROPDESC_FORMAT_FLAGS {
1749     PDFF_DEFAULT = 0x0,
1750     PDFF_PREFIXNAME = 0x1,
1751     PDFF_FILENAME = 0x2,
1752     PDFF_ALWAYSKB = 0x4,
1753     PDFF_RESERVED_RIGHTTOLEFT = 0x8,
1754     PDFF_SHORTTIME = 0x10,
1755     PDFF_LONGTIME = 0x20,
1756     PDFF_HIDETIME = 0x40,
1757     PDFF_SHORTDATE = 0x80,
1758     PDFF_LONGDATE = 0x100,
1759     PDFF_HIDEDATE = 0x200,
1760     PDFF_RELATIVEDATE = 0x400,
1761     PDFF_USEEDITINVITATION = 0x800,
1762     PDFF_READONLY = 0x1000,
1763     PDFF_NOAUTOREADINGORDER = 0x2000
1764 } PROPDESC_FORMAT_FLAGS;
1765 
1766 DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_FORMAT_FLAGS)
1767 
1768 typedef enum PROPDESC_SORTDESCRIPTION {
1769     PDSD_GENERAL = 0,
1770     PDSD_A_Z = 1,
1771     PDSD_LOWEST_HIGHEST = 2,
1772     PDSD_SMALLEST_BIGGEST = 3,
1773     PDSD_OLDEST_NEWEST = 4
1774 } PROPDESC_SORTDESCRIPTION;
1775 
1776 typedef enum PROPDESC_RELATIVEDESCRIPTION_TYPE {
1777     PDRDT_GENERAL = 0,
1778     PDRDT_DATE = 1,
1779     PDRDT_SIZE = 2,
1780     PDRDT_COUNT = 3,
1781     PDRDT_REVISION = 4,
1782     PDRDT_LENGTH = 5,
1783     PDRDT_DURATION = 6,
1784     PDRDT_SPEED = 7,
1785     PDRDT_RATE = 8,
1786     PDRDT_RATING = 9,
1787     PDRDT_PRIORITY = 10
1788 } PROPDESC_RELATIVEDESCRIPTION_TYPE;
1789 
1790 typedef enum PROPDESC_AGGREGATION_TYPE {
1791     PDAT_DEFAULT = 0,
1792     PDAT_FIRST = 1,
1793     PDAT_SUM = 2,
1794     PDAT_AVERAGE = 3,
1795     PDAT_DATERANGE = 4,
1796     PDAT_UNION = 5,
1797     PDAT_MAX = 6,
1798     PDAT_MIN = 7
1799 } PROPDESC_AGGREGATION_TYPE;
1800 
1801 typedef enum PROPDESC_CONDITION_TYPE {
1802     PDCOT_NONE = 0,
1803     PDCOT_STRING = 1,
1804     PDCOT_SIZE = 2,
1805     PDCOT_DATETIME = 3,
1806     PDCOT_BOOLEAN = 4,
1807     PDCOT_NUMBER = 5
1808 } PROPDESC_CONDITION_TYPE;
1809 
1810 DEFINE_GUID(IID_IPropertyDescription, 0x6f79d558, 0x3e96, 0x4549, 0xa1,0xd1, 0x7d,0x75,0xd2,0x28,0x88,0x14);
1811 #if defined(__cplusplus) && !defined(CINTERFACE)
1812 MIDL_INTERFACE("6f79d558-3e96-4549-a1d1-7d75d2288814")
1813 IPropertyDescription : public IUnknown
1814 {
1815     virtual HRESULT STDMETHODCALLTYPE GetPropertyKey(
1816         PROPERTYKEY *pkey) = 0;
1817 
1818     virtual HRESULT STDMETHODCALLTYPE GetCanonicalName(
1819         LPWSTR *ppszName) = 0;
1820 
1821     virtual HRESULT STDMETHODCALLTYPE GetPropertyType(
1822         VARTYPE *pvartype) = 0;
1823 
1824     virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
1825         LPWSTR *ppszName) = 0;
1826 
1827     virtual HRESULT STDMETHODCALLTYPE GetEditInvitation(
1828         LPWSTR *ppszInvite) = 0;
1829 
1830     virtual HRESULT STDMETHODCALLTYPE GetTypeFlags(
1831         PROPDESC_TYPE_FLAGS mask,
1832         PROPDESC_TYPE_FLAGS *ppdtFlags) = 0;
1833 
1834     virtual HRESULT STDMETHODCALLTYPE GetViewFlags(
1835         PROPDESC_VIEW_FLAGS *ppdvFlags) = 0;
1836 
1837     virtual HRESULT STDMETHODCALLTYPE GetDefaultColumnWidth(
1838         UINT *pcxChars) = 0;
1839 
1840     virtual HRESULT STDMETHODCALLTYPE GetDisplayType(
1841         PROPDESC_DISPLAYTYPE *pdisplaytype) = 0;
1842 
1843     virtual HRESULT STDMETHODCALLTYPE GetColumnState(
1844         SHCOLSTATEF *pcsFlags) = 0;
1845 
1846     virtual HRESULT STDMETHODCALLTYPE GetGroupingRange(
1847         PROPDESC_GROUPING_RANGE *pgr) = 0;
1848 
1849     virtual HRESULT STDMETHODCALLTYPE GetRelativeDescriptionType(
1850         PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt) = 0;
1851 
1852     virtual HRESULT STDMETHODCALLTYPE GetRelativeDescription(
1853         REFPROPVARIANT propvar1,
1854         REFPROPVARIANT propvar2,
1855         LPWSTR *ppszDesc1,
1856         LPWSTR *ppszDesc2) = 0;
1857 
1858     virtual HRESULT STDMETHODCALLTYPE GetSortDescription(
1859         PROPDESC_SORTDESCRIPTION *psd) = 0;
1860 
1861     virtual HRESULT STDMETHODCALLTYPE GetSortDescriptionLabel(
1862         WINBOOL fDescending,
1863         LPWSTR *ppszDescription) = 0;
1864 
1865     virtual HRESULT STDMETHODCALLTYPE GetAggregationType(
1866         PROPDESC_AGGREGATION_TYPE *paggtype) = 0;
1867 
1868     virtual HRESULT STDMETHODCALLTYPE GetConditionType(
1869         PROPDESC_CONDITION_TYPE *pcontype,
1870         CONDITION_OPERATION *popDefault) = 0;
1871 
1872     virtual HRESULT STDMETHODCALLTYPE GetEnumTypeList(
1873         REFIID riid,
1874         void **ppv) = 0;
1875 
1876     virtual HRESULT STDMETHODCALLTYPE CoerceToCanonicalValue(
1877         PROPVARIANT *ppropvar) = 0;
1878 
1879     virtual HRESULT STDMETHODCALLTYPE FormatForDisplay(
1880         REFPROPVARIANT propvar,
1881         PROPDESC_FORMAT_FLAGS pdfFlags,
1882         LPWSTR *ppszDisplay) = 0;
1883 
1884     virtual HRESULT STDMETHODCALLTYPE IsValueCanonical(
1885         REFPROPVARIANT propvar) = 0;
1886 
1887 };
1888 #ifdef __CRT_UUID_DECL
1889 __CRT_UUID_DECL(IPropertyDescription, 0x6f79d558, 0x3e96, 0x4549, 0xa1,0xd1, 0x7d,0x75,0xd2,0x28,0x88,0x14)
1890 #endif
1891 #else
1892 typedef struct IPropertyDescriptionVtbl {
1893     BEGIN_INTERFACE
1894 
1895     /*** IUnknown methods ***/
1896     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1897         IPropertyDescription *This,
1898         REFIID riid,
1899         void **ppvObject);
1900 
1901     ULONG (STDMETHODCALLTYPE *AddRef)(
1902         IPropertyDescription *This);
1903 
1904     ULONG (STDMETHODCALLTYPE *Release)(
1905         IPropertyDescription *This);
1906 
1907     /*** IPropertyDescription methods ***/
1908     HRESULT (STDMETHODCALLTYPE *GetPropertyKey)(
1909         IPropertyDescription *This,
1910         PROPERTYKEY *pkey);
1911 
1912     HRESULT (STDMETHODCALLTYPE *GetCanonicalName)(
1913         IPropertyDescription *This,
1914         LPWSTR *ppszName);
1915 
1916     HRESULT (STDMETHODCALLTYPE *GetPropertyType)(
1917         IPropertyDescription *This,
1918         VARTYPE *pvartype);
1919 
1920     HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
1921         IPropertyDescription *This,
1922         LPWSTR *ppszName);
1923 
1924     HRESULT (STDMETHODCALLTYPE *GetEditInvitation)(
1925         IPropertyDescription *This,
1926         LPWSTR *ppszInvite);
1927 
1928     HRESULT (STDMETHODCALLTYPE *GetTypeFlags)(
1929         IPropertyDescription *This,
1930         PROPDESC_TYPE_FLAGS mask,
1931         PROPDESC_TYPE_FLAGS *ppdtFlags);
1932 
1933     HRESULT (STDMETHODCALLTYPE *GetViewFlags)(
1934         IPropertyDescription *This,
1935         PROPDESC_VIEW_FLAGS *ppdvFlags);
1936 
1937     HRESULT (STDMETHODCALLTYPE *GetDefaultColumnWidth)(
1938         IPropertyDescription *This,
1939         UINT *pcxChars);
1940 
1941     HRESULT (STDMETHODCALLTYPE *GetDisplayType)(
1942         IPropertyDescription *This,
1943         PROPDESC_DISPLAYTYPE *pdisplaytype);
1944 
1945     HRESULT (STDMETHODCALLTYPE *GetColumnState)(
1946         IPropertyDescription *This,
1947         SHCOLSTATEF *pcsFlags);
1948 
1949     HRESULT (STDMETHODCALLTYPE *GetGroupingRange)(
1950         IPropertyDescription *This,
1951         PROPDESC_GROUPING_RANGE *pgr);
1952 
1953     HRESULT (STDMETHODCALLTYPE *GetRelativeDescriptionType)(
1954         IPropertyDescription *This,
1955         PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt);
1956 
1957     HRESULT (STDMETHODCALLTYPE *GetRelativeDescription)(
1958         IPropertyDescription *This,
1959         REFPROPVARIANT propvar1,
1960         REFPROPVARIANT propvar2,
1961         LPWSTR *ppszDesc1,
1962         LPWSTR *ppszDesc2);
1963 
1964     HRESULT (STDMETHODCALLTYPE *GetSortDescription)(
1965         IPropertyDescription *This,
1966         PROPDESC_SORTDESCRIPTION *psd);
1967 
1968     HRESULT (STDMETHODCALLTYPE *GetSortDescriptionLabel)(
1969         IPropertyDescription *This,
1970         WINBOOL fDescending,
1971         LPWSTR *ppszDescription);
1972 
1973     HRESULT (STDMETHODCALLTYPE *GetAggregationType)(
1974         IPropertyDescription *This,
1975         PROPDESC_AGGREGATION_TYPE *paggtype);
1976 
1977     HRESULT (STDMETHODCALLTYPE *GetConditionType)(
1978         IPropertyDescription *This,
1979         PROPDESC_CONDITION_TYPE *pcontype,
1980         CONDITION_OPERATION *popDefault);
1981 
1982     HRESULT (STDMETHODCALLTYPE *GetEnumTypeList)(
1983         IPropertyDescription *This,
1984         REFIID riid,
1985         void **ppv);
1986 
1987     HRESULT (STDMETHODCALLTYPE *CoerceToCanonicalValue)(
1988         IPropertyDescription *This,
1989         PROPVARIANT *ppropvar);
1990 
1991     HRESULT (STDMETHODCALLTYPE *FormatForDisplay)(
1992         IPropertyDescription *This,
1993         REFPROPVARIANT propvar,
1994         PROPDESC_FORMAT_FLAGS pdfFlags,
1995         LPWSTR *ppszDisplay);
1996 
1997     HRESULT (STDMETHODCALLTYPE *IsValueCanonical)(
1998         IPropertyDescription *This,
1999         REFPROPVARIANT propvar);
2000 
2001     END_INTERFACE
2002 } IPropertyDescriptionVtbl;
2003 
2004 interface IPropertyDescription {
2005     CONST_VTBL IPropertyDescriptionVtbl* lpVtbl;
2006 };
2007 
2008 #ifdef COBJMACROS
2009 #ifndef WIDL_C_INLINE_WRAPPERS
2010 /*** IUnknown methods ***/
2011 #define IPropertyDescription_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2012 #define IPropertyDescription_AddRef(This) (This)->lpVtbl->AddRef(This)
2013 #define IPropertyDescription_Release(This) (This)->lpVtbl->Release(This)
2014 /*** IPropertyDescription methods ***/
2015 #define IPropertyDescription_GetPropertyKey(This,pkey) (This)->lpVtbl->GetPropertyKey(This,pkey)
2016 #define IPropertyDescription_GetCanonicalName(This,ppszName) (This)->lpVtbl->GetCanonicalName(This,ppszName)
2017 #define IPropertyDescription_GetPropertyType(This,pvartype) (This)->lpVtbl->GetPropertyType(This,pvartype)
2018 #define IPropertyDescription_GetDisplayName(This,ppszName) (This)->lpVtbl->GetDisplayName(This,ppszName)
2019 #define IPropertyDescription_GetEditInvitation(This,ppszInvite) (This)->lpVtbl->GetEditInvitation(This,ppszInvite)
2020 #define IPropertyDescription_GetTypeFlags(This,mask,ppdtFlags) (This)->lpVtbl->GetTypeFlags(This,mask,ppdtFlags)
2021 #define IPropertyDescription_GetViewFlags(This,ppdvFlags) (This)->lpVtbl->GetViewFlags(This,ppdvFlags)
2022 #define IPropertyDescription_GetDefaultColumnWidth(This,pcxChars) (This)->lpVtbl->GetDefaultColumnWidth(This,pcxChars)
2023 #define IPropertyDescription_GetDisplayType(This,pdisplaytype) (This)->lpVtbl->GetDisplayType(This,pdisplaytype)
2024 #define IPropertyDescription_GetColumnState(This,pcsFlags) (This)->lpVtbl->GetColumnState(This,pcsFlags)
2025 #define IPropertyDescription_GetGroupingRange(This,pgr) (This)->lpVtbl->GetGroupingRange(This,pgr)
2026 #define IPropertyDescription_GetRelativeDescriptionType(This,prdt) (This)->lpVtbl->GetRelativeDescriptionType(This,prdt)
2027 #define IPropertyDescription_GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2) (This)->lpVtbl->GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2)
2028 #define IPropertyDescription_GetSortDescription(This,psd) (This)->lpVtbl->GetSortDescription(This,psd)
2029 #define IPropertyDescription_GetSortDescriptionLabel(This,fDescending,ppszDescription) (This)->lpVtbl->GetSortDescriptionLabel(This,fDescending,ppszDescription)
2030 #define IPropertyDescription_GetAggregationType(This,paggtype) (This)->lpVtbl->GetAggregationType(This,paggtype)
2031 #define IPropertyDescription_GetConditionType(This,pcontype,popDefault) (This)->lpVtbl->GetConditionType(This,pcontype,popDefault)
2032 #define IPropertyDescription_GetEnumTypeList(This,riid,ppv) (This)->lpVtbl->GetEnumTypeList(This,riid,ppv)
2033 #define IPropertyDescription_CoerceToCanonicalValue(This,ppropvar) (This)->lpVtbl->CoerceToCanonicalValue(This,ppropvar)
2034 #define IPropertyDescription_FormatForDisplay(This,propvar,pdfFlags,ppszDisplay) (This)->lpVtbl->FormatForDisplay(This,propvar,pdfFlags,ppszDisplay)
2035 #define IPropertyDescription_IsValueCanonical(This,propvar) (This)->lpVtbl->IsValueCanonical(This,propvar)
2036 #else
2037 /*** IUnknown methods ***/
2038 static FORCEINLINE HRESULT IPropertyDescription_QueryInterface(IPropertyDescription* This,REFIID riid,void **ppvObject) {
2039     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2040 }
2041 static FORCEINLINE ULONG IPropertyDescription_AddRef(IPropertyDescription* This) {
2042     return This->lpVtbl->AddRef(This);
2043 }
2044 static FORCEINLINE ULONG IPropertyDescription_Release(IPropertyDescription* This) {
2045     return This->lpVtbl->Release(This);
2046 }
2047 /*** IPropertyDescription methods ***/
2048 static FORCEINLINE HRESULT IPropertyDescription_GetPropertyKey(IPropertyDescription* This,PROPERTYKEY *pkey) {
2049     return This->lpVtbl->GetPropertyKey(This,pkey);
2050 }
2051 static FORCEINLINE HRESULT IPropertyDescription_GetCanonicalName(IPropertyDescription* This,LPWSTR *ppszName) {
2052     return This->lpVtbl->GetCanonicalName(This,ppszName);
2053 }
2054 static FORCEINLINE HRESULT IPropertyDescription_GetPropertyType(IPropertyDescription* This,VARTYPE *pvartype) {
2055     return This->lpVtbl->GetPropertyType(This,pvartype);
2056 }
2057 static FORCEINLINE HRESULT IPropertyDescription_GetDisplayName(IPropertyDescription* This,LPWSTR *ppszName) {
2058     return This->lpVtbl->GetDisplayName(This,ppszName);
2059 }
2060 static FORCEINLINE HRESULT IPropertyDescription_GetEditInvitation(IPropertyDescription* This,LPWSTR *ppszInvite) {
2061     return This->lpVtbl->GetEditInvitation(This,ppszInvite);
2062 }
2063 static FORCEINLINE HRESULT IPropertyDescription_GetTypeFlags(IPropertyDescription* This,PROPDESC_TYPE_FLAGS mask,PROPDESC_TYPE_FLAGS *ppdtFlags) {
2064     return This->lpVtbl->GetTypeFlags(This,mask,ppdtFlags);
2065 }
2066 static FORCEINLINE HRESULT IPropertyDescription_GetViewFlags(IPropertyDescription* This,PROPDESC_VIEW_FLAGS *ppdvFlags) {
2067     return This->lpVtbl->GetViewFlags(This,ppdvFlags);
2068 }
2069 static FORCEINLINE HRESULT IPropertyDescription_GetDefaultColumnWidth(IPropertyDescription* This,UINT *pcxChars) {
2070     return This->lpVtbl->GetDefaultColumnWidth(This,pcxChars);
2071 }
2072 static FORCEINLINE HRESULT IPropertyDescription_GetDisplayType(IPropertyDescription* This,PROPDESC_DISPLAYTYPE *pdisplaytype) {
2073     return This->lpVtbl->GetDisplayType(This,pdisplaytype);
2074 }
2075 static FORCEINLINE HRESULT IPropertyDescription_GetColumnState(IPropertyDescription* This,SHCOLSTATEF *pcsFlags) {
2076     return This->lpVtbl->GetColumnState(This,pcsFlags);
2077 }
2078 static FORCEINLINE HRESULT IPropertyDescription_GetGroupingRange(IPropertyDescription* This,PROPDESC_GROUPING_RANGE *pgr) {
2079     return This->lpVtbl->GetGroupingRange(This,pgr);
2080 }
2081 static FORCEINLINE HRESULT IPropertyDescription_GetRelativeDescriptionType(IPropertyDescription* This,PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt) {
2082     return This->lpVtbl->GetRelativeDescriptionType(This,prdt);
2083 }
2084 static FORCEINLINE HRESULT IPropertyDescription_GetRelativeDescription(IPropertyDescription* This,REFPROPVARIANT propvar1,REFPROPVARIANT propvar2,LPWSTR *ppszDesc1,LPWSTR *ppszDesc2) {
2085     return This->lpVtbl->GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2);
2086 }
2087 static FORCEINLINE HRESULT IPropertyDescription_GetSortDescription(IPropertyDescription* This,PROPDESC_SORTDESCRIPTION *psd) {
2088     return This->lpVtbl->GetSortDescription(This,psd);
2089 }
2090 static FORCEINLINE HRESULT IPropertyDescription_GetSortDescriptionLabel(IPropertyDescription* This,WINBOOL fDescending,LPWSTR *ppszDescription) {
2091     return This->lpVtbl->GetSortDescriptionLabel(This,fDescending,ppszDescription);
2092 }
2093 static FORCEINLINE HRESULT IPropertyDescription_GetAggregationType(IPropertyDescription* This,PROPDESC_AGGREGATION_TYPE *paggtype) {
2094     return This->lpVtbl->GetAggregationType(This,paggtype);
2095 }
2096 static FORCEINLINE HRESULT IPropertyDescription_GetConditionType(IPropertyDescription* This,PROPDESC_CONDITION_TYPE *pcontype,CONDITION_OPERATION *popDefault) {
2097     return This->lpVtbl->GetConditionType(This,pcontype,popDefault);
2098 }
2099 static FORCEINLINE HRESULT IPropertyDescription_GetEnumTypeList(IPropertyDescription* This,REFIID riid,void **ppv) {
2100     return This->lpVtbl->GetEnumTypeList(This,riid,ppv);
2101 }
2102 static FORCEINLINE HRESULT IPropertyDescription_CoerceToCanonicalValue(IPropertyDescription* This,PROPVARIANT *ppropvar) {
2103     return This->lpVtbl->CoerceToCanonicalValue(This,ppropvar);
2104 }
2105 static FORCEINLINE HRESULT IPropertyDescription_FormatForDisplay(IPropertyDescription* This,REFPROPVARIANT propvar,PROPDESC_FORMAT_FLAGS pdfFlags,LPWSTR *ppszDisplay) {
2106     return This->lpVtbl->FormatForDisplay(This,propvar,pdfFlags,ppszDisplay);
2107 }
2108 static FORCEINLINE HRESULT IPropertyDescription_IsValueCanonical(IPropertyDescription* This,REFPROPVARIANT propvar) {
2109     return This->lpVtbl->IsValueCanonical(This,propvar);
2110 }
2111 #endif
2112 #endif
2113 
2114 #endif
2115 
2116 HRESULT STDMETHODCALLTYPE IPropertyDescription_RemoteCoerceToCanonicalValue_Proxy(
2117     IPropertyDescription* This,
2118     REFPROPVARIANT propvar,
2119     PROPVARIANT *ppropvar);
2120 void __RPC_STUB IPropertyDescription_RemoteCoerceToCanonicalValue_Stub(
2121     IRpcStubBuffer* This,
2122     IRpcChannelBuffer* pRpcChannelBuffer,
2123     PRPC_MESSAGE pRpcMessage,
2124     DWORD* pdwStubPhase);
2125 HRESULT CALLBACK IPropertyDescription_CoerceToCanonicalValue_Proxy(
2126     IPropertyDescription* This,
2127     PROPVARIANT *ppropvar);
2128 HRESULT __RPC_STUB IPropertyDescription_CoerceToCanonicalValue_Stub(
2129     IPropertyDescription* This,
2130     REFPROPVARIANT propvar,
2131     PROPVARIANT *ppropvar);
2132 
2133 #endif  /* __IPropertyDescription_INTERFACE_DEFINED__ */
2134 
2135 
2136 /*****************************************************************************
2137  * IPropertyDescription2 interface
2138  */
2139 #ifndef __IPropertyDescription2_INTERFACE_DEFINED__
2140 #define __IPropertyDescription2_INTERFACE_DEFINED__
2141 
2142 DEFINE_GUID(IID_IPropertyDescription2, 0x57d2eded, 0x5062, 0x400e, 0xb1,0x07, 0x5d,0xae,0x79,0xfe,0x57,0xa6);
2143 #if defined(__cplusplus) && !defined(CINTERFACE)
2144 MIDL_INTERFACE("57d2eded-5062-400e-b107-5dae79fe57a6")
2145 IPropertyDescription2 : public IPropertyDescription
2146 {
2147     virtual HRESULT STDMETHODCALLTYPE GetImageReferenceForValue(
2148         REFPROPVARIANT propvar,
2149         LPWSTR *ppszImageRes) = 0;
2150 
2151 };
2152 #ifdef __CRT_UUID_DECL
2153 __CRT_UUID_DECL(IPropertyDescription2, 0x57d2eded, 0x5062, 0x400e, 0xb1,0x07, 0x5d,0xae,0x79,0xfe,0x57,0xa6)
2154 #endif
2155 #else
2156 typedef struct IPropertyDescription2Vtbl {
2157     BEGIN_INTERFACE
2158 
2159     /*** IUnknown methods ***/
2160     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2161         IPropertyDescription2 *This,
2162         REFIID riid,
2163         void **ppvObject);
2164 
2165     ULONG (STDMETHODCALLTYPE *AddRef)(
2166         IPropertyDescription2 *This);
2167 
2168     ULONG (STDMETHODCALLTYPE *Release)(
2169         IPropertyDescription2 *This);
2170 
2171     /*** IPropertyDescription methods ***/
2172     HRESULT (STDMETHODCALLTYPE *GetPropertyKey)(
2173         IPropertyDescription2 *This,
2174         PROPERTYKEY *pkey);
2175 
2176     HRESULT (STDMETHODCALLTYPE *GetCanonicalName)(
2177         IPropertyDescription2 *This,
2178         LPWSTR *ppszName);
2179 
2180     HRESULT (STDMETHODCALLTYPE *GetPropertyType)(
2181         IPropertyDescription2 *This,
2182         VARTYPE *pvartype);
2183 
2184     HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
2185         IPropertyDescription2 *This,
2186         LPWSTR *ppszName);
2187 
2188     HRESULT (STDMETHODCALLTYPE *GetEditInvitation)(
2189         IPropertyDescription2 *This,
2190         LPWSTR *ppszInvite);
2191 
2192     HRESULT (STDMETHODCALLTYPE *GetTypeFlags)(
2193         IPropertyDescription2 *This,
2194         PROPDESC_TYPE_FLAGS mask,
2195         PROPDESC_TYPE_FLAGS *ppdtFlags);
2196 
2197     HRESULT (STDMETHODCALLTYPE *GetViewFlags)(
2198         IPropertyDescription2 *This,
2199         PROPDESC_VIEW_FLAGS *ppdvFlags);
2200 
2201     HRESULT (STDMETHODCALLTYPE *GetDefaultColumnWidth)(
2202         IPropertyDescription2 *This,
2203         UINT *pcxChars);
2204 
2205     HRESULT (STDMETHODCALLTYPE *GetDisplayType)(
2206         IPropertyDescription2 *This,
2207         PROPDESC_DISPLAYTYPE *pdisplaytype);
2208 
2209     HRESULT (STDMETHODCALLTYPE *GetColumnState)(
2210         IPropertyDescription2 *This,
2211         SHCOLSTATEF *pcsFlags);
2212 
2213     HRESULT (STDMETHODCALLTYPE *GetGroupingRange)(
2214         IPropertyDescription2 *This,
2215         PROPDESC_GROUPING_RANGE *pgr);
2216 
2217     HRESULT (STDMETHODCALLTYPE *GetRelativeDescriptionType)(
2218         IPropertyDescription2 *This,
2219         PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt);
2220 
2221     HRESULT (STDMETHODCALLTYPE *GetRelativeDescription)(
2222         IPropertyDescription2 *This,
2223         REFPROPVARIANT propvar1,
2224         REFPROPVARIANT propvar2,
2225         LPWSTR *ppszDesc1,
2226         LPWSTR *ppszDesc2);
2227 
2228     HRESULT (STDMETHODCALLTYPE *GetSortDescription)(
2229         IPropertyDescription2 *This,
2230         PROPDESC_SORTDESCRIPTION *psd);
2231 
2232     HRESULT (STDMETHODCALLTYPE *GetSortDescriptionLabel)(
2233         IPropertyDescription2 *This,
2234         WINBOOL fDescending,
2235         LPWSTR *ppszDescription);
2236 
2237     HRESULT (STDMETHODCALLTYPE *GetAggregationType)(
2238         IPropertyDescription2 *This,
2239         PROPDESC_AGGREGATION_TYPE *paggtype);
2240 
2241     HRESULT (STDMETHODCALLTYPE *GetConditionType)(
2242         IPropertyDescription2 *This,
2243         PROPDESC_CONDITION_TYPE *pcontype,
2244         CONDITION_OPERATION *popDefault);
2245 
2246     HRESULT (STDMETHODCALLTYPE *GetEnumTypeList)(
2247         IPropertyDescription2 *This,
2248         REFIID riid,
2249         void **ppv);
2250 
2251     HRESULT (STDMETHODCALLTYPE *CoerceToCanonicalValue)(
2252         IPropertyDescription2 *This,
2253         PROPVARIANT *ppropvar);
2254 
2255     HRESULT (STDMETHODCALLTYPE *FormatForDisplay)(
2256         IPropertyDescription2 *This,
2257         REFPROPVARIANT propvar,
2258         PROPDESC_FORMAT_FLAGS pdfFlags,
2259         LPWSTR *ppszDisplay);
2260 
2261     HRESULT (STDMETHODCALLTYPE *IsValueCanonical)(
2262         IPropertyDescription2 *This,
2263         REFPROPVARIANT propvar);
2264 
2265     /*** IPropertyDescription2 methods ***/
2266     HRESULT (STDMETHODCALLTYPE *GetImageReferenceForValue)(
2267         IPropertyDescription2 *This,
2268         REFPROPVARIANT propvar,
2269         LPWSTR *ppszImageRes);
2270 
2271     END_INTERFACE
2272 } IPropertyDescription2Vtbl;
2273 
2274 interface IPropertyDescription2 {
2275     CONST_VTBL IPropertyDescription2Vtbl* lpVtbl;
2276 };
2277 
2278 #ifdef COBJMACROS
2279 #ifndef WIDL_C_INLINE_WRAPPERS
2280 /*** IUnknown methods ***/
2281 #define IPropertyDescription2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2282 #define IPropertyDescription2_AddRef(This) (This)->lpVtbl->AddRef(This)
2283 #define IPropertyDescription2_Release(This) (This)->lpVtbl->Release(This)
2284 /*** IPropertyDescription methods ***/
2285 #define IPropertyDescription2_GetPropertyKey(This,pkey) (This)->lpVtbl->GetPropertyKey(This,pkey)
2286 #define IPropertyDescription2_GetCanonicalName(This,ppszName) (This)->lpVtbl->GetCanonicalName(This,ppszName)
2287 #define IPropertyDescription2_GetPropertyType(This,pvartype) (This)->lpVtbl->GetPropertyType(This,pvartype)
2288 #define IPropertyDescription2_GetDisplayName(This,ppszName) (This)->lpVtbl->GetDisplayName(This,ppszName)
2289 #define IPropertyDescription2_GetEditInvitation(This,ppszInvite) (This)->lpVtbl->GetEditInvitation(This,ppszInvite)
2290 #define IPropertyDescription2_GetTypeFlags(This,mask,ppdtFlags) (This)->lpVtbl->GetTypeFlags(This,mask,ppdtFlags)
2291 #define IPropertyDescription2_GetViewFlags(This,ppdvFlags) (This)->lpVtbl->GetViewFlags(This,ppdvFlags)
2292 #define IPropertyDescription2_GetDefaultColumnWidth(This,pcxChars) (This)->lpVtbl->GetDefaultColumnWidth(This,pcxChars)
2293 #define IPropertyDescription2_GetDisplayType(This,pdisplaytype) (This)->lpVtbl->GetDisplayType(This,pdisplaytype)
2294 #define IPropertyDescription2_GetColumnState(This,pcsFlags) (This)->lpVtbl->GetColumnState(This,pcsFlags)
2295 #define IPropertyDescription2_GetGroupingRange(This,pgr) (This)->lpVtbl->GetGroupingRange(This,pgr)
2296 #define IPropertyDescription2_GetRelativeDescriptionType(This,prdt) (This)->lpVtbl->GetRelativeDescriptionType(This,prdt)
2297 #define IPropertyDescription2_GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2) (This)->lpVtbl->GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2)
2298 #define IPropertyDescription2_GetSortDescription(This,psd) (This)->lpVtbl->GetSortDescription(This,psd)
2299 #define IPropertyDescription2_GetSortDescriptionLabel(This,fDescending,ppszDescription) (This)->lpVtbl->GetSortDescriptionLabel(This,fDescending,ppszDescription)
2300 #define IPropertyDescription2_GetAggregationType(This,paggtype) (This)->lpVtbl->GetAggregationType(This,paggtype)
2301 #define IPropertyDescription2_GetConditionType(This,pcontype,popDefault) (This)->lpVtbl->GetConditionType(This,pcontype,popDefault)
2302 #define IPropertyDescription2_GetEnumTypeList(This,riid,ppv) (This)->lpVtbl->GetEnumTypeList(This,riid,ppv)
2303 #define IPropertyDescription2_CoerceToCanonicalValue(This,ppropvar) (This)->lpVtbl->CoerceToCanonicalValue(This,ppropvar)
2304 #define IPropertyDescription2_FormatForDisplay(This,propvar,pdfFlags,ppszDisplay) (This)->lpVtbl->FormatForDisplay(This,propvar,pdfFlags,ppszDisplay)
2305 #define IPropertyDescription2_IsValueCanonical(This,propvar) (This)->lpVtbl->IsValueCanonical(This,propvar)
2306 /*** IPropertyDescription2 methods ***/
2307 #define IPropertyDescription2_GetImageReferenceForValue(This,propvar,ppszImageRes) (This)->lpVtbl->GetImageReferenceForValue(This,propvar,ppszImageRes)
2308 #else
2309 /*** IUnknown methods ***/
2310 static FORCEINLINE HRESULT IPropertyDescription2_QueryInterface(IPropertyDescription2* This,REFIID riid,void **ppvObject) {
2311     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2312 }
2313 static FORCEINLINE ULONG IPropertyDescription2_AddRef(IPropertyDescription2* This) {
2314     return This->lpVtbl->AddRef(This);
2315 }
2316 static FORCEINLINE ULONG IPropertyDescription2_Release(IPropertyDescription2* This) {
2317     return This->lpVtbl->Release(This);
2318 }
2319 /*** IPropertyDescription methods ***/
2320 static FORCEINLINE HRESULT IPropertyDescription2_GetPropertyKey(IPropertyDescription2* This,PROPERTYKEY *pkey) {
2321     return This->lpVtbl->GetPropertyKey(This,pkey);
2322 }
2323 static FORCEINLINE HRESULT IPropertyDescription2_GetCanonicalName(IPropertyDescription2* This,LPWSTR *ppszName) {
2324     return This->lpVtbl->GetCanonicalName(This,ppszName);
2325 }
2326 static FORCEINLINE HRESULT IPropertyDescription2_GetPropertyType(IPropertyDescription2* This,VARTYPE *pvartype) {
2327     return This->lpVtbl->GetPropertyType(This,pvartype);
2328 }
2329 static FORCEINLINE HRESULT IPropertyDescription2_GetDisplayName(IPropertyDescription2* This,LPWSTR *ppszName) {
2330     return This->lpVtbl->GetDisplayName(This,ppszName);
2331 }
2332 static FORCEINLINE HRESULT IPropertyDescription2_GetEditInvitation(IPropertyDescription2* This,LPWSTR *ppszInvite) {
2333     return This->lpVtbl->GetEditInvitation(This,ppszInvite);
2334 }
2335 static FORCEINLINE HRESULT IPropertyDescription2_GetTypeFlags(IPropertyDescription2* This,PROPDESC_TYPE_FLAGS mask,PROPDESC_TYPE_FLAGS *ppdtFlags) {
2336     return This->lpVtbl->GetTypeFlags(This,mask,ppdtFlags);
2337 }
2338 static FORCEINLINE HRESULT IPropertyDescription2_GetViewFlags(IPropertyDescription2* This,PROPDESC_VIEW_FLAGS *ppdvFlags) {
2339     return This->lpVtbl->GetViewFlags(This,ppdvFlags);
2340 }
2341 static FORCEINLINE HRESULT IPropertyDescription2_GetDefaultColumnWidth(IPropertyDescription2* This,UINT *pcxChars) {
2342     return This->lpVtbl->GetDefaultColumnWidth(This,pcxChars);
2343 }
2344 static FORCEINLINE HRESULT IPropertyDescription2_GetDisplayType(IPropertyDescription2* This,PROPDESC_DISPLAYTYPE *pdisplaytype) {
2345     return This->lpVtbl->GetDisplayType(This,pdisplaytype);
2346 }
2347 static FORCEINLINE HRESULT IPropertyDescription2_GetColumnState(IPropertyDescription2* This,SHCOLSTATEF *pcsFlags) {
2348     return This->lpVtbl->GetColumnState(This,pcsFlags);
2349 }
2350 static FORCEINLINE HRESULT IPropertyDescription2_GetGroupingRange(IPropertyDescription2* This,PROPDESC_GROUPING_RANGE *pgr) {
2351     return This->lpVtbl->GetGroupingRange(This,pgr);
2352 }
2353 static FORCEINLINE HRESULT IPropertyDescription2_GetRelativeDescriptionType(IPropertyDescription2* This,PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt) {
2354     return This->lpVtbl->GetRelativeDescriptionType(This,prdt);
2355 }
2356 static FORCEINLINE HRESULT IPropertyDescription2_GetRelativeDescription(IPropertyDescription2* This,REFPROPVARIANT propvar1,REFPROPVARIANT propvar2,LPWSTR *ppszDesc1,LPWSTR *ppszDesc2) {
2357     return This->lpVtbl->GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2);
2358 }
2359 static FORCEINLINE HRESULT IPropertyDescription2_GetSortDescription(IPropertyDescription2* This,PROPDESC_SORTDESCRIPTION *psd) {
2360     return This->lpVtbl->GetSortDescription(This,psd);
2361 }
2362 static FORCEINLINE HRESULT IPropertyDescription2_GetSortDescriptionLabel(IPropertyDescription2* This,WINBOOL fDescending,LPWSTR *ppszDescription) {
2363     return This->lpVtbl->GetSortDescriptionLabel(This,fDescending,ppszDescription);
2364 }
2365 static FORCEINLINE HRESULT IPropertyDescription2_GetAggregationType(IPropertyDescription2* This,PROPDESC_AGGREGATION_TYPE *paggtype) {
2366     return This->lpVtbl->GetAggregationType(This,paggtype);
2367 }
2368 static FORCEINLINE HRESULT IPropertyDescription2_GetConditionType(IPropertyDescription2* This,PROPDESC_CONDITION_TYPE *pcontype,CONDITION_OPERATION *popDefault) {
2369     return This->lpVtbl->GetConditionType(This,pcontype,popDefault);
2370 }
2371 static FORCEINLINE HRESULT IPropertyDescription2_GetEnumTypeList(IPropertyDescription2* This,REFIID riid,void **ppv) {
2372     return This->lpVtbl->GetEnumTypeList(This,riid,ppv);
2373 }
2374 static FORCEINLINE HRESULT IPropertyDescription2_CoerceToCanonicalValue(IPropertyDescription2* This,PROPVARIANT *ppropvar) {
2375     return This->lpVtbl->CoerceToCanonicalValue(This,ppropvar);
2376 }
2377 static FORCEINLINE HRESULT IPropertyDescription2_FormatForDisplay(IPropertyDescription2* This,REFPROPVARIANT propvar,PROPDESC_FORMAT_FLAGS pdfFlags,LPWSTR *ppszDisplay) {
2378     return This->lpVtbl->FormatForDisplay(This,propvar,pdfFlags,ppszDisplay);
2379 }
2380 static FORCEINLINE HRESULT IPropertyDescription2_IsValueCanonical(IPropertyDescription2* This,REFPROPVARIANT propvar) {
2381     return This->lpVtbl->IsValueCanonical(This,propvar);
2382 }
2383 /*** IPropertyDescription2 methods ***/
2384 static FORCEINLINE HRESULT IPropertyDescription2_GetImageReferenceForValue(IPropertyDescription2* This,REFPROPVARIANT propvar,LPWSTR *ppszImageRes) {
2385     return This->lpVtbl->GetImageReferenceForValue(This,propvar,ppszImageRes);
2386 }
2387 #endif
2388 #endif
2389 
2390 #endif
2391 
2392 
2393 #endif  /* __IPropertyDescription2_INTERFACE_DEFINED__ */
2394 
2395 
2396 /*****************************************************************************
2397  * IPropertyDescriptionAliasInfo interface
2398  */
2399 #ifndef __IPropertyDescriptionAliasInfo_INTERFACE_DEFINED__
2400 #define __IPropertyDescriptionAliasInfo_INTERFACE_DEFINED__
2401 
2402 DEFINE_GUID(IID_IPropertyDescriptionAliasInfo, 0xf67104fc, 0x2af9, 0x46fd, 0xb3,0x2d, 0x24,0x3c,0x14,0x04,0xf3,0xd1);
2403 #if defined(__cplusplus) && !defined(CINTERFACE)
2404 MIDL_INTERFACE("f67104fc-2af9-46fd-b32d-243c1404f3d1")
2405 IPropertyDescriptionAliasInfo : public IPropertyDescription
2406 {
2407     virtual HRESULT STDMETHODCALLTYPE GetSortByAlias(
2408         REFIID riid,
2409         void **ppv) = 0;
2410 
2411     virtual HRESULT STDMETHODCALLTYPE GetAdditionalSortByAliases(
2412         REFIID riid,
2413         void **ppv) = 0;
2414 
2415 };
2416 #ifdef __CRT_UUID_DECL
2417 __CRT_UUID_DECL(IPropertyDescriptionAliasInfo, 0xf67104fc, 0x2af9, 0x46fd, 0xb3,0x2d, 0x24,0x3c,0x14,0x04,0xf3,0xd1)
2418 #endif
2419 #else
2420 typedef struct IPropertyDescriptionAliasInfoVtbl {
2421     BEGIN_INTERFACE
2422 
2423     /*** IUnknown methods ***/
2424     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2425         IPropertyDescriptionAliasInfo *This,
2426         REFIID riid,
2427         void **ppvObject);
2428 
2429     ULONG (STDMETHODCALLTYPE *AddRef)(
2430         IPropertyDescriptionAliasInfo *This);
2431 
2432     ULONG (STDMETHODCALLTYPE *Release)(
2433         IPropertyDescriptionAliasInfo *This);
2434 
2435     /*** IPropertyDescription methods ***/
2436     HRESULT (STDMETHODCALLTYPE *GetPropertyKey)(
2437         IPropertyDescriptionAliasInfo *This,
2438         PROPERTYKEY *pkey);
2439 
2440     HRESULT (STDMETHODCALLTYPE *GetCanonicalName)(
2441         IPropertyDescriptionAliasInfo *This,
2442         LPWSTR *ppszName);
2443 
2444     HRESULT (STDMETHODCALLTYPE *GetPropertyType)(
2445         IPropertyDescriptionAliasInfo *This,
2446         VARTYPE *pvartype);
2447 
2448     HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
2449         IPropertyDescriptionAliasInfo *This,
2450         LPWSTR *ppszName);
2451 
2452     HRESULT (STDMETHODCALLTYPE *GetEditInvitation)(
2453         IPropertyDescriptionAliasInfo *This,
2454         LPWSTR *ppszInvite);
2455 
2456     HRESULT (STDMETHODCALLTYPE *GetTypeFlags)(
2457         IPropertyDescriptionAliasInfo *This,
2458         PROPDESC_TYPE_FLAGS mask,
2459         PROPDESC_TYPE_FLAGS *ppdtFlags);
2460 
2461     HRESULT (STDMETHODCALLTYPE *GetViewFlags)(
2462         IPropertyDescriptionAliasInfo *This,
2463         PROPDESC_VIEW_FLAGS *ppdvFlags);
2464 
2465     HRESULT (STDMETHODCALLTYPE *GetDefaultColumnWidth)(
2466         IPropertyDescriptionAliasInfo *This,
2467         UINT *pcxChars);
2468 
2469     HRESULT (STDMETHODCALLTYPE *GetDisplayType)(
2470         IPropertyDescriptionAliasInfo *This,
2471         PROPDESC_DISPLAYTYPE *pdisplaytype);
2472 
2473     HRESULT (STDMETHODCALLTYPE *GetColumnState)(
2474         IPropertyDescriptionAliasInfo *This,
2475         SHCOLSTATEF *pcsFlags);
2476 
2477     HRESULT (STDMETHODCALLTYPE *GetGroupingRange)(
2478         IPropertyDescriptionAliasInfo *This,
2479         PROPDESC_GROUPING_RANGE *pgr);
2480 
2481     HRESULT (STDMETHODCALLTYPE *GetRelativeDescriptionType)(
2482         IPropertyDescriptionAliasInfo *This,
2483         PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt);
2484 
2485     HRESULT (STDMETHODCALLTYPE *GetRelativeDescription)(
2486         IPropertyDescriptionAliasInfo *This,
2487         REFPROPVARIANT propvar1,
2488         REFPROPVARIANT propvar2,
2489         LPWSTR *ppszDesc1,
2490         LPWSTR *ppszDesc2);
2491 
2492     HRESULT (STDMETHODCALLTYPE *GetSortDescription)(
2493         IPropertyDescriptionAliasInfo *This,
2494         PROPDESC_SORTDESCRIPTION *psd);
2495 
2496     HRESULT (STDMETHODCALLTYPE *GetSortDescriptionLabel)(
2497         IPropertyDescriptionAliasInfo *This,
2498         WINBOOL fDescending,
2499         LPWSTR *ppszDescription);
2500 
2501     HRESULT (STDMETHODCALLTYPE *GetAggregationType)(
2502         IPropertyDescriptionAliasInfo *This,
2503         PROPDESC_AGGREGATION_TYPE *paggtype);
2504 
2505     HRESULT (STDMETHODCALLTYPE *GetConditionType)(
2506         IPropertyDescriptionAliasInfo *This,
2507         PROPDESC_CONDITION_TYPE *pcontype,
2508         CONDITION_OPERATION *popDefault);
2509 
2510     HRESULT (STDMETHODCALLTYPE *GetEnumTypeList)(
2511         IPropertyDescriptionAliasInfo *This,
2512         REFIID riid,
2513         void **ppv);
2514 
2515     HRESULT (STDMETHODCALLTYPE *CoerceToCanonicalValue)(
2516         IPropertyDescriptionAliasInfo *This,
2517         PROPVARIANT *ppropvar);
2518 
2519     HRESULT (STDMETHODCALLTYPE *FormatForDisplay)(
2520         IPropertyDescriptionAliasInfo *This,
2521         REFPROPVARIANT propvar,
2522         PROPDESC_FORMAT_FLAGS pdfFlags,
2523         LPWSTR *ppszDisplay);
2524 
2525     HRESULT (STDMETHODCALLTYPE *IsValueCanonical)(
2526         IPropertyDescriptionAliasInfo *This,
2527         REFPROPVARIANT propvar);
2528 
2529     /*** IPropertyDescriptionAliasInfo methods ***/
2530     HRESULT (STDMETHODCALLTYPE *GetSortByAlias)(
2531         IPropertyDescriptionAliasInfo *This,
2532         REFIID riid,
2533         void **ppv);
2534 
2535     HRESULT (STDMETHODCALLTYPE *GetAdditionalSortByAliases)(
2536         IPropertyDescriptionAliasInfo *This,
2537         REFIID riid,
2538         void **ppv);
2539 
2540     END_INTERFACE
2541 } IPropertyDescriptionAliasInfoVtbl;
2542 
2543 interface IPropertyDescriptionAliasInfo {
2544     CONST_VTBL IPropertyDescriptionAliasInfoVtbl* lpVtbl;
2545 };
2546 
2547 #ifdef COBJMACROS
2548 #ifndef WIDL_C_INLINE_WRAPPERS
2549 /*** IUnknown methods ***/
2550 #define IPropertyDescriptionAliasInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2551 #define IPropertyDescriptionAliasInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
2552 #define IPropertyDescriptionAliasInfo_Release(This) (This)->lpVtbl->Release(This)
2553 /*** IPropertyDescription methods ***/
2554 #define IPropertyDescriptionAliasInfo_GetPropertyKey(This,pkey) (This)->lpVtbl->GetPropertyKey(This,pkey)
2555 #define IPropertyDescriptionAliasInfo_GetCanonicalName(This,ppszName) (This)->lpVtbl->GetCanonicalName(This,ppszName)
2556 #define IPropertyDescriptionAliasInfo_GetPropertyType(This,pvartype) (This)->lpVtbl->GetPropertyType(This,pvartype)
2557 #define IPropertyDescriptionAliasInfo_GetDisplayName(This,ppszName) (This)->lpVtbl->GetDisplayName(This,ppszName)
2558 #define IPropertyDescriptionAliasInfo_GetEditInvitation(This,ppszInvite) (This)->lpVtbl->GetEditInvitation(This,ppszInvite)
2559 #define IPropertyDescriptionAliasInfo_GetTypeFlags(This,mask,ppdtFlags) (This)->lpVtbl->GetTypeFlags(This,mask,ppdtFlags)
2560 #define IPropertyDescriptionAliasInfo_GetViewFlags(This,ppdvFlags) (This)->lpVtbl->GetViewFlags(This,ppdvFlags)
2561 #define IPropertyDescriptionAliasInfo_GetDefaultColumnWidth(This,pcxChars) (This)->lpVtbl->GetDefaultColumnWidth(This,pcxChars)
2562 #define IPropertyDescriptionAliasInfo_GetDisplayType(This,pdisplaytype) (This)->lpVtbl->GetDisplayType(This,pdisplaytype)
2563 #define IPropertyDescriptionAliasInfo_GetColumnState(This,pcsFlags) (This)->lpVtbl->GetColumnState(This,pcsFlags)
2564 #define IPropertyDescriptionAliasInfo_GetGroupingRange(This,pgr) (This)->lpVtbl->GetGroupingRange(This,pgr)
2565 #define IPropertyDescriptionAliasInfo_GetRelativeDescriptionType(This,prdt) (This)->lpVtbl->GetRelativeDescriptionType(This,prdt)
2566 #define IPropertyDescriptionAliasInfo_GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2) (This)->lpVtbl->GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2)
2567 #define IPropertyDescriptionAliasInfo_GetSortDescription(This,psd) (This)->lpVtbl->GetSortDescription(This,psd)
2568 #define IPropertyDescriptionAliasInfo_GetSortDescriptionLabel(This,fDescending,ppszDescription) (This)->lpVtbl->GetSortDescriptionLabel(This,fDescending,ppszDescription)
2569 #define IPropertyDescriptionAliasInfo_GetAggregationType(This,paggtype) (This)->lpVtbl->GetAggregationType(This,paggtype)
2570 #define IPropertyDescriptionAliasInfo_GetConditionType(This,pcontype,popDefault) (This)->lpVtbl->GetConditionType(This,pcontype,popDefault)
2571 #define IPropertyDescriptionAliasInfo_GetEnumTypeList(This,riid,ppv) (This)->lpVtbl->GetEnumTypeList(This,riid,ppv)
2572 #define IPropertyDescriptionAliasInfo_CoerceToCanonicalValue(This,ppropvar) (This)->lpVtbl->CoerceToCanonicalValue(This,ppropvar)
2573 #define IPropertyDescriptionAliasInfo_FormatForDisplay(This,propvar,pdfFlags,ppszDisplay) (This)->lpVtbl->FormatForDisplay(This,propvar,pdfFlags,ppszDisplay)
2574 #define IPropertyDescriptionAliasInfo_IsValueCanonical(This,propvar) (This)->lpVtbl->IsValueCanonical(This,propvar)
2575 /*** IPropertyDescriptionAliasInfo methods ***/
2576 #define IPropertyDescriptionAliasInfo_GetSortByAlias(This,riid,ppv) (This)->lpVtbl->GetSortByAlias(This,riid,ppv)
2577 #define IPropertyDescriptionAliasInfo_GetAdditionalSortByAliases(This,riid,ppv) (This)->lpVtbl->GetAdditionalSortByAliases(This,riid,ppv)
2578 #else
2579 /*** IUnknown methods ***/
2580 static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_QueryInterface(IPropertyDescriptionAliasInfo* This,REFIID riid,void **ppvObject) {
2581     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2582 }
2583 static FORCEINLINE ULONG IPropertyDescriptionAliasInfo_AddRef(IPropertyDescriptionAliasInfo* This) {
2584     return This->lpVtbl->AddRef(This);
2585 }
2586 static FORCEINLINE ULONG IPropertyDescriptionAliasInfo_Release(IPropertyDescriptionAliasInfo* This) {
2587     return This->lpVtbl->Release(This);
2588 }
2589 /*** IPropertyDescription methods ***/
2590 static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetPropertyKey(IPropertyDescriptionAliasInfo* This,PROPERTYKEY *pkey) {
2591     return This->lpVtbl->GetPropertyKey(This,pkey);
2592 }
2593 static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetCanonicalName(IPropertyDescriptionAliasInfo* This,LPWSTR *ppszName) {
2594     return This->lpVtbl->GetCanonicalName(This,ppszName);
2595 }
2596 static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetPropertyType(IPropertyDescriptionAliasInfo* This,VARTYPE *pvartype) {
2597     return This->lpVtbl->GetPropertyType(This,pvartype);
2598 }
2599 static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetDisplayName(IPropertyDescriptionAliasInfo* This,LPWSTR *ppszName) {
2600     return This->lpVtbl->GetDisplayName(This,ppszName);
2601 }
2602 static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetEditInvitation(IPropertyDescriptionAliasInfo* This,LPWSTR *ppszInvite) {
2603     return This->lpVtbl->GetEditInvitation(This,ppszInvite);
2604 }
2605 static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetTypeFlags(IPropertyDescriptionAliasInfo* This,PROPDESC_TYPE_FLAGS mask,PROPDESC_TYPE_FLAGS *ppdtFlags) {
2606     return This->lpVtbl->GetTypeFlags(This,mask,ppdtFlags);
2607 }
2608 static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetViewFlags(IPropertyDescriptionAliasInfo* This,PROPDESC_VIEW_FLAGS *ppdvFlags) {
2609     return This->lpVtbl->GetViewFlags(This,ppdvFlags);
2610 }
2611 static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetDefaultColumnWidth(IPropertyDescriptionAliasInfo* This,UINT *pcxChars) {
2612     return This->lpVtbl->GetDefaultColumnWidth(This,pcxChars);
2613 }
2614 static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetDisplayType(IPropertyDescriptionAliasInfo* This,PROPDESC_DISPLAYTYPE *pdisplaytype) {
2615     return This->lpVtbl->GetDisplayType(This,pdisplaytype);
2616 }
2617 static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetColumnState(IPropertyDescriptionAliasInfo* This,SHCOLSTATEF *pcsFlags) {
2618     return This->lpVtbl->GetColumnState(This,pcsFlags);
2619 }
2620 static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetGroupingRange(IPropertyDescriptionAliasInfo* This,PROPDESC_GROUPING_RANGE *pgr) {
2621     return This->lpVtbl->GetGroupingRange(This,pgr);
2622 }
2623 static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetRelativeDescriptionType(IPropertyDescriptionAliasInfo* This,PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt) {
2624     return This->lpVtbl->GetRelativeDescriptionType(This,prdt);
2625 }
2626 static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetRelativeDescription(IPropertyDescriptionAliasInfo* This,REFPROPVARIANT propvar1,REFPROPVARIANT propvar2,LPWSTR *ppszDesc1,LPWSTR *ppszDesc2) {
2627     return This->lpVtbl->GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2);
2628 }
2629 static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetSortDescription(IPropertyDescriptionAliasInfo* This,PROPDESC_SORTDESCRIPTION *psd) {
2630     return This->lpVtbl->GetSortDescription(This,psd);
2631 }
2632 static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetSortDescriptionLabel(IPropertyDescriptionAliasInfo* This,WINBOOL fDescending,LPWSTR *ppszDescription) {
2633     return This->lpVtbl->GetSortDescriptionLabel(This,fDescending,ppszDescription);
2634 }
2635 static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetAggregationType(IPropertyDescriptionAliasInfo* This,PROPDESC_AGGREGATION_TYPE *paggtype) {
2636     return This->lpVtbl->GetAggregationType(This,paggtype);
2637 }
2638 static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetConditionType(IPropertyDescriptionAliasInfo* This,PROPDESC_CONDITION_TYPE *pcontype,CONDITION_OPERATION *popDefault) {
2639     return This->lpVtbl->GetConditionType(This,pcontype,popDefault);
2640 }
2641 static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetEnumTypeList(IPropertyDescriptionAliasInfo* This,REFIID riid,void **ppv) {
2642     return This->lpVtbl->GetEnumTypeList(This,riid,ppv);
2643 }
2644 static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_CoerceToCanonicalValue(IPropertyDescriptionAliasInfo* This,PROPVARIANT *ppropvar) {
2645     return This->lpVtbl->CoerceToCanonicalValue(This,ppropvar);
2646 }
2647 static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_FormatForDisplay(IPropertyDescriptionAliasInfo* This,REFPROPVARIANT propvar,PROPDESC_FORMAT_FLAGS pdfFlags,LPWSTR *ppszDisplay) {
2648     return This->lpVtbl->FormatForDisplay(This,propvar,pdfFlags,ppszDisplay);
2649 }
2650 static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_IsValueCanonical(IPropertyDescriptionAliasInfo* This,REFPROPVARIANT propvar) {
2651     return This->lpVtbl->IsValueCanonical(This,propvar);
2652 }
2653 /*** IPropertyDescriptionAliasInfo methods ***/
2654 static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetSortByAlias(IPropertyDescriptionAliasInfo* This,REFIID riid,void **ppv) {
2655     return This->lpVtbl->GetSortByAlias(This,riid,ppv);
2656 }
2657 static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetAdditionalSortByAliases(IPropertyDescriptionAliasInfo* This,REFIID riid,void **ppv) {
2658     return This->lpVtbl->GetAdditionalSortByAliases(This,riid,ppv);
2659 }
2660 #endif
2661 #endif
2662 
2663 #endif
2664 
2665 
2666 #endif  /* __IPropertyDescriptionAliasInfo_INTERFACE_DEFINED__ */
2667 
2668 
2669 /*****************************************************************************
2670  * IPropertyDescriptionSearchInfo interface
2671  */
2672 #ifndef __IPropertyDescriptionSearchInfo_INTERFACE_DEFINED__
2673 #define __IPropertyDescriptionSearchInfo_INTERFACE_DEFINED__
2674 
2675 typedef enum PROPDESC_SEARCHINFO_FLAGS {
2676     PDSIF_DEFAULT = 0x0,
2677     PDSIF_ININVERTEDINDEX = 0x1,
2678     PDSIF_ISCOLUMN = 0x2,
2679     PDSIF_ISCOLUMNSPARSE = 0x4,
2680     PDSIF_ALWAYSINCLUDE = 0x8,
2681     PDSIF_USEFORTYPEAHEAD = 0x10
2682 } PROPDESC_SEARCHINFO_FLAGS;
2683 
2684 DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_SEARCHINFO_FLAGS)
2685 
2686 typedef enum PROPDESC_COLUMNINDEX_TYPE {
2687     PDCIT_NONE = 0,
2688     PDCIT_ONDISK = 1,
2689     PDCIT_INMEMORY = 2,
2690     PDCIT_ONDEMAND = 3,
2691     PDCIT_ONDISKALL = 4,
2692     PDCIT_ONDISKVECTOR = 5
2693 } PROPDESC_COLUMNINDEX_TYPE;
2694 
2695 DEFINE_GUID(IID_IPropertyDescriptionSearchInfo, 0x078f91bd, 0x29a2, 0x440f, 0x92,0x4e, 0x46,0xa2,0x91,0x52,0x45,0x20);
2696 #if defined(__cplusplus) && !defined(CINTERFACE)
2697 MIDL_INTERFACE("078f91bd-29a2-440f-924e-46a291524520")
2698 IPropertyDescriptionSearchInfo : public IPropertyDescription
2699 {
2700     virtual HRESULT STDMETHODCALLTYPE GetSearchInfoFlags(
2701         PROPDESC_SEARCHINFO_FLAGS *ppdsiFlags) = 0;
2702 
2703     virtual HRESULT STDMETHODCALLTYPE GetColumnIndexType(
2704         PROPDESC_COLUMNINDEX_TYPE *ppdciType) = 0;
2705 
2706     virtual HRESULT STDMETHODCALLTYPE GetProjectionString(
2707         LPWSTR *ppszProjection) = 0;
2708 
2709     virtual HRESULT STDMETHODCALLTYPE GetMaxSize(
2710         UINT *pcbMaxSize) = 0;
2711 
2712 };
2713 #ifdef __CRT_UUID_DECL
2714 __CRT_UUID_DECL(IPropertyDescriptionSearchInfo, 0x078f91bd, 0x29a2, 0x440f, 0x92,0x4e, 0x46,0xa2,0x91,0x52,0x45,0x20)
2715 #endif
2716 #else
2717 typedef struct IPropertyDescriptionSearchInfoVtbl {
2718     BEGIN_INTERFACE
2719 
2720     /*** IUnknown methods ***/
2721     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2722         IPropertyDescriptionSearchInfo *This,
2723         REFIID riid,
2724         void **ppvObject);
2725 
2726     ULONG (STDMETHODCALLTYPE *AddRef)(
2727         IPropertyDescriptionSearchInfo *This);
2728 
2729     ULONG (STDMETHODCALLTYPE *Release)(
2730         IPropertyDescriptionSearchInfo *This);
2731 
2732     /*** IPropertyDescription methods ***/
2733     HRESULT (STDMETHODCALLTYPE *GetPropertyKey)(
2734         IPropertyDescriptionSearchInfo *This,
2735         PROPERTYKEY *pkey);
2736 
2737     HRESULT (STDMETHODCALLTYPE *GetCanonicalName)(
2738         IPropertyDescriptionSearchInfo *This,
2739         LPWSTR *ppszName);
2740 
2741     HRESULT (STDMETHODCALLTYPE *GetPropertyType)(
2742         IPropertyDescriptionSearchInfo *This,
2743         VARTYPE *pvartype);
2744 
2745     HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
2746         IPropertyDescriptionSearchInfo *This,
2747         LPWSTR *ppszName);
2748 
2749     HRESULT (STDMETHODCALLTYPE *GetEditInvitation)(
2750         IPropertyDescriptionSearchInfo *This,
2751         LPWSTR *ppszInvite);
2752 
2753     HRESULT (STDMETHODCALLTYPE *GetTypeFlags)(
2754         IPropertyDescriptionSearchInfo *This,
2755         PROPDESC_TYPE_FLAGS mask,
2756         PROPDESC_TYPE_FLAGS *ppdtFlags);
2757 
2758     HRESULT (STDMETHODCALLTYPE *GetViewFlags)(
2759         IPropertyDescriptionSearchInfo *This,
2760         PROPDESC_VIEW_FLAGS *ppdvFlags);
2761 
2762     HRESULT (STDMETHODCALLTYPE *GetDefaultColumnWidth)(
2763         IPropertyDescriptionSearchInfo *This,
2764         UINT *pcxChars);
2765 
2766     HRESULT (STDMETHODCALLTYPE *GetDisplayType)(
2767         IPropertyDescriptionSearchInfo *This,
2768         PROPDESC_DISPLAYTYPE *pdisplaytype);
2769 
2770     HRESULT (STDMETHODCALLTYPE *GetColumnState)(
2771         IPropertyDescriptionSearchInfo *This,
2772         SHCOLSTATEF *pcsFlags);
2773 
2774     HRESULT (STDMETHODCALLTYPE *GetGroupingRange)(
2775         IPropertyDescriptionSearchInfo *This,
2776         PROPDESC_GROUPING_RANGE *pgr);
2777 
2778     HRESULT (STDMETHODCALLTYPE *GetRelativeDescriptionType)(
2779         IPropertyDescriptionSearchInfo *This,
2780         PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt);
2781 
2782     HRESULT (STDMETHODCALLTYPE *GetRelativeDescription)(
2783         IPropertyDescriptionSearchInfo *This,
2784         REFPROPVARIANT propvar1,
2785         REFPROPVARIANT propvar2,
2786         LPWSTR *ppszDesc1,
2787         LPWSTR *ppszDesc2);
2788 
2789     HRESULT (STDMETHODCALLTYPE *GetSortDescription)(
2790         IPropertyDescriptionSearchInfo *This,
2791         PROPDESC_SORTDESCRIPTION *psd);
2792 
2793     HRESULT (STDMETHODCALLTYPE *GetSortDescriptionLabel)(
2794         IPropertyDescriptionSearchInfo *This,
2795         WINBOOL fDescending,
2796         LPWSTR *ppszDescription);
2797 
2798     HRESULT (STDMETHODCALLTYPE *GetAggregationType)(
2799         IPropertyDescriptionSearchInfo *This,
2800         PROPDESC_AGGREGATION_TYPE *paggtype);
2801 
2802     HRESULT (STDMETHODCALLTYPE *GetConditionType)(
2803         IPropertyDescriptionSearchInfo *This,
2804         PROPDESC_CONDITION_TYPE *pcontype,
2805         CONDITION_OPERATION *popDefault);
2806 
2807     HRESULT (STDMETHODCALLTYPE *GetEnumTypeList)(
2808         IPropertyDescriptionSearchInfo *This,
2809         REFIID riid,
2810         void **ppv);
2811 
2812     HRESULT (STDMETHODCALLTYPE *CoerceToCanonicalValue)(
2813         IPropertyDescriptionSearchInfo *This,
2814         PROPVARIANT *ppropvar);
2815 
2816     HRESULT (STDMETHODCALLTYPE *FormatForDisplay)(
2817         IPropertyDescriptionSearchInfo *This,
2818         REFPROPVARIANT propvar,
2819         PROPDESC_FORMAT_FLAGS pdfFlags,
2820         LPWSTR *ppszDisplay);
2821 
2822     HRESULT (STDMETHODCALLTYPE *IsValueCanonical)(
2823         IPropertyDescriptionSearchInfo *This,
2824         REFPROPVARIANT propvar);
2825 
2826     /*** IPropertyDescriptionSearchInfo methods ***/
2827     HRESULT (STDMETHODCALLTYPE *GetSearchInfoFlags)(
2828         IPropertyDescriptionSearchInfo *This,
2829         PROPDESC_SEARCHINFO_FLAGS *ppdsiFlags);
2830 
2831     HRESULT (STDMETHODCALLTYPE *GetColumnIndexType)(
2832         IPropertyDescriptionSearchInfo *This,
2833         PROPDESC_COLUMNINDEX_TYPE *ppdciType);
2834 
2835     HRESULT (STDMETHODCALLTYPE *GetProjectionString)(
2836         IPropertyDescriptionSearchInfo *This,
2837         LPWSTR *ppszProjection);
2838 
2839     HRESULT (STDMETHODCALLTYPE *GetMaxSize)(
2840         IPropertyDescriptionSearchInfo *This,
2841         UINT *pcbMaxSize);
2842 
2843     END_INTERFACE
2844 } IPropertyDescriptionSearchInfoVtbl;
2845 
2846 interface IPropertyDescriptionSearchInfo {
2847     CONST_VTBL IPropertyDescriptionSearchInfoVtbl* lpVtbl;
2848 };
2849 
2850 #ifdef COBJMACROS
2851 #ifndef WIDL_C_INLINE_WRAPPERS
2852 /*** IUnknown methods ***/
2853 #define IPropertyDescriptionSearchInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2854 #define IPropertyDescriptionSearchInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
2855 #define IPropertyDescriptionSearchInfo_Release(This) (This)->lpVtbl->Release(This)
2856 /*** IPropertyDescription methods ***/
2857 #define IPropertyDescriptionSearchInfo_GetPropertyKey(This,pkey) (This)->lpVtbl->GetPropertyKey(This,pkey)
2858 #define IPropertyDescriptionSearchInfo_GetCanonicalName(This,ppszName) (This)->lpVtbl->GetCanonicalName(This,ppszName)
2859 #define IPropertyDescriptionSearchInfo_GetPropertyType(This,pvartype) (This)->lpVtbl->GetPropertyType(This,pvartype)
2860 #define IPropertyDescriptionSearchInfo_GetDisplayName(This,ppszName) (This)->lpVtbl->GetDisplayName(This,ppszName)
2861 #define IPropertyDescriptionSearchInfo_GetEditInvitation(This,ppszInvite) (This)->lpVtbl->GetEditInvitation(This,ppszInvite)
2862 #define IPropertyDescriptionSearchInfo_GetTypeFlags(This,mask,ppdtFlags) (This)->lpVtbl->GetTypeFlags(This,mask,ppdtFlags)
2863 #define IPropertyDescriptionSearchInfo_GetViewFlags(This,ppdvFlags) (This)->lpVtbl->GetViewFlags(This,ppdvFlags)
2864 #define IPropertyDescriptionSearchInfo_GetDefaultColumnWidth(This,pcxChars) (This)->lpVtbl->GetDefaultColumnWidth(This,pcxChars)
2865 #define IPropertyDescriptionSearchInfo_GetDisplayType(This,pdisplaytype) (This)->lpVtbl->GetDisplayType(This,pdisplaytype)
2866 #define IPropertyDescriptionSearchInfo_GetColumnState(This,pcsFlags) (This)->lpVtbl->GetColumnState(This,pcsFlags)
2867 #define IPropertyDescriptionSearchInfo_GetGroupingRange(This,pgr) (This)->lpVtbl->GetGroupingRange(This,pgr)
2868 #define IPropertyDescriptionSearchInfo_GetRelativeDescriptionType(This,prdt) (This)->lpVtbl->GetRelativeDescriptionType(This,prdt)
2869 #define IPropertyDescriptionSearchInfo_GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2) (This)->lpVtbl->GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2)
2870 #define IPropertyDescriptionSearchInfo_GetSortDescription(This,psd) (This)->lpVtbl->GetSortDescription(This,psd)
2871 #define IPropertyDescriptionSearchInfo_GetSortDescriptionLabel(This,fDescending,ppszDescription) (This)->lpVtbl->GetSortDescriptionLabel(This,fDescending,ppszDescription)
2872 #define IPropertyDescriptionSearchInfo_GetAggregationType(This,paggtype) (This)->lpVtbl->GetAggregationType(This,paggtype)
2873 #define IPropertyDescriptionSearchInfo_GetConditionType(This,pcontype,popDefault) (This)->lpVtbl->GetConditionType(This,pcontype,popDefault)
2874 #define IPropertyDescriptionSearchInfo_GetEnumTypeList(This,riid,ppv) (This)->lpVtbl->GetEnumTypeList(This,riid,ppv)
2875 #define IPropertyDescriptionSearchInfo_CoerceToCanonicalValue(This,ppropvar) (This)->lpVtbl->CoerceToCanonicalValue(This,ppropvar)
2876 #define IPropertyDescriptionSearchInfo_FormatForDisplay(This,propvar,pdfFlags,ppszDisplay) (This)->lpVtbl->FormatForDisplay(This,propvar,pdfFlags,ppszDisplay)
2877 #define IPropertyDescriptionSearchInfo_IsValueCanonical(This,propvar) (This)->lpVtbl->IsValueCanonical(This,propvar)
2878 /*** IPropertyDescriptionSearchInfo methods ***/
2879 #define IPropertyDescriptionSearchInfo_GetSearchInfoFlags(This,ppdsiFlags) (This)->lpVtbl->GetSearchInfoFlags(This,ppdsiFlags)
2880 #define IPropertyDescriptionSearchInfo_GetColumnIndexType(This,ppdciType) (This)->lpVtbl->GetColumnIndexType(This,ppdciType)
2881 #define IPropertyDescriptionSearchInfo_GetProjectionString(This,ppszProjection) (This)->lpVtbl->GetProjectionString(This,ppszProjection)
2882 #define IPropertyDescriptionSearchInfo_GetMaxSize(This,pcbMaxSize) (This)->lpVtbl->GetMaxSize(This,pcbMaxSize)
2883 #else
2884 /*** IUnknown methods ***/
2885 static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_QueryInterface(IPropertyDescriptionSearchInfo* This,REFIID riid,void **ppvObject) {
2886     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2887 }
2888 static FORCEINLINE ULONG IPropertyDescriptionSearchInfo_AddRef(IPropertyDescriptionSearchInfo* This) {
2889     return This->lpVtbl->AddRef(This);
2890 }
2891 static FORCEINLINE ULONG IPropertyDescriptionSearchInfo_Release(IPropertyDescriptionSearchInfo* This) {
2892     return This->lpVtbl->Release(This);
2893 }
2894 /*** IPropertyDescription methods ***/
2895 static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetPropertyKey(IPropertyDescriptionSearchInfo* This,PROPERTYKEY *pkey) {
2896     return This->lpVtbl->GetPropertyKey(This,pkey);
2897 }
2898 static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetCanonicalName(IPropertyDescriptionSearchInfo* This,LPWSTR *ppszName) {
2899     return This->lpVtbl->GetCanonicalName(This,ppszName);
2900 }
2901 static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetPropertyType(IPropertyDescriptionSearchInfo* This,VARTYPE *pvartype) {
2902     return This->lpVtbl->GetPropertyType(This,pvartype);
2903 }
2904 static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetDisplayName(IPropertyDescriptionSearchInfo* This,LPWSTR *ppszName) {
2905     return This->lpVtbl->GetDisplayName(This,ppszName);
2906 }
2907 static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetEditInvitation(IPropertyDescriptionSearchInfo* This,LPWSTR *ppszInvite) {
2908     return This->lpVtbl->GetEditInvitation(This,ppszInvite);
2909 }
2910 static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetTypeFlags(IPropertyDescriptionSearchInfo* This,PROPDESC_TYPE_FLAGS mask,PROPDESC_TYPE_FLAGS *ppdtFlags) {
2911     return This->lpVtbl->GetTypeFlags(This,mask,ppdtFlags);
2912 }
2913 static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetViewFlags(IPropertyDescriptionSearchInfo* This,PROPDESC_VIEW_FLAGS *ppdvFlags) {
2914     return This->lpVtbl->GetViewFlags(This,ppdvFlags);
2915 }
2916 static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetDefaultColumnWidth(IPropertyDescriptionSearchInfo* This,UINT *pcxChars) {
2917     return This->lpVtbl->GetDefaultColumnWidth(This,pcxChars);
2918 }
2919 static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetDisplayType(IPropertyDescriptionSearchInfo* This,PROPDESC_DISPLAYTYPE *pdisplaytype) {
2920     return This->lpVtbl->GetDisplayType(This,pdisplaytype);
2921 }
2922 static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetColumnState(IPropertyDescriptionSearchInfo* This,SHCOLSTATEF *pcsFlags) {
2923     return This->lpVtbl->GetColumnState(This,pcsFlags);
2924 }
2925 static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetGroupingRange(IPropertyDescriptionSearchInfo* This,PROPDESC_GROUPING_RANGE *pgr) {
2926     return This->lpVtbl->GetGroupingRange(This,pgr);
2927 }
2928 static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetRelativeDescriptionType(IPropertyDescriptionSearchInfo* This,PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt) {
2929     return This->lpVtbl->GetRelativeDescriptionType(This,prdt);
2930 }
2931 static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetRelativeDescription(IPropertyDescriptionSearchInfo* This,REFPROPVARIANT propvar1,REFPROPVARIANT propvar2,LPWSTR *ppszDesc1,LPWSTR *ppszDesc2) {
2932     return This->lpVtbl->GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2);
2933 }
2934 static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetSortDescription(IPropertyDescriptionSearchInfo* This,PROPDESC_SORTDESCRIPTION *psd) {
2935     return This->lpVtbl->GetSortDescription(This,psd);
2936 }
2937 static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetSortDescriptionLabel(IPropertyDescriptionSearchInfo* This,WINBOOL fDescending,LPWSTR *ppszDescription) {
2938     return This->lpVtbl->GetSortDescriptionLabel(This,fDescending,ppszDescription);
2939 }
2940 static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetAggregationType(IPropertyDescriptionSearchInfo* This,PROPDESC_AGGREGATION_TYPE *paggtype) {
2941     return This->lpVtbl->GetAggregationType(This,paggtype);
2942 }
2943 static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetConditionType(IPropertyDescriptionSearchInfo* This,PROPDESC_CONDITION_TYPE *pcontype,CONDITION_OPERATION *popDefault) {
2944     return This->lpVtbl->GetConditionType(This,pcontype,popDefault);
2945 }
2946 static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetEnumTypeList(IPropertyDescriptionSearchInfo* This,REFIID riid,void **ppv) {
2947     return This->lpVtbl->GetEnumTypeList(This,riid,ppv);
2948 }
2949 static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_CoerceToCanonicalValue(IPropertyDescriptionSearchInfo* This,PROPVARIANT *ppropvar) {
2950     return This->lpVtbl->CoerceToCanonicalValue(This,ppropvar);
2951 }
2952 static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_FormatForDisplay(IPropertyDescriptionSearchInfo* This,REFPROPVARIANT propvar,PROPDESC_FORMAT_FLAGS pdfFlags,LPWSTR *ppszDisplay) {
2953     return This->lpVtbl->FormatForDisplay(This,propvar,pdfFlags,ppszDisplay);
2954 }
2955 static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_IsValueCanonical(IPropertyDescriptionSearchInfo* This,REFPROPVARIANT propvar) {
2956     return This->lpVtbl->IsValueCanonical(This,propvar);
2957 }
2958 /*** IPropertyDescriptionSearchInfo methods ***/
2959 static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetSearchInfoFlags(IPropertyDescriptionSearchInfo* This,PROPDESC_SEARCHINFO_FLAGS *ppdsiFlags) {
2960     return This->lpVtbl->GetSearchInfoFlags(This,ppdsiFlags);
2961 }
2962 static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetColumnIndexType(IPropertyDescriptionSearchInfo* This,PROPDESC_COLUMNINDEX_TYPE *ppdciType) {
2963     return This->lpVtbl->GetColumnIndexType(This,ppdciType);
2964 }
2965 static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetProjectionString(IPropertyDescriptionSearchInfo* This,LPWSTR *ppszProjection) {
2966     return This->lpVtbl->GetProjectionString(This,ppszProjection);
2967 }
2968 static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetMaxSize(IPropertyDescriptionSearchInfo* This,UINT *pcbMaxSize) {
2969     return This->lpVtbl->GetMaxSize(This,pcbMaxSize);
2970 }
2971 #endif
2972 #endif
2973 
2974 #endif
2975 
2976 
2977 #endif  /* __IPropertyDescriptionSearchInfo_INTERFACE_DEFINED__ */
2978 
2979 
2980 /*****************************************************************************
2981  * IPropertyDescriptionRelatedPropertyInfo interface
2982  */
2983 #ifndef __IPropertyDescriptionRelatedPropertyInfo_INTERFACE_DEFINED__
2984 #define __IPropertyDescriptionRelatedPropertyInfo_INTERFACE_DEFINED__
2985 
2986 DEFINE_GUID(IID_IPropertyDescriptionRelatedPropertyInfo, 0x507393f4, 0x2a3d, 0x4a60, 0xb5,0x9e, 0xd9,0xc7,0x57,0x16,0xc2,0xdd);
2987 #if defined(__cplusplus) && !defined(CINTERFACE)
2988 MIDL_INTERFACE("507393f4-2a3d-4a60-b59e-d9c75716c2dd")
2989 IPropertyDescriptionRelatedPropertyInfo : public IPropertyDescription
2990 {
2991     virtual HRESULT STDMETHODCALLTYPE GetRelatedProperty(
2992         LPCWSTR pszRelationshipName,
2993         REFIID riid,
2994         void **ppv) = 0;
2995 
2996 };
2997 #ifdef __CRT_UUID_DECL
2998 __CRT_UUID_DECL(IPropertyDescriptionRelatedPropertyInfo, 0x507393f4, 0x2a3d, 0x4a60, 0xb5,0x9e, 0xd9,0xc7,0x57,0x16,0xc2,0xdd)
2999 #endif
3000 #else
3001 typedef struct IPropertyDescriptionRelatedPropertyInfoVtbl {
3002     BEGIN_INTERFACE
3003 
3004     /*** IUnknown methods ***/
3005     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3006         IPropertyDescriptionRelatedPropertyInfo *This,
3007         REFIID riid,
3008         void **ppvObject);
3009 
3010     ULONG (STDMETHODCALLTYPE *AddRef)(
3011         IPropertyDescriptionRelatedPropertyInfo *This);
3012 
3013     ULONG (STDMETHODCALLTYPE *Release)(
3014         IPropertyDescriptionRelatedPropertyInfo *This);
3015 
3016     /*** IPropertyDescription methods ***/
3017     HRESULT (STDMETHODCALLTYPE *GetPropertyKey)(
3018         IPropertyDescriptionRelatedPropertyInfo *This,
3019         PROPERTYKEY *pkey);
3020 
3021     HRESULT (STDMETHODCALLTYPE *GetCanonicalName)(
3022         IPropertyDescriptionRelatedPropertyInfo *This,
3023         LPWSTR *ppszName);
3024 
3025     HRESULT (STDMETHODCALLTYPE *GetPropertyType)(
3026         IPropertyDescriptionRelatedPropertyInfo *This,
3027         VARTYPE *pvartype);
3028 
3029     HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
3030         IPropertyDescriptionRelatedPropertyInfo *This,
3031         LPWSTR *ppszName);
3032 
3033     HRESULT (STDMETHODCALLTYPE *GetEditInvitation)(
3034         IPropertyDescriptionRelatedPropertyInfo *This,
3035         LPWSTR *ppszInvite);
3036 
3037     HRESULT (STDMETHODCALLTYPE *GetTypeFlags)(
3038         IPropertyDescriptionRelatedPropertyInfo *This,
3039         PROPDESC_TYPE_FLAGS mask,
3040         PROPDESC_TYPE_FLAGS *ppdtFlags);
3041 
3042     HRESULT (STDMETHODCALLTYPE *GetViewFlags)(
3043         IPropertyDescriptionRelatedPropertyInfo *This,
3044         PROPDESC_VIEW_FLAGS *ppdvFlags);
3045 
3046     HRESULT (STDMETHODCALLTYPE *GetDefaultColumnWidth)(
3047         IPropertyDescriptionRelatedPropertyInfo *This,
3048         UINT *pcxChars);
3049 
3050     HRESULT (STDMETHODCALLTYPE *GetDisplayType)(
3051         IPropertyDescriptionRelatedPropertyInfo *This,
3052         PROPDESC_DISPLAYTYPE *pdisplaytype);
3053 
3054     HRESULT (STDMETHODCALLTYPE *GetColumnState)(
3055         IPropertyDescriptionRelatedPropertyInfo *This,
3056         SHCOLSTATEF *pcsFlags);
3057 
3058     HRESULT (STDMETHODCALLTYPE *GetGroupingRange)(
3059         IPropertyDescriptionRelatedPropertyInfo *This,
3060         PROPDESC_GROUPING_RANGE *pgr);
3061 
3062     HRESULT (STDMETHODCALLTYPE *GetRelativeDescriptionType)(
3063         IPropertyDescriptionRelatedPropertyInfo *This,
3064         PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt);
3065 
3066     HRESULT (STDMETHODCALLTYPE *GetRelativeDescription)(
3067         IPropertyDescriptionRelatedPropertyInfo *This,
3068         REFPROPVARIANT propvar1,
3069         REFPROPVARIANT propvar2,
3070         LPWSTR *ppszDesc1,
3071         LPWSTR *ppszDesc2);
3072 
3073     HRESULT (STDMETHODCALLTYPE *GetSortDescription)(
3074         IPropertyDescriptionRelatedPropertyInfo *This,
3075         PROPDESC_SORTDESCRIPTION *psd);
3076 
3077     HRESULT (STDMETHODCALLTYPE *GetSortDescriptionLabel)(
3078         IPropertyDescriptionRelatedPropertyInfo *This,
3079         WINBOOL fDescending,
3080         LPWSTR *ppszDescription);
3081 
3082     HRESULT (STDMETHODCALLTYPE *GetAggregationType)(
3083         IPropertyDescriptionRelatedPropertyInfo *This,
3084         PROPDESC_AGGREGATION_TYPE *paggtype);
3085 
3086     HRESULT (STDMETHODCALLTYPE *GetConditionType)(
3087         IPropertyDescriptionRelatedPropertyInfo *This,
3088         PROPDESC_CONDITION_TYPE *pcontype,
3089         CONDITION_OPERATION *popDefault);
3090 
3091     HRESULT (STDMETHODCALLTYPE *GetEnumTypeList)(
3092         IPropertyDescriptionRelatedPropertyInfo *This,
3093         REFIID riid,
3094         void **ppv);
3095 
3096     HRESULT (STDMETHODCALLTYPE *CoerceToCanonicalValue)(
3097         IPropertyDescriptionRelatedPropertyInfo *This,
3098         PROPVARIANT *ppropvar);
3099 
3100     HRESULT (STDMETHODCALLTYPE *FormatForDisplay)(
3101         IPropertyDescriptionRelatedPropertyInfo *This,
3102         REFPROPVARIANT propvar,
3103         PROPDESC_FORMAT_FLAGS pdfFlags,
3104         LPWSTR *ppszDisplay);
3105 
3106     HRESULT (STDMETHODCALLTYPE *IsValueCanonical)(
3107         IPropertyDescriptionRelatedPropertyInfo *This,
3108         REFPROPVARIANT propvar);
3109 
3110     /*** IPropertyDescriptionRelatedPropertyInfo methods ***/
3111     HRESULT (STDMETHODCALLTYPE *GetRelatedProperty)(
3112         IPropertyDescriptionRelatedPropertyInfo *This,
3113         LPCWSTR pszRelationshipName,
3114         REFIID riid,
3115         void **ppv);
3116 
3117     END_INTERFACE
3118 } IPropertyDescriptionRelatedPropertyInfoVtbl;
3119 
3120 interface IPropertyDescriptionRelatedPropertyInfo {
3121     CONST_VTBL IPropertyDescriptionRelatedPropertyInfoVtbl* lpVtbl;
3122 };
3123 
3124 #ifdef COBJMACROS
3125 #ifndef WIDL_C_INLINE_WRAPPERS
3126 /*** IUnknown methods ***/
3127 #define IPropertyDescriptionRelatedPropertyInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3128 #define IPropertyDescriptionRelatedPropertyInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
3129 #define IPropertyDescriptionRelatedPropertyInfo_Release(This) (This)->lpVtbl->Release(This)
3130 /*** IPropertyDescription methods ***/
3131 #define IPropertyDescriptionRelatedPropertyInfo_GetPropertyKey(This,pkey) (This)->lpVtbl->GetPropertyKey(This,pkey)
3132 #define IPropertyDescriptionRelatedPropertyInfo_GetCanonicalName(This,ppszName) (This)->lpVtbl->GetCanonicalName(This,ppszName)
3133 #define IPropertyDescriptionRelatedPropertyInfo_GetPropertyType(This,pvartype) (This)->lpVtbl->GetPropertyType(This,pvartype)
3134 #define IPropertyDescriptionRelatedPropertyInfo_GetDisplayName(This,ppszName) (This)->lpVtbl->GetDisplayName(This,ppszName)
3135 #define IPropertyDescriptionRelatedPropertyInfo_GetEditInvitation(This,ppszInvite) (This)->lpVtbl->GetEditInvitation(This,ppszInvite)
3136 #define IPropertyDescriptionRelatedPropertyInfo_GetTypeFlags(This,mask,ppdtFlags) (This)->lpVtbl->GetTypeFlags(This,mask,ppdtFlags)
3137 #define IPropertyDescriptionRelatedPropertyInfo_GetViewFlags(This,ppdvFlags) (This)->lpVtbl->GetViewFlags(This,ppdvFlags)
3138 #define IPropertyDescriptionRelatedPropertyInfo_GetDefaultColumnWidth(This,pcxChars) (This)->lpVtbl->GetDefaultColumnWidth(This,pcxChars)
3139 #define IPropertyDescriptionRelatedPropertyInfo_GetDisplayType(This,pdisplaytype) (This)->lpVtbl->GetDisplayType(This,pdisplaytype)
3140 #define IPropertyDescriptionRelatedPropertyInfo_GetColumnState(This,pcsFlags) (This)->lpVtbl->GetColumnState(This,pcsFlags)
3141 #define IPropertyDescriptionRelatedPropertyInfo_GetGroupingRange(This,pgr) (This)->lpVtbl->GetGroupingRange(This,pgr)
3142 #define IPropertyDescriptionRelatedPropertyInfo_GetRelativeDescriptionType(This,prdt) (This)->lpVtbl->GetRelativeDescriptionType(This,prdt)
3143 #define IPropertyDescriptionRelatedPropertyInfo_GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2) (This)->lpVtbl->GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2)
3144 #define IPropertyDescriptionRelatedPropertyInfo_GetSortDescription(This,psd) (This)->lpVtbl->GetSortDescription(This,psd)
3145 #define IPropertyDescriptionRelatedPropertyInfo_GetSortDescriptionLabel(This,fDescending,ppszDescription) (This)->lpVtbl->GetSortDescriptionLabel(This,fDescending,ppszDescription)
3146 #define IPropertyDescriptionRelatedPropertyInfo_GetAggregationType(This,paggtype) (This)->lpVtbl->GetAggregationType(This,paggtype)
3147 #define IPropertyDescriptionRelatedPropertyInfo_GetConditionType(This,pcontype,popDefault) (This)->lpVtbl->GetConditionType(This,pcontype,popDefault)
3148 #define IPropertyDescriptionRelatedPropertyInfo_GetEnumTypeList(This,riid,ppv) (This)->lpVtbl->GetEnumTypeList(This,riid,ppv)
3149 #define IPropertyDescriptionRelatedPropertyInfo_CoerceToCanonicalValue(This,ppropvar) (This)->lpVtbl->CoerceToCanonicalValue(This,ppropvar)
3150 #define IPropertyDescriptionRelatedPropertyInfo_FormatForDisplay(This,propvar,pdfFlags,ppszDisplay) (This)->lpVtbl->FormatForDisplay(This,propvar,pdfFlags,ppszDisplay)
3151 #define IPropertyDescriptionRelatedPropertyInfo_IsValueCanonical(This,propvar) (This)->lpVtbl->IsValueCanonical(This,propvar)
3152 /*** IPropertyDescriptionRelatedPropertyInfo methods ***/
3153 #define IPropertyDescriptionRelatedPropertyInfo_GetRelatedProperty(This,pszRelationshipName,riid,ppv) (This)->lpVtbl->GetRelatedProperty(This,pszRelationshipName,riid,ppv)
3154 #else
3155 /*** IUnknown methods ***/
3156 static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_QueryInterface(IPropertyDescriptionRelatedPropertyInfo* This,REFIID riid,void **ppvObject) {
3157     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3158 }
3159 static FORCEINLINE ULONG IPropertyDescriptionRelatedPropertyInfo_AddRef(IPropertyDescriptionRelatedPropertyInfo* This) {
3160     return This->lpVtbl->AddRef(This);
3161 }
3162 static FORCEINLINE ULONG IPropertyDescriptionRelatedPropertyInfo_Release(IPropertyDescriptionRelatedPropertyInfo* This) {
3163     return This->lpVtbl->Release(This);
3164 }
3165 /*** IPropertyDescription methods ***/
3166 static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetPropertyKey(IPropertyDescriptionRelatedPropertyInfo* This,PROPERTYKEY *pkey) {
3167     return This->lpVtbl->GetPropertyKey(This,pkey);
3168 }
3169 static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetCanonicalName(IPropertyDescriptionRelatedPropertyInfo* This,LPWSTR *ppszName) {
3170     return This->lpVtbl->GetCanonicalName(This,ppszName);
3171 }
3172 static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetPropertyType(IPropertyDescriptionRelatedPropertyInfo* This,VARTYPE *pvartype) {
3173     return This->lpVtbl->GetPropertyType(This,pvartype);
3174 }
3175 static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetDisplayName(IPropertyDescriptionRelatedPropertyInfo* This,LPWSTR *ppszName) {
3176     return This->lpVtbl->GetDisplayName(This,ppszName);
3177 }
3178 static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetEditInvitation(IPropertyDescriptionRelatedPropertyInfo* This,LPWSTR *ppszInvite) {
3179     return This->lpVtbl->GetEditInvitation(This,ppszInvite);
3180 }
3181 static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetTypeFlags(IPropertyDescriptionRelatedPropertyInfo* This,PROPDESC_TYPE_FLAGS mask,PROPDESC_TYPE_FLAGS *ppdtFlags) {
3182     return This->lpVtbl->GetTypeFlags(This,mask,ppdtFlags);
3183 }
3184 static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetViewFlags(IPropertyDescriptionRelatedPropertyInfo* This,PROPDESC_VIEW_FLAGS *ppdvFlags) {
3185     return This->lpVtbl->GetViewFlags(This,ppdvFlags);
3186 }
3187 static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetDefaultColumnWidth(IPropertyDescriptionRelatedPropertyInfo* This,UINT *pcxChars) {
3188     return This->lpVtbl->GetDefaultColumnWidth(This,pcxChars);
3189 }
3190 static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetDisplayType(IPropertyDescriptionRelatedPropertyInfo* This,PROPDESC_DISPLAYTYPE *pdisplaytype) {
3191     return This->lpVtbl->GetDisplayType(This,pdisplaytype);
3192 }
3193 static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetColumnState(IPropertyDescriptionRelatedPropertyInfo* This,SHCOLSTATEF *pcsFlags) {
3194     return This->lpVtbl->GetColumnState(This,pcsFlags);
3195 }
3196 static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetGroupingRange(IPropertyDescriptionRelatedPropertyInfo* This,PROPDESC_GROUPING_RANGE *pgr) {
3197     return This->lpVtbl->GetGroupingRange(This,pgr);
3198 }
3199 static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetRelativeDescriptionType(IPropertyDescriptionRelatedPropertyInfo* This,PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt) {
3200     return This->lpVtbl->GetRelativeDescriptionType(This,prdt);
3201 }
3202 static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetRelativeDescription(IPropertyDescriptionRelatedPropertyInfo* This,REFPROPVARIANT propvar1,REFPROPVARIANT propvar2,LPWSTR *ppszDesc1,LPWSTR *ppszDesc2) {
3203     return This->lpVtbl->GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2);
3204 }
3205 static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetSortDescription(IPropertyDescriptionRelatedPropertyInfo* This,PROPDESC_SORTDESCRIPTION *psd) {
3206     return This->lpVtbl->GetSortDescription(This,psd);
3207 }
3208 static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetSortDescriptionLabel(IPropertyDescriptionRelatedPropertyInfo* This,WINBOOL fDescending,LPWSTR *ppszDescription) {
3209     return This->lpVtbl->GetSortDescriptionLabel(This,fDescending,ppszDescription);
3210 }
3211 static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetAggregationType(IPropertyDescriptionRelatedPropertyInfo* This,PROPDESC_AGGREGATION_TYPE *paggtype) {
3212     return This->lpVtbl->GetAggregationType(This,paggtype);
3213 }
3214 static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetConditionType(IPropertyDescriptionRelatedPropertyInfo* This,PROPDESC_CONDITION_TYPE *pcontype,CONDITION_OPERATION *popDefault) {
3215     return This->lpVtbl->GetConditionType(This,pcontype,popDefault);
3216 }
3217 static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetEnumTypeList(IPropertyDescriptionRelatedPropertyInfo* This,REFIID riid,void **ppv) {
3218     return This->lpVtbl->GetEnumTypeList(This,riid,ppv);
3219 }
3220 static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_CoerceToCanonicalValue(IPropertyDescriptionRelatedPropertyInfo* This,PROPVARIANT *ppropvar) {
3221     return This->lpVtbl->CoerceToCanonicalValue(This,ppropvar);
3222 }
3223 static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_FormatForDisplay(IPropertyDescriptionRelatedPropertyInfo* This,REFPROPVARIANT propvar,PROPDESC_FORMAT_FLAGS pdfFlags,LPWSTR *ppszDisplay) {
3224     return This->lpVtbl->FormatForDisplay(This,propvar,pdfFlags,ppszDisplay);
3225 }
3226 static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_IsValueCanonical(IPropertyDescriptionRelatedPropertyInfo* This,REFPROPVARIANT propvar) {
3227     return This->lpVtbl->IsValueCanonical(This,propvar);
3228 }
3229 /*** IPropertyDescriptionRelatedPropertyInfo methods ***/
3230 static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetRelatedProperty(IPropertyDescriptionRelatedPropertyInfo* This,LPCWSTR pszRelationshipName,REFIID riid,void **ppv) {
3231     return This->lpVtbl->GetRelatedProperty(This,pszRelationshipName,riid,ppv);
3232 }
3233 #endif
3234 #endif
3235 
3236 #endif
3237 
3238 
3239 #endif  /* __IPropertyDescriptionRelatedPropertyInfo_INTERFACE_DEFINED__ */
3240 
3241 
3242 typedef enum PROPDESC_ENUMFILTER {
3243     PDEF_ALL = 0,
3244     PDEF_SYSTEM = 1,
3245     PDEF_NONSYSTEM = 2,
3246     PDEF_VIEWABLE = 3,
3247     PDEF_QUERYABLE = 4,
3248     PDEF_INFULLTEXTQUERY = 5,
3249     PDEF_COLUMN = 6
3250 } PROPDESC_ENUMFILTER;
3251 
3252 /*****************************************************************************
3253  * IPropertySystem interface
3254  */
3255 #ifndef __IPropertySystem_INTERFACE_DEFINED__
3256 #define __IPropertySystem_INTERFACE_DEFINED__
3257 
3258 DEFINE_GUID(IID_IPropertySystem, 0xca724e8a, 0xc3e6, 0x442b, 0x88,0xa4, 0x6f,0xb0,0xdb,0x80,0x35,0xa3);
3259 #if defined(__cplusplus) && !defined(CINTERFACE)
3260 MIDL_INTERFACE("ca724e8a-c3e6-442b-88a4-6fb0db8035a3")
3261 IPropertySystem : public IUnknown
3262 {
3263     virtual HRESULT STDMETHODCALLTYPE GetPropertyDescription(
3264         REFPROPERTYKEY propkey,
3265         REFIID riid,
3266         void **ppv) = 0;
3267 
3268     virtual HRESULT STDMETHODCALLTYPE GetPropertyDescriptionByName(
3269         LPCWSTR pszCanonicalName,
3270         REFIID riid,
3271         void **ppv) = 0;
3272 
3273     virtual HRESULT STDMETHODCALLTYPE GetPropertyDescriptionListFromString(
3274         LPCWSTR pszPropList,
3275         REFIID riid,
3276         void **ppv) = 0;
3277 
3278     virtual HRESULT STDMETHODCALLTYPE EnumeratePropertyDescriptions(
3279         PROPDESC_ENUMFILTER filterOn,
3280         REFIID riid,
3281         void **ppv) = 0;
3282 
3283     virtual HRESULT STDMETHODCALLTYPE FormatForDisplay(
3284         REFPROPERTYKEY key,
3285         REFPROPVARIANT propvar,
3286         PROPDESC_FORMAT_FLAGS pdff,
3287         LPWSTR pszText,
3288         DWORD cchText) = 0;
3289 
3290     virtual HRESULT STDMETHODCALLTYPE FormatForDisplayAlloc(
3291         REFPROPERTYKEY key,
3292         REFPROPVARIANT propvar,
3293         PROPDESC_FORMAT_FLAGS pdff,
3294         LPWSTR *ppszDisplay) = 0;
3295 
3296     virtual HRESULT STDMETHODCALLTYPE RegisterPropertySchema(
3297         LPCWSTR pszPath) = 0;
3298 
3299     virtual HRESULT STDMETHODCALLTYPE UnregisterPropertySchema(
3300         LPCWSTR pszPath) = 0;
3301 
3302     virtual HRESULT STDMETHODCALLTYPE RefreshPropertySchema(
3303         ) = 0;
3304 
3305 };
3306 #ifdef __CRT_UUID_DECL
3307 __CRT_UUID_DECL(IPropertySystem, 0xca724e8a, 0xc3e6, 0x442b, 0x88,0xa4, 0x6f,0xb0,0xdb,0x80,0x35,0xa3)
3308 #endif
3309 #else
3310 typedef struct IPropertySystemVtbl {
3311     BEGIN_INTERFACE
3312 
3313     /*** IUnknown methods ***/
3314     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3315         IPropertySystem *This,
3316         REFIID riid,
3317         void **ppvObject);
3318 
3319     ULONG (STDMETHODCALLTYPE *AddRef)(
3320         IPropertySystem *This);
3321 
3322     ULONG (STDMETHODCALLTYPE *Release)(
3323         IPropertySystem *This);
3324 
3325     /*** IPropertySystem methods ***/
3326     HRESULT (STDMETHODCALLTYPE *GetPropertyDescription)(
3327         IPropertySystem *This,
3328         REFPROPERTYKEY propkey,
3329         REFIID riid,
3330         void **ppv);
3331 
3332     HRESULT (STDMETHODCALLTYPE *GetPropertyDescriptionByName)(
3333         IPropertySystem *This,
3334         LPCWSTR pszCanonicalName,
3335         REFIID riid,
3336         void **ppv);
3337 
3338     HRESULT (STDMETHODCALLTYPE *GetPropertyDescriptionListFromString)(
3339         IPropertySystem *This,
3340         LPCWSTR pszPropList,
3341         REFIID riid,
3342         void **ppv);
3343 
3344     HRESULT (STDMETHODCALLTYPE *EnumeratePropertyDescriptions)(
3345         IPropertySystem *This,
3346         PROPDESC_ENUMFILTER filterOn,
3347         REFIID riid,
3348         void **ppv);
3349 
3350     HRESULT (STDMETHODCALLTYPE *FormatForDisplay)(
3351         IPropertySystem *This,
3352         REFPROPERTYKEY key,
3353         REFPROPVARIANT propvar,
3354         PROPDESC_FORMAT_FLAGS pdff,
3355         LPWSTR pszText,
3356         DWORD cchText);
3357 
3358     HRESULT (STDMETHODCALLTYPE *FormatForDisplayAlloc)(
3359         IPropertySystem *This,
3360         REFPROPERTYKEY key,
3361         REFPROPVARIANT propvar,
3362         PROPDESC_FORMAT_FLAGS pdff,
3363         LPWSTR *ppszDisplay);
3364 
3365     HRESULT (STDMETHODCALLTYPE *RegisterPropertySchema)(
3366         IPropertySystem *This,
3367         LPCWSTR pszPath);
3368 
3369     HRESULT (STDMETHODCALLTYPE *UnregisterPropertySchema)(
3370         IPropertySystem *This,
3371         LPCWSTR pszPath);
3372 
3373     HRESULT (STDMETHODCALLTYPE *RefreshPropertySchema)(
3374         IPropertySystem *This);
3375 
3376     END_INTERFACE
3377 } IPropertySystemVtbl;
3378 
3379 interface IPropertySystem {
3380     CONST_VTBL IPropertySystemVtbl* lpVtbl;
3381 };
3382 
3383 #ifdef COBJMACROS
3384 #ifndef WIDL_C_INLINE_WRAPPERS
3385 /*** IUnknown methods ***/
3386 #define IPropertySystem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3387 #define IPropertySystem_AddRef(This) (This)->lpVtbl->AddRef(This)
3388 #define IPropertySystem_Release(This) (This)->lpVtbl->Release(This)
3389 /*** IPropertySystem methods ***/
3390 #define IPropertySystem_GetPropertyDescription(This,propkey,riid,ppv) (This)->lpVtbl->GetPropertyDescription(This,propkey,riid,ppv)
3391 #define IPropertySystem_GetPropertyDescriptionByName(This,pszCanonicalName,riid,ppv) (This)->lpVtbl->GetPropertyDescriptionByName(This,pszCanonicalName,riid,ppv)
3392 #define IPropertySystem_GetPropertyDescriptionListFromString(This,pszPropList,riid,ppv) (This)->lpVtbl->GetPropertyDescriptionListFromString(This,pszPropList,riid,ppv)
3393 #define IPropertySystem_EnumeratePropertyDescriptions(This,filterOn,riid,ppv) (This)->lpVtbl->EnumeratePropertyDescriptions(This,filterOn,riid,ppv)
3394 #define IPropertySystem_FormatForDisplay(This,key,propvar,pdff,pszText,cchText) (This)->lpVtbl->FormatForDisplay(This,key,propvar,pdff,pszText,cchText)
3395 #define IPropertySystem_FormatForDisplayAlloc(This,key,propvar,pdff,ppszDisplay) (This)->lpVtbl->FormatForDisplayAlloc(This,key,propvar,pdff,ppszDisplay)
3396 #define IPropertySystem_RegisterPropertySchema(This,pszPath) (This)->lpVtbl->RegisterPropertySchema(This,pszPath)
3397 #define IPropertySystem_UnregisterPropertySchema(This,pszPath) (This)->lpVtbl->UnregisterPropertySchema(This,pszPath)
3398 #define IPropertySystem_RefreshPropertySchema(This) (This)->lpVtbl->RefreshPropertySchema(This)
3399 #else
3400 /*** IUnknown methods ***/
3401 static FORCEINLINE HRESULT IPropertySystem_QueryInterface(IPropertySystem* This,REFIID riid,void **ppvObject) {
3402     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3403 }
3404 static FORCEINLINE ULONG IPropertySystem_AddRef(IPropertySystem* This) {
3405     return This->lpVtbl->AddRef(This);
3406 }
3407 static FORCEINLINE ULONG IPropertySystem_Release(IPropertySystem* This) {
3408     return This->lpVtbl->Release(This);
3409 }
3410 /*** IPropertySystem methods ***/
3411 static FORCEINLINE HRESULT IPropertySystem_GetPropertyDescription(IPropertySystem* This,REFPROPERTYKEY propkey,REFIID riid,void **ppv) {
3412     return This->lpVtbl->GetPropertyDescription(This,propkey,riid,ppv);
3413 }
3414 static FORCEINLINE HRESULT IPropertySystem_GetPropertyDescriptionByName(IPropertySystem* This,LPCWSTR pszCanonicalName,REFIID riid,void **ppv) {
3415     return This->lpVtbl->GetPropertyDescriptionByName(This,pszCanonicalName,riid,ppv);
3416 }
3417 static FORCEINLINE HRESULT IPropertySystem_GetPropertyDescriptionListFromString(IPropertySystem* This,LPCWSTR pszPropList,REFIID riid,void **ppv) {
3418     return This->lpVtbl->GetPropertyDescriptionListFromString(This,pszPropList,riid,ppv);
3419 }
3420 static FORCEINLINE HRESULT IPropertySystem_EnumeratePropertyDescriptions(IPropertySystem* This,PROPDESC_ENUMFILTER filterOn,REFIID riid,void **ppv) {
3421     return This->lpVtbl->EnumeratePropertyDescriptions(This,filterOn,riid,ppv);
3422 }
3423 static FORCEINLINE HRESULT IPropertySystem_FormatForDisplay(IPropertySystem* This,REFPROPERTYKEY key,REFPROPVARIANT propvar,PROPDESC_FORMAT_FLAGS pdff,LPWSTR pszText,DWORD cchText) {
3424     return This->lpVtbl->FormatForDisplay(This,key,propvar,pdff,pszText,cchText);
3425 }
3426 static FORCEINLINE HRESULT IPropertySystem_FormatForDisplayAlloc(IPropertySystem* This,REFPROPERTYKEY key,REFPROPVARIANT propvar,PROPDESC_FORMAT_FLAGS pdff,LPWSTR *ppszDisplay) {
3427     return This->lpVtbl->FormatForDisplayAlloc(This,key,propvar,pdff,ppszDisplay);
3428 }
3429 static FORCEINLINE HRESULT IPropertySystem_RegisterPropertySchema(IPropertySystem* This,LPCWSTR pszPath) {
3430     return This->lpVtbl->RegisterPropertySchema(This,pszPath);
3431 }
3432 static FORCEINLINE HRESULT IPropertySystem_UnregisterPropertySchema(IPropertySystem* This,LPCWSTR pszPath) {
3433     return This->lpVtbl->UnregisterPropertySchema(This,pszPath);
3434 }
3435 static FORCEINLINE HRESULT IPropertySystem_RefreshPropertySchema(IPropertySystem* This) {
3436     return This->lpVtbl->RefreshPropertySchema(This);
3437 }
3438 #endif
3439 #endif
3440 
3441 #endif
3442 
3443 
3444 #endif  /* __IPropertySystem_INTERFACE_DEFINED__ */
3445 
3446 
3447 /*****************************************************************************
3448  * IPropertyDescriptionList interface
3449  */
3450 #ifndef __IPropertyDescriptionList_INTERFACE_DEFINED__
3451 #define __IPropertyDescriptionList_INTERFACE_DEFINED__
3452 
3453 DEFINE_GUID(IID_IPropertyDescriptionList, 0x1f9fc1d0, 0xc39b, 0x4b26, 0x81,0x7f, 0x01,0x19,0x67,0xd3,0x44,0x0e);
3454 #if defined(__cplusplus) && !defined(CINTERFACE)
3455 MIDL_INTERFACE("1f9fc1d0-c39b-4b26-817f-011967d3440e")
3456 IPropertyDescriptionList : public IUnknown
3457 {
3458     virtual HRESULT STDMETHODCALLTYPE GetCount(
3459         UINT *pcElem) = 0;
3460 
3461     virtual HRESULT STDMETHODCALLTYPE GetAt(
3462         UINT iElem,
3463         REFIID riid,
3464         void **ppv) = 0;
3465 
3466 };
3467 #ifdef __CRT_UUID_DECL
3468 __CRT_UUID_DECL(IPropertyDescriptionList, 0x1f9fc1d0, 0xc39b, 0x4b26, 0x81,0x7f, 0x01,0x19,0x67,0xd3,0x44,0x0e)
3469 #endif
3470 #else
3471 typedef struct IPropertyDescriptionListVtbl {
3472     BEGIN_INTERFACE
3473 
3474     /*** IUnknown methods ***/
3475     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3476         IPropertyDescriptionList *This,
3477         REFIID riid,
3478         void **ppvObject);
3479 
3480     ULONG (STDMETHODCALLTYPE *AddRef)(
3481         IPropertyDescriptionList *This);
3482 
3483     ULONG (STDMETHODCALLTYPE *Release)(
3484         IPropertyDescriptionList *This);
3485 
3486     /*** IPropertyDescriptionList methods ***/
3487     HRESULT (STDMETHODCALLTYPE *GetCount)(
3488         IPropertyDescriptionList *This,
3489         UINT *pcElem);
3490 
3491     HRESULT (STDMETHODCALLTYPE *GetAt)(
3492         IPropertyDescriptionList *This,
3493         UINT iElem,
3494         REFIID riid,
3495         void **ppv);
3496 
3497     END_INTERFACE
3498 } IPropertyDescriptionListVtbl;
3499 
3500 interface IPropertyDescriptionList {
3501     CONST_VTBL IPropertyDescriptionListVtbl* lpVtbl;
3502 };
3503 
3504 #ifdef COBJMACROS
3505 #ifndef WIDL_C_INLINE_WRAPPERS
3506 /*** IUnknown methods ***/
3507 #define IPropertyDescriptionList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3508 #define IPropertyDescriptionList_AddRef(This) (This)->lpVtbl->AddRef(This)
3509 #define IPropertyDescriptionList_Release(This) (This)->lpVtbl->Release(This)
3510 /*** IPropertyDescriptionList methods ***/
3511 #define IPropertyDescriptionList_GetCount(This,pcElem) (This)->lpVtbl->GetCount(This,pcElem)
3512 #define IPropertyDescriptionList_GetAt(This,iElem,riid,ppv) (This)->lpVtbl->GetAt(This,iElem,riid,ppv)
3513 #else
3514 /*** IUnknown methods ***/
3515 static FORCEINLINE HRESULT IPropertyDescriptionList_QueryInterface(IPropertyDescriptionList* This,REFIID riid,void **ppvObject) {
3516     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3517 }
3518 static FORCEINLINE ULONG IPropertyDescriptionList_AddRef(IPropertyDescriptionList* This) {
3519     return This->lpVtbl->AddRef(This);
3520 }
3521 static FORCEINLINE ULONG IPropertyDescriptionList_Release(IPropertyDescriptionList* This) {
3522     return This->lpVtbl->Release(This);
3523 }
3524 /*** IPropertyDescriptionList methods ***/
3525 static FORCEINLINE HRESULT IPropertyDescriptionList_GetCount(IPropertyDescriptionList* This,UINT *pcElem) {
3526     return This->lpVtbl->GetCount(This,pcElem);
3527 }
3528 static FORCEINLINE HRESULT IPropertyDescriptionList_GetAt(IPropertyDescriptionList* This,UINT iElem,REFIID riid,void **ppv) {
3529     return This->lpVtbl->GetAt(This,iElem,riid,ppv);
3530 }
3531 #endif
3532 #endif
3533 
3534 #endif
3535 
3536 
3537 #endif  /* __IPropertyDescriptionList_INTERFACE_DEFINED__ */
3538 
3539 
3540 /*****************************************************************************
3541  * IPropertyStoreFactory interface
3542  */
3543 #ifndef __IPropertyStoreFactory_INTERFACE_DEFINED__
3544 #define __IPropertyStoreFactory_INTERFACE_DEFINED__
3545 
3546 DEFINE_GUID(IID_IPropertyStoreFactory, 0xbc110b6d, 0x57e8, 0x4148, 0xa9,0xc6, 0x91,0x01,0x5a,0xb2,0xf3,0xa5);
3547 #if defined(__cplusplus) && !defined(CINTERFACE)
3548 MIDL_INTERFACE("bc110b6d-57e8-4148-a9c6-91015ab2f3a5")
3549 IPropertyStoreFactory : public IUnknown
3550 {
3551     virtual HRESULT STDMETHODCALLTYPE GetPropertyStore(
3552         GETPROPERTYSTOREFLAGS flags,
3553         IUnknown *pUnkFactory,
3554         REFIID riid,
3555         void **ppv) = 0;
3556 
3557     virtual HRESULT STDMETHODCALLTYPE GetPropertyStoreForKeys(
3558         const PROPERTYKEY *rgKeys,
3559         UINT cKeys,
3560         GETPROPERTYSTOREFLAGS flags,
3561         REFIID riid,
3562         void **ppv) = 0;
3563 
3564 };
3565 #ifdef __CRT_UUID_DECL
3566 __CRT_UUID_DECL(IPropertyStoreFactory, 0xbc110b6d, 0x57e8, 0x4148, 0xa9,0xc6, 0x91,0x01,0x5a,0xb2,0xf3,0xa5)
3567 #endif
3568 #else
3569 typedef struct IPropertyStoreFactoryVtbl {
3570     BEGIN_INTERFACE
3571 
3572     /*** IUnknown methods ***/
3573     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3574         IPropertyStoreFactory *This,
3575         REFIID riid,
3576         void **ppvObject);
3577 
3578     ULONG (STDMETHODCALLTYPE *AddRef)(
3579         IPropertyStoreFactory *This);
3580 
3581     ULONG (STDMETHODCALLTYPE *Release)(
3582         IPropertyStoreFactory *This);
3583 
3584     /*** IPropertyStoreFactory methods ***/
3585     HRESULT (STDMETHODCALLTYPE *GetPropertyStore)(
3586         IPropertyStoreFactory *This,
3587         GETPROPERTYSTOREFLAGS flags,
3588         IUnknown *pUnkFactory,
3589         REFIID riid,
3590         void **ppv);
3591 
3592     HRESULT (STDMETHODCALLTYPE *GetPropertyStoreForKeys)(
3593         IPropertyStoreFactory *This,
3594         const PROPERTYKEY *rgKeys,
3595         UINT cKeys,
3596         GETPROPERTYSTOREFLAGS flags,
3597         REFIID riid,
3598         void **ppv);
3599 
3600     END_INTERFACE
3601 } IPropertyStoreFactoryVtbl;
3602 
3603 interface IPropertyStoreFactory {
3604     CONST_VTBL IPropertyStoreFactoryVtbl* lpVtbl;
3605 };
3606 
3607 #ifdef COBJMACROS
3608 #ifndef WIDL_C_INLINE_WRAPPERS
3609 /*** IUnknown methods ***/
3610 #define IPropertyStoreFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3611 #define IPropertyStoreFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
3612 #define IPropertyStoreFactory_Release(This) (This)->lpVtbl->Release(This)
3613 /*** IPropertyStoreFactory methods ***/
3614 #define IPropertyStoreFactory_GetPropertyStore(This,flags,pUnkFactory,riid,ppv) (This)->lpVtbl->GetPropertyStore(This,flags,pUnkFactory,riid,ppv)
3615 #define IPropertyStoreFactory_GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv) (This)->lpVtbl->GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv)
3616 #else
3617 /*** IUnknown methods ***/
3618 static FORCEINLINE HRESULT IPropertyStoreFactory_QueryInterface(IPropertyStoreFactory* This,REFIID riid,void **ppvObject) {
3619     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3620 }
3621 static FORCEINLINE ULONG IPropertyStoreFactory_AddRef(IPropertyStoreFactory* This) {
3622     return This->lpVtbl->AddRef(This);
3623 }
3624 static FORCEINLINE ULONG IPropertyStoreFactory_Release(IPropertyStoreFactory* This) {
3625     return This->lpVtbl->Release(This);
3626 }
3627 /*** IPropertyStoreFactory methods ***/
3628 static FORCEINLINE HRESULT IPropertyStoreFactory_GetPropertyStore(IPropertyStoreFactory* This,GETPROPERTYSTOREFLAGS flags,IUnknown *pUnkFactory,REFIID riid,void **ppv) {
3629     return This->lpVtbl->GetPropertyStore(This,flags,pUnkFactory,riid,ppv);
3630 }
3631 static FORCEINLINE HRESULT IPropertyStoreFactory_GetPropertyStoreForKeys(IPropertyStoreFactory* This,const PROPERTYKEY *rgKeys,UINT cKeys,GETPROPERTYSTOREFLAGS flags,REFIID riid,void **ppv) {
3632     return This->lpVtbl->GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv);
3633 }
3634 #endif
3635 #endif
3636 
3637 #endif
3638 
3639 
3640 #endif  /* __IPropertyStoreFactory_INTERFACE_DEFINED__ */
3641 
3642 
3643 /*****************************************************************************
3644  * IDelayedPropertyStoreFactory interface
3645  */
3646 #ifndef __IDelayedPropertyStoreFactory_INTERFACE_DEFINED__
3647 #define __IDelayedPropertyStoreFactory_INTERFACE_DEFINED__
3648 
3649 DEFINE_GUID(IID_IDelayedPropertyStoreFactory, 0x40d4577f, 0xe237, 0x4bdb, 0xbd,0x69, 0x58,0xf0,0x89,0x43,0x1b,0x6a);
3650 #if defined(__cplusplus) && !defined(CINTERFACE)
3651 MIDL_INTERFACE("40d4577f-e237-4bdb-bd69-58f089431b6a")
3652 IDelayedPropertyStoreFactory : public IPropertyStoreFactory
3653 {
3654     virtual HRESULT STDMETHODCALLTYPE GetDelayedPropertyStore(
3655         GETPROPERTYSTOREFLAGS flags,
3656         DWORD dwStoreId,
3657         REFIID riid,
3658         void **ppv) = 0;
3659 
3660 };
3661 #ifdef __CRT_UUID_DECL
3662 __CRT_UUID_DECL(IDelayedPropertyStoreFactory, 0x40d4577f, 0xe237, 0x4bdb, 0xbd,0x69, 0x58,0xf0,0x89,0x43,0x1b,0x6a)
3663 #endif
3664 #else
3665 typedef struct IDelayedPropertyStoreFactoryVtbl {
3666     BEGIN_INTERFACE
3667 
3668     /*** IUnknown methods ***/
3669     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3670         IDelayedPropertyStoreFactory *This,
3671         REFIID riid,
3672         void **ppvObject);
3673 
3674     ULONG (STDMETHODCALLTYPE *AddRef)(
3675         IDelayedPropertyStoreFactory *This);
3676 
3677     ULONG (STDMETHODCALLTYPE *Release)(
3678         IDelayedPropertyStoreFactory *This);
3679 
3680     /*** IPropertyStoreFactory methods ***/
3681     HRESULT (STDMETHODCALLTYPE *GetPropertyStore)(
3682         IDelayedPropertyStoreFactory *This,
3683         GETPROPERTYSTOREFLAGS flags,
3684         IUnknown *pUnkFactory,
3685         REFIID riid,
3686         void **ppv);
3687 
3688     HRESULT (STDMETHODCALLTYPE *GetPropertyStoreForKeys)(
3689         IDelayedPropertyStoreFactory *This,
3690         const PROPERTYKEY *rgKeys,
3691         UINT cKeys,
3692         GETPROPERTYSTOREFLAGS flags,
3693         REFIID riid,
3694         void **ppv);
3695 
3696     /*** IDelayedPropertyStoreFactory methods ***/
3697     HRESULT (STDMETHODCALLTYPE *GetDelayedPropertyStore)(
3698         IDelayedPropertyStoreFactory *This,
3699         GETPROPERTYSTOREFLAGS flags,
3700         DWORD dwStoreId,
3701         REFIID riid,
3702         void **ppv);
3703 
3704     END_INTERFACE
3705 } IDelayedPropertyStoreFactoryVtbl;
3706 
3707 interface IDelayedPropertyStoreFactory {
3708     CONST_VTBL IDelayedPropertyStoreFactoryVtbl* lpVtbl;
3709 };
3710 
3711 #ifdef COBJMACROS
3712 #ifndef WIDL_C_INLINE_WRAPPERS
3713 /*** IUnknown methods ***/
3714 #define IDelayedPropertyStoreFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3715 #define IDelayedPropertyStoreFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
3716 #define IDelayedPropertyStoreFactory_Release(This) (This)->lpVtbl->Release(This)
3717 /*** IPropertyStoreFactory methods ***/
3718 #define IDelayedPropertyStoreFactory_GetPropertyStore(This,flags,pUnkFactory,riid,ppv) (This)->lpVtbl->GetPropertyStore(This,flags,pUnkFactory,riid,ppv)
3719 #define IDelayedPropertyStoreFactory_GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv) (This)->lpVtbl->GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv)
3720 /*** IDelayedPropertyStoreFactory methods ***/
3721 #define IDelayedPropertyStoreFactory_GetDelayedPropertyStore(This,flags,dwStoreId,riid,ppv) (This)->lpVtbl->GetDelayedPropertyStore(This,flags,dwStoreId,riid,ppv)
3722 #else
3723 /*** IUnknown methods ***/
3724 static FORCEINLINE HRESULT IDelayedPropertyStoreFactory_QueryInterface(IDelayedPropertyStoreFactory* This,REFIID riid,void **ppvObject) {
3725     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3726 }
3727 static FORCEINLINE ULONG IDelayedPropertyStoreFactory_AddRef(IDelayedPropertyStoreFactory* This) {
3728     return This->lpVtbl->AddRef(This);
3729 }
3730 static FORCEINLINE ULONG IDelayedPropertyStoreFactory_Release(IDelayedPropertyStoreFactory* This) {
3731     return This->lpVtbl->Release(This);
3732 }
3733 /*** IPropertyStoreFactory methods ***/
3734 static FORCEINLINE HRESULT IDelayedPropertyStoreFactory_GetPropertyStore(IDelayedPropertyStoreFactory* This,GETPROPERTYSTOREFLAGS flags,IUnknown *pUnkFactory,REFIID riid,void **ppv) {
3735     return This->lpVtbl->GetPropertyStore(This,flags,pUnkFactory,riid,ppv);
3736 }
3737 static FORCEINLINE HRESULT IDelayedPropertyStoreFactory_GetPropertyStoreForKeys(IDelayedPropertyStoreFactory* This,const PROPERTYKEY *rgKeys,UINT cKeys,GETPROPERTYSTOREFLAGS flags,REFIID riid,void **ppv) {
3738     return This->lpVtbl->GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv);
3739 }
3740 /*** IDelayedPropertyStoreFactory methods ***/
3741 static FORCEINLINE HRESULT IDelayedPropertyStoreFactory_GetDelayedPropertyStore(IDelayedPropertyStoreFactory* This,GETPROPERTYSTOREFLAGS flags,DWORD dwStoreId,REFIID riid,void **ppv) {
3742     return This->lpVtbl->GetDelayedPropertyStore(This,flags,dwStoreId,riid,ppv);
3743 }
3744 #endif
3745 #endif
3746 
3747 #endif
3748 
3749 
3750 #endif  /* __IDelayedPropertyStoreFactory_INTERFACE_DEFINED__ */
3751 
3752 
3753 enum _PERSIST_SPROPSTORE_FLAGS {
3754     FPSPS_DEFAULT = 0x0,
3755     FPSPS_READONLY = 0x1,
3756     FPSPS_TREAT_NEW_VALUES_AS_DIRTY = 0x2
3757 };
3758 
3759 typedef int PERSIST_SPROPSTORE_FLAGS;
3760 typedef struct tagSERIALIZEDPROPSTORAGE SERIALIZEDPROPSTORAGE;
3761 typedef SERIALIZEDPROPSTORAGE *PUSERIALIZEDPROPSTORAGE;
3762 typedef const SERIALIZEDPROPSTORAGE *PCUSERIALIZEDPROPSTORAGE;
3763 
3764 /*****************************************************************************
3765  * IPersistSerializedPropStorage interface
3766  */
3767 #ifndef __IPersistSerializedPropStorage_INTERFACE_DEFINED__
3768 #define __IPersistSerializedPropStorage_INTERFACE_DEFINED__
3769 
3770 DEFINE_GUID(IID_IPersistSerializedPropStorage, 0xe318ad57, 0x0aa0, 0x450f, 0xac,0xa5, 0x6f,0xab,0x71,0x03,0xd9,0x17);
3771 #if defined(__cplusplus) && !defined(CINTERFACE)
3772 MIDL_INTERFACE("e318ad57-0aa0-450f-aca5-6fab7103d917")
3773 IPersistSerializedPropStorage : public IUnknown
3774 {
3775     virtual HRESULT STDMETHODCALLTYPE SetFlags(
3776         PERSIST_SPROPSTORE_FLAGS flags) = 0;
3777 
3778     virtual HRESULT STDMETHODCALLTYPE SetPropertyStorage(
3779         PCUSERIALIZEDPROPSTORAGE psps,
3780         DWORD cb) = 0;
3781 
3782     virtual HRESULT STDMETHODCALLTYPE GetPropertyStorage(
3783         SERIALIZEDPROPSTORAGE **ppsps,
3784         DWORD *pcb) = 0;
3785 
3786 };
3787 #ifdef __CRT_UUID_DECL
3788 __CRT_UUID_DECL(IPersistSerializedPropStorage, 0xe318ad57, 0x0aa0, 0x450f, 0xac,0xa5, 0x6f,0xab,0x71,0x03,0xd9,0x17)
3789 #endif
3790 #else
3791 typedef struct IPersistSerializedPropStorageVtbl {
3792     BEGIN_INTERFACE
3793 
3794     /*** IUnknown methods ***/
3795     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3796         IPersistSerializedPropStorage *This,
3797         REFIID riid,
3798         void **ppvObject);
3799 
3800     ULONG (STDMETHODCALLTYPE *AddRef)(
3801         IPersistSerializedPropStorage *This);
3802 
3803     ULONG (STDMETHODCALLTYPE *Release)(
3804         IPersistSerializedPropStorage *This);
3805 
3806     /*** IPersistSerializedPropStorage methods ***/
3807     HRESULT (STDMETHODCALLTYPE *SetFlags)(
3808         IPersistSerializedPropStorage *This,
3809         PERSIST_SPROPSTORE_FLAGS flags);
3810 
3811     HRESULT (STDMETHODCALLTYPE *SetPropertyStorage)(
3812         IPersistSerializedPropStorage *This,
3813         PCUSERIALIZEDPROPSTORAGE psps,
3814         DWORD cb);
3815 
3816     HRESULT (STDMETHODCALLTYPE *GetPropertyStorage)(
3817         IPersistSerializedPropStorage *This,
3818         SERIALIZEDPROPSTORAGE **ppsps,
3819         DWORD *pcb);
3820 
3821     END_INTERFACE
3822 } IPersistSerializedPropStorageVtbl;
3823 
3824 interface IPersistSerializedPropStorage {
3825     CONST_VTBL IPersistSerializedPropStorageVtbl* lpVtbl;
3826 };
3827 
3828 #ifdef COBJMACROS
3829 #ifndef WIDL_C_INLINE_WRAPPERS
3830 /*** IUnknown methods ***/
3831 #define IPersistSerializedPropStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3832 #define IPersistSerializedPropStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
3833 #define IPersistSerializedPropStorage_Release(This) (This)->lpVtbl->Release(This)
3834 /*** IPersistSerializedPropStorage methods ***/
3835 #define IPersistSerializedPropStorage_SetFlags(This,flags) (This)->lpVtbl->SetFlags(This,flags)
3836 #define IPersistSerializedPropStorage_SetPropertyStorage(This,psps,cb) (This)->lpVtbl->SetPropertyStorage(This,psps,cb)
3837 #define IPersistSerializedPropStorage_GetPropertyStorage(This,ppsps,pcb) (This)->lpVtbl->GetPropertyStorage(This,ppsps,pcb)
3838 #else
3839 /*** IUnknown methods ***/
3840 static FORCEINLINE HRESULT IPersistSerializedPropStorage_QueryInterface(IPersistSerializedPropStorage* This,REFIID riid,void **ppvObject) {
3841     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3842 }
3843 static FORCEINLINE ULONG IPersistSerializedPropStorage_AddRef(IPersistSerializedPropStorage* This) {
3844     return This->lpVtbl->AddRef(This);
3845 }
3846 static FORCEINLINE ULONG IPersistSerializedPropStorage_Release(IPersistSerializedPropStorage* This) {
3847     return This->lpVtbl->Release(This);
3848 }
3849 /*** IPersistSerializedPropStorage methods ***/
3850 static FORCEINLINE HRESULT IPersistSerializedPropStorage_SetFlags(IPersistSerializedPropStorage* This,PERSIST_SPROPSTORE_FLAGS flags) {
3851     return This->lpVtbl->SetFlags(This,flags);
3852 }
3853 static FORCEINLINE HRESULT IPersistSerializedPropStorage_SetPropertyStorage(IPersistSerializedPropStorage* This,PCUSERIALIZEDPROPSTORAGE psps,DWORD cb) {
3854     return This->lpVtbl->SetPropertyStorage(This,psps,cb);
3855 }
3856 static FORCEINLINE HRESULT IPersistSerializedPropStorage_GetPropertyStorage(IPersistSerializedPropStorage* This,SERIALIZEDPROPSTORAGE **ppsps,DWORD *pcb) {
3857     return This->lpVtbl->GetPropertyStorage(This,ppsps,pcb);
3858 }
3859 #endif
3860 #endif
3861 
3862 #endif
3863 
3864 
3865 #endif  /* __IPersistSerializedPropStorage_INTERFACE_DEFINED__ */
3866 
3867 
3868 /*****************************************************************************
3869  * IPersistSerializedPropStorage2 interface
3870  */
3871 #ifndef __IPersistSerializedPropStorage2_INTERFACE_DEFINED__
3872 #define __IPersistSerializedPropStorage2_INTERFACE_DEFINED__
3873 
3874 DEFINE_GUID(IID_IPersistSerializedPropStorage2, 0x77effa68, 0x4f98, 0x4366, 0xba,0x72, 0x57,0x3b,0x3d,0x88,0x05,0x71);
3875 #if defined(__cplusplus) && !defined(CINTERFACE)
3876 MIDL_INTERFACE("77effa68-4f98-4366-ba72-573b3d880571")
3877 IPersistSerializedPropStorage2 : public IPersistSerializedPropStorage
3878 {
3879     virtual HRESULT STDMETHODCALLTYPE GetPropertyStorageSize(
3880         DWORD *pcb) = 0;
3881 
3882     virtual HRESULT STDMETHODCALLTYPE GetPropertyStorageBuffer(
3883         SERIALIZEDPROPSTORAGE *psps,
3884         DWORD cb,
3885         DWORD *pcbWritten) = 0;
3886 
3887 };
3888 #ifdef __CRT_UUID_DECL
3889 __CRT_UUID_DECL(IPersistSerializedPropStorage2, 0x77effa68, 0x4f98, 0x4366, 0xba,0x72, 0x57,0x3b,0x3d,0x88,0x05,0x71)
3890 #endif
3891 #else
3892 typedef struct IPersistSerializedPropStorage2Vtbl {
3893     BEGIN_INTERFACE
3894 
3895     /*** IUnknown methods ***/
3896     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3897         IPersistSerializedPropStorage2 *This,
3898         REFIID riid,
3899         void **ppvObject);
3900 
3901     ULONG (STDMETHODCALLTYPE *AddRef)(
3902         IPersistSerializedPropStorage2 *This);
3903 
3904     ULONG (STDMETHODCALLTYPE *Release)(
3905         IPersistSerializedPropStorage2 *This);
3906 
3907     /*** IPersistSerializedPropStorage methods ***/
3908     HRESULT (STDMETHODCALLTYPE *SetFlags)(
3909         IPersistSerializedPropStorage2 *This,
3910         PERSIST_SPROPSTORE_FLAGS flags);
3911 
3912     HRESULT (STDMETHODCALLTYPE *SetPropertyStorage)(
3913         IPersistSerializedPropStorage2 *This,
3914         PCUSERIALIZEDPROPSTORAGE psps,
3915         DWORD cb);
3916 
3917     HRESULT (STDMETHODCALLTYPE *GetPropertyStorage)(
3918         IPersistSerializedPropStorage2 *This,
3919         SERIALIZEDPROPSTORAGE **ppsps,
3920         DWORD *pcb);
3921 
3922     /*** IPersistSerializedPropStorage2 methods ***/
3923     HRESULT (STDMETHODCALLTYPE *GetPropertyStorageSize)(
3924         IPersistSerializedPropStorage2 *This,
3925         DWORD *pcb);
3926 
3927     HRESULT (STDMETHODCALLTYPE *GetPropertyStorageBuffer)(
3928         IPersistSerializedPropStorage2 *This,
3929         SERIALIZEDPROPSTORAGE *psps,
3930         DWORD cb,
3931         DWORD *pcbWritten);
3932 
3933     END_INTERFACE
3934 } IPersistSerializedPropStorage2Vtbl;
3935 
3936 interface IPersistSerializedPropStorage2 {
3937     CONST_VTBL IPersistSerializedPropStorage2Vtbl* lpVtbl;
3938 };
3939 
3940 #ifdef COBJMACROS
3941 #ifndef WIDL_C_INLINE_WRAPPERS
3942 /*** IUnknown methods ***/
3943 #define IPersistSerializedPropStorage2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3944 #define IPersistSerializedPropStorage2_AddRef(This) (This)->lpVtbl->AddRef(This)
3945 #define IPersistSerializedPropStorage2_Release(This) (This)->lpVtbl->Release(This)
3946 /*** IPersistSerializedPropStorage methods ***/
3947 #define IPersistSerializedPropStorage2_SetFlags(This,flags) (This)->lpVtbl->SetFlags(This,flags)
3948 #define IPersistSerializedPropStorage2_SetPropertyStorage(This,psps,cb) (This)->lpVtbl->SetPropertyStorage(This,psps,cb)
3949 #define IPersistSerializedPropStorage2_GetPropertyStorage(This,ppsps,pcb) (This)->lpVtbl->GetPropertyStorage(This,ppsps,pcb)
3950 /*** IPersistSerializedPropStorage2 methods ***/
3951 #define IPersistSerializedPropStorage2_GetPropertyStorageSize(This,pcb) (This)->lpVtbl->GetPropertyStorageSize(This,pcb)
3952 #define IPersistSerializedPropStorage2_GetPropertyStorageBuffer(This,psps,cb,pcbWritten) (This)->lpVtbl->GetPropertyStorageBuffer(This,psps,cb,pcbWritten)
3953 #else
3954 /*** IUnknown methods ***/
3955 static FORCEINLINE HRESULT IPersistSerializedPropStorage2_QueryInterface(IPersistSerializedPropStorage2* This,REFIID riid,void **ppvObject) {
3956     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3957 }
3958 static FORCEINLINE ULONG IPersistSerializedPropStorage2_AddRef(IPersistSerializedPropStorage2* This) {
3959     return This->lpVtbl->AddRef(This);
3960 }
3961 static FORCEINLINE ULONG IPersistSerializedPropStorage2_Release(IPersistSerializedPropStorage2* This) {
3962     return This->lpVtbl->Release(This);
3963 }
3964 /*** IPersistSerializedPropStorage methods ***/
3965 static FORCEINLINE HRESULT IPersistSerializedPropStorage2_SetFlags(IPersistSerializedPropStorage2* This,PERSIST_SPROPSTORE_FLAGS flags) {
3966     return This->lpVtbl->SetFlags(This,flags);
3967 }
3968 static FORCEINLINE HRESULT IPersistSerializedPropStorage2_SetPropertyStorage(IPersistSerializedPropStorage2* This,PCUSERIALIZEDPROPSTORAGE psps,DWORD cb) {
3969     return This->lpVtbl->SetPropertyStorage(This,psps,cb);
3970 }
3971 static FORCEINLINE HRESULT IPersistSerializedPropStorage2_GetPropertyStorage(IPersistSerializedPropStorage2* This,SERIALIZEDPROPSTORAGE **ppsps,DWORD *pcb) {
3972     return This->lpVtbl->GetPropertyStorage(This,ppsps,pcb);
3973 }
3974 /*** IPersistSerializedPropStorage2 methods ***/
3975 static FORCEINLINE HRESULT IPersistSerializedPropStorage2_GetPropertyStorageSize(IPersistSerializedPropStorage2* This,DWORD *pcb) {
3976     return This->lpVtbl->GetPropertyStorageSize(This,pcb);
3977 }
3978 static FORCEINLINE HRESULT IPersistSerializedPropStorage2_GetPropertyStorageBuffer(IPersistSerializedPropStorage2* This,SERIALIZEDPROPSTORAGE *psps,DWORD cb,DWORD *pcbWritten) {
3979     return This->lpVtbl->GetPropertyStorageBuffer(This,psps,cb,pcbWritten);
3980 }
3981 #endif
3982 #endif
3983 
3984 #endif
3985 
3986 
3987 #endif  /* __IPersistSerializedPropStorage2_INTERFACE_DEFINED__ */
3988 
3989 
3990 /*****************************************************************************
3991  * IPropertySystemChangeNotify interface
3992  */
3993 #ifndef __IPropertySystemChangeNotify_INTERFACE_DEFINED__
3994 #define __IPropertySystemChangeNotify_INTERFACE_DEFINED__
3995 
3996 DEFINE_GUID(IID_IPropertySystemChangeNotify, 0xfa955fd9, 0x38be, 0x4879, 0xa6,0xce, 0x82,0x4c,0xf5,0x2d,0x60,0x9f);
3997 #if defined(__cplusplus) && !defined(CINTERFACE)
3998 MIDL_INTERFACE("fa955fd9-38be-4879-a6ce-824cf52d609f")
3999 IPropertySystemChangeNotify : public IUnknown
4000 {
4001     virtual HRESULT STDMETHODCALLTYPE SchemaRefreshed(
4002         ) = 0;
4003 
4004 };
4005 #ifdef __CRT_UUID_DECL
4006 __CRT_UUID_DECL(IPropertySystemChangeNotify, 0xfa955fd9, 0x38be, 0x4879, 0xa6,0xce, 0x82,0x4c,0xf5,0x2d,0x60,0x9f)
4007 #endif
4008 #else
4009 typedef struct IPropertySystemChangeNotifyVtbl {
4010     BEGIN_INTERFACE
4011 
4012     /*** IUnknown methods ***/
4013     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4014         IPropertySystemChangeNotify *This,
4015         REFIID riid,
4016         void **ppvObject);
4017 
4018     ULONG (STDMETHODCALLTYPE *AddRef)(
4019         IPropertySystemChangeNotify *This);
4020 
4021     ULONG (STDMETHODCALLTYPE *Release)(
4022         IPropertySystemChangeNotify *This);
4023 
4024     /*** IPropertySystemChangeNotify methods ***/
4025     HRESULT (STDMETHODCALLTYPE *SchemaRefreshed)(
4026         IPropertySystemChangeNotify *This);
4027 
4028     END_INTERFACE
4029 } IPropertySystemChangeNotifyVtbl;
4030 
4031 interface IPropertySystemChangeNotify {
4032     CONST_VTBL IPropertySystemChangeNotifyVtbl* lpVtbl;
4033 };
4034 
4035 #ifdef COBJMACROS
4036 #ifndef WIDL_C_INLINE_WRAPPERS
4037 /*** IUnknown methods ***/
4038 #define IPropertySystemChangeNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4039 #define IPropertySystemChangeNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
4040 #define IPropertySystemChangeNotify_Release(This) (This)->lpVtbl->Release(This)
4041 /*** IPropertySystemChangeNotify methods ***/
4042 #define IPropertySystemChangeNotify_SchemaRefreshed(This) (This)->lpVtbl->SchemaRefreshed(This)
4043 #else
4044 /*** IUnknown methods ***/
4045 static FORCEINLINE HRESULT IPropertySystemChangeNotify_QueryInterface(IPropertySystemChangeNotify* This,REFIID riid,void **ppvObject) {
4046     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4047 }
4048 static FORCEINLINE ULONG IPropertySystemChangeNotify_AddRef(IPropertySystemChangeNotify* This) {
4049     return This->lpVtbl->AddRef(This);
4050 }
4051 static FORCEINLINE ULONG IPropertySystemChangeNotify_Release(IPropertySystemChangeNotify* This) {
4052     return This->lpVtbl->Release(This);
4053 }
4054 /*** IPropertySystemChangeNotify methods ***/
4055 static FORCEINLINE HRESULT IPropertySystemChangeNotify_SchemaRefreshed(IPropertySystemChangeNotify* This) {
4056     return This->lpVtbl->SchemaRefreshed(This);
4057 }
4058 #endif
4059 #endif
4060 
4061 #endif
4062 
4063 
4064 #endif  /* __IPropertySystemChangeNotify_INTERFACE_DEFINED__ */
4065 
4066 
4067 /*****************************************************************************
4068  * ICreateObject interface
4069  */
4070 #ifndef __ICreateObject_INTERFACE_DEFINED__
4071 #define __ICreateObject_INTERFACE_DEFINED__
4072 
4073 DEFINE_GUID(IID_ICreateObject, 0x75121952, 0xe0d0, 0x43e5, 0x93,0x80, 0x1d,0x80,0x48,0x3a,0xcf,0x72);
4074 #if defined(__cplusplus) && !defined(CINTERFACE)
4075 MIDL_INTERFACE("75121952-e0d0-43e5-9380-1d80483acf72")
4076 ICreateObject : public IUnknown
4077 {
4078     virtual HRESULT STDMETHODCALLTYPE CreateObject(
4079         REFCLSID clsid,
4080         IUnknown *pUnkOuter,
4081         REFIID riid,
4082         void **ppv) = 0;
4083 
4084 };
4085 #ifdef __CRT_UUID_DECL
4086 __CRT_UUID_DECL(ICreateObject, 0x75121952, 0xe0d0, 0x43e5, 0x93,0x80, 0x1d,0x80,0x48,0x3a,0xcf,0x72)
4087 #endif
4088 #else
4089 typedef struct ICreateObjectVtbl {
4090     BEGIN_INTERFACE
4091 
4092     /*** IUnknown methods ***/
4093     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4094         ICreateObject *This,
4095         REFIID riid,
4096         void **ppvObject);
4097 
4098     ULONG (STDMETHODCALLTYPE *AddRef)(
4099         ICreateObject *This);
4100 
4101     ULONG (STDMETHODCALLTYPE *Release)(
4102         ICreateObject *This);
4103 
4104     /*** ICreateObject methods ***/
4105     HRESULT (STDMETHODCALLTYPE *CreateObject)(
4106         ICreateObject *This,
4107         REFCLSID clsid,
4108         IUnknown *pUnkOuter,
4109         REFIID riid,
4110         void **ppv);
4111 
4112     END_INTERFACE
4113 } ICreateObjectVtbl;
4114 
4115 interface ICreateObject {
4116     CONST_VTBL ICreateObjectVtbl* lpVtbl;
4117 };
4118 
4119 #ifdef COBJMACROS
4120 #ifndef WIDL_C_INLINE_WRAPPERS
4121 /*** IUnknown methods ***/
4122 #define ICreateObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4123 #define ICreateObject_AddRef(This) (This)->lpVtbl->AddRef(This)
4124 #define ICreateObject_Release(This) (This)->lpVtbl->Release(This)
4125 /*** ICreateObject methods ***/
4126 #define ICreateObject_CreateObject(This,clsid,pUnkOuter,riid,ppv) (This)->lpVtbl->CreateObject(This,clsid,pUnkOuter,riid,ppv)
4127 #else
4128 /*** IUnknown methods ***/
4129 static FORCEINLINE HRESULT ICreateObject_QueryInterface(ICreateObject* This,REFIID riid,void **ppvObject) {
4130     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4131 }
4132 static FORCEINLINE ULONG ICreateObject_AddRef(ICreateObject* This) {
4133     return This->lpVtbl->AddRef(This);
4134 }
4135 static FORCEINLINE ULONG ICreateObject_Release(ICreateObject* This) {
4136     return This->lpVtbl->Release(This);
4137 }
4138 /*** ICreateObject methods ***/
4139 static FORCEINLINE HRESULT ICreateObject_CreateObject(ICreateObject* This,REFCLSID clsid,IUnknown *pUnkOuter,REFIID riid,void **ppv) {
4140     return This->lpVtbl->CreateObject(This,clsid,pUnkOuter,riid,ppv);
4141 }
4142 #endif
4143 #endif
4144 
4145 #endif
4146 
4147 
4148 #endif  /* __ICreateObject_INTERFACE_DEFINED__ */
4149 
4150 
4151 #define PKEY_PIDSTR_MAX 10
4152 #define GUIDSTRING_MAX (39)
4153 #define PKEYSTR_MAX (GUIDSTRING_MAX + 1 + PKEY_PIDSTR_MAX)
4154 
4155 PSSTDAPI PSCoerceToCanonicalValue(REFPROPERTYKEY key, PROPVARIANT *ppropvar);
4156 PSSTDAPI PSCreateAdapterFromPropertyStore(IPropertyStore *pps, REFIID riid, void **ppv);
4157 PSSTDAPI PSCreateDelayedMultiplexPropertyStore(GETPROPERTYSTOREFLAGS flags, IDelayedPropertyStoreFactory *pdpsf, const DWORD *rgStoreIds, DWORD cStores, REFIID riid, void **ppv);
4158 PSSTDAPI PSCreateMemoryPropertyStore(REFIID riid, void **ppv);
4159 PSSTDAPI PSCreateMultiplexPropertyStore(IUnknown **prgpunkStores, DWORD cStores, REFIID riid, void **ppv);
4160 PSSTDAPI PSCreatePropertyChangeArray(const PROPERTYKEY *rgpropkey, const PKA_FLAGS *rgflags, const PROPVARIANT *rgpropvar, UINT cChanges, REFIID riid, void **ppv);
4161 PSSTDAPI PSCreatePropertyStoreFromObject(IUnknown *punk, DWORD grfMode, REFIID riid, void **ppv);
4162 PSSTDAPI PSCreatePropertyStoreFromPropertySetStorage(IPropertySetStorage *ppss, DWORD grfMode, REFIID riid, void **ppv);
4163 PSSTDAPI PSCreateSimplePropertyChange(PKA_FLAGS flags, REFPROPERTYKEY key, REFPROPVARIANT propvar, REFIID riid, void **ppv);
4164 PSSTDAPI PSEnumeratePropertyDescriptions(PROPDESC_ENUMFILTER filterOn, REFIID riid, void **ppv);
4165 PSSTDAPI PSFormatForDisplay(REFPROPERTYKEY propkey, REFPROPVARIANT propvar, PROPDESC_FORMAT_FLAGS pdfFlags, LPWSTR pwszText, DWORD cchText);
4166 PSSTDAPI PSFormatForDisplayAlloc(REFPROPERTYKEY key, REFPROPVARIANT propvar, PROPDESC_FORMAT_FLAGS pdff, PWSTR *ppszDisplay);
4167 PSSTDAPI PSFormatPropertyValue(IPropertyStore *pps, IPropertyDescription *ppd, PROPDESC_FORMAT_FLAGS pdff, LPWSTR *ppszDisplay);
4168 PSSTDAPI PSGetImageReferenceForValue(REFPROPERTYKEY propkey, REFPROPVARIANT propvar, PWSTR *ppszImageRes);
4169 PSSTDAPI PSGetItemPropertyHandler(IUnknown *punkItem, BOOL fReadWrite, REFIID riid, void **ppv);
4170 PSSTDAPI PSGetItemPropertyHandlerWithCreateObject(IUnknown *punkItem, BOOL fReadWrite, IUnknown *punkCreateObject, REFIID riid, void **ppv);
4171 PSSTDAPI PSGetNamedPropertyFromPropertyStorage(PCUSERIALIZEDPROPSTORAGE psps, DWORD cb, LPCWSTR pszName, PROPVARIANT *ppropvar);
4172 PSSTDAPI PSGetNameFromPropertyKey(REFPROPERTYKEY propkey, PWSTR *ppszCanonicalName);
4173 PSSTDAPI PSGetPropertyDescription(REFPROPERTYKEY propkey, REFIID riid, void **ppv);
4174 PSSTDAPI PSGetPropertyDescriptionByName(LPCWSTR pszCanonicalName, REFIID riid, void **ppv);
4175 PSSTDAPI PSGetPropertyDescriptionListFromString(LPCWSTR pszPropList, REFIID riid, void **ppv);
4176 PSSTDAPI PSGetPropertyFromPropertyStorage(PCUSERIALIZEDPROPSTORAGE psps, DWORD cb, REFPROPERTYKEY rpkey, PROPVARIANT *ppropvar);
4177 PSSTDAPI PSGetPropertyKeyFromName(PCWSTR pszName, PROPERTYKEY *ppropkey);
4178 PSSTDAPI PSGetPropertySystem(REFIID riid, void **ppv);
4179 PSSTDAPI PSGetPropertyValue(IPropertyStore *pps, IPropertyDescription *ppd, PROPVARIANT *ppropvar);
4180 PSSTDAPI PSLookupPropertyHandlerCLSID(PCWSTR pszFilePath, CLSID *pclsid);
4181 PSSTDAPI PSPropertyBag_Delete(IPropertyBag *propBag, LPCWSTR propName);
4182 PSSTDAPI PSPropertyBag_ReadBOOL(IPropertyBag *propBag, LPCWSTR propName, BOOL *value);
4183 PSSTDAPI PSPropertyBag_ReadBSTR(IPropertyBag *propBag, LPCWSTR propName, BSTR *value);
4184 PSSTDAPI PSPropertyBag_ReadDWORD(IPropertyBag *propBag, LPCWSTR propName, DWORD *value);
4185 PSSTDAPI PSPropertyBag_ReadGUID(IPropertyBag *propBag, LPCWSTR propName, GUID *value);
4186 PSSTDAPI PSPropertyBag_ReadInt(IPropertyBag *propBag, LPCWSTR propName, INT *value);
4187 PSSTDAPI PSPropertyBag_ReadLONG(IPropertyBag *propBag, LPCWSTR propName, LONG *value);
4188 PSSTDAPI PSPropertyBag_ReadPOINTL(IPropertyBag *propBag, LPCWSTR propName, POINTL *value);
4189 PSSTDAPI PSPropertyBag_ReadPOINTS(IPropertyBag *propBag, LPCWSTR propName, POINTS *value);
4190 PSSTDAPI PSPropertyBag_ReadPropertyKey(IPropertyBag *propBag, LPCWSTR propName, PROPERTYKEY *value);
4191 PSSTDAPI PSPropertyBag_ReadRECTL(IPropertyBag *propBag, LPCWSTR propName, RECTL *value);
4192 PSSTDAPI PSPropertyBag_ReadSHORT(IPropertyBag *propBag, LPCWSTR propName, SHORT *value);
4193 PSSTDAPI PSPropertyBag_ReadStr(IPropertyBag *propBag, LPCWSTR propName, LPWSTR value, int characterCount);
4194 PSSTDAPI PSPropertyBag_ReadStrAlloc(IPropertyBag *propBag, LPCWSTR propName, PWSTR *value);
4195 PSSTDAPI PSPropertyBag_ReadStream(IPropertyBag *propBag, LPCWSTR propName, IStream **value);
4196 PSSTDAPI PSPropertyBag_ReadType(IPropertyBag *propBag, LPCWSTR propName, VARIANT *var, VARTYPE type);
4197 PSSTDAPI PSPropertyBag_ReadULONGLONG(IPropertyBag *propBag, LPCWSTR propName, ULONGLONG *value);
4198 PSSTDAPI PSPropertyBag_ReadUnknown(IPropertyBag *propBag, LPCWSTR propName, REFIID riid, void **ppv);
4199 PSSTDAPI PSPropertyBag_WriteBOOL(IPropertyBag *propBag, LPCWSTR propName, BOOL value);
4200 PSSTDAPI PSPropertyBag_WriteBSTR(IPropertyBag *propBag, LPCWSTR propName, BSTR value);
4201 PSSTDAPI PSPropertyBag_WriteDWORD(IPropertyBag *propBag, LPCWSTR propName, DWORD value);
4202 PSSTDAPI PSPropertyBag_WriteGUID(IPropertyBag *propBag, LPCWSTR propName, const GUID *value);
4203 PSSTDAPI PSPropertyBag_WriteInt(IPropertyBag *propBag, LPCWSTR propName, INT value);
4204 PSSTDAPI PSPropertyBag_WriteLONG(IPropertyBag *propBag, LPCWSTR propName, LONG value);
4205 PSSTDAPI PSPropertyBag_WritePOINTL(IPropertyBag *propBag, LPCWSTR propName, const POINTL *value);
4206 PSSTDAPI PSPropertyBag_WritePOINTS(IPropertyBag *propBag, LPCWSTR propName, const POINTS *value);
4207 PSSTDAPI PSPropertyBag_WritePropertyKey(IPropertyBag *propBag, LPCWSTR propName, REFPROPERTYKEY value);
4208 PSSTDAPI PSPropertyBag_WriteRECTL(IPropertyBag *propBag, LPCWSTR propName, const RECTL *value);
4209 PSSTDAPI PSPropertyBag_WriteSHORT(IPropertyBag *propBag, LPCWSTR propName, SHORT value);
4210 PSSTDAPI PSPropertyBag_WriteStr(IPropertyBag *propBag, LPCWSTR propName, LPCWSTR value);
4211 PSSTDAPI PSPropertyBag_WriteStream(IPropertyBag *propBag, LPCWSTR propName, IStream *value);
4212 PSSTDAPI PSPropertyBag_WriteULONGLONG(IPropertyBag *propBag, LPCWSTR propName, ULONGLONG value);
4213 PSSTDAPI PSPropertyBag_WriteUnknown(IPropertyBag *propBag, LPCWSTR propName, IUnknown *punk);
4214 PSSTDAPI PSPropertyKeyFromString(LPCWSTR pszString, PROPERTYKEY *pkey);
4215 PSSTDAPI PSRefreshPropertySchema(void);
4216 PSSTDAPI PSRegisterPropertySchema(PCWSTR pszPath);
4217 PSSTDAPI PSSetPropertyValue(IPropertyStore *pps, IPropertyDescription *ppd, REFPROPVARIANT propvar);
4218 PSSTDAPI PSStringFromPropertyKey(REFPROPERTYKEY pkey, LPWSTR psz, UINT cch);
4219 PSSTDAPI PSUnregisterPropertySchema(PCWSTR pszPath);
4220 
4221 #ifndef __PropSysObjects_LIBRARY_DEFINED__
4222 #define __PropSysObjects_LIBRARY_DEFINED__
4223 
4224 DEFINE_GUID(LIBID_PropSysObjects, 0x2cda3294, 0x6c4f, 0x4020, 0xb1,0x61, 0x27,0xc5,0x30,0xc8,0x1f,0xa6);
4225 
4226 /*****************************************************************************
4227  * InMemoryPropertyStore coclass
4228  */
4229 
4230 DEFINE_GUID(CLSID_InMemoryPropertyStore, 0x9a02e012, 0x6303, 0x4e1e, 0xb9,0xa1, 0x63,0x0f,0x80,0x25,0x92,0xc5);
4231 
4232 #ifdef __cplusplus
4233 class DECLSPEC_UUID("9a02e012-6303-4e1e-b9a1-630f802592c5") InMemoryPropertyStore;
4234 #ifdef __CRT_UUID_DECL
4235 __CRT_UUID_DECL(InMemoryPropertyStore, 0x9a02e012, 0x6303, 0x4e1e, 0xb9,0xa1, 0x63,0x0f,0x80,0x25,0x92,0xc5)
4236 #endif
4237 #endif
4238 
4239 /*****************************************************************************
4240  * PropertySystem coclass
4241  */
4242 
4243 DEFINE_GUID(CLSID_PropertySystem, 0xb8967f85, 0x58ae, 0x4f46, 0x9f,0xb2, 0x5d,0x79,0x04,0x79,0x8f,0x4b);
4244 
4245 #ifdef __cplusplus
4246 class DECLSPEC_UUID("b8967f85-58ae-4f46-9fb2-5d7904798f4b") PropertySystem;
4247 #ifdef __CRT_UUID_DECL
4248 __CRT_UUID_DECL(PropertySystem, 0xb8967f85, 0x58ae, 0x4f46, 0x9f,0xb2, 0x5d,0x79,0x04,0x79,0x8f,0x4b)
4249 #endif
4250 #endif
4251 
4252 #endif /* __PropSysObjects_LIBRARY_DEFINED__ */
4253 #endif
4254 /* Begin additional prototypes for all interfaces */
4255 
4256 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
4257 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
4258 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
4259 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
4260 ULONG           __RPC_USER LPSAFEARRAY_UserSize     (ULONG *, ULONG, LPSAFEARRAY *);
4261 unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal  (ULONG *, unsigned char *, LPSAFEARRAY *);
4262 unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(ULONG *, unsigned char *, LPSAFEARRAY *);
4263 void            __RPC_USER LPSAFEARRAY_UserFree     (ULONG *, LPSAFEARRAY *);
4264 
4265 /* End additional prototypes */
4266 
4267 #ifdef __cplusplus
4268 }
4269 #endif
4270 
4271 #endif /* __propsys_h__ */
4272