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