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