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