zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

propsys.h (174032B) - Raw


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