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__
22typedef interface IInitializeWithFile IInitializeWithFile;
23#endif
24
25#ifndef __IInitializeWithStream_FWD_DEFINED__
26#define __IInitializeWithStream_FWD_DEFINED__
27typedef interface IInitializeWithStream IInitializeWithStream;
28#endif
29
30#ifndef __IPropertyStore_FWD_DEFINED__
31#define __IPropertyStore_FWD_DEFINED__
32typedef interface IPropertyStore IPropertyStore;
33#endif
34
35#ifndef __INamedPropertyStore_FWD_DEFINED__
36#define __INamedPropertyStore_FWD_DEFINED__
37typedef interface INamedPropertyStore INamedPropertyStore;
38#endif
39
40#ifndef __IObjectWithPropertyKey_FWD_DEFINED__
41#define __IObjectWithPropertyKey_FWD_DEFINED__
42typedef interface IObjectWithPropertyKey IObjectWithPropertyKey;
43#endif
44
45#ifndef __IPropertyChange_FWD_DEFINED__
46#define __IPropertyChange_FWD_DEFINED__
47typedef interface IPropertyChange IPropertyChange;
48#endif
49
50#ifndef __IPropertyChangeArray_FWD_DEFINED__
51#define __IPropertyChangeArray_FWD_DEFINED__
52typedef interface IPropertyChangeArray IPropertyChangeArray;
53#endif
54
55#ifndef __IPropertyStoreCapabilities_FWD_DEFINED__
56#define __IPropertyStoreCapabilities_FWD_DEFINED__
57typedef interface IPropertyStoreCapabilities IPropertyStoreCapabilities;
58#endif
59
60#ifndef __IPropertyStoreCache_FWD_DEFINED__
61#define __IPropertyStoreCache_FWD_DEFINED__
62typedef interface IPropertyStoreCache IPropertyStoreCache;
63#endif
64
65#ifndef __IPropertyEnumType_FWD_DEFINED__
66#define __IPropertyEnumType_FWD_DEFINED__
67typedef interface IPropertyEnumType IPropertyEnumType;
68#endif
69
70#ifndef __IPropertyEnumType2_FWD_DEFINED__
71#define __IPropertyEnumType2_FWD_DEFINED__
72typedef interface IPropertyEnumType2 IPropertyEnumType2;
73#endif
74
75#ifndef __IPropertyEnumTypeList_FWD_DEFINED__
76#define __IPropertyEnumTypeList_FWD_DEFINED__
77typedef interface IPropertyEnumTypeList IPropertyEnumTypeList;
78#endif
79
80#ifndef __IPropertyDescription_FWD_DEFINED__
81#define __IPropertyDescription_FWD_DEFINED__
82typedef interface IPropertyDescription IPropertyDescription;
83#endif
84
85#ifndef __IPropertyDescription2_FWD_DEFINED__
86#define __IPropertyDescription2_FWD_DEFINED__
87typedef interface IPropertyDescription2 IPropertyDescription2;
88#endif
89
90#ifndef __IPropertyDescriptionAliasInfo_FWD_DEFINED__
91#define __IPropertyDescriptionAliasInfo_FWD_DEFINED__
92typedef interface IPropertyDescriptionAliasInfo IPropertyDescriptionAliasInfo;
93#endif
94
95#ifndef __IPropertyDescriptionSearchInfo_FWD_DEFINED__
96#define __IPropertyDescriptionSearchInfo_FWD_DEFINED__
97typedef interface IPropertyDescriptionSearchInfo IPropertyDescriptionSearchInfo;
98#endif
99
100#ifndef __IPropertyDescriptionRelatedPropertyInfo_FWD_DEFINED__
101#define __IPropertyDescriptionRelatedPropertyInfo_FWD_DEFINED__
102typedef interface IPropertyDescriptionRelatedPropertyInfo IPropertyDescriptionRelatedPropertyInfo;
103#endif
104
105#ifndef __IPropertySystem_FWD_DEFINED__
106#define __IPropertySystem_FWD_DEFINED__
107typedef interface IPropertySystem IPropertySystem;
108#endif
109
110#ifndef __IPropertyDescriptionList_FWD_DEFINED__
111#define __IPropertyDescriptionList_FWD_DEFINED__
112typedef interface IPropertyDescriptionList IPropertyDescriptionList;
113#endif
114
115#ifndef __IPropertyStoreFactory_FWD_DEFINED__
116#define __IPropertyStoreFactory_FWD_DEFINED__
117typedef interface IPropertyStoreFactory IPropertyStoreFactory;
118#endif
119
120#ifndef __IDelayedPropertyStoreFactory_FWD_DEFINED__
121#define __IDelayedPropertyStoreFactory_FWD_DEFINED__
122typedef interface IDelayedPropertyStoreFactory IDelayedPropertyStoreFactory;
123#endif
124
125#ifndef __IPersistSerializedPropStorage_FWD_DEFINED__
126#define __IPersistSerializedPropStorage_FWD_DEFINED__
127typedef interface IPersistSerializedPropStorage IPersistSerializedPropStorage;
128#endif
129
130#ifndef __IPersistSerializedPropStorage2_FWD_DEFINED__
131#define __IPersistSerializedPropStorage2_FWD_DEFINED__
132typedef interface IPersistSerializedPropStorage2 IPersistSerializedPropStorage2;
133#endif
134
135#ifndef __IPropertySystemChangeNotify_FWD_DEFINED__
136#define __IPropertySystemChangeNotify_FWD_DEFINED__
137typedef interface IPropertySystemChangeNotify IPropertySystemChangeNotify;
138#endif
139
140#ifndef __ICreateObject_FWD_DEFINED__
141#define __ICreateObject_FWD_DEFINED__
142typedef interface ICreateObject ICreateObject;
143#endif
144
145#ifndef __InMemoryPropertyStore_FWD_DEFINED__
146#define __InMemoryPropertyStore_FWD_DEFINED__
147#ifdef __cplusplus
148typedef class InMemoryPropertyStore InMemoryPropertyStore;
149#else
150typedef 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
157typedef class PropertySystem PropertySystem;
158#else
159typedef 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
172extern "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
194typedef 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
205DEFINE_GUID(IID_IInitializeWithFile, 0xb7d14566, 0x0509, 0x4cce, 0xa7,0x1f, 0x0a,0x55,0x42,0x33,0xbd,0x9b);
206#if defined(__cplusplus) && !defined(CINTERFACE)
207MIDL_INTERFACE("b7d14566-0509-4cce-a71f-0a554233bd9b")
208IInitializeWithFile : 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
219typedef 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;
242interface 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 ***/
256static FORCEINLINE HRESULT IInitializeWithFile_QueryInterface(IInitializeWithFile* This,REFIID riid,void **ppvObject) {
257    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
258}
259static FORCEINLINE ULONG IInitializeWithFile_AddRef(IInitializeWithFile* This) {
260    return This->lpVtbl->AddRef(This);
261}
262static FORCEINLINE ULONG IInitializeWithFile_Release(IInitializeWithFile* This) {
263    return This->lpVtbl->Release(This);
264}
265/*** IInitializeWithFile methods ***/
266static 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
274HRESULT STDMETHODCALLTYPE IInitializeWithFile_Initialize_Proxy(
275    IInitializeWithFile* This,
276    LPCWSTR pszFilePath,
277    DWORD grfMode);
278void __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
293DEFINE_GUID(IID_IInitializeWithStream, 0xb824b49d, 0x22ac, 0x4161, 0xac,0x8a, 0x99,0x16,0xe8,0xfa,0x3f,0x7f);
294#if defined(__cplusplus) && !defined(CINTERFACE)
295MIDL_INTERFACE("b824b49d-22ac-4161-ac8a-9916e8fa3f7f")
296IInitializeWithStream : 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
307typedef 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;
330interface 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 ***/
344static FORCEINLINE HRESULT IInitializeWithStream_QueryInterface(IInitializeWithStream* This,REFIID riid,void **ppvObject) {
345    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
346}
347static FORCEINLINE ULONG IInitializeWithStream_AddRef(IInitializeWithStream* This) {
348    return This->lpVtbl->AddRef(This);
349}
350static FORCEINLINE ULONG IInitializeWithStream_Release(IInitializeWithStream* This) {
351    return This->lpVtbl->Release(This);
352}
353/*** IInitializeWithStream methods ***/
354static 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
362HRESULT STDMETHODCALLTYPE IInitializeWithStream_RemoteInitialize_Proxy(
363    IInitializeWithStream* This,
364    IStream *pstream,
365    DWORD grfMode);
366void __RPC_STUB IInitializeWithStream_RemoteInitialize_Stub(
367    IRpcStubBuffer* This,
368    IRpcChannelBuffer* pRpcChannelBuffer,
369    PRPC_MESSAGE pRpcMessage,
370    DWORD* pdwStubPhase);
371HRESULT CALLBACK IInitializeWithStream_Initialize_Proxy(
372    IInitializeWithStream* This,
373    IStream *pstream,
374    DWORD grfMode);
375HRESULT __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
391DEFINE_GUID(IID_IPropertyStore, 0x886d8eeb, 0x8cf2, 0x4446, 0x8d,0x02, 0xcd,0xba,0x1d,0xbd,0xcf,0x99);
392#if defined(__cplusplus) && !defined(CINTERFACE)
393MIDL_INTERFACE("886d8eeb-8cf2-4446-8d02-cdba1dbdcf99")
394IPropertyStore : 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
419typedef 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;
459interface 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 ***/
477static FORCEINLINE HRESULT IPropertyStore_QueryInterface(IPropertyStore* This,REFIID riid,void **ppvObject) {
478    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
479}
480static FORCEINLINE ULONG IPropertyStore_AddRef(IPropertyStore* This) {
481    return This->lpVtbl->AddRef(This);
482}
483static FORCEINLINE ULONG IPropertyStore_Release(IPropertyStore* This) {
484    return This->lpVtbl->Release(This);
485}
486/*** IPropertyStore methods ***/
487static FORCEINLINE HRESULT IPropertyStore_GetCount(IPropertyStore* This,DWORD *cProps) {
488    return This->lpVtbl->GetCount(This,cProps);
489}
490static FORCEINLINE HRESULT IPropertyStore_GetAt(IPropertyStore* This,DWORD iProp,PROPERTYKEY *pkey) {
491    return This->lpVtbl->GetAt(This,iProp,pkey);
492}
493static FORCEINLINE HRESULT IPropertyStore_GetValue(IPropertyStore* This,REFPROPERTYKEY key,PROPVARIANT *pv) {
494    return This->lpVtbl->GetValue(This,key,pv);
495}
496static FORCEINLINE HRESULT IPropertyStore_SetValue(IPropertyStore* This,REFPROPERTYKEY key,REFPROPVARIANT propvar) {
497    return This->lpVtbl->SetValue(This,key,propvar);
498}
499static FORCEINLINE HRESULT IPropertyStore_Commit(IPropertyStore* This) {
500    return This->lpVtbl->Commit(This);
501}
502#endif
503#endif
504
505#endif
506
507HRESULT STDMETHODCALLTYPE IPropertyStore_GetCount_Proxy(
508    IPropertyStore* This,
509    DWORD *cProps);
510void __RPC_STUB IPropertyStore_GetCount_Stub(
511    IRpcStubBuffer* This,
512    IRpcChannelBuffer* pRpcChannelBuffer,
513    PRPC_MESSAGE pRpcMessage,
514    DWORD* pdwStubPhase);
515HRESULT STDMETHODCALLTYPE IPropertyStore_GetAt_Proxy(
516    IPropertyStore* This,
517    DWORD iProp,
518    PROPERTYKEY *pkey);
519void __RPC_STUB IPropertyStore_GetAt_Stub(
520    IRpcStubBuffer* This,
521    IRpcChannelBuffer* pRpcChannelBuffer,
522    PRPC_MESSAGE pRpcMessage,
523    DWORD* pdwStubPhase);
524HRESULT STDMETHODCALLTYPE IPropertyStore_GetValue_Proxy(
525    IPropertyStore* This,
526    REFPROPERTYKEY key,
527    PROPVARIANT *pv);
528void __RPC_STUB IPropertyStore_GetValue_Stub(
529    IRpcStubBuffer* This,
530    IRpcChannelBuffer* pRpcChannelBuffer,
531    PRPC_MESSAGE pRpcMessage,
532    DWORD* pdwStubPhase);
533HRESULT STDMETHODCALLTYPE IPropertyStore_SetValue_Proxy(
534    IPropertyStore* This,
535    REFPROPERTYKEY key,
536    REFPROPVARIANT propvar);
537void __RPC_STUB IPropertyStore_SetValue_Stub(
538    IRpcStubBuffer* This,
539    IRpcChannelBuffer* pRpcChannelBuffer,
540    PRPC_MESSAGE pRpcMessage,
541    DWORD* pdwStubPhase);
542HRESULT STDMETHODCALLTYPE IPropertyStore_Commit_Proxy(
543    IPropertyStore* This);
544void __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
553typedef 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
563DEFINE_GUID(IID_INamedPropertyStore, 0x71604b0f, 0x97b0, 0x4764, 0x85,0x77, 0x2f,0x13,0xe9,0x8a,0x14,0x22);
564#if defined(__cplusplus) && !defined(CINTERFACE)
565MIDL_INTERFACE("71604b0f-97b0-4764-8577-2f13e98a1422")
566INamedPropertyStore : 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
588typedef 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;
625interface 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 ***/
642static FORCEINLINE HRESULT INamedPropertyStore_QueryInterface(INamedPropertyStore* This,REFIID riid,void **ppvObject) {
643    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
644}
645static FORCEINLINE ULONG INamedPropertyStore_AddRef(INamedPropertyStore* This) {
646    return This->lpVtbl->AddRef(This);
647}
648static FORCEINLINE ULONG INamedPropertyStore_Release(INamedPropertyStore* This) {
649    return This->lpVtbl->Release(This);
650}
651/*** INamedPropertyStore methods ***/
652static FORCEINLINE HRESULT INamedPropertyStore_GetNamedValue(INamedPropertyStore* This,LPCWSTR pszName,PROPVARIANT *ppropvar) {
653    return This->lpVtbl->GetNamedValue(This,pszName,ppropvar);
654}
655static FORCEINLINE HRESULT INamedPropertyStore_SetNamedValue(INamedPropertyStore* This,LPCWSTR pszName,REFPROPVARIANT propvar) {
656    return This->lpVtbl->SetNamedValue(This,pszName,propvar);
657}
658static FORCEINLINE HRESULT INamedPropertyStore_GetNameCount(INamedPropertyStore* This,DWORD *pdwCount) {
659    return This->lpVtbl->GetNameCount(This,pdwCount);
660}
661static 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
669HRESULT STDMETHODCALLTYPE INamedPropertyStore_GetNamedValue_Proxy(
670    INamedPropertyStore* This,
671    LPCWSTR pszName,
672    PROPVARIANT *ppropvar);
673void __RPC_STUB INamedPropertyStore_GetNamedValue_Stub(
674    IRpcStubBuffer* This,
675    IRpcChannelBuffer* pRpcChannelBuffer,
676    PRPC_MESSAGE pRpcMessage,
677    DWORD* pdwStubPhase);
678HRESULT STDMETHODCALLTYPE INamedPropertyStore_SetNamedValue_Proxy(
679    INamedPropertyStore* This,
680    LPCWSTR pszName,
681    REFPROPVARIANT propvar);
682void __RPC_STUB INamedPropertyStore_SetNamedValue_Stub(
683    IRpcStubBuffer* This,
684    IRpcChannelBuffer* pRpcChannelBuffer,
685    PRPC_MESSAGE pRpcMessage,
686    DWORD* pdwStubPhase);
687HRESULT STDMETHODCALLTYPE INamedPropertyStore_GetNameCount_Proxy(
688    INamedPropertyStore* This,
689    DWORD *pdwCount);
690void __RPC_STUB INamedPropertyStore_GetNameCount_Stub(
691    IRpcStubBuffer* This,
692    IRpcChannelBuffer* pRpcChannelBuffer,
693    PRPC_MESSAGE pRpcMessage,
694    DWORD* pdwStubPhase);
695HRESULT STDMETHODCALLTYPE INamedPropertyStore_GetNameAt_Proxy(
696    INamedPropertyStore* This,
697    DWORD iProp,
698    BSTR *pbstrName);
699void __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
708typedef 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
722DEFINE_ENUM_FLAG_OPERATORS(GETPROPERTYSTOREFLAGS)
723
724/*****************************************************************************
725 * IObjectWithPropertyKey interface
726 */
727#ifndef __IObjectWithPropertyKey_INTERFACE_DEFINED__
728#define __IObjectWithPropertyKey_INTERFACE_DEFINED__
729
730DEFINE_GUID(IID_IObjectWithPropertyKey, 0xfc0ca0a7, 0xc316, 0x4fd2, 0x90,0x31, 0x3e,0x62,0x8e,0x6d,0x4f,0x23);
731#if defined(__cplusplus) && !defined(CINTERFACE)
732MIDL_INTERFACE("fc0ca0a7-c316-4fd2-9031-3e628e6d4f23")
733IObjectWithPropertyKey : 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
746typedef 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;
772interface 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 ***/
787static FORCEINLINE HRESULT IObjectWithPropertyKey_QueryInterface(IObjectWithPropertyKey* This,REFIID riid,void **ppvObject) {
788    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
789}
790static FORCEINLINE ULONG IObjectWithPropertyKey_AddRef(IObjectWithPropertyKey* This) {
791    return This->lpVtbl->AddRef(This);
792}
793static FORCEINLINE ULONG IObjectWithPropertyKey_Release(IObjectWithPropertyKey* This) {
794    return This->lpVtbl->Release(This);
795}
796/*** IObjectWithPropertyKey methods ***/
797static FORCEINLINE HRESULT IObjectWithPropertyKey_SetPropertyKey(IObjectWithPropertyKey* This,REFPROPERTYKEY key) {
798    return This->lpVtbl->SetPropertyKey(This,key);
799}
800static FORCEINLINE HRESULT IObjectWithPropertyKey_GetPropertyKey(IObjectWithPropertyKey* This,PROPERTYKEY *pkey) {
801    return This->lpVtbl->GetPropertyKey(This,pkey);
802}
803#endif
804#endif
805
806#endif
807
808HRESULT STDMETHODCALLTYPE IObjectWithPropertyKey_SetPropertyKey_Proxy(
809    IObjectWithPropertyKey* This,
810    REFPROPERTYKEY key);
811void __RPC_STUB IObjectWithPropertyKey_SetPropertyKey_Stub(
812    IRpcStubBuffer* This,
813    IRpcChannelBuffer* pRpcChannelBuffer,
814    PRPC_MESSAGE pRpcMessage,
815    DWORD* pdwStubPhase);
816HRESULT STDMETHODCALLTYPE IObjectWithPropertyKey_GetPropertyKey_Proxy(
817    IObjectWithPropertyKey* This,
818    PROPERTYKEY *pkey);
819void __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
828typedef 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
840DEFINE_GUID(IID_IPropertyChange, 0xf917bc8a, 0x1bba, 0x4478, 0xa2,0x45, 0x1b,0xde,0x03,0xeb,0x94,0x31);
841#if defined(__cplusplus) && !defined(CINTERFACE)
842MIDL_INTERFACE("f917bc8a-1bba-4478-a245-1bde03eb9431")
843IPropertyChange : 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
854typedef 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;
886interface 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 ***/
903static FORCEINLINE HRESULT IPropertyChange_QueryInterface(IPropertyChange* This,REFIID riid,void **ppvObject) {
904    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
905}
906static FORCEINLINE ULONG IPropertyChange_AddRef(IPropertyChange* This) {
907    return This->lpVtbl->AddRef(This);
908}
909static FORCEINLINE ULONG IPropertyChange_Release(IPropertyChange* This) {
910    return This->lpVtbl->Release(This);
911}
912/*** IObjectWithPropertyKey methods ***/
913static FORCEINLINE HRESULT IPropertyChange_SetPropertyKey(IPropertyChange* This,REFPROPERTYKEY key) {
914    return This->lpVtbl->SetPropertyKey(This,key);
915}
916static FORCEINLINE HRESULT IPropertyChange_GetPropertyKey(IPropertyChange* This,PROPERTYKEY *pkey) {
917    return This->lpVtbl->GetPropertyKey(This,pkey);
918}
919/*** IPropertyChange methods ***/
920static 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
928HRESULT STDMETHODCALLTYPE IPropertyChange_ApplyToPropVariant_Proxy(
929    IPropertyChange* This,
930    REFPROPVARIANT propvarIn,
931    PROPVARIANT *ppropvarOut);
932void __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
947DEFINE_GUID(IID_IPropertyChangeArray, 0x380f5cad, 0x1b5e, 0x42f2, 0x80,0x5d, 0x63,0x7f,0xd3,0x92,0xd3,0x1e);
948#if defined(__cplusplus) && !defined(CINTERFACE)
949MIDL_INTERFACE("380f5cad-1b5e-42f2-805d-637fd392d31e")
950IPropertyChangeArray : 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
981typedef 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;
1030interface 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 ***/
1050static FORCEINLINE HRESULT IPropertyChangeArray_QueryInterface(IPropertyChangeArray* This,REFIID riid,void **ppvObject) {
1051    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1052}
1053static FORCEINLINE ULONG IPropertyChangeArray_AddRef(IPropertyChangeArray* This) {
1054    return This->lpVtbl->AddRef(This);
1055}
1056static FORCEINLINE ULONG IPropertyChangeArray_Release(IPropertyChangeArray* This) {
1057    return This->lpVtbl->Release(This);
1058}
1059/*** IPropertyChangeArray methods ***/
1060static FORCEINLINE HRESULT IPropertyChangeArray_GetCount(IPropertyChangeArray* This,UINT *pcOperations) {
1061    return This->lpVtbl->GetCount(This,pcOperations);
1062}
1063static FORCEINLINE HRESULT IPropertyChangeArray_GetAt(IPropertyChangeArray* This,UINT iIndex,REFIID riid,void **ppv) {
1064    return This->lpVtbl->GetAt(This,iIndex,riid,ppv);
1065}
1066static FORCEINLINE HRESULT IPropertyChangeArray_InsertAt(IPropertyChangeArray* This,UINT iIndex,IPropertyChange *ppropChange) {
1067    return This->lpVtbl->InsertAt(This,iIndex,ppropChange);
1068}
1069static FORCEINLINE HRESULT IPropertyChangeArray_Append(IPropertyChangeArray* This,IPropertyChange *ppropChange) {
1070    return This->lpVtbl->Append(This,ppropChange);
1071}
1072static FORCEINLINE HRESULT IPropertyChangeArray_AppendOrReplace(IPropertyChangeArray* This,IPropertyChange *ppropChange) {
1073    return This->lpVtbl->AppendOrReplace(This,ppropChange);
1074}
1075static FORCEINLINE HRESULT IPropertyChangeArray_RemoveAt(IPropertyChangeArray* This,UINT iIndex) {
1076    return This->lpVtbl->RemoveAt(This,iIndex);
1077}
1078static FORCEINLINE HRESULT IPropertyChangeArray_IsKeyInArray(IPropertyChangeArray* This,REFPROPERTYKEY key) {
1079    return This->lpVtbl->IsKeyInArray(This,key);
1080}
1081#endif
1082#endif
1083
1084#endif
1085
1086HRESULT STDMETHODCALLTYPE IPropertyChangeArray_GetCount_Proxy(
1087    IPropertyChangeArray* This,
1088    UINT *pcOperations);
1089void __RPC_STUB IPropertyChangeArray_GetCount_Stub(
1090    IRpcStubBuffer* This,
1091    IRpcChannelBuffer* pRpcChannelBuffer,
1092    PRPC_MESSAGE pRpcMessage,
1093    DWORD* pdwStubPhase);
1094HRESULT STDMETHODCALLTYPE IPropertyChangeArray_GetAt_Proxy(
1095    IPropertyChangeArray* This,
1096    UINT iIndex,
1097    REFIID riid,
1098    void **ppv);
1099void __RPC_STUB IPropertyChangeArray_GetAt_Stub(
1100    IRpcStubBuffer* This,
1101    IRpcChannelBuffer* pRpcChannelBuffer,
1102    PRPC_MESSAGE pRpcMessage,
1103    DWORD* pdwStubPhase);
1104HRESULT STDMETHODCALLTYPE IPropertyChangeArray_InsertAt_Proxy(
1105    IPropertyChangeArray* This,
1106    UINT iIndex,
1107    IPropertyChange *ppropChange);
1108void __RPC_STUB IPropertyChangeArray_InsertAt_Stub(
1109    IRpcStubBuffer* This,
1110    IRpcChannelBuffer* pRpcChannelBuffer,
1111    PRPC_MESSAGE pRpcMessage,
1112    DWORD* pdwStubPhase);
1113HRESULT STDMETHODCALLTYPE IPropertyChangeArray_Append_Proxy(
1114    IPropertyChangeArray* This,
1115    IPropertyChange *ppropChange);
1116void __RPC_STUB IPropertyChangeArray_Append_Stub(
1117    IRpcStubBuffer* This,
1118    IRpcChannelBuffer* pRpcChannelBuffer,
1119    PRPC_MESSAGE pRpcMessage,
1120    DWORD* pdwStubPhase);
1121HRESULT STDMETHODCALLTYPE IPropertyChangeArray_AppendOrReplace_Proxy(
1122    IPropertyChangeArray* This,
1123    IPropertyChange *ppropChange);
1124void __RPC_STUB IPropertyChangeArray_AppendOrReplace_Stub(
1125    IRpcStubBuffer* This,
1126    IRpcChannelBuffer* pRpcChannelBuffer,
1127    PRPC_MESSAGE pRpcMessage,
1128    DWORD* pdwStubPhase);
1129HRESULT STDMETHODCALLTYPE IPropertyChangeArray_RemoveAt_Proxy(
1130    IPropertyChangeArray* This,
1131    UINT iIndex);
1132void __RPC_STUB IPropertyChangeArray_RemoveAt_Stub(
1133    IRpcStubBuffer* This,
1134    IRpcChannelBuffer* pRpcChannelBuffer,
1135    PRPC_MESSAGE pRpcMessage,
1136    DWORD* pdwStubPhase);
1137HRESULT STDMETHODCALLTYPE IPropertyChangeArray_IsKeyInArray_Proxy(
1138    IPropertyChangeArray* This,
1139    REFPROPERTYKEY key);
1140void __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
1155DEFINE_GUID(IID_IPropertyStoreCapabilities, 0xc8e2d566, 0x186e, 0x4d49, 0xbf,0x41, 0x69,0x09,0xea,0xd5,0x6a,0xcc);
1156#if defined(__cplusplus) && !defined(CINTERFACE)
1157MIDL_INTERFACE("c8e2d566-186e-4d49-bf41-6909ead56acc")
1158IPropertyStoreCapabilities : 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
1168typedef 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;
1190interface 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 ***/
1204static FORCEINLINE HRESULT IPropertyStoreCapabilities_QueryInterface(IPropertyStoreCapabilities* This,REFIID riid,void **ppvObject) {
1205    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1206}
1207static FORCEINLINE ULONG IPropertyStoreCapabilities_AddRef(IPropertyStoreCapabilities* This) {
1208    return This->lpVtbl->AddRef(This);
1209}
1210static FORCEINLINE ULONG IPropertyStoreCapabilities_Release(IPropertyStoreCapabilities* This) {
1211    return This->lpVtbl->Release(This);
1212}
1213/*** IPropertyStoreCapabilities methods ***/
1214static FORCEINLINE HRESULT IPropertyStoreCapabilities_IsPropertyWritable(IPropertyStoreCapabilities* This,REFPROPERTYKEY key) {
1215    return This->lpVtbl->IsPropertyWritable(This,key);
1216}
1217#endif
1218#endif
1219
1220#endif
1221
1222HRESULT STDMETHODCALLTYPE IPropertyStoreCapabilities_IsPropertyWritable_Proxy(
1223    IPropertyStoreCapabilities* This,
1224    REFPROPERTYKEY key);
1225void __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
1240typedef enum PSC_STATE {
1241    PSC_NORMAL = 0,
1242    PSC_NOTINSOURCE = 1,
1243    PSC_DIRTY = 2,
1244    PSC_READONLY = 3
1245} PSC_STATE;
1246
1247DEFINE_GUID(IID_IPropertyStoreCache, 0x3017056d, 0x9a91, 0x4e90, 0x93,0x7d, 0x74,0x6c,0x72,0xab,0xbf,0x4f);
1248#if defined(__cplusplus) && !defined(CINTERFACE)
1249MIDL_INTERFACE("3017056d-9a91-4e90-937d-746c72abbf4f")
1250IPropertyStoreCache : 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
1275typedef 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;
1338interface 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 ***/
1361static FORCEINLINE HRESULT IPropertyStoreCache_QueryInterface(IPropertyStoreCache* This,REFIID riid,void **ppvObject) {
1362    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1363}
1364static FORCEINLINE ULONG IPropertyStoreCache_AddRef(IPropertyStoreCache* This) {
1365    return This->lpVtbl->AddRef(This);
1366}
1367static FORCEINLINE ULONG IPropertyStoreCache_Release(IPropertyStoreCache* This) {
1368    return This->lpVtbl->Release(This);
1369}
1370/*** IPropertyStore methods ***/
1371static FORCEINLINE HRESULT IPropertyStoreCache_GetCount(IPropertyStoreCache* This,DWORD *cProps) {
1372    return This->lpVtbl->GetCount(This,cProps);
1373}
1374static FORCEINLINE HRESULT IPropertyStoreCache_GetAt(IPropertyStoreCache* This,DWORD iProp,PROPERTYKEY *pkey) {
1375    return This->lpVtbl->GetAt(This,iProp,pkey);
1376}
1377static FORCEINLINE HRESULT IPropertyStoreCache_GetValue(IPropertyStoreCache* This,REFPROPERTYKEY key,PROPVARIANT *pv) {
1378    return This->lpVtbl->GetValue(This,key,pv);
1379}
1380static FORCEINLINE HRESULT IPropertyStoreCache_SetValue(IPropertyStoreCache* This,REFPROPERTYKEY key,REFPROPVARIANT propvar) {
1381    return This->lpVtbl->SetValue(This,key,propvar);
1382}
1383static FORCEINLINE HRESULT IPropertyStoreCache_Commit(IPropertyStoreCache* This) {
1384    return This->lpVtbl->Commit(This);
1385}
1386/*** IPropertyStoreCache methods ***/
1387static FORCEINLINE HRESULT IPropertyStoreCache_GetState(IPropertyStoreCache* This,REFPROPERTYKEY key,PSC_STATE *pstate) {
1388    return This->lpVtbl->GetState(This,key,pstate);
1389}
1390static FORCEINLINE HRESULT IPropertyStoreCache_GetValueAndState(IPropertyStoreCache* This,REFPROPERTYKEY key,PROPVARIANT *ppropvar,PSC_STATE *pstate) {
1391    return This->lpVtbl->GetValueAndState(This,key,ppropvar,pstate);
1392}
1393static FORCEINLINE HRESULT IPropertyStoreCache_SetState(IPropertyStoreCache* This,REFPROPERTYKEY key,PSC_STATE state) {
1394    return This->lpVtbl->SetState(This,key,state);
1395}
1396static 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
1404HRESULT STDMETHODCALLTYPE IPropertyStoreCache_GetState_Proxy(
1405    IPropertyStoreCache* This,
1406    REFPROPERTYKEY key,
1407    PSC_STATE *pstate);
1408void __RPC_STUB IPropertyStoreCache_GetState_Stub(
1409    IRpcStubBuffer* This,
1410    IRpcChannelBuffer* pRpcChannelBuffer,
1411    PRPC_MESSAGE pRpcMessage,
1412    DWORD* pdwStubPhase);
1413HRESULT STDMETHODCALLTYPE IPropertyStoreCache_GetValueAndState_Proxy(
1414    IPropertyStoreCache* This,
1415    REFPROPERTYKEY key,
1416    PROPVARIANT *ppropvar,
1417    PSC_STATE *pstate);
1418void __RPC_STUB IPropertyStoreCache_GetValueAndState_Stub(
1419    IRpcStubBuffer* This,
1420    IRpcChannelBuffer* pRpcChannelBuffer,
1421    PRPC_MESSAGE pRpcMessage,
1422    DWORD* pdwStubPhase);
1423HRESULT STDMETHODCALLTYPE IPropertyStoreCache_SetState_Proxy(
1424    IPropertyStoreCache* This,
1425    REFPROPERTYKEY key,
1426    PSC_STATE state);
1427void __RPC_STUB IPropertyStoreCache_SetState_Stub(
1428    IRpcStubBuffer* This,
1429    IRpcChannelBuffer* pRpcChannelBuffer,
1430    PRPC_MESSAGE pRpcMessage,
1431    DWORD* pdwStubPhase);
1432HRESULT STDMETHODCALLTYPE IPropertyStoreCache_SetValueAndState_Proxy(
1433    IPropertyStoreCache* This,
1434    REFPROPERTYKEY key,
1435    const PROPVARIANT *ppropvar,
1436    PSC_STATE state);
1437void __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
1452typedef enum PROPENUMTYPE {
1453    PET_DISCRETEVALUE = 0,
1454    PET_RANGEDVALUE = 1,
1455    PET_DEFAULTVALUE = 2,
1456    PET_ENDRANGE = 3
1457} PROPENUMTYPE;
1458
1459DEFINE_GUID(IID_IPropertyEnumType, 0x11e1fbf9, 0x2d56, 0x4a6b, 0x8d,0xb3, 0x7c,0xd1,0x93,0xa4,0x71,0xf2);
1460#if defined(__cplusplus) && !defined(CINTERFACE)
1461MIDL_INTERFACE("11e1fbf9-2d56-4a6b-8db3-7cd193a471f2")
1462IPropertyEnumType : 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
1484typedef 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;
1522interface 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 ***/
1540static FORCEINLINE HRESULT IPropertyEnumType_QueryInterface(IPropertyEnumType* This,REFIID riid,void **ppvObject) {
1541    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1542}
1543static FORCEINLINE ULONG IPropertyEnumType_AddRef(IPropertyEnumType* This) {
1544    return This->lpVtbl->AddRef(This);
1545}
1546static FORCEINLINE ULONG IPropertyEnumType_Release(IPropertyEnumType* This) {
1547    return This->lpVtbl->Release(This);
1548}
1549/*** IPropertyEnumType methods ***/
1550static FORCEINLINE HRESULT IPropertyEnumType_GetEnumType(IPropertyEnumType* This,PROPENUMTYPE *penumtype) {
1551    return This->lpVtbl->GetEnumType(This,penumtype);
1552}
1553static FORCEINLINE HRESULT IPropertyEnumType_GetValue(IPropertyEnumType* This,PROPVARIANT *ppropvar) {
1554    return This->lpVtbl->GetValue(This,ppropvar);
1555}
1556static FORCEINLINE HRESULT IPropertyEnumType_GetRangeMinValue(IPropertyEnumType* This,PROPVARIANT *ppropvarMin) {
1557    return This->lpVtbl->GetRangeMinValue(This,ppropvarMin);
1558}
1559static FORCEINLINE HRESULT IPropertyEnumType_GetRangeSetValue(IPropertyEnumType* This,PROPVARIANT *ppropvarSet) {
1560    return This->lpVtbl->GetRangeSetValue(This,ppropvarSet);
1561}
1562static FORCEINLINE HRESULT IPropertyEnumType_GetDisplayText(IPropertyEnumType* This,LPWSTR *ppszDisplay) {
1563    return This->lpVtbl->GetDisplayText(This,ppszDisplay);
1564}
1565#endif
1566#endif
1567
1568#endif
1569
1570HRESULT STDMETHODCALLTYPE IPropertyEnumType_GetEnumType_Proxy(
1571    IPropertyEnumType* This,
1572    PROPENUMTYPE *penumtype);
1573void __RPC_STUB IPropertyEnumType_GetEnumType_Stub(
1574    IRpcStubBuffer* This,
1575    IRpcChannelBuffer* pRpcChannelBuffer,
1576    PRPC_MESSAGE pRpcMessage,
1577    DWORD* pdwStubPhase);
1578HRESULT STDMETHODCALLTYPE IPropertyEnumType_GetValue_Proxy(
1579    IPropertyEnumType* This,
1580    PROPVARIANT *ppropvar);
1581void __RPC_STUB IPropertyEnumType_GetValue_Stub(
1582    IRpcStubBuffer* This,
1583    IRpcChannelBuffer* pRpcChannelBuffer,
1584    PRPC_MESSAGE pRpcMessage,
1585    DWORD* pdwStubPhase);
1586HRESULT STDMETHODCALLTYPE IPropertyEnumType_GetRangeMinValue_Proxy(
1587    IPropertyEnumType* This,
1588    PROPVARIANT *ppropvarMin);
1589void __RPC_STUB IPropertyEnumType_GetRangeMinValue_Stub(
1590    IRpcStubBuffer* This,
1591    IRpcChannelBuffer* pRpcChannelBuffer,
1592    PRPC_MESSAGE pRpcMessage,
1593    DWORD* pdwStubPhase);
1594HRESULT STDMETHODCALLTYPE IPropertyEnumType_GetRangeSetValue_Proxy(
1595    IPropertyEnumType* This,
1596    PROPVARIANT *ppropvarSet);
1597void __RPC_STUB IPropertyEnumType_GetRangeSetValue_Stub(
1598    IRpcStubBuffer* This,
1599    IRpcChannelBuffer* pRpcChannelBuffer,
1600    PRPC_MESSAGE pRpcMessage,
1601    DWORD* pdwStubPhase);
1602HRESULT STDMETHODCALLTYPE IPropertyEnumType_GetDisplayText_Proxy(
1603    IPropertyEnumType* This,
1604    LPWSTR *ppszDisplay);
1605void __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
1620DEFINE_GUID(IID_IPropertyEnumType2, 0x9b6e051c, 0x5ddd, 0x4321, 0x90,0x70, 0xfe,0x2a,0xcb,0x55,0xe7,0x94);
1621#if defined(__cplusplus) && !defined(CINTERFACE)
1622MIDL_INTERFACE("9b6e051c-5ddd-4321-9070-fe2acb55e794")
1623IPropertyEnumType2 : 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
1633typedef 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;
1676interface 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 ***/
1696static FORCEINLINE HRESULT IPropertyEnumType2_QueryInterface(IPropertyEnumType2* This,REFIID riid,void **ppvObject) {
1697    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1698}
1699static FORCEINLINE ULONG IPropertyEnumType2_AddRef(IPropertyEnumType2* This) {
1700    return This->lpVtbl->AddRef(This);
1701}
1702static FORCEINLINE ULONG IPropertyEnumType2_Release(IPropertyEnumType2* This) {
1703    return This->lpVtbl->Release(This);
1704}
1705/*** IPropertyEnumType methods ***/
1706static FORCEINLINE HRESULT IPropertyEnumType2_GetEnumType(IPropertyEnumType2* This,PROPENUMTYPE *penumtype) {
1707    return This->lpVtbl->GetEnumType(This,penumtype);
1708}
1709static FORCEINLINE HRESULT IPropertyEnumType2_GetValue(IPropertyEnumType2* This,PROPVARIANT *ppropvar) {
1710    return This->lpVtbl->GetValue(This,ppropvar);
1711}
1712static FORCEINLINE HRESULT IPropertyEnumType2_GetRangeMinValue(IPropertyEnumType2* This,PROPVARIANT *ppropvarMin) {
1713    return This->lpVtbl->GetRangeMinValue(This,ppropvarMin);
1714}
1715static FORCEINLINE HRESULT IPropertyEnumType2_GetRangeSetValue(IPropertyEnumType2* This,PROPVARIANT *ppropvarSet) {
1716    return This->lpVtbl->GetRangeSetValue(This,ppropvarSet);
1717}
1718static FORCEINLINE HRESULT IPropertyEnumType2_GetDisplayText(IPropertyEnumType2* This,LPWSTR *ppszDisplay) {
1719    return This->lpVtbl->GetDisplayText(This,ppszDisplay);
1720}
1721/*** IPropertyEnumType2 methods ***/
1722static FORCEINLINE HRESULT IPropertyEnumType2_GetImageReference(IPropertyEnumType2* This,LPWSTR *ppszImageRes) {
1723    return This->lpVtbl->GetImageReference(This,ppszImageRes);
1724}
1725#endif
1726#endif
1727
1728#endif
1729
1730HRESULT STDMETHODCALLTYPE IPropertyEnumType2_GetImageReference_Proxy(
1731    IPropertyEnumType2* This,
1732    LPWSTR *ppszImageRes);
1733void __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
1748DEFINE_GUID(IID_IPropertyEnumTypeList, 0xa99400f4, 0x3d84, 0x4557, 0x94,0xba, 0x12,0x42,0xfb,0x2c,0xc9,0xa6);
1749#if defined(__cplusplus) && !defined(CINTERFACE)
1750MIDL_INTERFACE("a99400f4-3d84-4557-94ba-1242fb2cc9a6")
1751IPropertyEnumTypeList : 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
1775typedef 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;
1814interface 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 ***/
1831static FORCEINLINE HRESULT IPropertyEnumTypeList_QueryInterface(IPropertyEnumTypeList* This,REFIID riid,void **ppvObject) {
1832    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1833}
1834static FORCEINLINE ULONG IPropertyEnumTypeList_AddRef(IPropertyEnumTypeList* This) {
1835    return This->lpVtbl->AddRef(This);
1836}
1837static FORCEINLINE ULONG IPropertyEnumTypeList_Release(IPropertyEnumTypeList* This) {
1838    return This->lpVtbl->Release(This);
1839}
1840/*** IPropertyEnumTypeList methods ***/
1841static FORCEINLINE HRESULT IPropertyEnumTypeList_GetCount(IPropertyEnumTypeList* This,UINT *pctypes) {
1842    return This->lpVtbl->GetCount(This,pctypes);
1843}
1844static FORCEINLINE HRESULT IPropertyEnumTypeList_GetAt(IPropertyEnumTypeList* This,UINT itype,REFIID riid,void **ppv) {
1845    return This->lpVtbl->GetAt(This,itype,riid,ppv);
1846}
1847static FORCEINLINE HRESULT IPropertyEnumTypeList_GetConditionAt(IPropertyEnumTypeList* This,UINT nIndex,REFIID riid,void **ppv) {
1848    return This->lpVtbl->GetConditionAt(This,nIndex,riid,ppv);
1849}
1850static 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
1858HRESULT STDMETHODCALLTYPE IPropertyEnumTypeList_GetCount_Proxy(
1859    IPropertyEnumTypeList* This,
1860    UINT *pctypes);
1861void __RPC_STUB IPropertyEnumTypeList_GetCount_Stub(
1862    IRpcStubBuffer* This,
1863    IRpcChannelBuffer* pRpcChannelBuffer,
1864    PRPC_MESSAGE pRpcMessage,
1865    DWORD* pdwStubPhase);
1866HRESULT STDMETHODCALLTYPE IPropertyEnumTypeList_GetAt_Proxy(
1867    IPropertyEnumTypeList* This,
1868    UINT itype,
1869    REFIID riid,
1870    void **ppv);
1871void __RPC_STUB IPropertyEnumTypeList_GetAt_Stub(
1872    IRpcStubBuffer* This,
1873    IRpcChannelBuffer* pRpcChannelBuffer,
1874    PRPC_MESSAGE pRpcMessage,
1875    DWORD* pdwStubPhase);
1876HRESULT STDMETHODCALLTYPE IPropertyEnumTypeList_GetConditionAt_Proxy(
1877    IPropertyEnumTypeList* This,
1878    UINT nIndex,
1879    REFIID riid,
1880    void **ppv);
1881void __RPC_STUB IPropertyEnumTypeList_GetConditionAt_Stub(
1882    IRpcStubBuffer* This,
1883    IRpcChannelBuffer* pRpcChannelBuffer,
1884    PRPC_MESSAGE pRpcMessage,
1885    DWORD* pdwStubPhase);
1886HRESULT STDMETHODCALLTYPE IPropertyEnumTypeList_FindMatchingIndex_Proxy(
1887    IPropertyEnumTypeList* This,
1888    REFPROPVARIANT propvarCmp,
1889    UINT *pnIndex);
1890void __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
1905typedef 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
1922DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_TYPE_FLAGS)
1923
1924typedef 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
1941DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_VIEW_FLAGS)
1942
1943typedef 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
1951typedef 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
1961typedef 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
1979DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_FORMAT_FLAGS)
1980
1981typedef 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
1989typedef 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
2003typedef 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
2014typedef 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
2023DEFINE_GUID(IID_IPropertyDescription, 0x6f79d558, 0x3e96, 0x4549, 0xa1,0xd1, 0x7d,0x75,0xd2,0x28,0x88,0x14);
2024#if defined(__cplusplus) && !defined(CINTERFACE)
2025MIDL_INTERFACE("6f79d558-3e96-4549-a1d1-7d75d2288814")
2026IPropertyDescription : 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
2105typedef 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;
2216interface 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 ***/
2250static FORCEINLINE HRESULT IPropertyDescription_QueryInterface(IPropertyDescription* This,REFIID riid,void **ppvObject) {
2251    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2252}
2253static FORCEINLINE ULONG IPropertyDescription_AddRef(IPropertyDescription* This) {
2254    return This->lpVtbl->AddRef(This);
2255}
2256static FORCEINLINE ULONG IPropertyDescription_Release(IPropertyDescription* This) {
2257    return This->lpVtbl->Release(This);
2258}
2259/*** IPropertyDescription methods ***/
2260static FORCEINLINE HRESULT IPropertyDescription_GetPropertyKey(IPropertyDescription* This,PROPERTYKEY *pkey) {
2261    return This->lpVtbl->GetPropertyKey(This,pkey);
2262}
2263static FORCEINLINE HRESULT IPropertyDescription_GetCanonicalName(IPropertyDescription* This,LPWSTR *ppszName) {
2264    return This->lpVtbl->GetCanonicalName(This,ppszName);
2265}
2266static FORCEINLINE HRESULT IPropertyDescription_GetPropertyType(IPropertyDescription* This,VARTYPE *pvartype) {
2267    return This->lpVtbl->GetPropertyType(This,pvartype);
2268}
2269static FORCEINLINE HRESULT IPropertyDescription_GetDisplayName(IPropertyDescription* This,LPWSTR *ppszName) {
2270    return This->lpVtbl->GetDisplayName(This,ppszName);
2271}
2272static FORCEINLINE HRESULT IPropertyDescription_GetEditInvitation(IPropertyDescription* This,LPWSTR *ppszInvite) {
2273    return This->lpVtbl->GetEditInvitation(This,ppszInvite);
2274}
2275static FORCEINLINE HRESULT IPropertyDescription_GetTypeFlags(IPropertyDescription* This,PROPDESC_TYPE_FLAGS mask,PROPDESC_TYPE_FLAGS *ppdtFlags) {
2276    return This->lpVtbl->GetTypeFlags(This,mask,ppdtFlags);
2277}
2278static FORCEINLINE HRESULT IPropertyDescription_GetViewFlags(IPropertyDescription* This,PROPDESC_VIEW_FLAGS *ppdvFlags) {
2279    return This->lpVtbl->GetViewFlags(This,ppdvFlags);
2280}
2281static FORCEINLINE HRESULT IPropertyDescription_GetDefaultColumnWidth(IPropertyDescription* This,UINT *pcxChars) {
2282    return This->lpVtbl->GetDefaultColumnWidth(This,pcxChars);
2283}
2284static FORCEINLINE HRESULT IPropertyDescription_GetDisplayType(IPropertyDescription* This,PROPDESC_DISPLAYTYPE *pdisplaytype) {
2285    return This->lpVtbl->GetDisplayType(This,pdisplaytype);
2286}
2287static FORCEINLINE HRESULT IPropertyDescription_GetColumnState(IPropertyDescription* This,SHCOLSTATEF *pcsFlags) {
2288    return This->lpVtbl->GetColumnState(This,pcsFlags);
2289}
2290static FORCEINLINE HRESULT IPropertyDescription_GetGroupingRange(IPropertyDescription* This,PROPDESC_GROUPING_RANGE *pgr) {
2291    return This->lpVtbl->GetGroupingRange(This,pgr);
2292}
2293static FORCEINLINE HRESULT IPropertyDescription_GetRelativeDescriptionType(IPropertyDescription* This,PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt) {
2294    return This->lpVtbl->GetRelativeDescriptionType(This,prdt);
2295}
2296static 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}
2299static FORCEINLINE HRESULT IPropertyDescription_GetSortDescription(IPropertyDescription* This,PROPDESC_SORTDESCRIPTION *psd) {
2300    return This->lpVtbl->GetSortDescription(This,psd);
2301}
2302static FORCEINLINE HRESULT IPropertyDescription_GetSortDescriptionLabel(IPropertyDescription* This,WINBOOL fDescending,LPWSTR *ppszDescription) {
2303    return This->lpVtbl->GetSortDescriptionLabel(This,fDescending,ppszDescription);
2304}
2305static FORCEINLINE HRESULT IPropertyDescription_GetAggregationType(IPropertyDescription* This,PROPDESC_AGGREGATION_TYPE *paggtype) {
2306    return This->lpVtbl->GetAggregationType(This,paggtype);
2307}
2308static FORCEINLINE HRESULT IPropertyDescription_GetConditionType(IPropertyDescription* This,PROPDESC_CONDITION_TYPE *pcontype,CONDITION_OPERATION *popDefault) {
2309    return This->lpVtbl->GetConditionType(This,pcontype,popDefault);
2310}
2311static FORCEINLINE HRESULT IPropertyDescription_GetEnumTypeList(IPropertyDescription* This,REFIID riid,void **ppv) {
2312    return This->lpVtbl->GetEnumTypeList(This,riid,ppv);
2313}
2314static FORCEINLINE HRESULT IPropertyDescription_CoerceToCanonicalValue(IPropertyDescription* This,PROPVARIANT *ppropvar) {
2315    return This->lpVtbl->CoerceToCanonicalValue(This,ppropvar);
2316}
2317static FORCEINLINE HRESULT IPropertyDescription_FormatForDisplay(IPropertyDescription* This,REFPROPVARIANT propvar,PROPDESC_FORMAT_FLAGS pdfFlags,LPWSTR *ppszDisplay) {
2318    return This->lpVtbl->FormatForDisplay(This,propvar,pdfFlags,ppszDisplay);
2319}
2320static FORCEINLINE HRESULT IPropertyDescription_IsValueCanonical(IPropertyDescription* This,REFPROPVARIANT propvar) {
2321    return This->lpVtbl->IsValueCanonical(This,propvar);
2322}
2323#endif
2324#endif
2325
2326#endif
2327
2328HRESULT STDMETHODCALLTYPE IPropertyDescription_GetPropertyKey_Proxy(
2329    IPropertyDescription* This,
2330    PROPERTYKEY *pkey);
2331void __RPC_STUB IPropertyDescription_GetPropertyKey_Stub(
2332    IRpcStubBuffer* This,
2333    IRpcChannelBuffer* pRpcChannelBuffer,
2334    PRPC_MESSAGE pRpcMessage,
2335    DWORD* pdwStubPhase);
2336HRESULT STDMETHODCALLTYPE IPropertyDescription_GetCanonicalName_Proxy(
2337    IPropertyDescription* This,
2338    LPWSTR *ppszName);
2339void __RPC_STUB IPropertyDescription_GetCanonicalName_Stub(
2340    IRpcStubBuffer* This,
2341    IRpcChannelBuffer* pRpcChannelBuffer,
2342    PRPC_MESSAGE pRpcMessage,
2343    DWORD* pdwStubPhase);
2344HRESULT STDMETHODCALLTYPE IPropertyDescription_GetPropertyType_Proxy(
2345    IPropertyDescription* This,
2346    VARTYPE *pvartype);
2347void __RPC_STUB IPropertyDescription_GetPropertyType_Stub(
2348    IRpcStubBuffer* This,
2349    IRpcChannelBuffer* pRpcChannelBuffer,
2350    PRPC_MESSAGE pRpcMessage,
2351    DWORD* pdwStubPhase);
2352HRESULT STDMETHODCALLTYPE IPropertyDescription_GetDisplayName_Proxy(
2353    IPropertyDescription* This,
2354    LPWSTR *ppszName);
2355void __RPC_STUB IPropertyDescription_GetDisplayName_Stub(
2356    IRpcStubBuffer* This,
2357    IRpcChannelBuffer* pRpcChannelBuffer,
2358    PRPC_MESSAGE pRpcMessage,
2359    DWORD* pdwStubPhase);
2360HRESULT STDMETHODCALLTYPE IPropertyDescription_GetEditInvitation_Proxy(
2361    IPropertyDescription* This,
2362    LPWSTR *ppszInvite);
2363void __RPC_STUB IPropertyDescription_GetEditInvitation_Stub(
2364    IRpcStubBuffer* This,
2365    IRpcChannelBuffer* pRpcChannelBuffer,
2366    PRPC_MESSAGE pRpcMessage,
2367    DWORD* pdwStubPhase);
2368HRESULT STDMETHODCALLTYPE IPropertyDescription_GetTypeFlags_Proxy(
2369    IPropertyDescription* This,
2370    PROPDESC_TYPE_FLAGS mask,
2371    PROPDESC_TYPE_FLAGS *ppdtFlags);
2372void __RPC_STUB IPropertyDescription_GetTypeFlags_Stub(
2373    IRpcStubBuffer* This,
2374    IRpcChannelBuffer* pRpcChannelBuffer,
2375    PRPC_MESSAGE pRpcMessage,
2376    DWORD* pdwStubPhase);
2377HRESULT STDMETHODCALLTYPE IPropertyDescription_GetViewFlags_Proxy(
2378    IPropertyDescription* This,
2379    PROPDESC_VIEW_FLAGS *ppdvFlags);
2380void __RPC_STUB IPropertyDescription_GetViewFlags_Stub(
2381    IRpcStubBuffer* This,
2382    IRpcChannelBuffer* pRpcChannelBuffer,
2383    PRPC_MESSAGE pRpcMessage,
2384    DWORD* pdwStubPhase);
2385HRESULT STDMETHODCALLTYPE IPropertyDescription_GetDefaultColumnWidth_Proxy(
2386    IPropertyDescription* This,
2387    UINT *pcxChars);
2388void __RPC_STUB IPropertyDescription_GetDefaultColumnWidth_Stub(
2389    IRpcStubBuffer* This,
2390    IRpcChannelBuffer* pRpcChannelBuffer,
2391    PRPC_MESSAGE pRpcMessage,
2392    DWORD* pdwStubPhase);
2393HRESULT STDMETHODCALLTYPE IPropertyDescription_GetDisplayType_Proxy(
2394    IPropertyDescription* This,
2395    PROPDESC_DISPLAYTYPE *pdisplaytype);
2396void __RPC_STUB IPropertyDescription_GetDisplayType_Stub(
2397    IRpcStubBuffer* This,
2398    IRpcChannelBuffer* pRpcChannelBuffer,
2399    PRPC_MESSAGE pRpcMessage,
2400    DWORD* pdwStubPhase);
2401HRESULT STDMETHODCALLTYPE IPropertyDescription_GetColumnState_Proxy(
2402    IPropertyDescription* This,
2403    SHCOLSTATEF *pcsFlags);
2404void __RPC_STUB IPropertyDescription_GetColumnState_Stub(
2405    IRpcStubBuffer* This,
2406    IRpcChannelBuffer* pRpcChannelBuffer,
2407    PRPC_MESSAGE pRpcMessage,
2408    DWORD* pdwStubPhase);
2409HRESULT STDMETHODCALLTYPE IPropertyDescription_GetGroupingRange_Proxy(
2410    IPropertyDescription* This,
2411    PROPDESC_GROUPING_RANGE *pgr);
2412void __RPC_STUB IPropertyDescription_GetGroupingRange_Stub(
2413    IRpcStubBuffer* This,
2414    IRpcChannelBuffer* pRpcChannelBuffer,
2415    PRPC_MESSAGE pRpcMessage,
2416    DWORD* pdwStubPhase);
2417HRESULT STDMETHODCALLTYPE IPropertyDescription_GetRelativeDescriptionType_Proxy(
2418    IPropertyDescription* This,
2419    PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt);
2420void __RPC_STUB IPropertyDescription_GetRelativeDescriptionType_Stub(
2421    IRpcStubBuffer* This,
2422    IRpcChannelBuffer* pRpcChannelBuffer,
2423    PRPC_MESSAGE pRpcMessage,
2424    DWORD* pdwStubPhase);
2425HRESULT STDMETHODCALLTYPE IPropertyDescription_GetRelativeDescription_Proxy(
2426    IPropertyDescription* This,
2427    REFPROPVARIANT propvar1,
2428    REFPROPVARIANT propvar2,
2429    LPWSTR *ppszDesc1,
2430    LPWSTR *ppszDesc2);
2431void __RPC_STUB IPropertyDescription_GetRelativeDescription_Stub(
2432    IRpcStubBuffer* This,
2433    IRpcChannelBuffer* pRpcChannelBuffer,
2434    PRPC_MESSAGE pRpcMessage,
2435    DWORD* pdwStubPhase);
2436HRESULT STDMETHODCALLTYPE IPropertyDescription_GetSortDescription_Proxy(
2437    IPropertyDescription* This,
2438    PROPDESC_SORTDESCRIPTION *psd);
2439void __RPC_STUB IPropertyDescription_GetSortDescription_Stub(
2440    IRpcStubBuffer* This,
2441    IRpcChannelBuffer* pRpcChannelBuffer,
2442    PRPC_MESSAGE pRpcMessage,
2443    DWORD* pdwStubPhase);
2444HRESULT STDMETHODCALLTYPE IPropertyDescription_GetSortDescriptionLabel_Proxy(
2445    IPropertyDescription* This,
2446    WINBOOL fDescending,
2447    LPWSTR *ppszDescription);
2448void __RPC_STUB IPropertyDescription_GetSortDescriptionLabel_Stub(
2449    IRpcStubBuffer* This,
2450    IRpcChannelBuffer* pRpcChannelBuffer,
2451    PRPC_MESSAGE pRpcMessage,
2452    DWORD* pdwStubPhase);
2453HRESULT STDMETHODCALLTYPE IPropertyDescription_GetAggregationType_Proxy(
2454    IPropertyDescription* This,
2455    PROPDESC_AGGREGATION_TYPE *paggtype);
2456void __RPC_STUB IPropertyDescription_GetAggregationType_Stub(
2457    IRpcStubBuffer* This,
2458    IRpcChannelBuffer* pRpcChannelBuffer,
2459    PRPC_MESSAGE pRpcMessage,
2460    DWORD* pdwStubPhase);
2461HRESULT STDMETHODCALLTYPE IPropertyDescription_GetConditionType_Proxy(
2462    IPropertyDescription* This,
2463    PROPDESC_CONDITION_TYPE *pcontype,
2464    CONDITION_OPERATION *popDefault);
2465void __RPC_STUB IPropertyDescription_GetConditionType_Stub(
2466    IRpcStubBuffer* This,
2467    IRpcChannelBuffer* pRpcChannelBuffer,
2468    PRPC_MESSAGE pRpcMessage,
2469    DWORD* pdwStubPhase);
2470HRESULT STDMETHODCALLTYPE IPropertyDescription_GetEnumTypeList_Proxy(
2471    IPropertyDescription* This,
2472    REFIID riid,
2473    void **ppv);
2474void __RPC_STUB IPropertyDescription_GetEnumTypeList_Stub(
2475    IRpcStubBuffer* This,
2476    IRpcChannelBuffer* pRpcChannelBuffer,
2477    PRPC_MESSAGE pRpcMessage,
2478    DWORD* pdwStubPhase);
2479HRESULT STDMETHODCALLTYPE IPropertyDescription_RemoteCoerceToCanonicalValue_Proxy(
2480    IPropertyDescription* This,
2481    REFPROPVARIANT propvar,
2482    PROPVARIANT *ppropvar);
2483void __RPC_STUB IPropertyDescription_RemoteCoerceToCanonicalValue_Stub(
2484    IRpcStubBuffer* This,
2485    IRpcChannelBuffer* pRpcChannelBuffer,
2486    PRPC_MESSAGE pRpcMessage,
2487    DWORD* pdwStubPhase);
2488HRESULT STDMETHODCALLTYPE IPropertyDescription_FormatForDisplay_Proxy(
2489    IPropertyDescription* This,
2490    REFPROPVARIANT propvar,
2491    PROPDESC_FORMAT_FLAGS pdfFlags,
2492    LPWSTR *ppszDisplay);
2493void __RPC_STUB IPropertyDescription_FormatForDisplay_Stub(
2494    IRpcStubBuffer* This,
2495    IRpcChannelBuffer* pRpcChannelBuffer,
2496    PRPC_MESSAGE pRpcMessage,
2497    DWORD* pdwStubPhase);
2498HRESULT STDMETHODCALLTYPE IPropertyDescription_IsValueCanonical_Proxy(
2499    IPropertyDescription* This,
2500    REFPROPVARIANT propvar);
2501void __RPC_STUB IPropertyDescription_IsValueCanonical_Stub(
2502    IRpcStubBuffer* This,
2503    IRpcChannelBuffer* pRpcChannelBuffer,
2504    PRPC_MESSAGE pRpcMessage,
2505    DWORD* pdwStubPhase);
2506HRESULT CALLBACK IPropertyDescription_CoerceToCanonicalValue_Proxy(
2507    IPropertyDescription* This,
2508    PROPVARIANT *ppropvar);
2509HRESULT __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
2523DEFINE_GUID(IID_IPropertyDescription2, 0x57d2eded, 0x5062, 0x400e, 0xb1,0x07, 0x5d,0xae,0x79,0xfe,0x57,0xa6);
2524#if defined(__cplusplus) && !defined(CINTERFACE)
2525MIDL_INTERFACE("57d2eded-5062-400e-b107-5dae79fe57a6")
2526IPropertyDescription2 : 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
2537typedef 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;
2654interface 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 ***/
2690static FORCEINLINE HRESULT IPropertyDescription2_QueryInterface(IPropertyDescription2* This,REFIID riid,void **ppvObject) {
2691    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2692}
2693static FORCEINLINE ULONG IPropertyDescription2_AddRef(IPropertyDescription2* This) {
2694    return This->lpVtbl->AddRef(This);
2695}
2696static FORCEINLINE ULONG IPropertyDescription2_Release(IPropertyDescription2* This) {
2697    return This->lpVtbl->Release(This);
2698}
2699/*** IPropertyDescription methods ***/
2700static FORCEINLINE HRESULT IPropertyDescription2_GetPropertyKey(IPropertyDescription2* This,PROPERTYKEY *pkey) {
2701    return This->lpVtbl->GetPropertyKey(This,pkey);
2702}
2703static FORCEINLINE HRESULT IPropertyDescription2_GetCanonicalName(IPropertyDescription2* This,LPWSTR *ppszName) {
2704    return This->lpVtbl->GetCanonicalName(This,ppszName);
2705}
2706static FORCEINLINE HRESULT IPropertyDescription2_GetPropertyType(IPropertyDescription2* This,VARTYPE *pvartype) {
2707    return This->lpVtbl->GetPropertyType(This,pvartype);
2708}
2709static FORCEINLINE HRESULT IPropertyDescription2_GetDisplayName(IPropertyDescription2* This,LPWSTR *ppszName) {
2710    return This->lpVtbl->GetDisplayName(This,ppszName);
2711}
2712static FORCEINLINE HRESULT IPropertyDescription2_GetEditInvitation(IPropertyDescription2* This,LPWSTR *ppszInvite) {
2713    return This->lpVtbl->GetEditInvitation(This,ppszInvite);
2714}
2715static FORCEINLINE HRESULT IPropertyDescription2_GetTypeFlags(IPropertyDescription2* This,PROPDESC_TYPE_FLAGS mask,PROPDESC_TYPE_FLAGS *ppdtFlags) {
2716    return This->lpVtbl->GetTypeFlags(This,mask,ppdtFlags);
2717}
2718static FORCEINLINE HRESULT IPropertyDescription2_GetViewFlags(IPropertyDescription2* This,PROPDESC_VIEW_FLAGS *ppdvFlags) {
2719    return This->lpVtbl->GetViewFlags(This,ppdvFlags);
2720}
2721static FORCEINLINE HRESULT IPropertyDescription2_GetDefaultColumnWidth(IPropertyDescription2* This,UINT *pcxChars) {
2722    return This->lpVtbl->GetDefaultColumnWidth(This,pcxChars);
2723}
2724static FORCEINLINE HRESULT IPropertyDescription2_GetDisplayType(IPropertyDescription2* This,PROPDESC_DISPLAYTYPE *pdisplaytype) {
2725    return This->lpVtbl->GetDisplayType(This,pdisplaytype);
2726}
2727static FORCEINLINE HRESULT IPropertyDescription2_GetColumnState(IPropertyDescription2* This,SHCOLSTATEF *pcsFlags) {
2728    return This->lpVtbl->GetColumnState(This,pcsFlags);
2729}
2730static FORCEINLINE HRESULT IPropertyDescription2_GetGroupingRange(IPropertyDescription2* This,PROPDESC_GROUPING_RANGE *pgr) {
2731    return This->lpVtbl->GetGroupingRange(This,pgr);
2732}
2733static FORCEINLINE HRESULT IPropertyDescription2_GetRelativeDescriptionType(IPropertyDescription2* This,PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt) {
2734    return This->lpVtbl->GetRelativeDescriptionType(This,prdt);
2735}
2736static 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}
2739static FORCEINLINE HRESULT IPropertyDescription2_GetSortDescription(IPropertyDescription2* This,PROPDESC_SORTDESCRIPTION *psd) {
2740    return This->lpVtbl->GetSortDescription(This,psd);
2741}
2742static FORCEINLINE HRESULT IPropertyDescription2_GetSortDescriptionLabel(IPropertyDescription2* This,WINBOOL fDescending,LPWSTR *ppszDescription) {
2743    return This->lpVtbl->GetSortDescriptionLabel(This,fDescending,ppszDescription);
2744}
2745static FORCEINLINE HRESULT IPropertyDescription2_GetAggregationType(IPropertyDescription2* This,PROPDESC_AGGREGATION_TYPE *paggtype) {
2746    return This->lpVtbl->GetAggregationType(This,paggtype);
2747}
2748static FORCEINLINE HRESULT IPropertyDescription2_GetConditionType(IPropertyDescription2* This,PROPDESC_CONDITION_TYPE *pcontype,CONDITION_OPERATION *popDefault) {
2749    return This->lpVtbl->GetConditionType(This,pcontype,popDefault);
2750}
2751static FORCEINLINE HRESULT IPropertyDescription2_GetEnumTypeList(IPropertyDescription2* This,REFIID riid,void **ppv) {
2752    return This->lpVtbl->GetEnumTypeList(This,riid,ppv);
2753}
2754static FORCEINLINE HRESULT IPropertyDescription2_CoerceToCanonicalValue(IPropertyDescription2* This,PROPVARIANT *ppropvar) {
2755    return This->lpVtbl->CoerceToCanonicalValue(This,ppropvar);
2756}
2757static FORCEINLINE HRESULT IPropertyDescription2_FormatForDisplay(IPropertyDescription2* This,REFPROPVARIANT propvar,PROPDESC_FORMAT_FLAGS pdfFlags,LPWSTR *ppszDisplay) {
2758    return This->lpVtbl->FormatForDisplay(This,propvar,pdfFlags,ppszDisplay);
2759}
2760static FORCEINLINE HRESULT IPropertyDescription2_IsValueCanonical(IPropertyDescription2* This,REFPROPVARIANT propvar) {
2761    return This->lpVtbl->IsValueCanonical(This,propvar);
2762}
2763/*** IPropertyDescription2 methods ***/
2764static 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
2772HRESULT STDMETHODCALLTYPE IPropertyDescription2_GetImageReferenceForValue_Proxy(
2773    IPropertyDescription2* This,
2774    REFPROPVARIANT propvar,
2775    LPWSTR *ppszImageRes);
2776void __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
2791DEFINE_GUID(IID_IPropertyDescriptionAliasInfo, 0xf67104fc, 0x2af9, 0x46fd, 0xb3,0x2d, 0x24,0x3c,0x14,0x04,0xf3,0xd1);
2792#if defined(__cplusplus) && !defined(CINTERFACE)
2793MIDL_INTERFACE("f67104fc-2af9-46fd-b32d-243c1404f3d1")
2794IPropertyDescriptionAliasInfo : 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
2809typedef 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;
2931interface 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 ***/
2968static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_QueryInterface(IPropertyDescriptionAliasInfo* This,REFIID riid,void **ppvObject) {
2969    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2970}
2971static FORCEINLINE ULONG IPropertyDescriptionAliasInfo_AddRef(IPropertyDescriptionAliasInfo* This) {
2972    return This->lpVtbl->AddRef(This);
2973}
2974static FORCEINLINE ULONG IPropertyDescriptionAliasInfo_Release(IPropertyDescriptionAliasInfo* This) {
2975    return This->lpVtbl->Release(This);
2976}
2977/*** IPropertyDescription methods ***/
2978static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetPropertyKey(IPropertyDescriptionAliasInfo* This,PROPERTYKEY *pkey) {
2979    return This->lpVtbl->GetPropertyKey(This,pkey);
2980}
2981static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetCanonicalName(IPropertyDescriptionAliasInfo* This,LPWSTR *ppszName) {
2982    return This->lpVtbl->GetCanonicalName(This,ppszName);
2983}
2984static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetPropertyType(IPropertyDescriptionAliasInfo* This,VARTYPE *pvartype) {
2985    return This->lpVtbl->GetPropertyType(This,pvartype);
2986}
2987static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetDisplayName(IPropertyDescriptionAliasInfo* This,LPWSTR *ppszName) {
2988    return This->lpVtbl->GetDisplayName(This,ppszName);
2989}
2990static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetEditInvitation(IPropertyDescriptionAliasInfo* This,LPWSTR *ppszInvite) {
2991    return This->lpVtbl->GetEditInvitation(This,ppszInvite);
2992}
2993static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetTypeFlags(IPropertyDescriptionAliasInfo* This,PROPDESC_TYPE_FLAGS mask,PROPDESC_TYPE_FLAGS *ppdtFlags) {
2994    return This->lpVtbl->GetTypeFlags(This,mask,ppdtFlags);
2995}
2996static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetViewFlags(IPropertyDescriptionAliasInfo* This,PROPDESC_VIEW_FLAGS *ppdvFlags) {
2997    return This->lpVtbl->GetViewFlags(This,ppdvFlags);
2998}
2999static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetDefaultColumnWidth(IPropertyDescriptionAliasInfo* This,UINT *pcxChars) {
3000    return This->lpVtbl->GetDefaultColumnWidth(This,pcxChars);
3001}
3002static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetDisplayType(IPropertyDescriptionAliasInfo* This,PROPDESC_DISPLAYTYPE *pdisplaytype) {
3003    return This->lpVtbl->GetDisplayType(This,pdisplaytype);
3004}
3005static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetColumnState(IPropertyDescriptionAliasInfo* This,SHCOLSTATEF *pcsFlags) {
3006    return This->lpVtbl->GetColumnState(This,pcsFlags);
3007}
3008static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetGroupingRange(IPropertyDescriptionAliasInfo* This,PROPDESC_GROUPING_RANGE *pgr) {
3009    return This->lpVtbl->GetGroupingRange(This,pgr);
3010}
3011static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetRelativeDescriptionType(IPropertyDescriptionAliasInfo* This,PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt) {
3012    return This->lpVtbl->GetRelativeDescriptionType(This,prdt);
3013}
3014static 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}
3017static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetSortDescription(IPropertyDescriptionAliasInfo* This,PROPDESC_SORTDESCRIPTION *psd) {
3018    return This->lpVtbl->GetSortDescription(This,psd);
3019}
3020static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetSortDescriptionLabel(IPropertyDescriptionAliasInfo* This,WINBOOL fDescending,LPWSTR *ppszDescription) {
3021    return This->lpVtbl->GetSortDescriptionLabel(This,fDescending,ppszDescription);
3022}
3023static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetAggregationType(IPropertyDescriptionAliasInfo* This,PROPDESC_AGGREGATION_TYPE *paggtype) {
3024    return This->lpVtbl->GetAggregationType(This,paggtype);
3025}
3026static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetConditionType(IPropertyDescriptionAliasInfo* This,PROPDESC_CONDITION_TYPE *pcontype,CONDITION_OPERATION *popDefault) {
3027    return This->lpVtbl->GetConditionType(This,pcontype,popDefault);
3028}
3029static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetEnumTypeList(IPropertyDescriptionAliasInfo* This,REFIID riid,void **ppv) {
3030    return This->lpVtbl->GetEnumTypeList(This,riid,ppv);
3031}
3032static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_CoerceToCanonicalValue(IPropertyDescriptionAliasInfo* This,PROPVARIANT *ppropvar) {
3033    return This->lpVtbl->CoerceToCanonicalValue(This,ppropvar);
3034}
3035static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_FormatForDisplay(IPropertyDescriptionAliasInfo* This,REFPROPVARIANT propvar,PROPDESC_FORMAT_FLAGS pdfFlags,LPWSTR *ppszDisplay) {
3036    return This->lpVtbl->FormatForDisplay(This,propvar,pdfFlags,ppszDisplay);
3037}
3038static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_IsValueCanonical(IPropertyDescriptionAliasInfo* This,REFPROPVARIANT propvar) {
3039    return This->lpVtbl->IsValueCanonical(This,propvar);
3040}
3041/*** IPropertyDescriptionAliasInfo methods ***/
3042static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetSortByAlias(IPropertyDescriptionAliasInfo* This,REFIID riid,void **ppv) {
3043    return This->lpVtbl->GetSortByAlias(This,riid,ppv);
3044}
3045static 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
3053HRESULT STDMETHODCALLTYPE IPropertyDescriptionAliasInfo_GetSortByAlias_Proxy(
3054    IPropertyDescriptionAliasInfo* This,
3055    REFIID riid,
3056    void **ppv);
3057void __RPC_STUB IPropertyDescriptionAliasInfo_GetSortByAlias_Stub(
3058    IRpcStubBuffer* This,
3059    IRpcChannelBuffer* pRpcChannelBuffer,
3060    PRPC_MESSAGE pRpcMessage,
3061    DWORD* pdwStubPhase);
3062HRESULT STDMETHODCALLTYPE IPropertyDescriptionAliasInfo_GetAdditionalSortByAliases_Proxy(
3063    IPropertyDescriptionAliasInfo* This,
3064    REFIID riid,
3065    void **ppv);
3066void __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
3081typedef 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
3090DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_SEARCHINFO_FLAGS)
3091
3092typedef 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
3101DEFINE_GUID(IID_IPropertyDescriptionSearchInfo, 0x078f91bd, 0x29a2, 0x440f, 0x92,0x4e, 0x46,0xa2,0x91,0x52,0x45,0x20);
3102#if defined(__cplusplus) && !defined(CINTERFACE)
3103MIDL_INTERFACE("078f91bd-29a2-440f-924e-46a291524520")
3104IPropertyDescriptionSearchInfo : 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
3123typedef 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;
3251interface 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 ***/
3290static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_QueryInterface(IPropertyDescriptionSearchInfo* This,REFIID riid,void **ppvObject) {
3291    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3292}
3293static FORCEINLINE ULONG IPropertyDescriptionSearchInfo_AddRef(IPropertyDescriptionSearchInfo* This) {
3294    return This->lpVtbl->AddRef(This);
3295}
3296static FORCEINLINE ULONG IPropertyDescriptionSearchInfo_Release(IPropertyDescriptionSearchInfo* This) {
3297    return This->lpVtbl->Release(This);
3298}
3299/*** IPropertyDescription methods ***/
3300static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetPropertyKey(IPropertyDescriptionSearchInfo* This,PROPERTYKEY *pkey) {
3301    return This->lpVtbl->GetPropertyKey(This,pkey);
3302}
3303static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetCanonicalName(IPropertyDescriptionSearchInfo* This,LPWSTR *ppszName) {
3304    return This->lpVtbl->GetCanonicalName(This,ppszName);
3305}
3306static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetPropertyType(IPropertyDescriptionSearchInfo* This,VARTYPE *pvartype) {
3307    return This->lpVtbl->GetPropertyType(This,pvartype);
3308}
3309static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetDisplayName(IPropertyDescriptionSearchInfo* This,LPWSTR *ppszName) {
3310    return This->lpVtbl->GetDisplayName(This,ppszName);
3311}
3312static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetEditInvitation(IPropertyDescriptionSearchInfo* This,LPWSTR *ppszInvite) {
3313    return This->lpVtbl->GetEditInvitation(This,ppszInvite);
3314}
3315static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetTypeFlags(IPropertyDescriptionSearchInfo* This,PROPDESC_TYPE_FLAGS mask,PROPDESC_TYPE_FLAGS *ppdtFlags) {
3316    return This->lpVtbl->GetTypeFlags(This,mask,ppdtFlags);
3317}
3318static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetViewFlags(IPropertyDescriptionSearchInfo* This,PROPDESC_VIEW_FLAGS *ppdvFlags) {
3319    return This->lpVtbl->GetViewFlags(This,ppdvFlags);
3320}
3321static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetDefaultColumnWidth(IPropertyDescriptionSearchInfo* This,UINT *pcxChars) {
3322    return This->lpVtbl->GetDefaultColumnWidth(This,pcxChars);
3323}
3324static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetDisplayType(IPropertyDescriptionSearchInfo* This,PROPDESC_DISPLAYTYPE *pdisplaytype) {
3325    return This->lpVtbl->GetDisplayType(This,pdisplaytype);
3326}
3327static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetColumnState(IPropertyDescriptionSearchInfo* This,SHCOLSTATEF *pcsFlags) {
3328    return This->lpVtbl->GetColumnState(This,pcsFlags);
3329}
3330static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetGroupingRange(IPropertyDescriptionSearchInfo* This,PROPDESC_GROUPING_RANGE *pgr) {
3331    return This->lpVtbl->GetGroupingRange(This,pgr);
3332}
3333static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetRelativeDescriptionType(IPropertyDescriptionSearchInfo* This,PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt) {
3334    return This->lpVtbl->GetRelativeDescriptionType(This,prdt);
3335}
3336static 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}
3339static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetSortDescription(IPropertyDescriptionSearchInfo* This,PROPDESC_SORTDESCRIPTION *psd) {
3340    return This->lpVtbl->GetSortDescription(This,psd);
3341}
3342static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetSortDescriptionLabel(IPropertyDescriptionSearchInfo* This,WINBOOL fDescending,LPWSTR *ppszDescription) {
3343    return This->lpVtbl->GetSortDescriptionLabel(This,fDescending,ppszDescription);
3344}
3345static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetAggregationType(IPropertyDescriptionSearchInfo* This,PROPDESC_AGGREGATION_TYPE *paggtype) {
3346    return This->lpVtbl->GetAggregationType(This,paggtype);
3347}
3348static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetConditionType(IPropertyDescriptionSearchInfo* This,PROPDESC_CONDITION_TYPE *pcontype,CONDITION_OPERATION *popDefault) {
3349    return This->lpVtbl->GetConditionType(This,pcontype,popDefault);
3350}
3351static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetEnumTypeList(IPropertyDescriptionSearchInfo* This,REFIID riid,void **ppv) {
3352    return This->lpVtbl->GetEnumTypeList(This,riid,ppv);
3353}
3354static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_CoerceToCanonicalValue(IPropertyDescriptionSearchInfo* This,PROPVARIANT *ppropvar) {
3355    return This->lpVtbl->CoerceToCanonicalValue(This,ppropvar);
3356}
3357static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_FormatForDisplay(IPropertyDescriptionSearchInfo* This,REFPROPVARIANT propvar,PROPDESC_FORMAT_FLAGS pdfFlags,LPWSTR *ppszDisplay) {
3358    return This->lpVtbl->FormatForDisplay(This,propvar,pdfFlags,ppszDisplay);
3359}
3360static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_IsValueCanonical(IPropertyDescriptionSearchInfo* This,REFPROPVARIANT propvar) {
3361    return This->lpVtbl->IsValueCanonical(This,propvar);
3362}
3363/*** IPropertyDescriptionSearchInfo methods ***/
3364static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetSearchInfoFlags(IPropertyDescriptionSearchInfo* This,PROPDESC_SEARCHINFO_FLAGS *ppdsiFlags) {
3365    return This->lpVtbl->GetSearchInfoFlags(This,ppdsiFlags);
3366}
3367static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetColumnIndexType(IPropertyDescriptionSearchInfo* This,PROPDESC_COLUMNINDEX_TYPE *ppdciType) {
3368    return This->lpVtbl->GetColumnIndexType(This,ppdciType);
3369}
3370static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetProjectionString(IPropertyDescriptionSearchInfo* This,LPWSTR *ppszProjection) {
3371    return This->lpVtbl->GetProjectionString(This,ppszProjection);
3372}
3373static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetMaxSize(IPropertyDescriptionSearchInfo* This,UINT *pcbMaxSize) {
3374    return This->lpVtbl->GetMaxSize(This,pcbMaxSize);
3375}
3376#endif
3377#endif
3378
3379#endif
3380
3381HRESULT STDMETHODCALLTYPE IPropertyDescriptionSearchInfo_GetSearchInfoFlags_Proxy(
3382    IPropertyDescriptionSearchInfo* This,
3383    PROPDESC_SEARCHINFO_FLAGS *ppdsiFlags);
3384void __RPC_STUB IPropertyDescriptionSearchInfo_GetSearchInfoFlags_Stub(
3385    IRpcStubBuffer* This,
3386    IRpcChannelBuffer* pRpcChannelBuffer,
3387    PRPC_MESSAGE pRpcMessage,
3388    DWORD* pdwStubPhase);
3389HRESULT STDMETHODCALLTYPE IPropertyDescriptionSearchInfo_GetColumnIndexType_Proxy(
3390    IPropertyDescriptionSearchInfo* This,
3391    PROPDESC_COLUMNINDEX_TYPE *ppdciType);
3392void __RPC_STUB IPropertyDescriptionSearchInfo_GetColumnIndexType_Stub(
3393    IRpcStubBuffer* This,
3394    IRpcChannelBuffer* pRpcChannelBuffer,
3395    PRPC_MESSAGE pRpcMessage,
3396    DWORD* pdwStubPhase);
3397HRESULT STDMETHODCALLTYPE IPropertyDescriptionSearchInfo_GetProjectionString_Proxy(
3398    IPropertyDescriptionSearchInfo* This,
3399    LPWSTR *ppszProjection);
3400void __RPC_STUB IPropertyDescriptionSearchInfo_GetProjectionString_Stub(
3401    IRpcStubBuffer* This,
3402    IRpcChannelBuffer* pRpcChannelBuffer,
3403    PRPC_MESSAGE pRpcMessage,
3404    DWORD* pdwStubPhase);
3405HRESULT STDMETHODCALLTYPE IPropertyDescriptionSearchInfo_GetMaxSize_Proxy(
3406    IPropertyDescriptionSearchInfo* This,
3407    UINT *pcbMaxSize);
3408void __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
3423DEFINE_GUID(IID_IPropertyDescriptionRelatedPropertyInfo, 0x507393f4, 0x2a3d, 0x4a60, 0xb5,0x9e, 0xd9,0xc7,0x57,0x16,0xc2,0xdd);
3424#if defined(__cplusplus) && !defined(CINTERFACE)
3425MIDL_INTERFACE("507393f4-2a3d-4a60-b59e-d9c75716c2dd")
3426IPropertyDescriptionRelatedPropertyInfo : 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
3438typedef 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;
3556interface 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 ***/
3592static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_QueryInterface(IPropertyDescriptionRelatedPropertyInfo* This,REFIID riid,void **ppvObject) {
3593    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3594}
3595static FORCEINLINE ULONG IPropertyDescriptionRelatedPropertyInfo_AddRef(IPropertyDescriptionRelatedPropertyInfo* This) {
3596    return This->lpVtbl->AddRef(This);
3597}
3598static FORCEINLINE ULONG IPropertyDescriptionRelatedPropertyInfo_Release(IPropertyDescriptionRelatedPropertyInfo* This) {
3599    return This->lpVtbl->Release(This);
3600}
3601/*** IPropertyDescription methods ***/
3602static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetPropertyKey(IPropertyDescriptionRelatedPropertyInfo* This,PROPERTYKEY *pkey) {
3603    return This->lpVtbl->GetPropertyKey(This,pkey);
3604}
3605static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetCanonicalName(IPropertyDescriptionRelatedPropertyInfo* This,LPWSTR *ppszName) {
3606    return This->lpVtbl->GetCanonicalName(This,ppszName);
3607}
3608static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetPropertyType(IPropertyDescriptionRelatedPropertyInfo* This,VARTYPE *pvartype) {
3609    return This->lpVtbl->GetPropertyType(This,pvartype);
3610}
3611static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetDisplayName(IPropertyDescriptionRelatedPropertyInfo* This,LPWSTR *ppszName) {
3612    return This->lpVtbl->GetDisplayName(This,ppszName);
3613}
3614static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetEditInvitation(IPropertyDescriptionRelatedPropertyInfo* This,LPWSTR *ppszInvite) {
3615    return This->lpVtbl->GetEditInvitation(This,ppszInvite);
3616}
3617static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetTypeFlags(IPropertyDescriptionRelatedPropertyInfo* This,PROPDESC_TYPE_FLAGS mask,PROPDESC_TYPE_FLAGS *ppdtFlags) {
3618    return This->lpVtbl->GetTypeFlags(This,mask,ppdtFlags);
3619}
3620static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetViewFlags(IPropertyDescriptionRelatedPropertyInfo* This,PROPDESC_VIEW_FLAGS *ppdvFlags) {
3621    return This->lpVtbl->GetViewFlags(This,ppdvFlags);
3622}
3623static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetDefaultColumnWidth(IPropertyDescriptionRelatedPropertyInfo* This,UINT *pcxChars) {
3624    return This->lpVtbl->GetDefaultColumnWidth(This,pcxChars);
3625}
3626static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetDisplayType(IPropertyDescriptionRelatedPropertyInfo* This,PROPDESC_DISPLAYTYPE *pdisplaytype) {
3627    return This->lpVtbl->GetDisplayType(This,pdisplaytype);
3628}
3629static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetColumnState(IPropertyDescriptionRelatedPropertyInfo* This,SHCOLSTATEF *pcsFlags) {
3630    return This->lpVtbl->GetColumnState(This,pcsFlags);
3631}
3632static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetGroupingRange(IPropertyDescriptionRelatedPropertyInfo* This,PROPDESC_GROUPING_RANGE *pgr) {
3633    return This->lpVtbl->GetGroupingRange(This,pgr);
3634}
3635static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetRelativeDescriptionType(IPropertyDescriptionRelatedPropertyInfo* This,PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt) {
3636    return This->lpVtbl->GetRelativeDescriptionType(This,prdt);
3637}
3638static 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}
3641static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetSortDescription(IPropertyDescriptionRelatedPropertyInfo* This,PROPDESC_SORTDESCRIPTION *psd) {
3642    return This->lpVtbl->GetSortDescription(This,psd);
3643}
3644static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetSortDescriptionLabel(IPropertyDescriptionRelatedPropertyInfo* This,WINBOOL fDescending,LPWSTR *ppszDescription) {
3645    return This->lpVtbl->GetSortDescriptionLabel(This,fDescending,ppszDescription);
3646}
3647static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetAggregationType(IPropertyDescriptionRelatedPropertyInfo* This,PROPDESC_AGGREGATION_TYPE *paggtype) {
3648    return This->lpVtbl->GetAggregationType(This,paggtype);
3649}
3650static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetConditionType(IPropertyDescriptionRelatedPropertyInfo* This,PROPDESC_CONDITION_TYPE *pcontype,CONDITION_OPERATION *popDefault) {
3651    return This->lpVtbl->GetConditionType(This,pcontype,popDefault);
3652}
3653static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetEnumTypeList(IPropertyDescriptionRelatedPropertyInfo* This,REFIID riid,void **ppv) {
3654    return This->lpVtbl->GetEnumTypeList(This,riid,ppv);
3655}
3656static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_CoerceToCanonicalValue(IPropertyDescriptionRelatedPropertyInfo* This,PROPVARIANT *ppropvar) {
3657    return This->lpVtbl->CoerceToCanonicalValue(This,ppropvar);
3658}
3659static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_FormatForDisplay(IPropertyDescriptionRelatedPropertyInfo* This,REFPROPVARIANT propvar,PROPDESC_FORMAT_FLAGS pdfFlags,LPWSTR *ppszDisplay) {
3660    return This->lpVtbl->FormatForDisplay(This,propvar,pdfFlags,ppszDisplay);
3661}
3662static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_IsValueCanonical(IPropertyDescriptionRelatedPropertyInfo* This,REFPROPVARIANT propvar) {
3663    return This->lpVtbl->IsValueCanonical(This,propvar);
3664}
3665/*** IPropertyDescriptionRelatedPropertyInfo methods ***/
3666static 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
3674HRESULT STDMETHODCALLTYPE IPropertyDescriptionRelatedPropertyInfo_GetRelatedProperty_Proxy(
3675    IPropertyDescriptionRelatedPropertyInfo* This,
3676    LPCWSTR pszRelationshipName,
3677    REFIID riid,
3678    void **ppv);
3679void __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
3688typedef 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
3704DEFINE_GUID(IID_IPropertySystem, 0xca724e8a, 0xc3e6, 0x442b, 0x88,0xa4, 0x6f,0xb0,0xdb,0x80,0x35,0xa3);
3705#if defined(__cplusplus) && !defined(CINTERFACE)
3706MIDL_INTERFACE("ca724e8a-c3e6-442b-88a4-6fb0db8035a3")
3707IPropertySystem : 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
3756typedef 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;
3824interface 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 ***/
3846static FORCEINLINE HRESULT IPropertySystem_QueryInterface(IPropertySystem* This,REFIID riid,void **ppvObject) {
3847    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3848}
3849static FORCEINLINE ULONG IPropertySystem_AddRef(IPropertySystem* This) {
3850    return This->lpVtbl->AddRef(This);
3851}
3852static FORCEINLINE ULONG IPropertySystem_Release(IPropertySystem* This) {
3853    return This->lpVtbl->Release(This);
3854}
3855/*** IPropertySystem methods ***/
3856static FORCEINLINE HRESULT IPropertySystem_GetPropertyDescription(IPropertySystem* This,REFPROPERTYKEY propkey,REFIID riid,void **ppv) {
3857    return This->lpVtbl->GetPropertyDescription(This,propkey,riid,ppv);
3858}
3859static FORCEINLINE HRESULT IPropertySystem_GetPropertyDescriptionByName(IPropertySystem* This,LPCWSTR pszCanonicalName,REFIID riid,void **ppv) {
3860    return This->lpVtbl->GetPropertyDescriptionByName(This,pszCanonicalName,riid,ppv);
3861}
3862static FORCEINLINE HRESULT IPropertySystem_GetPropertyDescriptionListFromString(IPropertySystem* This,LPCWSTR pszPropList,REFIID riid,void **ppv) {
3863    return This->lpVtbl->GetPropertyDescriptionListFromString(This,pszPropList,riid,ppv);
3864}
3865static FORCEINLINE HRESULT IPropertySystem_EnumeratePropertyDescriptions(IPropertySystem* This,PROPDESC_ENUMFILTER filterOn,REFIID riid,void **ppv) {
3866    return This->lpVtbl->EnumeratePropertyDescriptions(This,filterOn,riid,ppv);
3867}
3868static 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}
3871static 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}
3874static FORCEINLINE HRESULT IPropertySystem_RegisterPropertySchema(IPropertySystem* This,LPCWSTR pszPath) {
3875    return This->lpVtbl->RegisterPropertySchema(This,pszPath);
3876}
3877static FORCEINLINE HRESULT IPropertySystem_UnregisterPropertySchema(IPropertySystem* This,LPCWSTR pszPath) {
3878    return This->lpVtbl->UnregisterPropertySchema(This,pszPath);
3879}
3880static FORCEINLINE HRESULT IPropertySystem_RefreshPropertySchema(IPropertySystem* This) {
3881    return This->lpVtbl->RefreshPropertySchema(This);
3882}
3883#endif
3884#endif
3885
3886#endif
3887
3888HRESULT STDMETHODCALLTYPE IPropertySystem_GetPropertyDescription_Proxy(
3889    IPropertySystem* This,
3890    REFPROPERTYKEY propkey,
3891    REFIID riid,
3892    void **ppv);
3893void __RPC_STUB IPropertySystem_GetPropertyDescription_Stub(
3894    IRpcStubBuffer* This,
3895    IRpcChannelBuffer* pRpcChannelBuffer,
3896    PRPC_MESSAGE pRpcMessage,
3897    DWORD* pdwStubPhase);
3898HRESULT STDMETHODCALLTYPE IPropertySystem_GetPropertyDescriptionByName_Proxy(
3899    IPropertySystem* This,
3900    LPCWSTR pszCanonicalName,
3901    REFIID riid,
3902    void **ppv);
3903void __RPC_STUB IPropertySystem_GetPropertyDescriptionByName_Stub(
3904    IRpcStubBuffer* This,
3905    IRpcChannelBuffer* pRpcChannelBuffer,
3906    PRPC_MESSAGE pRpcMessage,
3907    DWORD* pdwStubPhase);
3908HRESULT STDMETHODCALLTYPE IPropertySystem_GetPropertyDescriptionListFromString_Proxy(
3909    IPropertySystem* This,
3910    LPCWSTR pszPropList,
3911    REFIID riid,
3912    void **ppv);
3913void __RPC_STUB IPropertySystem_GetPropertyDescriptionListFromString_Stub(
3914    IRpcStubBuffer* This,
3915    IRpcChannelBuffer* pRpcChannelBuffer,
3916    PRPC_MESSAGE pRpcMessage,
3917    DWORD* pdwStubPhase);
3918HRESULT STDMETHODCALLTYPE IPropertySystem_EnumeratePropertyDescriptions_Proxy(
3919    IPropertySystem* This,
3920    PROPDESC_ENUMFILTER filterOn,
3921    REFIID riid,
3922    void **ppv);
3923void __RPC_STUB IPropertySystem_EnumeratePropertyDescriptions_Stub(
3924    IRpcStubBuffer* This,
3925    IRpcChannelBuffer* pRpcChannelBuffer,
3926    PRPC_MESSAGE pRpcMessage,
3927    DWORD* pdwStubPhase);
3928HRESULT STDMETHODCALLTYPE IPropertySystem_FormatForDisplay_Proxy(
3929    IPropertySystem* This,
3930    REFPROPERTYKEY key,
3931    REFPROPVARIANT propvar,
3932    PROPDESC_FORMAT_FLAGS pdff,
3933    LPWSTR pszText,
3934    DWORD cchText);
3935void __RPC_STUB IPropertySystem_FormatForDisplay_Stub(
3936    IRpcStubBuffer* This,
3937    IRpcChannelBuffer* pRpcChannelBuffer,
3938    PRPC_MESSAGE pRpcMessage,
3939    DWORD* pdwStubPhase);
3940HRESULT STDMETHODCALLTYPE IPropertySystem_FormatForDisplayAlloc_Proxy(
3941    IPropertySystem* This,
3942    REFPROPERTYKEY key,
3943    REFPROPVARIANT propvar,
3944    PROPDESC_FORMAT_FLAGS pdff,
3945    LPWSTR *ppszDisplay);
3946void __RPC_STUB IPropertySystem_FormatForDisplayAlloc_Stub(
3947    IRpcStubBuffer* This,
3948    IRpcChannelBuffer* pRpcChannelBuffer,
3949    PRPC_MESSAGE pRpcMessage,
3950    DWORD* pdwStubPhase);
3951HRESULT STDMETHODCALLTYPE IPropertySystem_RegisterPropertySchema_Proxy(
3952    IPropertySystem* This,
3953    LPCWSTR pszPath);
3954void __RPC_STUB IPropertySystem_RegisterPropertySchema_Stub(
3955    IRpcStubBuffer* This,
3956    IRpcChannelBuffer* pRpcChannelBuffer,
3957    PRPC_MESSAGE pRpcMessage,
3958    DWORD* pdwStubPhase);
3959HRESULT STDMETHODCALLTYPE IPropertySystem_UnregisterPropertySchema_Proxy(
3960    IPropertySystem* This,
3961    LPCWSTR pszPath);
3962void __RPC_STUB IPropertySystem_UnregisterPropertySchema_Stub(
3963    IRpcStubBuffer* This,
3964    IRpcChannelBuffer* pRpcChannelBuffer,
3965    PRPC_MESSAGE pRpcMessage,
3966    DWORD* pdwStubPhase);
3967HRESULT STDMETHODCALLTYPE IPropertySystem_RefreshPropertySchema_Proxy(
3968    IPropertySystem* This);
3969void __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
3984DEFINE_GUID(IID_IPropertyDescriptionList, 0x1f9fc1d0, 0xc39b, 0x4b26, 0x81,0x7f, 0x01,0x19,0x67,0xd3,0x44,0x0e);
3985#if defined(__cplusplus) && !defined(CINTERFACE)
3986MIDL_INTERFACE("1f9fc1d0-c39b-4b26-817f-011967d3440e")
3987IPropertyDescriptionList : 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
4002typedef 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;
4030interface 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 ***/
4045static FORCEINLINE HRESULT IPropertyDescriptionList_QueryInterface(IPropertyDescriptionList* This,REFIID riid,void **ppvObject) {
4046    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4047}
4048static FORCEINLINE ULONG IPropertyDescriptionList_AddRef(IPropertyDescriptionList* This) {
4049    return This->lpVtbl->AddRef(This);
4050}
4051static FORCEINLINE ULONG IPropertyDescriptionList_Release(IPropertyDescriptionList* This) {
4052    return This->lpVtbl->Release(This);
4053}
4054/*** IPropertyDescriptionList methods ***/
4055static FORCEINLINE HRESULT IPropertyDescriptionList_GetCount(IPropertyDescriptionList* This,UINT *pcElem) {
4056    return This->lpVtbl->GetCount(This,pcElem);
4057}
4058static 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
4066HRESULT STDMETHODCALLTYPE IPropertyDescriptionList_GetCount_Proxy(
4067    IPropertyDescriptionList* This,
4068    UINT *pcElem);
4069void __RPC_STUB IPropertyDescriptionList_GetCount_Stub(
4070    IRpcStubBuffer* This,
4071    IRpcChannelBuffer* pRpcChannelBuffer,
4072    PRPC_MESSAGE pRpcMessage,
4073    DWORD* pdwStubPhase);
4074HRESULT STDMETHODCALLTYPE IPropertyDescriptionList_GetAt_Proxy(
4075    IPropertyDescriptionList* This,
4076    UINT iElem,
4077    REFIID riid,
4078    void **ppv);
4079void __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
4094DEFINE_GUID(IID_IPropertyStoreFactory, 0xbc110b6d, 0x57e8, 0x4148, 0xa9,0xc6, 0x91,0x01,0x5a,0xb2,0xf3,0xa5);
4095#if defined(__cplusplus) && !defined(CINTERFACE)
4096MIDL_INTERFACE("bc110b6d-57e8-4148-a9c6-91015ab2f3a5")
4097IPropertyStoreFactory : 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
4117typedef 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;
4150interface 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 ***/
4165static FORCEINLINE HRESULT IPropertyStoreFactory_QueryInterface(IPropertyStoreFactory* This,REFIID riid,void **ppvObject) {
4166    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4167}
4168static FORCEINLINE ULONG IPropertyStoreFactory_AddRef(IPropertyStoreFactory* This) {
4169    return This->lpVtbl->AddRef(This);
4170}
4171static FORCEINLINE ULONG IPropertyStoreFactory_Release(IPropertyStoreFactory* This) {
4172    return This->lpVtbl->Release(This);
4173}
4174/*** IPropertyStoreFactory methods ***/
4175static 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}
4178static 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
4186HRESULT STDMETHODCALLTYPE IPropertyStoreFactory_GetPropertyStore_Proxy(
4187    IPropertyStoreFactory* This,
4188    GETPROPERTYSTOREFLAGS flags,
4189    IUnknown *pUnkFactory,
4190    REFIID riid,
4191    void **ppv);
4192void __RPC_STUB IPropertyStoreFactory_GetPropertyStore_Stub(
4193    IRpcStubBuffer* This,
4194    IRpcChannelBuffer* pRpcChannelBuffer,
4195    PRPC_MESSAGE pRpcMessage,
4196    DWORD* pdwStubPhase);
4197HRESULT STDMETHODCALLTYPE IPropertyStoreFactory_GetPropertyStoreForKeys_Proxy(
4198    IPropertyStoreFactory* This,
4199    const PROPERTYKEY *rgKeys,
4200    UINT cKeys,
4201    GETPROPERTYSTOREFLAGS flags,
4202    REFIID riid,
4203    void **ppv);
4204void __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
4219DEFINE_GUID(IID_IDelayedPropertyStoreFactory, 0x40d4577f, 0xe237, 0x4bdb, 0xbd,0x69, 0x58,0xf0,0x89,0x43,0x1b,0x6a);
4220#if defined(__cplusplus) && !defined(CINTERFACE)
4221MIDL_INTERFACE("40d4577f-e237-4bdb-bd69-58f089431b6a")
4222IDelayedPropertyStoreFactory : 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
4235typedef 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;
4276interface 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 ***/
4293static FORCEINLINE HRESULT IDelayedPropertyStoreFactory_QueryInterface(IDelayedPropertyStoreFactory* This,REFIID riid,void **ppvObject) {
4294    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4295}
4296static FORCEINLINE ULONG IDelayedPropertyStoreFactory_AddRef(IDelayedPropertyStoreFactory* This) {
4297    return This->lpVtbl->AddRef(This);
4298}
4299static FORCEINLINE ULONG IDelayedPropertyStoreFactory_Release(IDelayedPropertyStoreFactory* This) {
4300    return This->lpVtbl->Release(This);
4301}
4302/*** IPropertyStoreFactory methods ***/
4303static 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}
4306static 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 ***/
4310static 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
4318HRESULT STDMETHODCALLTYPE IDelayedPropertyStoreFactory_GetDelayedPropertyStore_Proxy(
4319    IDelayedPropertyStoreFactory* This,
4320    GETPROPERTYSTOREFLAGS flags,
4321    DWORD dwStoreId,
4322    REFIID riid,
4323    void **ppv);
4324void __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
4333enum _PERSIST_SPROPSTORE_FLAGS {
4334    FPSPS_DEFAULT = 0x0,
4335    FPSPS_READONLY = 0x1,
4336    FPSPS_TREAT_NEW_VALUES_AS_DIRTY = 0x2
4337};
4338
4339
4340typedef int PERSIST_SPROPSTORE_FLAGS;
4341typedef struct tagSERIALIZEDPROPSTORAGE SERIALIZEDPROPSTORAGE;
4342typedef SERIALIZEDPROPSTORAGE *PUSERIALIZEDPROPSTORAGE;
4343typedef const SERIALIZEDPROPSTORAGE *PCUSERIALIZEDPROPSTORAGE;
4344
4345/*****************************************************************************
4346 * IPersistSerializedPropStorage interface
4347 */
4348#ifndef __IPersistSerializedPropStorage_INTERFACE_DEFINED__
4349#define __IPersistSerializedPropStorage_INTERFACE_DEFINED__
4350
4351DEFINE_GUID(IID_IPersistSerializedPropStorage, 0xe318ad57, 0x0aa0, 0x450f, 0xac,0xa5, 0x6f,0xab,0x71,0x03,0xd9,0x17);
4352#if defined(__cplusplus) && !defined(CINTERFACE)
4353MIDL_INTERFACE("e318ad57-0aa0-450f-aca5-6fab7103d917")
4354IPersistSerializedPropStorage : 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
4372typedef 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;
4404interface 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 ***/
4420static FORCEINLINE HRESULT IPersistSerializedPropStorage_QueryInterface(IPersistSerializedPropStorage* This,REFIID riid,void **ppvObject) {
4421    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4422}
4423static FORCEINLINE ULONG IPersistSerializedPropStorage_AddRef(IPersistSerializedPropStorage* This) {
4424    return This->lpVtbl->AddRef(This);
4425}
4426static FORCEINLINE ULONG IPersistSerializedPropStorage_Release(IPersistSerializedPropStorage* This) {
4427    return This->lpVtbl->Release(This);
4428}
4429/*** IPersistSerializedPropStorage methods ***/
4430static FORCEINLINE HRESULT IPersistSerializedPropStorage_SetFlags(IPersistSerializedPropStorage* This,PERSIST_SPROPSTORE_FLAGS flags) {
4431    return This->lpVtbl->SetFlags(This,flags);
4432}
4433static FORCEINLINE HRESULT IPersistSerializedPropStorage_SetPropertyStorage(IPersistSerializedPropStorage* This,PCUSERIALIZEDPROPSTORAGE psps,DWORD cb) {
4434    return This->lpVtbl->SetPropertyStorage(This,psps,cb);
4435}
4436static 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
4444HRESULT STDMETHODCALLTYPE IPersistSerializedPropStorage_SetFlags_Proxy(
4445    IPersistSerializedPropStorage* This,
4446    PERSIST_SPROPSTORE_FLAGS flags);
4447void __RPC_STUB IPersistSerializedPropStorage_SetFlags_Stub(
4448    IRpcStubBuffer* This,
4449    IRpcChannelBuffer* pRpcChannelBuffer,
4450    PRPC_MESSAGE pRpcMessage,
4451    DWORD* pdwStubPhase);
4452HRESULT STDMETHODCALLTYPE IPersistSerializedPropStorage_SetPropertyStorage_Proxy(
4453    IPersistSerializedPropStorage* This,
4454    PCUSERIALIZEDPROPSTORAGE psps,
4455    DWORD cb);
4456void __RPC_STUB IPersistSerializedPropStorage_SetPropertyStorage_Stub(
4457    IRpcStubBuffer* This,
4458    IRpcChannelBuffer* pRpcChannelBuffer,
4459    PRPC_MESSAGE pRpcMessage,
4460    DWORD* pdwStubPhase);
4461HRESULT STDMETHODCALLTYPE IPersistSerializedPropStorage_GetPropertyStorage_Proxy(
4462    IPersistSerializedPropStorage* This,
4463    SERIALIZEDPROPSTORAGE **ppsps,
4464    DWORD *pcb);
4465void __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
4480DEFINE_GUID(IID_IPersistSerializedPropStorage2, 0x77effa68, 0x4f98, 0x4366, 0xba,0x72, 0x57,0x3b,0x3d,0x88,0x05,0x71);
4481#if defined(__cplusplus) && !defined(CINTERFACE)
4482MIDL_INTERFACE("77effa68-4f98-4366-ba72-573b3d880571")
4483IPersistSerializedPropStorage2 : 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
4498typedef 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;
4541interface 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 ***/
4560static FORCEINLINE HRESULT IPersistSerializedPropStorage2_QueryInterface(IPersistSerializedPropStorage2* This,REFIID riid,void **ppvObject) {
4561    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4562}
4563static FORCEINLINE ULONG IPersistSerializedPropStorage2_AddRef(IPersistSerializedPropStorage2* This) {
4564    return This->lpVtbl->AddRef(This);
4565}
4566static FORCEINLINE ULONG IPersistSerializedPropStorage2_Release(IPersistSerializedPropStorage2* This) {
4567    return This->lpVtbl->Release(This);
4568}
4569/*** IPersistSerializedPropStorage methods ***/
4570static FORCEINLINE HRESULT IPersistSerializedPropStorage2_SetFlags(IPersistSerializedPropStorage2* This,PERSIST_SPROPSTORE_FLAGS flags) {
4571    return This->lpVtbl->SetFlags(This,flags);
4572}
4573static FORCEINLINE HRESULT IPersistSerializedPropStorage2_SetPropertyStorage(IPersistSerializedPropStorage2* This,PCUSERIALIZEDPROPSTORAGE psps,DWORD cb) {
4574    return This->lpVtbl->SetPropertyStorage(This,psps,cb);
4575}
4576static FORCEINLINE HRESULT IPersistSerializedPropStorage2_GetPropertyStorage(IPersistSerializedPropStorage2* This,SERIALIZEDPROPSTORAGE **ppsps,DWORD *pcb) {
4577    return This->lpVtbl->GetPropertyStorage(This,ppsps,pcb);
4578}
4579/*** IPersistSerializedPropStorage2 methods ***/
4580static FORCEINLINE HRESULT IPersistSerializedPropStorage2_GetPropertyStorageSize(IPersistSerializedPropStorage2* This,DWORD *pcb) {
4581    return This->lpVtbl->GetPropertyStorageSize(This,pcb);
4582}
4583static 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
4591HRESULT STDMETHODCALLTYPE IPersistSerializedPropStorage2_GetPropertyStorageSize_Proxy(
4592    IPersistSerializedPropStorage2* This,
4593    DWORD *pcb);
4594void __RPC_STUB IPersistSerializedPropStorage2_GetPropertyStorageSize_Stub(
4595    IRpcStubBuffer* This,
4596    IRpcChannelBuffer* pRpcChannelBuffer,
4597    PRPC_MESSAGE pRpcMessage,
4598    DWORD* pdwStubPhase);
4599HRESULT STDMETHODCALLTYPE IPersistSerializedPropStorage2_GetPropertyStorageBuffer_Proxy(
4600    IPersistSerializedPropStorage2* This,
4601    SERIALIZEDPROPSTORAGE *psps,
4602    DWORD cb,
4603    DWORD *pcbWritten);
4604void __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
4619DEFINE_GUID(IID_IPropertySystemChangeNotify, 0xfa955fd9, 0x38be, 0x4879, 0xa6,0xce, 0x82,0x4c,0xf5,0x2d,0x60,0x9f);
4620#if defined(__cplusplus) && !defined(CINTERFACE)
4621MIDL_INTERFACE("fa955fd9-38be-4879-a6ce-824cf52d609f")
4622IPropertySystemChangeNotify : 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
4632typedef 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;
4653interface 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 ***/
4667static FORCEINLINE HRESULT IPropertySystemChangeNotify_QueryInterface(IPropertySystemChangeNotify* This,REFIID riid,void **ppvObject) {
4668    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4669}
4670static FORCEINLINE ULONG IPropertySystemChangeNotify_AddRef(IPropertySystemChangeNotify* This) {
4671    return This->lpVtbl->AddRef(This);
4672}
4673static FORCEINLINE ULONG IPropertySystemChangeNotify_Release(IPropertySystemChangeNotify* This) {
4674    return This->lpVtbl->Release(This);
4675}
4676/*** IPropertySystemChangeNotify methods ***/
4677static FORCEINLINE HRESULT IPropertySystemChangeNotify_SchemaRefreshed(IPropertySystemChangeNotify* This) {
4678    return This->lpVtbl->SchemaRefreshed(This);
4679}
4680#endif
4681#endif
4682
4683#endif
4684
4685HRESULT STDMETHODCALLTYPE IPropertySystemChangeNotify_SchemaRefreshed_Proxy(
4686    IPropertySystemChangeNotify* This);
4687void __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
4702DEFINE_GUID(IID_ICreateObject, 0x75121952, 0xe0d0, 0x43e5, 0x93,0x80, 0x1d,0x80,0x48,0x3a,0xcf,0x72);
4703#if defined(__cplusplus) && !defined(CINTERFACE)
4704MIDL_INTERFACE("75121952-e0d0-43e5-9380-1d80483acf72")
4705ICreateObject : 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
4718typedef 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;
4743interface 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 ***/
4757static FORCEINLINE HRESULT ICreateObject_QueryInterface(ICreateObject* This,REFIID riid,void **ppvObject) {
4758    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4759}
4760static FORCEINLINE ULONG ICreateObject_AddRef(ICreateObject* This) {
4761    return This->lpVtbl->AddRef(This);
4762}
4763static FORCEINLINE ULONG ICreateObject_Release(ICreateObject* This) {
4764    return This->lpVtbl->Release(This);
4765}
4766/*** ICreateObject methods ***/
4767static 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
4775HRESULT STDMETHODCALLTYPE ICreateObject_CreateObject_Proxy(
4776    ICreateObject* This,
4777    REFCLSID clsid,
4778    IUnknown *pUnkOuter,
4779    REFIID riid,
4780    void **ppv);
4781void __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
4794PSSTDAPI PSCoerceToCanonicalValue(REFPROPERTYKEY key, PROPVARIANT *ppropvar);
4795PSSTDAPI PSCreateAdapterFromPropertyStore(IPropertyStore *pps, REFIID riid, void **ppv);
4796PSSTDAPI PSCreateDelayedMultiplexPropertyStore(GETPROPERTYSTOREFLAGS flags, IDelayedPropertyStoreFactory *pdpsf, const DWORD *rgStoreIds, DWORD cStores, REFIID riid, void **ppv);
4797PSSTDAPI PSCreateMemoryPropertyStore(REFIID riid, void **ppv);
4798PSSTDAPI PSCreateMultiplexPropertyStore(IUnknown **prgpunkStores, DWORD cStores, REFIID riid, void **ppv);
4799PSSTDAPI PSCreatePropertyChangeArray(const PROPERTYKEY *rgpropkey, const PKA_FLAGS *rgflags, const PROPVARIANT *rgpropvar, UINT cChanges, REFIID riid, void **ppv);
4800PSSTDAPI PSCreatePropertyStoreFromObject(IUnknown *punk, DWORD grfMode, REFIID riid, void **ppv);
4801PSSTDAPI PSCreatePropertyStoreFromPropertySetStorage(IPropertySetStorage *ppss, DWORD grfMode, REFIID riid, void **ppv);
4802PSSTDAPI PSCreateSimplePropertyChange(PKA_FLAGS flags, REFPROPERTYKEY key, REFPROPVARIANT propvar, REFIID riid, void **ppv);
4803PSSTDAPI PSEnumeratePropertyDescriptions(PROPDESC_ENUMFILTER filterOn, REFIID riid, void **ppv);
4804PSSTDAPI PSFormatForDisplay(REFPROPERTYKEY propkey, REFPROPVARIANT propvar, PROPDESC_FORMAT_FLAGS pdfFlags, LPWSTR pwszText, DWORD cchText);
4805PSSTDAPI PSFormatForDisplayAlloc(REFPROPERTYKEY key, REFPROPVARIANT propvar, PROPDESC_FORMAT_FLAGS pdff, PWSTR *ppszDisplay);
4806PSSTDAPI PSFormatPropertyValue(IPropertyStore *pps, IPropertyDescription *ppd, PROPDESC_FORMAT_FLAGS pdff, LPWSTR *ppszDisplay);
4807PSSTDAPI PSGetImageReferenceForValue(REFPROPERTYKEY propkey, REFPROPVARIANT propvar, PWSTR *ppszImageRes);
4808PSSTDAPI PSGetItemPropertyHandler(IUnknown *punkItem, BOOL fReadWrite, REFIID riid, void **ppv);
4809PSSTDAPI PSGetItemPropertyHandlerWithCreateObject(IUnknown *punkItem, BOOL fReadWrite, IUnknown *punkCreateObject, REFIID riid, void **ppv);
4810PSSTDAPI PSGetNamedPropertyFromPropertyStorage(PCUSERIALIZEDPROPSTORAGE psps, DWORD cb, LPCWSTR pszName, PROPVARIANT *ppropvar);
4811PSSTDAPI PSGetNameFromPropertyKey(REFPROPERTYKEY propkey, PWSTR *ppszCanonicalName);
4812PSSTDAPI PSGetPropertyDescription(REFPROPERTYKEY propkey, REFIID riid, void **ppv);
4813PSSTDAPI PSGetPropertyDescriptionByName(LPCWSTR pszCanonicalName, REFIID riid, void **ppv);
4814PSSTDAPI PSGetPropertyDescriptionListFromString(LPCWSTR pszPropList, REFIID riid, void **ppv);
4815PSSTDAPI PSGetPropertyFromPropertyStorage(PCUSERIALIZEDPROPSTORAGE psps, DWORD cb, REFPROPERTYKEY rpkey, PROPVARIANT *ppropvar);
4816PSSTDAPI PSGetPropertyKeyFromName(PCWSTR pszName, PROPERTYKEY *ppropkey);
4817PSSTDAPI PSGetPropertySystem(REFIID riid, void **ppv);
4818PSSTDAPI PSGetPropertyValue(IPropertyStore *pps, IPropertyDescription *ppd, PROPVARIANT *ppropvar);
4819PSSTDAPI PSLookupPropertyHandlerCLSID(PCWSTR pszFilePath, CLSID *pclsid);
4820PSSTDAPI PSPropertyBag_Delete(IPropertyBag *propBag, LPCWSTR propName);
4821PSSTDAPI PSPropertyBag_ReadBOOL(IPropertyBag *propBag, LPCWSTR propName, BOOL *value);
4822PSSTDAPI PSPropertyBag_ReadBSTR(IPropertyBag *propBag, LPCWSTR propName, BSTR *value);
4823PSSTDAPI PSPropertyBag_ReadDWORD(IPropertyBag *propBag, LPCWSTR propName, DWORD *value);
4824PSSTDAPI PSPropertyBag_ReadGUID(IPropertyBag *propBag, LPCWSTR propName, GUID *value);
4825PSSTDAPI PSPropertyBag_ReadInt(IPropertyBag *propBag, LPCWSTR propName, INT *value);
4826PSSTDAPI PSPropertyBag_ReadLONG(IPropertyBag *propBag, LPCWSTR propName, LONG *value);
4827PSSTDAPI PSPropertyBag_ReadPOINTL(IPropertyBag *propBag, LPCWSTR propName, POINTL *value);
4828PSSTDAPI PSPropertyBag_ReadPOINTS(IPropertyBag *propBag, LPCWSTR propName, POINTS *value);
4829PSSTDAPI PSPropertyBag_ReadPropertyKey(IPropertyBag *propBag, LPCWSTR propName, PROPERTYKEY *value);
4830PSSTDAPI PSPropertyBag_ReadRECTL(IPropertyBag *propBag, LPCWSTR propName, RECTL *value);
4831PSSTDAPI PSPropertyBag_ReadSHORT(IPropertyBag *propBag, LPCWSTR propName, SHORT *value);
4832PSSTDAPI PSPropertyBag_ReadStr(IPropertyBag *propBag, LPCWSTR propName, LPWSTR value, int characterCount);
4833PSSTDAPI PSPropertyBag_ReadStrAlloc(IPropertyBag *propBag, LPCWSTR propName, PWSTR *value);
4834PSSTDAPI PSPropertyBag_ReadStream(IPropertyBag *propBag, LPCWSTR propName, IStream **value);
4835PSSTDAPI PSPropertyBag_ReadType(IPropertyBag *propBag, LPCWSTR propName, VARIANT *var, VARTYPE type);
4836PSSTDAPI PSPropertyBag_ReadULONGLONG(IPropertyBag *propBag, LPCWSTR propName, ULONGLONG *value);
4837PSSTDAPI PSPropertyBag_ReadUnknown(IPropertyBag *propBag, LPCWSTR propName, REFIID riid, void **ppv);
4838PSSTDAPI PSPropertyBag_WriteBOOL(IPropertyBag *propBag, LPCWSTR propName, BOOL value);
4839PSSTDAPI PSPropertyBag_WriteBSTR(IPropertyBag *propBag, LPCWSTR propName, BSTR value);
4840PSSTDAPI PSPropertyBag_WriteDWORD(IPropertyBag *propBag, LPCWSTR propName, DWORD value);
4841PSSTDAPI PSPropertyBag_WriteGUID(IPropertyBag *propBag, LPCWSTR propName, const GUID *value);
4842PSSTDAPI PSPropertyBag_WriteInt(IPropertyBag *propBag, LPCWSTR propName, INT value);
4843PSSTDAPI PSPropertyBag_WriteLONG(IPropertyBag *propBag, LPCWSTR propName, LONG value);
4844PSSTDAPI PSPropertyBag_WritePOINTL(IPropertyBag *propBag, LPCWSTR propName, const POINTL *value);
4845PSSTDAPI PSPropertyBag_WritePOINTS(IPropertyBag *propBag, LPCWSTR propName, const POINTS *value);
4846PSSTDAPI PSPropertyBag_WritePropertyKey(IPropertyBag *propBag, LPCWSTR propName, REFPROPERTYKEY value);
4847PSSTDAPI PSPropertyBag_WriteRECTL(IPropertyBag *propBag, LPCWSTR propName, const RECTL *value);
4848PSSTDAPI PSPropertyBag_WriteSHORT(IPropertyBag *propBag, LPCWSTR propName, SHORT value);
4849PSSTDAPI PSPropertyBag_WriteStr(IPropertyBag *propBag, LPCWSTR propName, LPCWSTR value);
4850PSSTDAPI PSPropertyBag_WriteStream(IPropertyBag *propBag, LPCWSTR propName, IStream *value);
4851PSSTDAPI PSPropertyBag_WriteULONGLONG(IPropertyBag *propBag, LPCWSTR propName, ULONGLONG value);
4852PSSTDAPI PSPropertyBag_WriteUnknown(IPropertyBag *propBag, LPCWSTR propName, IUnknown *punk);
4853PSSTDAPI PSPropertyKeyFromString(LPCWSTR pszString, PROPERTYKEY *pkey);
4854PSSTDAPI PSRefreshPropertySchema(void);
4855PSSTDAPI PSRegisterPropertySchema(PCWSTR pszPath);
4856PSSTDAPI PSSetPropertyValue(IPropertyStore *pps, IPropertyDescription *ppd, REFPROPVARIANT propvar);
4857PSSTDAPI PSStringFromPropertyKey(REFPROPERTYKEY pkey, LPWSTR psz, UINT cch);
4858PSSTDAPI PSUnregisterPropertySchema(PCWSTR pszPath);
4859
4860
4861DEFINE_GUID(LIBID_PropSysObjects, 0x2cda3294, 0x6c4f, 0x4020, 0xb1,0x61, 0x27,0xc5,0x30,0xc8,0x1f,0xa6);
4862
4863/*****************************************************************************
4864 * InMemoryPropertyStore coclass
4865 */
4866
4867DEFINE_GUID(CLSID_InMemoryPropertyStore, 0x9a02e012, 0x6303, 0x4e1e, 0xb9,0xa1, 0x63,0x0f,0x80,0x25,0x92,0xc5);
4868
4869#ifdef __cplusplus
4870class 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
4880DEFINE_GUID(CLSID_PropertySystem, 0xb8967f85, 0x58ae, 0x4f46, 0x9f,0xb2, 0x5d,0x79,0x04,0x79,0x8f,0x4b);
4881
4882#ifdef __cplusplus
4883class 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
4892ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
4893unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
4894unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
4895void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
4896ULONG           __RPC_USER LPSAFEARRAY_UserSize     (ULONG *, ULONG, LPSAFEARRAY *);
4897unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal  (ULONG *, unsigned char *, LPSAFEARRAY *);
4898unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(ULONG *, unsigned char *, LPSAFEARRAY *);
4899void            __RPC_USER LPSAFEARRAY_UserFree     (ULONG *, LPSAFEARRAY *);
4900
4901/* End additional prototypes */
4902
4903#ifdef __cplusplus
4904}
4905#endif
4906
4907#endif /* __propsys_h__ */
4908