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