gearmulator

Emulation of classic VA synths of the late 90s/2000s that are based on Motorola 56300 family DSPs
Log | Files | Refs | Submodules | README | LICENSE

propsys.h (116683B)


      1 
      2 
      3 /* this ALWAYS GENERATED file contains the definitions for the interfaces */
      4 
      5 
      6  /* File created by MIDL compiler version 7.00.0499 */
      7 /* Compiler settings for propsys.idl:
      8     Oicf, W1, Zp8, env=Win32 (32b run)
      9     protocol : dce , ms_ext, c_ext, robust
     10     error checks: allocation ref bounds_check enum stub_data 
     11     VC __declspec() decoration level: 
     12          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
     13          DECLSPEC_UUID(), MIDL_INTERFACE()
     14 */
     15 //@@MIDL_FILE_HEADING(  )
     16 
     17 #pragma warning( disable: 4049 )  /* more than 64k source lines */
     18 
     19 
     20 /* verify that the <rpcndr.h> version is high enough to compile this file*/
     21 #ifndef __REQUIRED_RPCNDR_H_VERSION__
     22 #define __REQUIRED_RPCNDR_H_VERSION__ 475
     23 #endif
     24 
     25 /* verify that the <rpcsal.h> version is high enough to compile this file*/
     26 #ifndef __REQUIRED_RPCSAL_H_VERSION__
     27 #define __REQUIRED_RPCSAL_H_VERSION__ 100
     28 #endif
     29 
     30 #include "rpc.h"
     31 #include "rpcndr.h"
     32 
     33 #ifndef __RPCNDR_H_VERSION__
     34 #error this stub requires an updated version of <rpcndr.h>
     35 #endif // __RPCNDR_H_VERSION__
     36 
     37 #ifndef COM_NO_WINDOWS_H
     38 #include "windows.h"
     39 #include "ole2.h"
     40 #endif /*COM_NO_WINDOWS_H*/
     41 
     42 #ifndef __propsys_h__
     43 #define __propsys_h__
     44 
     45 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
     46 #pragma once
     47 #endif
     48 
     49 /* Forward Declarations */ 
     50 
     51 #ifndef __IInitializeWithFile_FWD_DEFINED__
     52 #define __IInitializeWithFile_FWD_DEFINED__
     53 typedef interface IInitializeWithFile IInitializeWithFile;
     54 #endif 	/* __IInitializeWithFile_FWD_DEFINED__ */
     55 
     56 
     57 #ifndef __IInitializeWithStream_FWD_DEFINED__
     58 #define __IInitializeWithStream_FWD_DEFINED__
     59 typedef interface IInitializeWithStream IInitializeWithStream;
     60 #endif 	/* __IInitializeWithStream_FWD_DEFINED__ */
     61 
     62 
     63 #ifndef __IPropertyStore_FWD_DEFINED__
     64 #define __IPropertyStore_FWD_DEFINED__
     65 typedef interface IPropertyStore IPropertyStore;
     66 #endif 	/* __IPropertyStore_FWD_DEFINED__ */
     67 
     68 
     69 #ifndef __INamedPropertyStore_FWD_DEFINED__
     70 #define __INamedPropertyStore_FWD_DEFINED__
     71 typedef interface INamedPropertyStore INamedPropertyStore;
     72 #endif 	/* __INamedPropertyStore_FWD_DEFINED__ */
     73 
     74 
     75 #ifndef __IObjectWithPropertyKey_FWD_DEFINED__
     76 #define __IObjectWithPropertyKey_FWD_DEFINED__
     77 typedef interface IObjectWithPropertyKey IObjectWithPropertyKey;
     78 #endif 	/* __IObjectWithPropertyKey_FWD_DEFINED__ */
     79 
     80 
     81 #ifndef __IPropertyChange_FWD_DEFINED__
     82 #define __IPropertyChange_FWD_DEFINED__
     83 typedef interface IPropertyChange IPropertyChange;
     84 #endif 	/* __IPropertyChange_FWD_DEFINED__ */
     85 
     86 
     87 #ifndef __IPropertyChangeArray_FWD_DEFINED__
     88 #define __IPropertyChangeArray_FWD_DEFINED__
     89 typedef interface IPropertyChangeArray IPropertyChangeArray;
     90 #endif 	/* __IPropertyChangeArray_FWD_DEFINED__ */
     91 
     92 
     93 #ifndef __IPropertyStoreCapabilities_FWD_DEFINED__
     94 #define __IPropertyStoreCapabilities_FWD_DEFINED__
     95 typedef interface IPropertyStoreCapabilities IPropertyStoreCapabilities;
     96 #endif 	/* __IPropertyStoreCapabilities_FWD_DEFINED__ */
     97 
     98 
     99 #ifndef __IPropertyStoreCache_FWD_DEFINED__
    100 #define __IPropertyStoreCache_FWD_DEFINED__
    101 typedef interface IPropertyStoreCache IPropertyStoreCache;
    102 #endif 	/* __IPropertyStoreCache_FWD_DEFINED__ */
    103 
    104 
    105 #ifndef __IPropertyEnumType_FWD_DEFINED__
    106 #define __IPropertyEnumType_FWD_DEFINED__
    107 typedef interface IPropertyEnumType IPropertyEnumType;
    108 #endif 	/* __IPropertyEnumType_FWD_DEFINED__ */
    109 
    110 
    111 #ifndef __IPropertyEnumTypeList_FWD_DEFINED__
    112 #define __IPropertyEnumTypeList_FWD_DEFINED__
    113 typedef interface IPropertyEnumTypeList IPropertyEnumTypeList;
    114 #endif 	/* __IPropertyEnumTypeList_FWD_DEFINED__ */
    115 
    116 
    117 #ifndef __IPropertyDescription_FWD_DEFINED__
    118 #define __IPropertyDescription_FWD_DEFINED__
    119 typedef interface IPropertyDescription IPropertyDescription;
    120 #endif 	/* __IPropertyDescription_FWD_DEFINED__ */
    121 
    122 
    123 #ifndef __IPropertyDescriptionAliasInfo_FWD_DEFINED__
    124 #define __IPropertyDescriptionAliasInfo_FWD_DEFINED__
    125 typedef interface IPropertyDescriptionAliasInfo IPropertyDescriptionAliasInfo;
    126 #endif 	/* __IPropertyDescriptionAliasInfo_FWD_DEFINED__ */
    127 
    128 
    129 #ifndef __IPropertyDescriptionSearchInfo_FWD_DEFINED__
    130 #define __IPropertyDescriptionSearchInfo_FWD_DEFINED__
    131 typedef interface IPropertyDescriptionSearchInfo IPropertyDescriptionSearchInfo;
    132 #endif 	/* __IPropertyDescriptionSearchInfo_FWD_DEFINED__ */
    133 
    134 
    135 #ifndef __IPropertySystem_FWD_DEFINED__
    136 #define __IPropertySystem_FWD_DEFINED__
    137 typedef interface IPropertySystem IPropertySystem;
    138 #endif 	/* __IPropertySystem_FWD_DEFINED__ */
    139 
    140 
    141 #ifndef __IPropertyDescriptionList_FWD_DEFINED__
    142 #define __IPropertyDescriptionList_FWD_DEFINED__
    143 typedef interface IPropertyDescriptionList IPropertyDescriptionList;
    144 #endif 	/* __IPropertyDescriptionList_FWD_DEFINED__ */
    145 
    146 
    147 #ifndef __IPropertyStoreFactory_FWD_DEFINED__
    148 #define __IPropertyStoreFactory_FWD_DEFINED__
    149 typedef interface IPropertyStoreFactory IPropertyStoreFactory;
    150 #endif 	/* __IPropertyStoreFactory_FWD_DEFINED__ */
    151 
    152 
    153 #ifndef __IDelayedPropertyStoreFactory_FWD_DEFINED__
    154 #define __IDelayedPropertyStoreFactory_FWD_DEFINED__
    155 typedef interface IDelayedPropertyStoreFactory IDelayedPropertyStoreFactory;
    156 #endif 	/* __IDelayedPropertyStoreFactory_FWD_DEFINED__ */
    157 
    158 
    159 #ifndef __IPersistSerializedPropStorage_FWD_DEFINED__
    160 #define __IPersistSerializedPropStorage_FWD_DEFINED__
    161 typedef interface IPersistSerializedPropStorage IPersistSerializedPropStorage;
    162 #endif 	/* __IPersistSerializedPropStorage_FWD_DEFINED__ */
    163 
    164 
    165 #ifndef __IPropertySystemChangeNotify_FWD_DEFINED__
    166 #define __IPropertySystemChangeNotify_FWD_DEFINED__
    167 typedef interface IPropertySystemChangeNotify IPropertySystemChangeNotify;
    168 #endif 	/* __IPropertySystemChangeNotify_FWD_DEFINED__ */
    169 
    170 
    171 #ifndef __ICreateObject_FWD_DEFINED__
    172 #define __ICreateObject_FWD_DEFINED__
    173 typedef interface ICreateObject ICreateObject;
    174 #endif 	/* __ICreateObject_FWD_DEFINED__ */
    175 
    176 
    177 #ifndef __InMemoryPropertyStore_FWD_DEFINED__
    178 #define __InMemoryPropertyStore_FWD_DEFINED__
    179 
    180 #ifdef __cplusplus
    181 typedef class InMemoryPropertyStore InMemoryPropertyStore;
    182 #else
    183 typedef struct InMemoryPropertyStore InMemoryPropertyStore;
    184 #endif /* __cplusplus */
    185 
    186 #endif 	/* __InMemoryPropertyStore_FWD_DEFINED__ */
    187 
    188 
    189 #ifndef __PropertySystem_FWD_DEFINED__
    190 #define __PropertySystem_FWD_DEFINED__
    191 
    192 #ifdef __cplusplus
    193 typedef class PropertySystem PropertySystem;
    194 #else
    195 typedef struct PropertySystem PropertySystem;
    196 #endif /* __cplusplus */
    197 
    198 #endif 	/* __PropertySystem_FWD_DEFINED__ */
    199 
    200 
    201 /* header files for imported files */
    202 #include "objidl.h"
    203 #include "oleidl.h"
    204 #include "ocidl.h"
    205 #include "shtypes.h"
    206 #include "structuredquery.h"
    207 
    208 #ifdef __cplusplus
    209 extern "C"{
    210 #endif 
    211 
    212 
    213 /* interface __MIDL_itf_propsys_0000_0000 */
    214 /* [local] */ 
    215 
    216 #ifndef PSSTDAPI
    217 #if defined(_PROPSYS_)
    218 #define PSSTDAPI          STDAPI
    219 #define PSSTDAPI_(type)   STDAPI_(type)
    220 #else
    221 #define PSSTDAPI          EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE
    222 #define PSSTDAPI_(type)   EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE
    223 #endif
    224 #endif // PSSTDAPI
    225 #if 0
    226 typedef PROPERTYKEY *REFPROPERTYKEY;
    227 
    228 #endif // 0
    229 #include <propkeydef.h>
    230 
    231 
    232 extern RPC_IF_HANDLE __MIDL_itf_propsys_0000_0000_v0_0_c_ifspec;
    233 extern RPC_IF_HANDLE __MIDL_itf_propsys_0000_0000_v0_0_s_ifspec;
    234 
    235 #ifndef __IInitializeWithFile_INTERFACE_DEFINED__
    236 #define __IInitializeWithFile_INTERFACE_DEFINED__
    237 
    238 /* interface IInitializeWithFile */
    239 /* [unique][object][uuid] */ 
    240 
    241 
    242 EXTERN_C const IID IID_IInitializeWithFile;
    243 
    244 #if defined(__cplusplus) && !defined(CINTERFACE)
    245     
    246     MIDL_INTERFACE("b7d14566-0509-4cce-a71f-0a554233bd9b")
    247     IInitializeWithFile : public IUnknown
    248     {
    249     public:
    250         virtual HRESULT STDMETHODCALLTYPE Initialize( 
    251             /* [string][in] */ __RPC__in LPCWSTR pszFilePath,
    252             /* [in] */ DWORD grfMode) = 0;
    253         
    254     };
    255     
    256 #else 	/* C style interface */
    257 
    258     typedef struct IInitializeWithFileVtbl
    259     {
    260         BEGIN_INTERFACE
    261         
    262         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
    263             IInitializeWithFile * This,
    264             /* [in] */ __RPC__in REFIID riid,
    265             /* [iid_is][out] */ 
    266             __RPC__deref_out  void **ppvObject);
    267         
    268         ULONG ( STDMETHODCALLTYPE *AddRef )( 
    269             IInitializeWithFile * This);
    270         
    271         ULONG ( STDMETHODCALLTYPE *Release )( 
    272             IInitializeWithFile * This);
    273         
    274         HRESULT ( STDMETHODCALLTYPE *Initialize )( 
    275             IInitializeWithFile * This,
    276             /* [string][in] */ __RPC__in LPCWSTR pszFilePath,
    277             /* [in] */ DWORD grfMode);
    278         
    279         END_INTERFACE
    280     } IInitializeWithFileVtbl;
    281 
    282     interface IInitializeWithFile
    283     {
    284         CONST_VTBL struct IInitializeWithFileVtbl *lpVtbl;
    285     };
    286 
    287     
    288 
    289 #ifdef COBJMACROS
    290 
    291 
    292 #define IInitializeWithFile_QueryInterface(This,riid,ppvObject)	\
    293     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
    294 
    295 #define IInitializeWithFile_AddRef(This)	\
    296     ( (This)->lpVtbl -> AddRef(This) ) 
    297 
    298 #define IInitializeWithFile_Release(This)	\
    299     ( (This)->lpVtbl -> Release(This) ) 
    300 
    301 
    302 #define IInitializeWithFile_Initialize(This,pszFilePath,grfMode)	\
    303     ( (This)->lpVtbl -> Initialize(This,pszFilePath,grfMode) ) 
    304 
    305 #endif /* COBJMACROS */
    306 
    307 
    308 #endif 	/* C style interface */
    309 
    310 
    311 
    312 
    313 #endif 	/* __IInitializeWithFile_INTERFACE_DEFINED__ */
    314 
    315 
    316 #ifndef __IInitializeWithStream_INTERFACE_DEFINED__
    317 #define __IInitializeWithStream_INTERFACE_DEFINED__
    318 
    319 /* interface IInitializeWithStream */
    320 /* [unique][object][uuid] */ 
    321 
    322 
    323 EXTERN_C const IID IID_IInitializeWithStream;
    324 
    325 #if defined(__cplusplus) && !defined(CINTERFACE)
    326     
    327     MIDL_INTERFACE("b824b49d-22ac-4161-ac8a-9916e8fa3f7f")
    328     IInitializeWithStream : public IUnknown
    329     {
    330     public:
    331         virtual /* [local] */ HRESULT STDMETHODCALLTYPE Initialize( 
    332             /* [in] */ IStream *pstream,
    333             /* [in] */ DWORD grfMode) = 0;
    334         
    335     };
    336     
    337 #else 	/* C style interface */
    338 
    339     typedef struct IInitializeWithStreamVtbl
    340     {
    341         BEGIN_INTERFACE
    342         
    343         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
    344             IInitializeWithStream * This,
    345             /* [in] */ __RPC__in REFIID riid,
    346             /* [iid_is][out] */ 
    347             __RPC__deref_out  void **ppvObject);
    348         
    349         ULONG ( STDMETHODCALLTYPE *AddRef )( 
    350             IInitializeWithStream * This);
    351         
    352         ULONG ( STDMETHODCALLTYPE *Release )( 
    353             IInitializeWithStream * This);
    354         
    355         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Initialize )( 
    356             IInitializeWithStream * This,
    357             /* [in] */ IStream *pstream,
    358             /* [in] */ DWORD grfMode);
    359         
    360         END_INTERFACE
    361     } IInitializeWithStreamVtbl;
    362 
    363     interface IInitializeWithStream
    364     {
    365         CONST_VTBL struct IInitializeWithStreamVtbl *lpVtbl;
    366     };
    367 
    368     
    369 
    370 #ifdef COBJMACROS
    371 
    372 
    373 #define IInitializeWithStream_QueryInterface(This,riid,ppvObject)	\
    374     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
    375 
    376 #define IInitializeWithStream_AddRef(This)	\
    377     ( (This)->lpVtbl -> AddRef(This) ) 
    378 
    379 #define IInitializeWithStream_Release(This)	\
    380     ( (This)->lpVtbl -> Release(This) ) 
    381 
    382 
    383 #define IInitializeWithStream_Initialize(This,pstream,grfMode)	\
    384     ( (This)->lpVtbl -> Initialize(This,pstream,grfMode) ) 
    385 
    386 #endif /* COBJMACROS */
    387 
    388 
    389 #endif 	/* C style interface */
    390 
    391 
    392 
    393 /* [call_as] */ HRESULT STDMETHODCALLTYPE IInitializeWithStream_RemoteInitialize_Proxy( 
    394     IInitializeWithStream * This,
    395     /* [in] */ __RPC__in_opt IStream *pstream,
    396     /* [in] */ DWORD grfMode);
    397 
    398 
    399 void __RPC_STUB IInitializeWithStream_RemoteInitialize_Stub(
    400     IRpcStubBuffer *This,
    401     IRpcChannelBuffer *_pRpcChannelBuffer,
    402     PRPC_MESSAGE _pRpcMessage,
    403     DWORD *_pdwStubPhase);
    404 
    405 
    406 
    407 #endif 	/* __IInitializeWithStream_INTERFACE_DEFINED__ */
    408 
    409 
    410 #ifndef __IPropertyStore_INTERFACE_DEFINED__
    411 #define __IPropertyStore_INTERFACE_DEFINED__
    412 
    413 /* interface IPropertyStore */
    414 /* [unique][object][helpstring][uuid] */ 
    415 
    416 
    417 EXTERN_C const IID IID_IPropertyStore;
    418 
    419 #if defined(__cplusplus) && !defined(CINTERFACE)
    420     
    421     MIDL_INTERFACE("886d8eeb-8cf2-4446-8d02-cdba1dbdcf99")
    422     IPropertyStore : public IUnknown
    423     {
    424     public:
    425         virtual HRESULT STDMETHODCALLTYPE GetCount( 
    426             /* [out] */ __RPC__out DWORD *cProps) = 0;
    427         
    428         virtual HRESULT STDMETHODCALLTYPE GetAt( 
    429             /* [in] */ DWORD iProp,
    430             /* [out] */ __RPC__out PROPERTYKEY *pkey) = 0;
    431         
    432         virtual HRESULT STDMETHODCALLTYPE GetValue( 
    433             /* [in] */ __RPC__in REFPROPERTYKEY key,
    434             /* [out] */ __RPC__out PROPVARIANT *pv) = 0;
    435         
    436         virtual HRESULT STDMETHODCALLTYPE SetValue( 
    437             /* [in] */ __RPC__in REFPROPERTYKEY key,
    438             /* [in] */ __RPC__in REFPROPVARIANT propvar) = 0;
    439         
    440         virtual HRESULT STDMETHODCALLTYPE Commit( void) = 0;
    441         
    442     };
    443     
    444 #else 	/* C style interface */
    445 
    446     typedef struct IPropertyStoreVtbl
    447     {
    448         BEGIN_INTERFACE
    449         
    450         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
    451             IPropertyStore * This,
    452             /* [in] */ __RPC__in REFIID riid,
    453             /* [iid_is][out] */ 
    454             __RPC__deref_out  void **ppvObject);
    455         
    456         ULONG ( STDMETHODCALLTYPE *AddRef )( 
    457             IPropertyStore * This);
    458         
    459         ULONG ( STDMETHODCALLTYPE *Release )( 
    460             IPropertyStore * This);
    461         
    462         HRESULT ( STDMETHODCALLTYPE *GetCount )( 
    463             IPropertyStore * This,
    464             /* [out] */ __RPC__out DWORD *cProps);
    465         
    466         HRESULT ( STDMETHODCALLTYPE *GetAt )( 
    467             IPropertyStore * This,
    468             /* [in] */ DWORD iProp,
    469             /* [out] */ __RPC__out PROPERTYKEY *pkey);
    470         
    471         HRESULT ( STDMETHODCALLTYPE *GetValue )( 
    472             IPropertyStore * This,
    473             /* [in] */ __RPC__in REFPROPERTYKEY key,
    474             /* [out] */ __RPC__out PROPVARIANT *pv);
    475         
    476         HRESULT ( STDMETHODCALLTYPE *SetValue )( 
    477             IPropertyStore * This,
    478             /* [in] */ __RPC__in REFPROPERTYKEY key,
    479             /* [in] */ __RPC__in REFPROPVARIANT propvar);
    480         
    481         HRESULT ( STDMETHODCALLTYPE *Commit )( 
    482             IPropertyStore * This);
    483         
    484         END_INTERFACE
    485     } IPropertyStoreVtbl;
    486 
    487     interface IPropertyStore
    488     {
    489         CONST_VTBL struct IPropertyStoreVtbl *lpVtbl;
    490     };
    491 
    492     
    493 
    494 #ifdef COBJMACROS
    495 
    496 
    497 #define IPropertyStore_QueryInterface(This,riid,ppvObject)	\
    498     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
    499 
    500 #define IPropertyStore_AddRef(This)	\
    501     ( (This)->lpVtbl -> AddRef(This) ) 
    502 
    503 #define IPropertyStore_Release(This)	\
    504     ( (This)->lpVtbl -> Release(This) ) 
    505 
    506 
    507 #define IPropertyStore_GetCount(This,cProps)	\
    508     ( (This)->lpVtbl -> GetCount(This,cProps) ) 
    509 
    510 #define IPropertyStore_GetAt(This,iProp,pkey)	\
    511     ( (This)->lpVtbl -> GetAt(This,iProp,pkey) ) 
    512 
    513 #define IPropertyStore_GetValue(This,key,pv)	\
    514     ( (This)->lpVtbl -> GetValue(This,key,pv) ) 
    515 
    516 #define IPropertyStore_SetValue(This,key,propvar)	\
    517     ( (This)->lpVtbl -> SetValue(This,key,propvar) ) 
    518 
    519 #define IPropertyStore_Commit(This)	\
    520     ( (This)->lpVtbl -> Commit(This) ) 
    521 
    522 #endif /* COBJMACROS */
    523 
    524 
    525 #endif 	/* C style interface */
    526 
    527 
    528 
    529 
    530 #endif 	/* __IPropertyStore_INTERFACE_DEFINED__ */
    531 
    532 
    533 /* interface __MIDL_itf_propsys_0000_0003 */
    534 /* [local] */ 
    535 
    536 typedef /* [unique] */  __RPC_unique_pointer IPropertyStore *LPPROPERTYSTORE;
    537 
    538 
    539 
    540 extern RPC_IF_HANDLE __MIDL_itf_propsys_0000_0003_v0_0_c_ifspec;
    541 extern RPC_IF_HANDLE __MIDL_itf_propsys_0000_0003_v0_0_s_ifspec;
    542 
    543 #ifndef __INamedPropertyStore_INTERFACE_DEFINED__
    544 #define __INamedPropertyStore_INTERFACE_DEFINED__
    545 
    546 /* interface INamedPropertyStore */
    547 /* [unique][object][uuid] */ 
    548 
    549 
    550 EXTERN_C const IID IID_INamedPropertyStore;
    551 
    552 #if defined(__cplusplus) && !defined(CINTERFACE)
    553     
    554     MIDL_INTERFACE("71604b0f-97b0-4764-8577-2f13e98a1422")
    555     INamedPropertyStore : public IUnknown
    556     {
    557     public:
    558         virtual HRESULT STDMETHODCALLTYPE GetNamedValue( 
    559             /* [string][in] */ __RPC__in LPCWSTR pszName,
    560             /* [out] */ __RPC__out PROPVARIANT *ppropvar) = 0;
    561         
    562         virtual HRESULT STDMETHODCALLTYPE SetNamedValue( 
    563             /* [string][in] */ __RPC__in LPCWSTR pszName,
    564             /* [in] */ __RPC__in REFPROPVARIANT propvar) = 0;
    565         
    566         virtual HRESULT STDMETHODCALLTYPE GetNameCount( 
    567             /* [out] */ __RPC__out DWORD *pdwCount) = 0;
    568         
    569         virtual HRESULT STDMETHODCALLTYPE GetNameAt( 
    570             /* [in] */ DWORD iProp,
    571             /* [out] */ __RPC__deref_out_opt BSTR *pbstrName) = 0;
    572         
    573     };
    574     
    575 #else 	/* C style interface */
    576 
    577     typedef struct INamedPropertyStoreVtbl
    578     {
    579         BEGIN_INTERFACE
    580         
    581         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
    582             INamedPropertyStore * This,
    583             /* [in] */ __RPC__in REFIID riid,
    584             /* [iid_is][out] */ 
    585             __RPC__deref_out  void **ppvObject);
    586         
    587         ULONG ( STDMETHODCALLTYPE *AddRef )( 
    588             INamedPropertyStore * This);
    589         
    590         ULONG ( STDMETHODCALLTYPE *Release )( 
    591             INamedPropertyStore * This);
    592         
    593         HRESULT ( STDMETHODCALLTYPE *GetNamedValue )( 
    594             INamedPropertyStore * This,
    595             /* [string][in] */ __RPC__in LPCWSTR pszName,
    596             /* [out] */ __RPC__out PROPVARIANT *ppropvar);
    597         
    598         HRESULT ( STDMETHODCALLTYPE *SetNamedValue )( 
    599             INamedPropertyStore * This,
    600             /* [string][in] */ __RPC__in LPCWSTR pszName,
    601             /* [in] */ __RPC__in REFPROPVARIANT propvar);
    602         
    603         HRESULT ( STDMETHODCALLTYPE *GetNameCount )( 
    604             INamedPropertyStore * This,
    605             /* [out] */ __RPC__out DWORD *pdwCount);
    606         
    607         HRESULT ( STDMETHODCALLTYPE *GetNameAt )( 
    608             INamedPropertyStore * This,
    609             /* [in] */ DWORD iProp,
    610             /* [out] */ __RPC__deref_out_opt BSTR *pbstrName);
    611         
    612         END_INTERFACE
    613     } INamedPropertyStoreVtbl;
    614 
    615     interface INamedPropertyStore
    616     {
    617         CONST_VTBL struct INamedPropertyStoreVtbl *lpVtbl;
    618     };
    619 
    620     
    621 
    622 #ifdef COBJMACROS
    623 
    624 
    625 #define INamedPropertyStore_QueryInterface(This,riid,ppvObject)	\
    626     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
    627 
    628 #define INamedPropertyStore_AddRef(This)	\
    629     ( (This)->lpVtbl -> AddRef(This) ) 
    630 
    631 #define INamedPropertyStore_Release(This)	\
    632     ( (This)->lpVtbl -> Release(This) ) 
    633 
    634 
    635 #define INamedPropertyStore_GetNamedValue(This,pszName,ppropvar)	\
    636     ( (This)->lpVtbl -> GetNamedValue(This,pszName,ppropvar) ) 
    637 
    638 #define INamedPropertyStore_SetNamedValue(This,pszName,propvar)	\
    639     ( (This)->lpVtbl -> SetNamedValue(This,pszName,propvar) ) 
    640 
    641 #define INamedPropertyStore_GetNameCount(This,pdwCount)	\
    642     ( (This)->lpVtbl -> GetNameCount(This,pdwCount) ) 
    643 
    644 #define INamedPropertyStore_GetNameAt(This,iProp,pbstrName)	\
    645     ( (This)->lpVtbl -> GetNameAt(This,iProp,pbstrName) ) 
    646 
    647 #endif /* COBJMACROS */
    648 
    649 
    650 #endif 	/* C style interface */
    651 
    652 
    653 
    654 
    655 #endif 	/* __INamedPropertyStore_INTERFACE_DEFINED__ */
    656 
    657 
    658 /* interface __MIDL_itf_propsys_0000_0004 */
    659 /* [local] */ 
    660 
    661 /* [v1_enum] */ 
    662 enum tagGETPROPERTYSTOREFLAGS
    663     {	GPS_DEFAULT	= 0,
    664 	GPS_HANDLERPROPERTIESONLY	= 0x1,
    665 	GPS_READWRITE	= 0x2,
    666 	GPS_TEMPORARY	= 0x4,
    667 	GPS_FASTPROPERTIESONLY	= 0x8,
    668 	GPS_OPENSLOWITEM	= 0x10,
    669 	GPS_DELAYCREATION	= 0x20,
    670 	GPS_BESTEFFORT	= 0x40,
    671 	GPS_MASK_VALID	= 0x7f
    672     } ;
    673 typedef int GETPROPERTYSTOREFLAGS;
    674 
    675 
    676 
    677 extern RPC_IF_HANDLE __MIDL_itf_propsys_0000_0004_v0_0_c_ifspec;
    678 extern RPC_IF_HANDLE __MIDL_itf_propsys_0000_0004_v0_0_s_ifspec;
    679 
    680 #ifndef __IObjectWithPropertyKey_INTERFACE_DEFINED__
    681 #define __IObjectWithPropertyKey_INTERFACE_DEFINED__
    682 
    683 /* interface IObjectWithPropertyKey */
    684 /* [uuid][object] */ 
    685 
    686 
    687 EXTERN_C const IID IID_IObjectWithPropertyKey;
    688 
    689 #if defined(__cplusplus) && !defined(CINTERFACE)
    690     
    691     MIDL_INTERFACE("fc0ca0a7-c316-4fd2-9031-3e628e6d4f23")
    692     IObjectWithPropertyKey : public IUnknown
    693     {
    694     public:
    695         virtual HRESULT STDMETHODCALLTYPE SetPropertyKey( 
    696             /* [in] */ __RPC__in REFPROPERTYKEY key) = 0;
    697         
    698         virtual HRESULT STDMETHODCALLTYPE GetPropertyKey( 
    699             /* [out] */ __RPC__out PROPERTYKEY *pkey) = 0;
    700         
    701     };
    702     
    703 #else 	/* C style interface */
    704 
    705     typedef struct IObjectWithPropertyKeyVtbl
    706     {
    707         BEGIN_INTERFACE
    708         
    709         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
    710             IObjectWithPropertyKey * This,
    711             /* [in] */ __RPC__in REFIID riid,
    712             /* [iid_is][out] */ 
    713             __RPC__deref_out  void **ppvObject);
    714         
    715         ULONG ( STDMETHODCALLTYPE *AddRef )( 
    716             IObjectWithPropertyKey * This);
    717         
    718         ULONG ( STDMETHODCALLTYPE *Release )( 
    719             IObjectWithPropertyKey * This);
    720         
    721         HRESULT ( STDMETHODCALLTYPE *SetPropertyKey )( 
    722             IObjectWithPropertyKey * This,
    723             /* [in] */ __RPC__in REFPROPERTYKEY key);
    724         
    725         HRESULT ( STDMETHODCALLTYPE *GetPropertyKey )( 
    726             IObjectWithPropertyKey * This,
    727             /* [out] */ __RPC__out PROPERTYKEY *pkey);
    728         
    729         END_INTERFACE
    730     } IObjectWithPropertyKeyVtbl;
    731 
    732     interface IObjectWithPropertyKey
    733     {
    734         CONST_VTBL struct IObjectWithPropertyKeyVtbl *lpVtbl;
    735     };
    736 
    737     
    738 
    739 #ifdef COBJMACROS
    740 
    741 
    742 #define IObjectWithPropertyKey_QueryInterface(This,riid,ppvObject)	\
    743     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
    744 
    745 #define IObjectWithPropertyKey_AddRef(This)	\
    746     ( (This)->lpVtbl -> AddRef(This) ) 
    747 
    748 #define IObjectWithPropertyKey_Release(This)	\
    749     ( (This)->lpVtbl -> Release(This) ) 
    750 
    751 
    752 #define IObjectWithPropertyKey_SetPropertyKey(This,key)	\
    753     ( (This)->lpVtbl -> SetPropertyKey(This,key) ) 
    754 
    755 #define IObjectWithPropertyKey_GetPropertyKey(This,pkey)	\
    756     ( (This)->lpVtbl -> GetPropertyKey(This,pkey) ) 
    757 
    758 #endif /* COBJMACROS */
    759 
    760 
    761 #endif 	/* C style interface */
    762 
    763 
    764 
    765 
    766 #endif 	/* __IObjectWithPropertyKey_INTERFACE_DEFINED__ */
    767 
    768 
    769 /* interface __MIDL_itf_propsys_0000_0005 */
    770 /* [local] */ 
    771 
    772 typedef /* [v1_enum] */ 
    773 enum tagPKA_FLAGS
    774     {	PKA_SET	= 0,
    775 	PKA_APPEND	= ( PKA_SET + 1 ) ,
    776 	PKA_DELETE	= ( PKA_APPEND + 1 ) 
    777     } 	PKA_FLAGS;
    778 
    779 
    780 
    781 extern RPC_IF_HANDLE __MIDL_itf_propsys_0000_0005_v0_0_c_ifspec;
    782 extern RPC_IF_HANDLE __MIDL_itf_propsys_0000_0005_v0_0_s_ifspec;
    783 
    784 #ifndef __IPropertyChange_INTERFACE_DEFINED__
    785 #define __IPropertyChange_INTERFACE_DEFINED__
    786 
    787 /* interface IPropertyChange */
    788 /* [unique][object][uuid] */ 
    789 
    790 
    791 EXTERN_C const IID IID_IPropertyChange;
    792 
    793 #if defined(__cplusplus) && !defined(CINTERFACE)
    794     
    795     MIDL_INTERFACE("f917bc8a-1bba-4478-a245-1bde03eb9431")
    796     IPropertyChange : public IObjectWithPropertyKey
    797     {
    798     public:
    799         virtual HRESULT STDMETHODCALLTYPE ApplyToPropVariant( 
    800             /* [in] */ __RPC__in REFPROPVARIANT propvarIn,
    801             /* [out] */ __RPC__out PROPVARIANT *ppropvarOut) = 0;
    802         
    803     };
    804     
    805 #else 	/* C style interface */
    806 
    807     typedef struct IPropertyChangeVtbl
    808     {
    809         BEGIN_INTERFACE
    810         
    811         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
    812             IPropertyChange * This,
    813             /* [in] */ __RPC__in REFIID riid,
    814             /* [iid_is][out] */ 
    815             __RPC__deref_out  void **ppvObject);
    816         
    817         ULONG ( STDMETHODCALLTYPE *AddRef )( 
    818             IPropertyChange * This);
    819         
    820         ULONG ( STDMETHODCALLTYPE *Release )( 
    821             IPropertyChange * This);
    822         
    823         HRESULT ( STDMETHODCALLTYPE *SetPropertyKey )( 
    824             IPropertyChange * This,
    825             /* [in] */ __RPC__in REFPROPERTYKEY key);
    826         
    827         HRESULT ( STDMETHODCALLTYPE *GetPropertyKey )( 
    828             IPropertyChange * This,
    829             /* [out] */ __RPC__out PROPERTYKEY *pkey);
    830         
    831         HRESULT ( STDMETHODCALLTYPE *ApplyToPropVariant )( 
    832             IPropertyChange * This,
    833             /* [in] */ __RPC__in REFPROPVARIANT propvarIn,
    834             /* [out] */ __RPC__out PROPVARIANT *ppropvarOut);
    835         
    836         END_INTERFACE
    837     } IPropertyChangeVtbl;
    838 
    839     interface IPropertyChange
    840     {
    841         CONST_VTBL struct IPropertyChangeVtbl *lpVtbl;
    842     };
    843 
    844     
    845 
    846 #ifdef COBJMACROS
    847 
    848 
    849 #define IPropertyChange_QueryInterface(This,riid,ppvObject)	\
    850     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
    851 
    852 #define IPropertyChange_AddRef(This)	\
    853     ( (This)->lpVtbl -> AddRef(This) ) 
    854 
    855 #define IPropertyChange_Release(This)	\
    856     ( (This)->lpVtbl -> Release(This) ) 
    857 
    858 
    859 #define IPropertyChange_SetPropertyKey(This,key)	\
    860     ( (This)->lpVtbl -> SetPropertyKey(This,key) ) 
    861 
    862 #define IPropertyChange_GetPropertyKey(This,pkey)	\
    863     ( (This)->lpVtbl -> GetPropertyKey(This,pkey) ) 
    864 
    865 
    866 #define IPropertyChange_ApplyToPropVariant(This,propvarIn,ppropvarOut)	\
    867     ( (This)->lpVtbl -> ApplyToPropVariant(This,propvarIn,ppropvarOut) ) 
    868 
    869 #endif /* COBJMACROS */
    870 
    871 
    872 #endif 	/* C style interface */
    873 
    874 
    875 
    876 
    877 #endif 	/* __IPropertyChange_INTERFACE_DEFINED__ */
    878 
    879 
    880 #ifndef __IPropertyChangeArray_INTERFACE_DEFINED__
    881 #define __IPropertyChangeArray_INTERFACE_DEFINED__
    882 
    883 /* interface IPropertyChangeArray */
    884 /* [unique][object][uuid] */ 
    885 
    886 
    887 EXTERN_C const IID IID_IPropertyChangeArray;
    888 
    889 #if defined(__cplusplus) && !defined(CINTERFACE)
    890     
    891     MIDL_INTERFACE("380f5cad-1b5e-42f2-805d-637fd392d31e")
    892     IPropertyChangeArray : public IUnknown
    893     {
    894     public:
    895         virtual HRESULT STDMETHODCALLTYPE GetCount( 
    896             /* [out] */ __RPC__out UINT *pcOperations) = 0;
    897         
    898         virtual HRESULT STDMETHODCALLTYPE GetAt( 
    899             /* [in] */ UINT iIndex,
    900             /* [in] */ __RPC__in REFIID riid,
    901             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv) = 0;
    902         
    903         virtual HRESULT STDMETHODCALLTYPE InsertAt( 
    904             /* [in] */ UINT iIndex,
    905             /* [in] */ __RPC__in_opt IPropertyChange *ppropChange) = 0;
    906         
    907         virtual HRESULT STDMETHODCALLTYPE Append( 
    908             /* [in] */ __RPC__in_opt IPropertyChange *ppropChange) = 0;
    909         
    910         virtual HRESULT STDMETHODCALLTYPE AppendOrReplace( 
    911             /* [in] */ __RPC__in_opt IPropertyChange *ppropChange) = 0;
    912         
    913         virtual HRESULT STDMETHODCALLTYPE RemoveAt( 
    914             /* [in] */ UINT iIndex) = 0;
    915         
    916         virtual HRESULT STDMETHODCALLTYPE IsKeyInArray( 
    917             /* [in] */ __RPC__in REFPROPERTYKEY key) = 0;
    918         
    919     };
    920     
    921 #else 	/* C style interface */
    922 
    923     typedef struct IPropertyChangeArrayVtbl
    924     {
    925         BEGIN_INTERFACE
    926         
    927         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
    928             IPropertyChangeArray * This,
    929             /* [in] */ __RPC__in REFIID riid,
    930             /* [iid_is][out] */ 
    931             __RPC__deref_out  void **ppvObject);
    932         
    933         ULONG ( STDMETHODCALLTYPE *AddRef )( 
    934             IPropertyChangeArray * This);
    935         
    936         ULONG ( STDMETHODCALLTYPE *Release )( 
    937             IPropertyChangeArray * This);
    938         
    939         HRESULT ( STDMETHODCALLTYPE *GetCount )( 
    940             IPropertyChangeArray * This,
    941             /* [out] */ __RPC__out UINT *pcOperations);
    942         
    943         HRESULT ( STDMETHODCALLTYPE *GetAt )( 
    944             IPropertyChangeArray * This,
    945             /* [in] */ UINT iIndex,
    946             /* [in] */ __RPC__in REFIID riid,
    947             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
    948         
    949         HRESULT ( STDMETHODCALLTYPE *InsertAt )( 
    950             IPropertyChangeArray * This,
    951             /* [in] */ UINT iIndex,
    952             /* [in] */ __RPC__in_opt IPropertyChange *ppropChange);
    953         
    954         HRESULT ( STDMETHODCALLTYPE *Append )( 
    955             IPropertyChangeArray * This,
    956             /* [in] */ __RPC__in_opt IPropertyChange *ppropChange);
    957         
    958         HRESULT ( STDMETHODCALLTYPE *AppendOrReplace )( 
    959             IPropertyChangeArray * This,
    960             /* [in] */ __RPC__in_opt IPropertyChange *ppropChange);
    961         
    962         HRESULT ( STDMETHODCALLTYPE *RemoveAt )( 
    963             IPropertyChangeArray * This,
    964             /* [in] */ UINT iIndex);
    965         
    966         HRESULT ( STDMETHODCALLTYPE *IsKeyInArray )( 
    967             IPropertyChangeArray * This,
    968             /* [in] */ __RPC__in REFPROPERTYKEY key);
    969         
    970         END_INTERFACE
    971     } IPropertyChangeArrayVtbl;
    972 
    973     interface IPropertyChangeArray
    974     {
    975         CONST_VTBL struct IPropertyChangeArrayVtbl *lpVtbl;
    976     };
    977 
    978     
    979 
    980 #ifdef COBJMACROS
    981 
    982 
    983 #define IPropertyChangeArray_QueryInterface(This,riid,ppvObject)	\
    984     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
    985 
    986 #define IPropertyChangeArray_AddRef(This)	\
    987     ( (This)->lpVtbl -> AddRef(This) ) 
    988 
    989 #define IPropertyChangeArray_Release(This)	\
    990     ( (This)->lpVtbl -> Release(This) ) 
    991 
    992 
    993 #define IPropertyChangeArray_GetCount(This,pcOperations)	\
    994     ( (This)->lpVtbl -> GetCount(This,pcOperations) ) 
    995 
    996 #define IPropertyChangeArray_GetAt(This,iIndex,riid,ppv)	\
    997     ( (This)->lpVtbl -> GetAt(This,iIndex,riid,ppv) ) 
    998 
    999 #define IPropertyChangeArray_InsertAt(This,iIndex,ppropChange)	\
   1000     ( (This)->lpVtbl -> InsertAt(This,iIndex,ppropChange) ) 
   1001 
   1002 #define IPropertyChangeArray_Append(This,ppropChange)	\
   1003     ( (This)->lpVtbl -> Append(This,ppropChange) ) 
   1004 
   1005 #define IPropertyChangeArray_AppendOrReplace(This,ppropChange)	\
   1006     ( (This)->lpVtbl -> AppendOrReplace(This,ppropChange) ) 
   1007 
   1008 #define IPropertyChangeArray_RemoveAt(This,iIndex)	\
   1009     ( (This)->lpVtbl -> RemoveAt(This,iIndex) ) 
   1010 
   1011 #define IPropertyChangeArray_IsKeyInArray(This,key)	\
   1012     ( (This)->lpVtbl -> IsKeyInArray(This,key) ) 
   1013 
   1014 #endif /* COBJMACROS */
   1015 
   1016 
   1017 #endif 	/* C style interface */
   1018 
   1019 
   1020 
   1021 
   1022 #endif 	/* __IPropertyChangeArray_INTERFACE_DEFINED__ */
   1023 
   1024 
   1025 #ifndef __IPropertyStoreCapabilities_INTERFACE_DEFINED__
   1026 #define __IPropertyStoreCapabilities_INTERFACE_DEFINED__
   1027 
   1028 /* interface IPropertyStoreCapabilities */
   1029 /* [unique][object][uuid] */ 
   1030 
   1031 
   1032 EXTERN_C const IID IID_IPropertyStoreCapabilities;
   1033 
   1034 #if defined(__cplusplus) && !defined(CINTERFACE)
   1035     
   1036     MIDL_INTERFACE("c8e2d566-186e-4d49-bf41-6909ead56acc")
   1037     IPropertyStoreCapabilities : public IUnknown
   1038     {
   1039     public:
   1040         virtual HRESULT STDMETHODCALLTYPE IsPropertyWritable( 
   1041             /* [in] */ __RPC__in REFPROPERTYKEY key) = 0;
   1042         
   1043     };
   1044     
   1045 #else 	/* C style interface */
   1046 
   1047     typedef struct IPropertyStoreCapabilitiesVtbl
   1048     {
   1049         BEGIN_INTERFACE
   1050         
   1051         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   1052             IPropertyStoreCapabilities * This,
   1053             /* [in] */ __RPC__in REFIID riid,
   1054             /* [iid_is][out] */ 
   1055             __RPC__deref_out  void **ppvObject);
   1056         
   1057         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   1058             IPropertyStoreCapabilities * This);
   1059         
   1060         ULONG ( STDMETHODCALLTYPE *Release )( 
   1061             IPropertyStoreCapabilities * This);
   1062         
   1063         HRESULT ( STDMETHODCALLTYPE *IsPropertyWritable )( 
   1064             IPropertyStoreCapabilities * This,
   1065             /* [in] */ __RPC__in REFPROPERTYKEY key);
   1066         
   1067         END_INTERFACE
   1068     } IPropertyStoreCapabilitiesVtbl;
   1069 
   1070     interface IPropertyStoreCapabilities
   1071     {
   1072         CONST_VTBL struct IPropertyStoreCapabilitiesVtbl *lpVtbl;
   1073     };
   1074 
   1075     
   1076 
   1077 #ifdef COBJMACROS
   1078 
   1079 
   1080 #define IPropertyStoreCapabilities_QueryInterface(This,riid,ppvObject)	\
   1081     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   1082 
   1083 #define IPropertyStoreCapabilities_AddRef(This)	\
   1084     ( (This)->lpVtbl -> AddRef(This) ) 
   1085 
   1086 #define IPropertyStoreCapabilities_Release(This)	\
   1087     ( (This)->lpVtbl -> Release(This) ) 
   1088 
   1089 
   1090 #define IPropertyStoreCapabilities_IsPropertyWritable(This,key)	\
   1091     ( (This)->lpVtbl -> IsPropertyWritable(This,key) ) 
   1092 
   1093 #endif /* COBJMACROS */
   1094 
   1095 
   1096 #endif 	/* C style interface */
   1097 
   1098 
   1099 
   1100 
   1101 #endif 	/* __IPropertyStoreCapabilities_INTERFACE_DEFINED__ */
   1102 
   1103 
   1104 #ifndef __IPropertyStoreCache_INTERFACE_DEFINED__
   1105 #define __IPropertyStoreCache_INTERFACE_DEFINED__
   1106 
   1107 /* interface IPropertyStoreCache */
   1108 /* [unique][object][uuid] */ 
   1109 
   1110 typedef /* [v1_enum] */ 
   1111 enum _PSC_STATE
   1112     {	PSC_NORMAL	= 0,
   1113 	PSC_NOTINSOURCE	= 1,
   1114 	PSC_DIRTY	= 2,
   1115 	PSC_READONLY	= 3
   1116     } 	PSC_STATE;
   1117 
   1118 
   1119 EXTERN_C const IID IID_IPropertyStoreCache;
   1120 
   1121 #if defined(__cplusplus) && !defined(CINTERFACE)
   1122     
   1123     MIDL_INTERFACE("3017056d-9a91-4e90-937d-746c72abbf4f")
   1124     IPropertyStoreCache : public IPropertyStore
   1125     {
   1126     public:
   1127         virtual HRESULT STDMETHODCALLTYPE GetState( 
   1128             /* [in] */ __RPC__in REFPROPERTYKEY key,
   1129             /* [out] */ __RPC__out PSC_STATE *pstate) = 0;
   1130         
   1131         virtual HRESULT STDMETHODCALLTYPE GetValueAndState( 
   1132             /* [in] */ __RPC__in REFPROPERTYKEY key,
   1133             /* [out] */ __RPC__out PROPVARIANT *ppropvar,
   1134             /* [out] */ __RPC__out PSC_STATE *pstate) = 0;
   1135         
   1136         virtual HRESULT STDMETHODCALLTYPE SetState( 
   1137             /* [in] */ __RPC__in REFPROPERTYKEY key,
   1138             /* [in] */ PSC_STATE state) = 0;
   1139         
   1140         virtual HRESULT STDMETHODCALLTYPE SetValueAndState( 
   1141             /* [in] */ __RPC__in REFPROPERTYKEY key,
   1142             /* [unique][in] */ __RPC__in_opt const PROPVARIANT *ppropvar,
   1143             /* [in] */ PSC_STATE state) = 0;
   1144         
   1145     };
   1146     
   1147 #else 	/* C style interface */
   1148 
   1149     typedef struct IPropertyStoreCacheVtbl
   1150     {
   1151         BEGIN_INTERFACE
   1152         
   1153         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   1154             IPropertyStoreCache * This,
   1155             /* [in] */ __RPC__in REFIID riid,
   1156             /* [iid_is][out] */ 
   1157             __RPC__deref_out  void **ppvObject);
   1158         
   1159         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   1160             IPropertyStoreCache * This);
   1161         
   1162         ULONG ( STDMETHODCALLTYPE *Release )( 
   1163             IPropertyStoreCache * This);
   1164         
   1165         HRESULT ( STDMETHODCALLTYPE *GetCount )( 
   1166             IPropertyStoreCache * This,
   1167             /* [out] */ __RPC__out DWORD *cProps);
   1168         
   1169         HRESULT ( STDMETHODCALLTYPE *GetAt )( 
   1170             IPropertyStoreCache * This,
   1171             /* [in] */ DWORD iProp,
   1172             /* [out] */ __RPC__out PROPERTYKEY *pkey);
   1173         
   1174         HRESULT ( STDMETHODCALLTYPE *GetValue )( 
   1175             IPropertyStoreCache * This,
   1176             /* [in] */ __RPC__in REFPROPERTYKEY key,
   1177             /* [out] */ __RPC__out PROPVARIANT *pv);
   1178         
   1179         HRESULT ( STDMETHODCALLTYPE *SetValue )( 
   1180             IPropertyStoreCache * This,
   1181             /* [in] */ __RPC__in REFPROPERTYKEY key,
   1182             /* [in] */ __RPC__in REFPROPVARIANT propvar);
   1183         
   1184         HRESULT ( STDMETHODCALLTYPE *Commit )( 
   1185             IPropertyStoreCache * This);
   1186         
   1187         HRESULT ( STDMETHODCALLTYPE *GetState )( 
   1188             IPropertyStoreCache * This,
   1189             /* [in] */ __RPC__in REFPROPERTYKEY key,
   1190             /* [out] */ __RPC__out PSC_STATE *pstate);
   1191         
   1192         HRESULT ( STDMETHODCALLTYPE *GetValueAndState )( 
   1193             IPropertyStoreCache * This,
   1194             /* [in] */ __RPC__in REFPROPERTYKEY key,
   1195             /* [out] */ __RPC__out PROPVARIANT *ppropvar,
   1196             /* [out] */ __RPC__out PSC_STATE *pstate);
   1197         
   1198         HRESULT ( STDMETHODCALLTYPE *SetState )( 
   1199             IPropertyStoreCache * This,
   1200             /* [in] */ __RPC__in REFPROPERTYKEY key,
   1201             /* [in] */ PSC_STATE state);
   1202         
   1203         HRESULT ( STDMETHODCALLTYPE *SetValueAndState )( 
   1204             IPropertyStoreCache * This,
   1205             /* [in] */ __RPC__in REFPROPERTYKEY key,
   1206             /* [unique][in] */ __RPC__in_opt const PROPVARIANT *ppropvar,
   1207             /* [in] */ PSC_STATE state);
   1208         
   1209         END_INTERFACE
   1210     } IPropertyStoreCacheVtbl;
   1211 
   1212     interface IPropertyStoreCache
   1213     {
   1214         CONST_VTBL struct IPropertyStoreCacheVtbl *lpVtbl;
   1215     };
   1216 
   1217     
   1218 
   1219 #ifdef COBJMACROS
   1220 
   1221 
   1222 #define IPropertyStoreCache_QueryInterface(This,riid,ppvObject)	\
   1223     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   1224 
   1225 #define IPropertyStoreCache_AddRef(This)	\
   1226     ( (This)->lpVtbl -> AddRef(This) ) 
   1227 
   1228 #define IPropertyStoreCache_Release(This)	\
   1229     ( (This)->lpVtbl -> Release(This) ) 
   1230 
   1231 
   1232 #define IPropertyStoreCache_GetCount(This,cProps)	\
   1233     ( (This)->lpVtbl -> GetCount(This,cProps) ) 
   1234 
   1235 #define IPropertyStoreCache_GetAt(This,iProp,pkey)	\
   1236     ( (This)->lpVtbl -> GetAt(This,iProp,pkey) ) 
   1237 
   1238 #define IPropertyStoreCache_GetValue(This,key,pv)	\
   1239     ( (This)->lpVtbl -> GetValue(This,key,pv) ) 
   1240 
   1241 #define IPropertyStoreCache_SetValue(This,key,propvar)	\
   1242     ( (This)->lpVtbl -> SetValue(This,key,propvar) ) 
   1243 
   1244 #define IPropertyStoreCache_Commit(This)	\
   1245     ( (This)->lpVtbl -> Commit(This) ) 
   1246 
   1247 
   1248 #define IPropertyStoreCache_GetState(This,key,pstate)	\
   1249     ( (This)->lpVtbl -> GetState(This,key,pstate) ) 
   1250 
   1251 #define IPropertyStoreCache_GetValueAndState(This,key,ppropvar,pstate)	\
   1252     ( (This)->lpVtbl -> GetValueAndState(This,key,ppropvar,pstate) ) 
   1253 
   1254 #define IPropertyStoreCache_SetState(This,key,state)	\
   1255     ( (This)->lpVtbl -> SetState(This,key,state) ) 
   1256 
   1257 #define IPropertyStoreCache_SetValueAndState(This,key,ppropvar,state)	\
   1258     ( (This)->lpVtbl -> SetValueAndState(This,key,ppropvar,state) ) 
   1259 
   1260 #endif /* COBJMACROS */
   1261 
   1262 
   1263 #endif 	/* C style interface */
   1264 
   1265 
   1266 
   1267 
   1268 #endif 	/* __IPropertyStoreCache_INTERFACE_DEFINED__ */
   1269 
   1270 
   1271 #ifndef __IPropertyEnumType_INTERFACE_DEFINED__
   1272 #define __IPropertyEnumType_INTERFACE_DEFINED__
   1273 
   1274 /* interface IPropertyEnumType */
   1275 /* [unique][object][uuid] */ 
   1276 
   1277 /* [v1_enum] */ 
   1278 enum tagPROPENUMTYPE
   1279     {	PET_DISCRETEVALUE	= 0,
   1280 	PET_RANGEDVALUE	= 1,
   1281 	PET_DEFAULTVALUE	= 2,
   1282 	PET_ENDRANGE	= 3
   1283     } ;
   1284 typedef enum tagPROPENUMTYPE PROPENUMTYPE;
   1285 
   1286 
   1287 EXTERN_C const IID IID_IPropertyEnumType;
   1288 
   1289 #if defined(__cplusplus) && !defined(CINTERFACE)
   1290     
   1291     MIDL_INTERFACE("11e1fbf9-2d56-4a6b-8db3-7cd193a471f2")
   1292     IPropertyEnumType : public IUnknown
   1293     {
   1294     public:
   1295         virtual HRESULT STDMETHODCALLTYPE GetEnumType( 
   1296             /* [out] */ __RPC__out PROPENUMTYPE *penumtype) = 0;
   1297         
   1298         virtual HRESULT STDMETHODCALLTYPE GetValue( 
   1299             /* [out] */ __RPC__out PROPVARIANT *ppropvar) = 0;
   1300         
   1301         virtual HRESULT STDMETHODCALLTYPE GetRangeMinValue( 
   1302             /* [out] */ __RPC__out PROPVARIANT *ppropvarMin) = 0;
   1303         
   1304         virtual HRESULT STDMETHODCALLTYPE GetRangeSetValue( 
   1305             /* [out] */ __RPC__out PROPVARIANT *ppropvarSet) = 0;
   1306         
   1307         virtual HRESULT STDMETHODCALLTYPE GetDisplayText( 
   1308             /* [out] */ __RPC__deref_out_opt LPWSTR *ppszDisplay) = 0;
   1309         
   1310     };
   1311     
   1312 #else 	/* C style interface */
   1313 
   1314     typedef struct IPropertyEnumTypeVtbl
   1315     {
   1316         BEGIN_INTERFACE
   1317         
   1318         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   1319             IPropertyEnumType * This,
   1320             /* [in] */ __RPC__in REFIID riid,
   1321             /* [iid_is][out] */ 
   1322             __RPC__deref_out  void **ppvObject);
   1323         
   1324         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   1325             IPropertyEnumType * This);
   1326         
   1327         ULONG ( STDMETHODCALLTYPE *Release )( 
   1328             IPropertyEnumType * This);
   1329         
   1330         HRESULT ( STDMETHODCALLTYPE *GetEnumType )( 
   1331             IPropertyEnumType * This,
   1332             /* [out] */ __RPC__out PROPENUMTYPE *penumtype);
   1333         
   1334         HRESULT ( STDMETHODCALLTYPE *GetValue )( 
   1335             IPropertyEnumType * This,
   1336             /* [out] */ __RPC__out PROPVARIANT *ppropvar);
   1337         
   1338         HRESULT ( STDMETHODCALLTYPE *GetRangeMinValue )( 
   1339             IPropertyEnumType * This,
   1340             /* [out] */ __RPC__out PROPVARIANT *ppropvarMin);
   1341         
   1342         HRESULT ( STDMETHODCALLTYPE *GetRangeSetValue )( 
   1343             IPropertyEnumType * This,
   1344             /* [out] */ __RPC__out PROPVARIANT *ppropvarSet);
   1345         
   1346         HRESULT ( STDMETHODCALLTYPE *GetDisplayText )( 
   1347             IPropertyEnumType * This,
   1348             /* [out] */ __RPC__deref_out_opt LPWSTR *ppszDisplay);
   1349         
   1350         END_INTERFACE
   1351     } IPropertyEnumTypeVtbl;
   1352 
   1353     interface IPropertyEnumType
   1354     {
   1355         CONST_VTBL struct IPropertyEnumTypeVtbl *lpVtbl;
   1356     };
   1357 
   1358     
   1359 
   1360 #ifdef COBJMACROS
   1361 
   1362 
   1363 #define IPropertyEnumType_QueryInterface(This,riid,ppvObject)	\
   1364     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   1365 
   1366 #define IPropertyEnumType_AddRef(This)	\
   1367     ( (This)->lpVtbl -> AddRef(This) ) 
   1368 
   1369 #define IPropertyEnumType_Release(This)	\
   1370     ( (This)->lpVtbl -> Release(This) ) 
   1371 
   1372 
   1373 #define IPropertyEnumType_GetEnumType(This,penumtype)	\
   1374     ( (This)->lpVtbl -> GetEnumType(This,penumtype) ) 
   1375 
   1376 #define IPropertyEnumType_GetValue(This,ppropvar)	\
   1377     ( (This)->lpVtbl -> GetValue(This,ppropvar) ) 
   1378 
   1379 #define IPropertyEnumType_GetRangeMinValue(This,ppropvarMin)	\
   1380     ( (This)->lpVtbl -> GetRangeMinValue(This,ppropvarMin) ) 
   1381 
   1382 #define IPropertyEnumType_GetRangeSetValue(This,ppropvarSet)	\
   1383     ( (This)->lpVtbl -> GetRangeSetValue(This,ppropvarSet) ) 
   1384 
   1385 #define IPropertyEnumType_GetDisplayText(This,ppszDisplay)	\
   1386     ( (This)->lpVtbl -> GetDisplayText(This,ppszDisplay) ) 
   1387 
   1388 #endif /* COBJMACROS */
   1389 
   1390 
   1391 #endif 	/* C style interface */
   1392 
   1393 
   1394 
   1395 
   1396 #endif 	/* __IPropertyEnumType_INTERFACE_DEFINED__ */
   1397 
   1398 
   1399 #ifndef __IPropertyEnumTypeList_INTERFACE_DEFINED__
   1400 #define __IPropertyEnumTypeList_INTERFACE_DEFINED__
   1401 
   1402 /* interface IPropertyEnumTypeList */
   1403 /* [unique][object][uuid] */ 
   1404 
   1405 
   1406 EXTERN_C const IID IID_IPropertyEnumTypeList;
   1407 
   1408 #if defined(__cplusplus) && !defined(CINTERFACE)
   1409     
   1410     MIDL_INTERFACE("a99400f4-3d84-4557-94ba-1242fb2cc9a6")
   1411     IPropertyEnumTypeList : public IUnknown
   1412     {
   1413     public:
   1414         virtual HRESULT STDMETHODCALLTYPE GetCount( 
   1415             /* [out] */ __RPC__out UINT *pctypes) = 0;
   1416         
   1417         virtual HRESULT STDMETHODCALLTYPE GetAt( 
   1418             /* [in] */ UINT itype,
   1419             /* [in] */ __RPC__in REFIID riid,
   1420             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv) = 0;
   1421         
   1422         virtual HRESULT STDMETHODCALLTYPE GetConditionAt( 
   1423             /* [in] */ UINT nIndex,
   1424             /* [in] */ __RPC__in REFIID riid,
   1425             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv) = 0;
   1426         
   1427         virtual HRESULT STDMETHODCALLTYPE FindMatchingIndex( 
   1428             /* [in] */ __RPC__in REFPROPVARIANT propvarCmp,
   1429             /* [out] */ __RPC__out UINT *pnIndex) = 0;
   1430         
   1431     };
   1432     
   1433 #else 	/* C style interface */
   1434 
   1435     typedef struct IPropertyEnumTypeListVtbl
   1436     {
   1437         BEGIN_INTERFACE
   1438         
   1439         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   1440             IPropertyEnumTypeList * This,
   1441             /* [in] */ __RPC__in REFIID riid,
   1442             /* [iid_is][out] */ 
   1443             __RPC__deref_out  void **ppvObject);
   1444         
   1445         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   1446             IPropertyEnumTypeList * This);
   1447         
   1448         ULONG ( STDMETHODCALLTYPE *Release )( 
   1449             IPropertyEnumTypeList * This);
   1450         
   1451         HRESULT ( STDMETHODCALLTYPE *GetCount )( 
   1452             IPropertyEnumTypeList * This,
   1453             /* [out] */ __RPC__out UINT *pctypes);
   1454         
   1455         HRESULT ( STDMETHODCALLTYPE *GetAt )( 
   1456             IPropertyEnumTypeList * This,
   1457             /* [in] */ UINT itype,
   1458             /* [in] */ __RPC__in REFIID riid,
   1459             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
   1460         
   1461         HRESULT ( STDMETHODCALLTYPE *GetConditionAt )( 
   1462             IPropertyEnumTypeList * This,
   1463             /* [in] */ UINT nIndex,
   1464             /* [in] */ __RPC__in REFIID riid,
   1465             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
   1466         
   1467         HRESULT ( STDMETHODCALLTYPE *FindMatchingIndex )( 
   1468             IPropertyEnumTypeList * This,
   1469             /* [in] */ __RPC__in REFPROPVARIANT propvarCmp,
   1470             /* [out] */ __RPC__out UINT *pnIndex);
   1471         
   1472         END_INTERFACE
   1473     } IPropertyEnumTypeListVtbl;
   1474 
   1475     interface IPropertyEnumTypeList
   1476     {
   1477         CONST_VTBL struct IPropertyEnumTypeListVtbl *lpVtbl;
   1478     };
   1479 
   1480     
   1481 
   1482 #ifdef COBJMACROS
   1483 
   1484 
   1485 #define IPropertyEnumTypeList_QueryInterface(This,riid,ppvObject)	\
   1486     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   1487 
   1488 #define IPropertyEnumTypeList_AddRef(This)	\
   1489     ( (This)->lpVtbl -> AddRef(This) ) 
   1490 
   1491 #define IPropertyEnumTypeList_Release(This)	\
   1492     ( (This)->lpVtbl -> Release(This) ) 
   1493 
   1494 
   1495 #define IPropertyEnumTypeList_GetCount(This,pctypes)	\
   1496     ( (This)->lpVtbl -> GetCount(This,pctypes) ) 
   1497 
   1498 #define IPropertyEnumTypeList_GetAt(This,itype,riid,ppv)	\
   1499     ( (This)->lpVtbl -> GetAt(This,itype,riid,ppv) ) 
   1500 
   1501 #define IPropertyEnumTypeList_GetConditionAt(This,nIndex,riid,ppv)	\
   1502     ( (This)->lpVtbl -> GetConditionAt(This,nIndex,riid,ppv) ) 
   1503 
   1504 #define IPropertyEnumTypeList_FindMatchingIndex(This,propvarCmp,pnIndex)	\
   1505     ( (This)->lpVtbl -> FindMatchingIndex(This,propvarCmp,pnIndex) ) 
   1506 
   1507 #endif /* COBJMACROS */
   1508 
   1509 
   1510 #endif 	/* C style interface */
   1511 
   1512 
   1513 
   1514 
   1515 #endif 	/* __IPropertyEnumTypeList_INTERFACE_DEFINED__ */
   1516 
   1517 
   1518 #ifndef __IPropertyDescription_INTERFACE_DEFINED__
   1519 #define __IPropertyDescription_INTERFACE_DEFINED__
   1520 
   1521 /* interface IPropertyDescription */
   1522 /* [unique][object][uuid] */ 
   1523 
   1524 /* [v1_enum] */ 
   1525 enum tagPROPDESC_TYPE_FLAGS
   1526     {	PDTF_DEFAULT	= 0,
   1527 	PDTF_MULTIPLEVALUES	= 0x1,
   1528 	PDTF_ISINNATE	= 0x2,
   1529 	PDTF_ISGROUP	= 0x4,
   1530 	PDTF_CANGROUPBY	= 0x8,
   1531 	PDTF_CANSTACKBY	= 0x10,
   1532 	PDTF_ISTREEPROPERTY	= 0x20,
   1533 	PDTF_INCLUDEINFULLTEXTQUERY	= 0x40,
   1534 	PDTF_ISVIEWABLE	= 0x80,
   1535 	PDTF_ISQUERYABLE	= 0x100,
   1536 	PDTF_ISSYSTEMPROPERTY	= 0x80000000,
   1537 	PDTF_MASK_ALL	= 0x800001ff
   1538     } ;
   1539 typedef int PROPDESC_TYPE_FLAGS;
   1540 
   1541 /* [v1_enum] */ 
   1542 enum tagPROPDESC_VIEW_FLAGS
   1543     {	PDVF_DEFAULT	= 0,
   1544 	PDVF_CENTERALIGN	= 0x1,
   1545 	PDVF_RIGHTALIGN	= 0x2,
   1546 	PDVF_BEGINNEWGROUP	= 0x4,
   1547 	PDVF_FILLAREA	= 0x8,
   1548 	PDVF_SORTDESCENDING	= 0x10,
   1549 	PDVF_SHOWONLYIFPRESENT	= 0x20,
   1550 	PDVF_SHOWBYDEFAULT	= 0x40,
   1551 	PDVF_SHOWINPRIMARYLIST	= 0x80,
   1552 	PDVF_SHOWINSECONDARYLIST	= 0x100,
   1553 	PDVF_HIDELABEL	= 0x200,
   1554 	PDVF_HIDDEN	= 0x800,
   1555 	PDVF_CANWRAP	= 0x1000,
   1556 	PDVF_MASK_ALL	= 0x1bff
   1557     } ;
   1558 typedef int PROPDESC_VIEW_FLAGS;
   1559 
   1560 /* [v1_enum] */ 
   1561 enum tagPROPDESC_DISPLAYTYPE
   1562     {	PDDT_STRING	= 0,
   1563 	PDDT_NUMBER	= 1,
   1564 	PDDT_BOOLEAN	= 2,
   1565 	PDDT_DATETIME	= 3,
   1566 	PDDT_ENUMERATED	= 4
   1567     } ;
   1568 typedef enum tagPROPDESC_DISPLAYTYPE PROPDESC_DISPLAYTYPE;
   1569 
   1570 /* [v1_enum] */ 
   1571 enum tagPROPDESC_GROUPING_RANGE
   1572     {	PDGR_DISCRETE	= 0,
   1573 	PDGR_ALPHANUMERIC	= 1,
   1574 	PDGR_SIZE	= 2,
   1575 	PDGR_DYNAMIC	= 3,
   1576 	PDGR_DATE	= 4,
   1577 	PDGR_PERCENT	= 5,
   1578 	PDGR_ENUMERATED	= 6
   1579     } ;
   1580 typedef enum tagPROPDESC_GROUPING_RANGE PROPDESC_GROUPING_RANGE;
   1581 
   1582 /* [v1_enum] */ 
   1583 enum tagPROPDESC_FORMAT_FLAGS
   1584     {	PDFF_DEFAULT	= 0,
   1585 	PDFF_PREFIXNAME	= 0x1,
   1586 	PDFF_FILENAME	= 0x2,
   1587 	PDFF_ALWAYSKB	= 0x4,
   1588 	PDFF_RESERVED_RIGHTTOLEFT	= 0x8,
   1589 	PDFF_SHORTTIME	= 0x10,
   1590 	PDFF_LONGTIME	= 0x20,
   1591 	PDFF_HIDETIME	= 0x40,
   1592 	PDFF_SHORTDATE	= 0x80,
   1593 	PDFF_LONGDATE	= 0x100,
   1594 	PDFF_HIDEDATE	= 0x200,
   1595 	PDFF_RELATIVEDATE	= 0x400,
   1596 	PDFF_USEEDITINVITATION	= 0x800,
   1597 	PDFF_READONLY	= 0x1000,
   1598 	PDFF_NOAUTOREADINGORDER	= 0x2000
   1599     } ;
   1600 typedef int PROPDESC_FORMAT_FLAGS;
   1601 
   1602 /* [v1_enum] */ 
   1603 enum tagPROPDESC_SORTDESCRIPTION
   1604     {	PDSD_GENERAL	= 0,
   1605 	PDSD_A_Z	= 1,
   1606 	PDSD_LOWEST_HIGHEST	= 2,
   1607 	PDSD_SMALLEST_BIGGEST	= 3,
   1608 	PDSD_OLDEST_NEWEST	= 4
   1609     } ;
   1610 typedef enum tagPROPDESC_SORTDESCRIPTION PROPDESC_SORTDESCRIPTION;
   1611 
   1612 /* [v1_enum] */ 
   1613 enum tagPROPDESC_RELATIVEDESCRIPTION_TYPE
   1614     {	PDRDT_GENERAL	= 0,
   1615 	PDRDT_DATE	= 1,
   1616 	PDRDT_SIZE	= 2,
   1617 	PDRDT_COUNT	= 3,
   1618 	PDRDT_REVISION	= 4,
   1619 	PDRDT_LENGTH	= 5,
   1620 	PDRDT_DURATION	= 6,
   1621 	PDRDT_SPEED	= 7,
   1622 	PDRDT_RATE	= 8,
   1623 	PDRDT_RATING	= 9,
   1624 	PDRDT_PRIORITY	= 10
   1625     } ;
   1626 typedef enum tagPROPDESC_RELATIVEDESCRIPTION_TYPE PROPDESC_RELATIVEDESCRIPTION_TYPE;
   1627 
   1628 /* [v1_enum] */ 
   1629 enum tagPROPDESC_AGGREGATION_TYPE
   1630     {	PDAT_DEFAULT	= 0,
   1631 	PDAT_FIRST	= 1,
   1632 	PDAT_SUM	= 2,
   1633 	PDAT_AVERAGE	= 3,
   1634 	PDAT_DATERANGE	= 4,
   1635 	PDAT_UNION	= 5,
   1636 	PDAT_MAX	= 6,
   1637 	PDAT_MIN	= 7
   1638     } ;
   1639 typedef enum tagPROPDESC_AGGREGATION_TYPE PROPDESC_AGGREGATION_TYPE;
   1640 
   1641 /* [v1_enum] */ 
   1642 enum tagPROPDESC_CONDITION_TYPE
   1643     {	PDCOT_NONE	= 0,
   1644 	PDCOT_STRING	= 1,
   1645 	PDCOT_SIZE	= 2,
   1646 	PDCOT_DATETIME	= 3,
   1647 	PDCOT_BOOLEAN	= 4,
   1648 	PDCOT_NUMBER	= 5
   1649     } ;
   1650 typedef enum tagPROPDESC_CONDITION_TYPE PROPDESC_CONDITION_TYPE;
   1651 
   1652 
   1653 EXTERN_C const IID IID_IPropertyDescription;
   1654 
   1655 #if defined(__cplusplus) && !defined(CINTERFACE)
   1656     
   1657     MIDL_INTERFACE("6f79d558-3e96-4549-a1d1-7d75d2288814")
   1658     IPropertyDescription : public IUnknown
   1659     {
   1660     public:
   1661         virtual HRESULT STDMETHODCALLTYPE GetPropertyKey( 
   1662             /* [out] */ __RPC__out PROPERTYKEY *pkey) = 0;
   1663         
   1664         virtual HRESULT STDMETHODCALLTYPE GetCanonicalName( 
   1665             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszName) = 0;
   1666         
   1667         virtual HRESULT STDMETHODCALLTYPE GetPropertyType( 
   1668             /* [out] */ __RPC__out VARTYPE *pvartype) = 0;
   1669         
   1670         virtual HRESULT STDMETHODCALLTYPE GetDisplayName( 
   1671             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszName) = 0;
   1672         
   1673         virtual HRESULT STDMETHODCALLTYPE GetEditInvitation( 
   1674             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszInvite) = 0;
   1675         
   1676         virtual HRESULT STDMETHODCALLTYPE GetTypeFlags( 
   1677             /* [in] */ PROPDESC_TYPE_FLAGS mask,
   1678             /* [out] */ __RPC__out PROPDESC_TYPE_FLAGS *ppdtFlags) = 0;
   1679         
   1680         virtual HRESULT STDMETHODCALLTYPE GetViewFlags( 
   1681             /* [out] */ __RPC__out PROPDESC_VIEW_FLAGS *ppdvFlags) = 0;
   1682         
   1683         virtual HRESULT STDMETHODCALLTYPE GetDefaultColumnWidth( 
   1684             /* [out] */ __RPC__out UINT *pcxChars) = 0;
   1685         
   1686         virtual HRESULT STDMETHODCALLTYPE GetDisplayType( 
   1687             /* [out] */ __RPC__out PROPDESC_DISPLAYTYPE *pdisplaytype) = 0;
   1688         
   1689         virtual HRESULT STDMETHODCALLTYPE GetColumnState( 
   1690             /* [out] */ __RPC__out SHCOLSTATEF *pcsFlags) = 0;
   1691         
   1692         virtual HRESULT STDMETHODCALLTYPE GetGroupingRange( 
   1693             /* [out] */ __RPC__out PROPDESC_GROUPING_RANGE *pgr) = 0;
   1694         
   1695         virtual HRESULT STDMETHODCALLTYPE GetRelativeDescriptionType( 
   1696             /* [out] */ __RPC__out PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt) = 0;
   1697         
   1698         virtual HRESULT STDMETHODCALLTYPE GetRelativeDescription( 
   1699             /* [in] */ __RPC__in REFPROPVARIANT propvar1,
   1700             /* [in] */ __RPC__in REFPROPVARIANT propvar2,
   1701             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszDesc1,
   1702             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszDesc2) = 0;
   1703         
   1704         virtual HRESULT STDMETHODCALLTYPE GetSortDescription( 
   1705             /* [out] */ __RPC__out PROPDESC_SORTDESCRIPTION *psd) = 0;
   1706         
   1707         virtual HRESULT STDMETHODCALLTYPE GetSortDescriptionLabel( 
   1708             /* [in] */ BOOL fDescending,
   1709             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszDescription) = 0;
   1710         
   1711         virtual HRESULT STDMETHODCALLTYPE GetAggregationType( 
   1712             /* [out] */ __RPC__out PROPDESC_AGGREGATION_TYPE *paggtype) = 0;
   1713         
   1714         virtual HRESULT STDMETHODCALLTYPE GetConditionType( 
   1715             /* [out] */ __RPC__out PROPDESC_CONDITION_TYPE *pcontype,
   1716             /* [out] */ __RPC__out CONDITION_OPERATION *popDefault) = 0;
   1717         
   1718         virtual HRESULT STDMETHODCALLTYPE GetEnumTypeList( 
   1719             /* [in] */ __RPC__in REFIID riid,
   1720             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv) = 0;
   1721         
   1722         virtual /* [local] */ HRESULT STDMETHODCALLTYPE CoerceToCanonicalValue( 
   1723             /* [out][in] */ PROPVARIANT *ppropvar) = 0;
   1724         
   1725         virtual HRESULT STDMETHODCALLTYPE FormatForDisplay( 
   1726             /* [in] */ __RPC__in REFPROPVARIANT propvar,
   1727             /* [in] */ PROPDESC_FORMAT_FLAGS pdfFlags,
   1728             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszDisplay) = 0;
   1729         
   1730         virtual HRESULT STDMETHODCALLTYPE IsValueCanonical( 
   1731             /* [in] */ __RPC__in REFPROPVARIANT propvar) = 0;
   1732         
   1733     };
   1734     
   1735 #else 	/* C style interface */
   1736 
   1737     typedef struct IPropertyDescriptionVtbl
   1738     {
   1739         BEGIN_INTERFACE
   1740         
   1741         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   1742             IPropertyDescription * This,
   1743             /* [in] */ __RPC__in REFIID riid,
   1744             /* [iid_is][out] */ 
   1745             __RPC__deref_out  void **ppvObject);
   1746         
   1747         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   1748             IPropertyDescription * This);
   1749         
   1750         ULONG ( STDMETHODCALLTYPE *Release )( 
   1751             IPropertyDescription * This);
   1752         
   1753         HRESULT ( STDMETHODCALLTYPE *GetPropertyKey )( 
   1754             IPropertyDescription * This,
   1755             /* [out] */ __RPC__out PROPERTYKEY *pkey);
   1756         
   1757         HRESULT ( STDMETHODCALLTYPE *GetCanonicalName )( 
   1758             IPropertyDescription * This,
   1759             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszName);
   1760         
   1761         HRESULT ( STDMETHODCALLTYPE *GetPropertyType )( 
   1762             IPropertyDescription * This,
   1763             /* [out] */ __RPC__out VARTYPE *pvartype);
   1764         
   1765         HRESULT ( STDMETHODCALLTYPE *GetDisplayName )( 
   1766             IPropertyDescription * This,
   1767             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszName);
   1768         
   1769         HRESULT ( STDMETHODCALLTYPE *GetEditInvitation )( 
   1770             IPropertyDescription * This,
   1771             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszInvite);
   1772         
   1773         HRESULT ( STDMETHODCALLTYPE *GetTypeFlags )( 
   1774             IPropertyDescription * This,
   1775             /* [in] */ PROPDESC_TYPE_FLAGS mask,
   1776             /* [out] */ __RPC__out PROPDESC_TYPE_FLAGS *ppdtFlags);
   1777         
   1778         HRESULT ( STDMETHODCALLTYPE *GetViewFlags )( 
   1779             IPropertyDescription * This,
   1780             /* [out] */ __RPC__out PROPDESC_VIEW_FLAGS *ppdvFlags);
   1781         
   1782         HRESULT ( STDMETHODCALLTYPE *GetDefaultColumnWidth )( 
   1783             IPropertyDescription * This,
   1784             /* [out] */ __RPC__out UINT *pcxChars);
   1785         
   1786         HRESULT ( STDMETHODCALLTYPE *GetDisplayType )( 
   1787             IPropertyDescription * This,
   1788             /* [out] */ __RPC__out PROPDESC_DISPLAYTYPE *pdisplaytype);
   1789         
   1790         HRESULT ( STDMETHODCALLTYPE *GetColumnState )( 
   1791             IPropertyDescription * This,
   1792             /* [out] */ __RPC__out SHCOLSTATEF *pcsFlags);
   1793         
   1794         HRESULT ( STDMETHODCALLTYPE *GetGroupingRange )( 
   1795             IPropertyDescription * This,
   1796             /* [out] */ __RPC__out PROPDESC_GROUPING_RANGE *pgr);
   1797         
   1798         HRESULT ( STDMETHODCALLTYPE *GetRelativeDescriptionType )( 
   1799             IPropertyDescription * This,
   1800             /* [out] */ __RPC__out PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt);
   1801         
   1802         HRESULT ( STDMETHODCALLTYPE *GetRelativeDescription )( 
   1803             IPropertyDescription * This,
   1804             /* [in] */ __RPC__in REFPROPVARIANT propvar1,
   1805             /* [in] */ __RPC__in REFPROPVARIANT propvar2,
   1806             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszDesc1,
   1807             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszDesc2);
   1808         
   1809         HRESULT ( STDMETHODCALLTYPE *GetSortDescription )( 
   1810             IPropertyDescription * This,
   1811             /* [out] */ __RPC__out PROPDESC_SORTDESCRIPTION *psd);
   1812         
   1813         HRESULT ( STDMETHODCALLTYPE *GetSortDescriptionLabel )( 
   1814             IPropertyDescription * This,
   1815             /* [in] */ BOOL fDescending,
   1816             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszDescription);
   1817         
   1818         HRESULT ( STDMETHODCALLTYPE *GetAggregationType )( 
   1819             IPropertyDescription * This,
   1820             /* [out] */ __RPC__out PROPDESC_AGGREGATION_TYPE *paggtype);
   1821         
   1822         HRESULT ( STDMETHODCALLTYPE *GetConditionType )( 
   1823             IPropertyDescription * This,
   1824             /* [out] */ __RPC__out PROPDESC_CONDITION_TYPE *pcontype,
   1825             /* [out] */ __RPC__out CONDITION_OPERATION *popDefault);
   1826         
   1827         HRESULT ( STDMETHODCALLTYPE *GetEnumTypeList )( 
   1828             IPropertyDescription * This,
   1829             /* [in] */ __RPC__in REFIID riid,
   1830             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
   1831         
   1832         /* [local] */ HRESULT ( STDMETHODCALLTYPE *CoerceToCanonicalValue )( 
   1833             IPropertyDescription * This,
   1834             /* [out][in] */ PROPVARIANT *ppropvar);
   1835         
   1836         HRESULT ( STDMETHODCALLTYPE *FormatForDisplay )( 
   1837             IPropertyDescription * This,
   1838             /* [in] */ __RPC__in REFPROPVARIANT propvar,
   1839             /* [in] */ PROPDESC_FORMAT_FLAGS pdfFlags,
   1840             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszDisplay);
   1841         
   1842         HRESULT ( STDMETHODCALLTYPE *IsValueCanonical )( 
   1843             IPropertyDescription * This,
   1844             /* [in] */ __RPC__in REFPROPVARIANT propvar);
   1845         
   1846         END_INTERFACE
   1847     } IPropertyDescriptionVtbl;
   1848 
   1849     interface IPropertyDescription
   1850     {
   1851         CONST_VTBL struct IPropertyDescriptionVtbl *lpVtbl;
   1852     };
   1853 
   1854     
   1855 
   1856 #ifdef COBJMACROS
   1857 
   1858 
   1859 #define IPropertyDescription_QueryInterface(This,riid,ppvObject)	\
   1860     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   1861 
   1862 #define IPropertyDescription_AddRef(This)	\
   1863     ( (This)->lpVtbl -> AddRef(This) ) 
   1864 
   1865 #define IPropertyDescription_Release(This)	\
   1866     ( (This)->lpVtbl -> Release(This) ) 
   1867 
   1868 
   1869 #define IPropertyDescription_GetPropertyKey(This,pkey)	\
   1870     ( (This)->lpVtbl -> GetPropertyKey(This,pkey) ) 
   1871 
   1872 #define IPropertyDescription_GetCanonicalName(This,ppszName)	\
   1873     ( (This)->lpVtbl -> GetCanonicalName(This,ppszName) ) 
   1874 
   1875 #define IPropertyDescription_GetPropertyType(This,pvartype)	\
   1876     ( (This)->lpVtbl -> GetPropertyType(This,pvartype) ) 
   1877 
   1878 #define IPropertyDescription_GetDisplayName(This,ppszName)	\
   1879     ( (This)->lpVtbl -> GetDisplayName(This,ppszName) ) 
   1880 
   1881 #define IPropertyDescription_GetEditInvitation(This,ppszInvite)	\
   1882     ( (This)->lpVtbl -> GetEditInvitation(This,ppszInvite) ) 
   1883 
   1884 #define IPropertyDescription_GetTypeFlags(This,mask,ppdtFlags)	\
   1885     ( (This)->lpVtbl -> GetTypeFlags(This,mask,ppdtFlags) ) 
   1886 
   1887 #define IPropertyDescription_GetViewFlags(This,ppdvFlags)	\
   1888     ( (This)->lpVtbl -> GetViewFlags(This,ppdvFlags) ) 
   1889 
   1890 #define IPropertyDescription_GetDefaultColumnWidth(This,pcxChars)	\
   1891     ( (This)->lpVtbl -> GetDefaultColumnWidth(This,pcxChars) ) 
   1892 
   1893 #define IPropertyDescription_GetDisplayType(This,pdisplaytype)	\
   1894     ( (This)->lpVtbl -> GetDisplayType(This,pdisplaytype) ) 
   1895 
   1896 #define IPropertyDescription_GetColumnState(This,pcsFlags)	\
   1897     ( (This)->lpVtbl -> GetColumnState(This,pcsFlags) ) 
   1898 
   1899 #define IPropertyDescription_GetGroupingRange(This,pgr)	\
   1900     ( (This)->lpVtbl -> GetGroupingRange(This,pgr) ) 
   1901 
   1902 #define IPropertyDescription_GetRelativeDescriptionType(This,prdt)	\
   1903     ( (This)->lpVtbl -> GetRelativeDescriptionType(This,prdt) ) 
   1904 
   1905 #define IPropertyDescription_GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2)	\
   1906     ( (This)->lpVtbl -> GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2) ) 
   1907 
   1908 #define IPropertyDescription_GetSortDescription(This,psd)	\
   1909     ( (This)->lpVtbl -> GetSortDescription(This,psd) ) 
   1910 
   1911 #define IPropertyDescription_GetSortDescriptionLabel(This,fDescending,ppszDescription)	\
   1912     ( (This)->lpVtbl -> GetSortDescriptionLabel(This,fDescending,ppszDescription) ) 
   1913 
   1914 #define IPropertyDescription_GetAggregationType(This,paggtype)	\
   1915     ( (This)->lpVtbl -> GetAggregationType(This,paggtype) ) 
   1916 
   1917 #define IPropertyDescription_GetConditionType(This,pcontype,popDefault)	\
   1918     ( (This)->lpVtbl -> GetConditionType(This,pcontype,popDefault) ) 
   1919 
   1920 #define IPropertyDescription_GetEnumTypeList(This,riid,ppv)	\
   1921     ( (This)->lpVtbl -> GetEnumTypeList(This,riid,ppv) ) 
   1922 
   1923 #define IPropertyDescription_CoerceToCanonicalValue(This,ppropvar)	\
   1924     ( (This)->lpVtbl -> CoerceToCanonicalValue(This,ppropvar) ) 
   1925 
   1926 #define IPropertyDescription_FormatForDisplay(This,propvar,pdfFlags,ppszDisplay)	\
   1927     ( (This)->lpVtbl -> FormatForDisplay(This,propvar,pdfFlags,ppszDisplay) ) 
   1928 
   1929 #define IPropertyDescription_IsValueCanonical(This,propvar)	\
   1930     ( (This)->lpVtbl -> IsValueCanonical(This,propvar) ) 
   1931 
   1932 #endif /* COBJMACROS */
   1933 
   1934 
   1935 #endif 	/* C style interface */
   1936 
   1937 
   1938 
   1939 /* [call_as] */ HRESULT STDMETHODCALLTYPE IPropertyDescription_RemoteCoerceToCanonicalValue_Proxy( 
   1940     IPropertyDescription * This,
   1941     /* [in] */ __RPC__in REFPROPVARIANT propvar,
   1942     /* [out] */ __RPC__out PROPVARIANT *ppropvar);
   1943 
   1944 
   1945 void __RPC_STUB IPropertyDescription_RemoteCoerceToCanonicalValue_Stub(
   1946     IRpcStubBuffer *This,
   1947     IRpcChannelBuffer *_pRpcChannelBuffer,
   1948     PRPC_MESSAGE _pRpcMessage,
   1949     DWORD *_pdwStubPhase);
   1950 
   1951 
   1952 
   1953 #endif 	/* __IPropertyDescription_INTERFACE_DEFINED__ */
   1954 
   1955 
   1956 #ifndef __IPropertyDescriptionAliasInfo_INTERFACE_DEFINED__
   1957 #define __IPropertyDescriptionAliasInfo_INTERFACE_DEFINED__
   1958 
   1959 /* interface IPropertyDescriptionAliasInfo */
   1960 /* [unique][object][uuid] */ 
   1961 
   1962 
   1963 EXTERN_C const IID IID_IPropertyDescriptionAliasInfo;
   1964 
   1965 #if defined(__cplusplus) && !defined(CINTERFACE)
   1966     
   1967     MIDL_INTERFACE("f67104fc-2af9-46fd-b32d-243c1404f3d1")
   1968     IPropertyDescriptionAliasInfo : public IPropertyDescription
   1969     {
   1970     public:
   1971         virtual HRESULT STDMETHODCALLTYPE GetSortByAlias( 
   1972             /* [in] */ __RPC__in REFIID riid,
   1973             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv) = 0;
   1974         
   1975         virtual HRESULT STDMETHODCALLTYPE GetAdditionalSortByAliases( 
   1976             /* [in] */ __RPC__in REFIID riid,
   1977             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv) = 0;
   1978         
   1979     };
   1980     
   1981 #else 	/* C style interface */
   1982 
   1983     typedef struct IPropertyDescriptionAliasInfoVtbl
   1984     {
   1985         BEGIN_INTERFACE
   1986         
   1987         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   1988             IPropertyDescriptionAliasInfo * This,
   1989             /* [in] */ __RPC__in REFIID riid,
   1990             /* [iid_is][out] */ 
   1991             __RPC__deref_out  void **ppvObject);
   1992         
   1993         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   1994             IPropertyDescriptionAliasInfo * This);
   1995         
   1996         ULONG ( STDMETHODCALLTYPE *Release )( 
   1997             IPropertyDescriptionAliasInfo * This);
   1998         
   1999         HRESULT ( STDMETHODCALLTYPE *GetPropertyKey )( 
   2000             IPropertyDescriptionAliasInfo * This,
   2001             /* [out] */ __RPC__out PROPERTYKEY *pkey);
   2002         
   2003         HRESULT ( STDMETHODCALLTYPE *GetCanonicalName )( 
   2004             IPropertyDescriptionAliasInfo * This,
   2005             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszName);
   2006         
   2007         HRESULT ( STDMETHODCALLTYPE *GetPropertyType )( 
   2008             IPropertyDescriptionAliasInfo * This,
   2009             /* [out] */ __RPC__out VARTYPE *pvartype);
   2010         
   2011         HRESULT ( STDMETHODCALLTYPE *GetDisplayName )( 
   2012             IPropertyDescriptionAliasInfo * This,
   2013             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszName);
   2014         
   2015         HRESULT ( STDMETHODCALLTYPE *GetEditInvitation )( 
   2016             IPropertyDescriptionAliasInfo * This,
   2017             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszInvite);
   2018         
   2019         HRESULT ( STDMETHODCALLTYPE *GetTypeFlags )( 
   2020             IPropertyDescriptionAliasInfo * This,
   2021             /* [in] */ PROPDESC_TYPE_FLAGS mask,
   2022             /* [out] */ __RPC__out PROPDESC_TYPE_FLAGS *ppdtFlags);
   2023         
   2024         HRESULT ( STDMETHODCALLTYPE *GetViewFlags )( 
   2025             IPropertyDescriptionAliasInfo * This,
   2026             /* [out] */ __RPC__out PROPDESC_VIEW_FLAGS *ppdvFlags);
   2027         
   2028         HRESULT ( STDMETHODCALLTYPE *GetDefaultColumnWidth )( 
   2029             IPropertyDescriptionAliasInfo * This,
   2030             /* [out] */ __RPC__out UINT *pcxChars);
   2031         
   2032         HRESULT ( STDMETHODCALLTYPE *GetDisplayType )( 
   2033             IPropertyDescriptionAliasInfo * This,
   2034             /* [out] */ __RPC__out PROPDESC_DISPLAYTYPE *pdisplaytype);
   2035         
   2036         HRESULT ( STDMETHODCALLTYPE *GetColumnState )( 
   2037             IPropertyDescriptionAliasInfo * This,
   2038             /* [out] */ __RPC__out SHCOLSTATEF *pcsFlags);
   2039         
   2040         HRESULT ( STDMETHODCALLTYPE *GetGroupingRange )( 
   2041             IPropertyDescriptionAliasInfo * This,
   2042             /* [out] */ __RPC__out PROPDESC_GROUPING_RANGE *pgr);
   2043         
   2044         HRESULT ( STDMETHODCALLTYPE *GetRelativeDescriptionType )( 
   2045             IPropertyDescriptionAliasInfo * This,
   2046             /* [out] */ __RPC__out PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt);
   2047         
   2048         HRESULT ( STDMETHODCALLTYPE *GetRelativeDescription )( 
   2049             IPropertyDescriptionAliasInfo * This,
   2050             /* [in] */ __RPC__in REFPROPVARIANT propvar1,
   2051             /* [in] */ __RPC__in REFPROPVARIANT propvar2,
   2052             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszDesc1,
   2053             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszDesc2);
   2054         
   2055         HRESULT ( STDMETHODCALLTYPE *GetSortDescription )( 
   2056             IPropertyDescriptionAliasInfo * This,
   2057             /* [out] */ __RPC__out PROPDESC_SORTDESCRIPTION *psd);
   2058         
   2059         HRESULT ( STDMETHODCALLTYPE *GetSortDescriptionLabel )( 
   2060             IPropertyDescriptionAliasInfo * This,
   2061             /* [in] */ BOOL fDescending,
   2062             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszDescription);
   2063         
   2064         HRESULT ( STDMETHODCALLTYPE *GetAggregationType )( 
   2065             IPropertyDescriptionAliasInfo * This,
   2066             /* [out] */ __RPC__out PROPDESC_AGGREGATION_TYPE *paggtype);
   2067         
   2068         HRESULT ( STDMETHODCALLTYPE *GetConditionType )( 
   2069             IPropertyDescriptionAliasInfo * This,
   2070             /* [out] */ __RPC__out PROPDESC_CONDITION_TYPE *pcontype,
   2071             /* [out] */ __RPC__out CONDITION_OPERATION *popDefault);
   2072         
   2073         HRESULT ( STDMETHODCALLTYPE *GetEnumTypeList )( 
   2074             IPropertyDescriptionAliasInfo * This,
   2075             /* [in] */ __RPC__in REFIID riid,
   2076             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
   2077         
   2078         /* [local] */ HRESULT ( STDMETHODCALLTYPE *CoerceToCanonicalValue )( 
   2079             IPropertyDescriptionAliasInfo * This,
   2080             /* [out][in] */ PROPVARIANT *ppropvar);
   2081         
   2082         HRESULT ( STDMETHODCALLTYPE *FormatForDisplay )( 
   2083             IPropertyDescriptionAliasInfo * This,
   2084             /* [in] */ __RPC__in REFPROPVARIANT propvar,
   2085             /* [in] */ PROPDESC_FORMAT_FLAGS pdfFlags,
   2086             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszDisplay);
   2087         
   2088         HRESULT ( STDMETHODCALLTYPE *IsValueCanonical )( 
   2089             IPropertyDescriptionAliasInfo * This,
   2090             /* [in] */ __RPC__in REFPROPVARIANT propvar);
   2091         
   2092         HRESULT ( STDMETHODCALLTYPE *GetSortByAlias )( 
   2093             IPropertyDescriptionAliasInfo * This,
   2094             /* [in] */ __RPC__in REFIID riid,
   2095             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
   2096         
   2097         HRESULT ( STDMETHODCALLTYPE *GetAdditionalSortByAliases )( 
   2098             IPropertyDescriptionAliasInfo * This,
   2099             /* [in] */ __RPC__in REFIID riid,
   2100             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
   2101         
   2102         END_INTERFACE
   2103     } IPropertyDescriptionAliasInfoVtbl;
   2104 
   2105     interface IPropertyDescriptionAliasInfo
   2106     {
   2107         CONST_VTBL struct IPropertyDescriptionAliasInfoVtbl *lpVtbl;
   2108     };
   2109 
   2110     
   2111 
   2112 #ifdef COBJMACROS
   2113 
   2114 
   2115 #define IPropertyDescriptionAliasInfo_QueryInterface(This,riid,ppvObject)	\
   2116     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   2117 
   2118 #define IPropertyDescriptionAliasInfo_AddRef(This)	\
   2119     ( (This)->lpVtbl -> AddRef(This) ) 
   2120 
   2121 #define IPropertyDescriptionAliasInfo_Release(This)	\
   2122     ( (This)->lpVtbl -> Release(This) ) 
   2123 
   2124 
   2125 #define IPropertyDescriptionAliasInfo_GetPropertyKey(This,pkey)	\
   2126     ( (This)->lpVtbl -> GetPropertyKey(This,pkey) ) 
   2127 
   2128 #define IPropertyDescriptionAliasInfo_GetCanonicalName(This,ppszName)	\
   2129     ( (This)->lpVtbl -> GetCanonicalName(This,ppszName) ) 
   2130 
   2131 #define IPropertyDescriptionAliasInfo_GetPropertyType(This,pvartype)	\
   2132     ( (This)->lpVtbl -> GetPropertyType(This,pvartype) ) 
   2133 
   2134 #define IPropertyDescriptionAliasInfo_GetDisplayName(This,ppszName)	\
   2135     ( (This)->lpVtbl -> GetDisplayName(This,ppszName) ) 
   2136 
   2137 #define IPropertyDescriptionAliasInfo_GetEditInvitation(This,ppszInvite)	\
   2138     ( (This)->lpVtbl -> GetEditInvitation(This,ppszInvite) ) 
   2139 
   2140 #define IPropertyDescriptionAliasInfo_GetTypeFlags(This,mask,ppdtFlags)	\
   2141     ( (This)->lpVtbl -> GetTypeFlags(This,mask,ppdtFlags) ) 
   2142 
   2143 #define IPropertyDescriptionAliasInfo_GetViewFlags(This,ppdvFlags)	\
   2144     ( (This)->lpVtbl -> GetViewFlags(This,ppdvFlags) ) 
   2145 
   2146 #define IPropertyDescriptionAliasInfo_GetDefaultColumnWidth(This,pcxChars)	\
   2147     ( (This)->lpVtbl -> GetDefaultColumnWidth(This,pcxChars) ) 
   2148 
   2149 #define IPropertyDescriptionAliasInfo_GetDisplayType(This,pdisplaytype)	\
   2150     ( (This)->lpVtbl -> GetDisplayType(This,pdisplaytype) ) 
   2151 
   2152 #define IPropertyDescriptionAliasInfo_GetColumnState(This,pcsFlags)	\
   2153     ( (This)->lpVtbl -> GetColumnState(This,pcsFlags) ) 
   2154 
   2155 #define IPropertyDescriptionAliasInfo_GetGroupingRange(This,pgr)	\
   2156     ( (This)->lpVtbl -> GetGroupingRange(This,pgr) ) 
   2157 
   2158 #define IPropertyDescriptionAliasInfo_GetRelativeDescriptionType(This,prdt)	\
   2159     ( (This)->lpVtbl -> GetRelativeDescriptionType(This,prdt) ) 
   2160 
   2161 #define IPropertyDescriptionAliasInfo_GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2)	\
   2162     ( (This)->lpVtbl -> GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2) ) 
   2163 
   2164 #define IPropertyDescriptionAliasInfo_GetSortDescription(This,psd)	\
   2165     ( (This)->lpVtbl -> GetSortDescription(This,psd) ) 
   2166 
   2167 #define IPropertyDescriptionAliasInfo_GetSortDescriptionLabel(This,fDescending,ppszDescription)	\
   2168     ( (This)->lpVtbl -> GetSortDescriptionLabel(This,fDescending,ppszDescription) ) 
   2169 
   2170 #define IPropertyDescriptionAliasInfo_GetAggregationType(This,paggtype)	\
   2171     ( (This)->lpVtbl -> GetAggregationType(This,paggtype) ) 
   2172 
   2173 #define IPropertyDescriptionAliasInfo_GetConditionType(This,pcontype,popDefault)	\
   2174     ( (This)->lpVtbl -> GetConditionType(This,pcontype,popDefault) ) 
   2175 
   2176 #define IPropertyDescriptionAliasInfo_GetEnumTypeList(This,riid,ppv)	\
   2177     ( (This)->lpVtbl -> GetEnumTypeList(This,riid,ppv) ) 
   2178 
   2179 #define IPropertyDescriptionAliasInfo_CoerceToCanonicalValue(This,ppropvar)	\
   2180     ( (This)->lpVtbl -> CoerceToCanonicalValue(This,ppropvar) ) 
   2181 
   2182 #define IPropertyDescriptionAliasInfo_FormatForDisplay(This,propvar,pdfFlags,ppszDisplay)	\
   2183     ( (This)->lpVtbl -> FormatForDisplay(This,propvar,pdfFlags,ppszDisplay) ) 
   2184 
   2185 #define IPropertyDescriptionAliasInfo_IsValueCanonical(This,propvar)	\
   2186     ( (This)->lpVtbl -> IsValueCanonical(This,propvar) ) 
   2187 
   2188 
   2189 #define IPropertyDescriptionAliasInfo_GetSortByAlias(This,riid,ppv)	\
   2190     ( (This)->lpVtbl -> GetSortByAlias(This,riid,ppv) ) 
   2191 
   2192 #define IPropertyDescriptionAliasInfo_GetAdditionalSortByAliases(This,riid,ppv)	\
   2193     ( (This)->lpVtbl -> GetAdditionalSortByAliases(This,riid,ppv) ) 
   2194 
   2195 #endif /* COBJMACROS */
   2196 
   2197 
   2198 #endif 	/* C style interface */
   2199 
   2200 
   2201 
   2202 
   2203 #endif 	/* __IPropertyDescriptionAliasInfo_INTERFACE_DEFINED__ */
   2204 
   2205 
   2206 #ifndef __IPropertyDescriptionSearchInfo_INTERFACE_DEFINED__
   2207 #define __IPropertyDescriptionSearchInfo_INTERFACE_DEFINED__
   2208 
   2209 /* interface IPropertyDescriptionSearchInfo */
   2210 /* [unique][object][uuid] */ 
   2211 
   2212 /* [v1_enum] */ 
   2213 enum tagPROPDESC_SEARCHINFO_FLAGS
   2214     {	PDSIF_DEFAULT	= 0,
   2215 	PDSIF_ININVERTEDINDEX	= 0x1,
   2216 	PDSIF_ISCOLUMN	= 0x2,
   2217 	PDSIF_ISCOLUMNSPARSE	= 0x4
   2218     } ;
   2219 typedef int PROPDESC_SEARCHINFO_FLAGS;
   2220 
   2221 typedef /* [v1_enum] */ 
   2222 enum tagPROPDESC_COLUMNINDEX_TYPE
   2223     {	PDCIT_NONE	= 0,
   2224 	PDCIT_ONDISK	= 1,
   2225 	PDCIT_INMEMORY	= 2
   2226     } 	PROPDESC_COLUMNINDEX_TYPE;
   2227 
   2228 
   2229 EXTERN_C const IID IID_IPropertyDescriptionSearchInfo;
   2230 
   2231 #if defined(__cplusplus) && !defined(CINTERFACE)
   2232     
   2233     MIDL_INTERFACE("078f91bd-29a2-440f-924e-46a291524520")
   2234     IPropertyDescriptionSearchInfo : public IPropertyDescription
   2235     {
   2236     public:
   2237         virtual HRESULT STDMETHODCALLTYPE GetSearchInfoFlags( 
   2238             /* [out] */ __RPC__out PROPDESC_SEARCHINFO_FLAGS *ppdsiFlags) = 0;
   2239         
   2240         virtual HRESULT STDMETHODCALLTYPE GetColumnIndexType( 
   2241             /* [out] */ __RPC__out PROPDESC_COLUMNINDEX_TYPE *ppdciType) = 0;
   2242         
   2243         virtual HRESULT STDMETHODCALLTYPE GetProjectionString( 
   2244             /* [out] */ __RPC__deref_out_opt LPWSTR *ppszProjection) = 0;
   2245         
   2246         virtual HRESULT STDMETHODCALLTYPE GetMaxSize( 
   2247             /* [out] */ __RPC__out UINT *pcbMaxSize) = 0;
   2248         
   2249     };
   2250     
   2251 #else 	/* C style interface */
   2252 
   2253     typedef struct IPropertyDescriptionSearchInfoVtbl
   2254     {
   2255         BEGIN_INTERFACE
   2256         
   2257         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   2258             IPropertyDescriptionSearchInfo * This,
   2259             /* [in] */ __RPC__in REFIID riid,
   2260             /* [iid_is][out] */ 
   2261             __RPC__deref_out  void **ppvObject);
   2262         
   2263         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   2264             IPropertyDescriptionSearchInfo * This);
   2265         
   2266         ULONG ( STDMETHODCALLTYPE *Release )( 
   2267             IPropertyDescriptionSearchInfo * This);
   2268         
   2269         HRESULT ( STDMETHODCALLTYPE *GetPropertyKey )( 
   2270             IPropertyDescriptionSearchInfo * This,
   2271             /* [out] */ __RPC__out PROPERTYKEY *pkey);
   2272         
   2273         HRESULT ( STDMETHODCALLTYPE *GetCanonicalName )( 
   2274             IPropertyDescriptionSearchInfo * This,
   2275             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszName);
   2276         
   2277         HRESULT ( STDMETHODCALLTYPE *GetPropertyType )( 
   2278             IPropertyDescriptionSearchInfo * This,
   2279             /* [out] */ __RPC__out VARTYPE *pvartype);
   2280         
   2281         HRESULT ( STDMETHODCALLTYPE *GetDisplayName )( 
   2282             IPropertyDescriptionSearchInfo * This,
   2283             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszName);
   2284         
   2285         HRESULT ( STDMETHODCALLTYPE *GetEditInvitation )( 
   2286             IPropertyDescriptionSearchInfo * This,
   2287             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszInvite);
   2288         
   2289         HRESULT ( STDMETHODCALLTYPE *GetTypeFlags )( 
   2290             IPropertyDescriptionSearchInfo * This,
   2291             /* [in] */ PROPDESC_TYPE_FLAGS mask,
   2292             /* [out] */ __RPC__out PROPDESC_TYPE_FLAGS *ppdtFlags);
   2293         
   2294         HRESULT ( STDMETHODCALLTYPE *GetViewFlags )( 
   2295             IPropertyDescriptionSearchInfo * This,
   2296             /* [out] */ __RPC__out PROPDESC_VIEW_FLAGS *ppdvFlags);
   2297         
   2298         HRESULT ( STDMETHODCALLTYPE *GetDefaultColumnWidth )( 
   2299             IPropertyDescriptionSearchInfo * This,
   2300             /* [out] */ __RPC__out UINT *pcxChars);
   2301         
   2302         HRESULT ( STDMETHODCALLTYPE *GetDisplayType )( 
   2303             IPropertyDescriptionSearchInfo * This,
   2304             /* [out] */ __RPC__out PROPDESC_DISPLAYTYPE *pdisplaytype);
   2305         
   2306         HRESULT ( STDMETHODCALLTYPE *GetColumnState )( 
   2307             IPropertyDescriptionSearchInfo * This,
   2308             /* [out] */ __RPC__out SHCOLSTATEF *pcsFlags);
   2309         
   2310         HRESULT ( STDMETHODCALLTYPE *GetGroupingRange )( 
   2311             IPropertyDescriptionSearchInfo * This,
   2312             /* [out] */ __RPC__out PROPDESC_GROUPING_RANGE *pgr);
   2313         
   2314         HRESULT ( STDMETHODCALLTYPE *GetRelativeDescriptionType )( 
   2315             IPropertyDescriptionSearchInfo * This,
   2316             /* [out] */ __RPC__out PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt);
   2317         
   2318         HRESULT ( STDMETHODCALLTYPE *GetRelativeDescription )( 
   2319             IPropertyDescriptionSearchInfo * This,
   2320             /* [in] */ __RPC__in REFPROPVARIANT propvar1,
   2321             /* [in] */ __RPC__in REFPROPVARIANT propvar2,
   2322             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszDesc1,
   2323             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszDesc2);
   2324         
   2325         HRESULT ( STDMETHODCALLTYPE *GetSortDescription )( 
   2326             IPropertyDescriptionSearchInfo * This,
   2327             /* [out] */ __RPC__out PROPDESC_SORTDESCRIPTION *psd);
   2328         
   2329         HRESULT ( STDMETHODCALLTYPE *GetSortDescriptionLabel )( 
   2330             IPropertyDescriptionSearchInfo * This,
   2331             /* [in] */ BOOL fDescending,
   2332             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszDescription);
   2333         
   2334         HRESULT ( STDMETHODCALLTYPE *GetAggregationType )( 
   2335             IPropertyDescriptionSearchInfo * This,
   2336             /* [out] */ __RPC__out PROPDESC_AGGREGATION_TYPE *paggtype);
   2337         
   2338         HRESULT ( STDMETHODCALLTYPE *GetConditionType )( 
   2339             IPropertyDescriptionSearchInfo * This,
   2340             /* [out] */ __RPC__out PROPDESC_CONDITION_TYPE *pcontype,
   2341             /* [out] */ __RPC__out CONDITION_OPERATION *popDefault);
   2342         
   2343         HRESULT ( STDMETHODCALLTYPE *GetEnumTypeList )( 
   2344             IPropertyDescriptionSearchInfo * This,
   2345             /* [in] */ __RPC__in REFIID riid,
   2346             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
   2347         
   2348         /* [local] */ HRESULT ( STDMETHODCALLTYPE *CoerceToCanonicalValue )( 
   2349             IPropertyDescriptionSearchInfo * This,
   2350             /* [out][in] */ PROPVARIANT *ppropvar);
   2351         
   2352         HRESULT ( STDMETHODCALLTYPE *FormatForDisplay )( 
   2353             IPropertyDescriptionSearchInfo * This,
   2354             /* [in] */ __RPC__in REFPROPVARIANT propvar,
   2355             /* [in] */ PROPDESC_FORMAT_FLAGS pdfFlags,
   2356             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszDisplay);
   2357         
   2358         HRESULT ( STDMETHODCALLTYPE *IsValueCanonical )( 
   2359             IPropertyDescriptionSearchInfo * This,
   2360             /* [in] */ __RPC__in REFPROPVARIANT propvar);
   2361         
   2362         HRESULT ( STDMETHODCALLTYPE *GetSearchInfoFlags )( 
   2363             IPropertyDescriptionSearchInfo * This,
   2364             /* [out] */ __RPC__out PROPDESC_SEARCHINFO_FLAGS *ppdsiFlags);
   2365         
   2366         HRESULT ( STDMETHODCALLTYPE *GetColumnIndexType )( 
   2367             IPropertyDescriptionSearchInfo * This,
   2368             /* [out] */ __RPC__out PROPDESC_COLUMNINDEX_TYPE *ppdciType);
   2369         
   2370         HRESULT ( STDMETHODCALLTYPE *GetProjectionString )( 
   2371             IPropertyDescriptionSearchInfo * This,
   2372             /* [out] */ __RPC__deref_out_opt LPWSTR *ppszProjection);
   2373         
   2374         HRESULT ( STDMETHODCALLTYPE *GetMaxSize )( 
   2375             IPropertyDescriptionSearchInfo * This,
   2376             /* [out] */ __RPC__out UINT *pcbMaxSize);
   2377         
   2378         END_INTERFACE
   2379     } IPropertyDescriptionSearchInfoVtbl;
   2380 
   2381     interface IPropertyDescriptionSearchInfo
   2382     {
   2383         CONST_VTBL struct IPropertyDescriptionSearchInfoVtbl *lpVtbl;
   2384     };
   2385 
   2386     
   2387 
   2388 #ifdef COBJMACROS
   2389 
   2390 
   2391 #define IPropertyDescriptionSearchInfo_QueryInterface(This,riid,ppvObject)	\
   2392     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   2393 
   2394 #define IPropertyDescriptionSearchInfo_AddRef(This)	\
   2395     ( (This)->lpVtbl -> AddRef(This) ) 
   2396 
   2397 #define IPropertyDescriptionSearchInfo_Release(This)	\
   2398     ( (This)->lpVtbl -> Release(This) ) 
   2399 
   2400 
   2401 #define IPropertyDescriptionSearchInfo_GetPropertyKey(This,pkey)	\
   2402     ( (This)->lpVtbl -> GetPropertyKey(This,pkey) ) 
   2403 
   2404 #define IPropertyDescriptionSearchInfo_GetCanonicalName(This,ppszName)	\
   2405     ( (This)->lpVtbl -> GetCanonicalName(This,ppszName) ) 
   2406 
   2407 #define IPropertyDescriptionSearchInfo_GetPropertyType(This,pvartype)	\
   2408     ( (This)->lpVtbl -> GetPropertyType(This,pvartype) ) 
   2409 
   2410 #define IPropertyDescriptionSearchInfo_GetDisplayName(This,ppszName)	\
   2411     ( (This)->lpVtbl -> GetDisplayName(This,ppszName) ) 
   2412 
   2413 #define IPropertyDescriptionSearchInfo_GetEditInvitation(This,ppszInvite)	\
   2414     ( (This)->lpVtbl -> GetEditInvitation(This,ppszInvite) ) 
   2415 
   2416 #define IPropertyDescriptionSearchInfo_GetTypeFlags(This,mask,ppdtFlags)	\
   2417     ( (This)->lpVtbl -> GetTypeFlags(This,mask,ppdtFlags) ) 
   2418 
   2419 #define IPropertyDescriptionSearchInfo_GetViewFlags(This,ppdvFlags)	\
   2420     ( (This)->lpVtbl -> GetViewFlags(This,ppdvFlags) ) 
   2421 
   2422 #define IPropertyDescriptionSearchInfo_GetDefaultColumnWidth(This,pcxChars)	\
   2423     ( (This)->lpVtbl -> GetDefaultColumnWidth(This,pcxChars) ) 
   2424 
   2425 #define IPropertyDescriptionSearchInfo_GetDisplayType(This,pdisplaytype)	\
   2426     ( (This)->lpVtbl -> GetDisplayType(This,pdisplaytype) ) 
   2427 
   2428 #define IPropertyDescriptionSearchInfo_GetColumnState(This,pcsFlags)	\
   2429     ( (This)->lpVtbl -> GetColumnState(This,pcsFlags) ) 
   2430 
   2431 #define IPropertyDescriptionSearchInfo_GetGroupingRange(This,pgr)	\
   2432     ( (This)->lpVtbl -> GetGroupingRange(This,pgr) ) 
   2433 
   2434 #define IPropertyDescriptionSearchInfo_GetRelativeDescriptionType(This,prdt)	\
   2435     ( (This)->lpVtbl -> GetRelativeDescriptionType(This,prdt) ) 
   2436 
   2437 #define IPropertyDescriptionSearchInfo_GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2)	\
   2438     ( (This)->lpVtbl -> GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2) ) 
   2439 
   2440 #define IPropertyDescriptionSearchInfo_GetSortDescription(This,psd)	\
   2441     ( (This)->lpVtbl -> GetSortDescription(This,psd) ) 
   2442 
   2443 #define IPropertyDescriptionSearchInfo_GetSortDescriptionLabel(This,fDescending,ppszDescription)	\
   2444     ( (This)->lpVtbl -> GetSortDescriptionLabel(This,fDescending,ppszDescription) ) 
   2445 
   2446 #define IPropertyDescriptionSearchInfo_GetAggregationType(This,paggtype)	\
   2447     ( (This)->lpVtbl -> GetAggregationType(This,paggtype) ) 
   2448 
   2449 #define IPropertyDescriptionSearchInfo_GetConditionType(This,pcontype,popDefault)	\
   2450     ( (This)->lpVtbl -> GetConditionType(This,pcontype,popDefault) ) 
   2451 
   2452 #define IPropertyDescriptionSearchInfo_GetEnumTypeList(This,riid,ppv)	\
   2453     ( (This)->lpVtbl -> GetEnumTypeList(This,riid,ppv) ) 
   2454 
   2455 #define IPropertyDescriptionSearchInfo_CoerceToCanonicalValue(This,ppropvar)	\
   2456     ( (This)->lpVtbl -> CoerceToCanonicalValue(This,ppropvar) ) 
   2457 
   2458 #define IPropertyDescriptionSearchInfo_FormatForDisplay(This,propvar,pdfFlags,ppszDisplay)	\
   2459     ( (This)->lpVtbl -> FormatForDisplay(This,propvar,pdfFlags,ppszDisplay) ) 
   2460 
   2461 #define IPropertyDescriptionSearchInfo_IsValueCanonical(This,propvar)	\
   2462     ( (This)->lpVtbl -> IsValueCanonical(This,propvar) ) 
   2463 
   2464 
   2465 #define IPropertyDescriptionSearchInfo_GetSearchInfoFlags(This,ppdsiFlags)	\
   2466     ( (This)->lpVtbl -> GetSearchInfoFlags(This,ppdsiFlags) ) 
   2467 
   2468 #define IPropertyDescriptionSearchInfo_GetColumnIndexType(This,ppdciType)	\
   2469     ( (This)->lpVtbl -> GetColumnIndexType(This,ppdciType) ) 
   2470 
   2471 #define IPropertyDescriptionSearchInfo_GetProjectionString(This,ppszProjection)	\
   2472     ( (This)->lpVtbl -> GetProjectionString(This,ppszProjection) ) 
   2473 
   2474 #define IPropertyDescriptionSearchInfo_GetMaxSize(This,pcbMaxSize)	\
   2475     ( (This)->lpVtbl -> GetMaxSize(This,pcbMaxSize) ) 
   2476 
   2477 #endif /* COBJMACROS */
   2478 
   2479 
   2480 #endif 	/* C style interface */
   2481 
   2482 
   2483 
   2484 
   2485 #endif 	/* __IPropertyDescriptionSearchInfo_INTERFACE_DEFINED__ */
   2486 
   2487 
   2488 /* interface __MIDL_itf_propsys_0000_0014 */
   2489 /* [local] */ 
   2490 
   2491 /* [v1_enum] */ 
   2492 enum tagPROPDESC_ENUMFILTER
   2493     {	PDEF_ALL	= 0,
   2494 	PDEF_SYSTEM	= 1,
   2495 	PDEF_NONSYSTEM	= 2,
   2496 	PDEF_VIEWABLE	= 3,
   2497 	PDEF_QUERYABLE	= 4,
   2498 	PDEF_INFULLTEXTQUERY	= 5,
   2499 	PDEF_COLUMN	= 6
   2500     } ;
   2501 typedef enum tagPROPDESC_ENUMFILTER PROPDESC_ENUMFILTER;
   2502 
   2503 
   2504 
   2505 extern RPC_IF_HANDLE __MIDL_itf_propsys_0000_0014_v0_0_c_ifspec;
   2506 extern RPC_IF_HANDLE __MIDL_itf_propsys_0000_0014_v0_0_s_ifspec;
   2507 
   2508 #ifndef __IPropertySystem_INTERFACE_DEFINED__
   2509 #define __IPropertySystem_INTERFACE_DEFINED__
   2510 
   2511 /* interface IPropertySystem */
   2512 /* [unique][object][uuid] */ 
   2513 
   2514 
   2515 EXTERN_C const IID IID_IPropertySystem;
   2516 
   2517 #if defined(__cplusplus) && !defined(CINTERFACE)
   2518     
   2519     MIDL_INTERFACE("ca724e8a-c3e6-442b-88a4-6fb0db8035a3")
   2520     IPropertySystem : public IUnknown
   2521     {
   2522     public:
   2523         virtual HRESULT STDMETHODCALLTYPE GetPropertyDescription( 
   2524             /* [in] */ __RPC__in REFPROPERTYKEY propkey,
   2525             /* [in] */ __RPC__in REFIID riid,
   2526             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv) = 0;
   2527         
   2528         virtual HRESULT STDMETHODCALLTYPE GetPropertyDescriptionByName( 
   2529             /* [string][in] */ __RPC__in LPCWSTR pszCanonicalName,
   2530             /* [in] */ __RPC__in REFIID riid,
   2531             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv) = 0;
   2532         
   2533         virtual HRESULT STDMETHODCALLTYPE GetPropertyDescriptionListFromString( 
   2534             /* [string][in] */ __RPC__in LPCWSTR pszPropList,
   2535             /* [in] */ __RPC__in REFIID riid,
   2536             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv) = 0;
   2537         
   2538         virtual HRESULT STDMETHODCALLTYPE EnumeratePropertyDescriptions( 
   2539             /* [in] */ PROPDESC_ENUMFILTER filterOn,
   2540             /* [in] */ __RPC__in REFIID riid,
   2541             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv) = 0;
   2542         
   2543         virtual HRESULT STDMETHODCALLTYPE FormatForDisplay( 
   2544             /* [in] */ __RPC__in REFPROPERTYKEY key,
   2545             /* [in] */ __RPC__in REFPROPVARIANT propvar,
   2546             /* [in] */ PROPDESC_FORMAT_FLAGS pdff,
   2547             /* [size_is][string][out] */ __RPC__out_ecount_full_string(cchText) LPWSTR pszText,
   2548             /* [in] */ DWORD cchText) = 0;
   2549         
   2550         virtual HRESULT STDMETHODCALLTYPE FormatForDisplayAlloc( 
   2551             /* [in] */ __RPC__in REFPROPERTYKEY key,
   2552             /* [in] */ __RPC__in REFPROPVARIANT propvar,
   2553             /* [in] */ PROPDESC_FORMAT_FLAGS pdff,
   2554             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszDisplay) = 0;
   2555         
   2556         virtual HRESULT STDMETHODCALLTYPE RegisterPropertySchema( 
   2557             /* [string][in] */ __RPC__in LPCWSTR pszPath) = 0;
   2558         
   2559         virtual HRESULT STDMETHODCALLTYPE UnregisterPropertySchema( 
   2560             /* [string][in] */ __RPC__in LPCWSTR pszPath) = 0;
   2561         
   2562         virtual HRESULT STDMETHODCALLTYPE RefreshPropertySchema( void) = 0;
   2563         
   2564     };
   2565     
   2566 #else 	/* C style interface */
   2567 
   2568     typedef struct IPropertySystemVtbl
   2569     {
   2570         BEGIN_INTERFACE
   2571         
   2572         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   2573             IPropertySystem * This,
   2574             /* [in] */ __RPC__in REFIID riid,
   2575             /* [iid_is][out] */ 
   2576             __RPC__deref_out  void **ppvObject);
   2577         
   2578         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   2579             IPropertySystem * This);
   2580         
   2581         ULONG ( STDMETHODCALLTYPE *Release )( 
   2582             IPropertySystem * This);
   2583         
   2584         HRESULT ( STDMETHODCALLTYPE *GetPropertyDescription )( 
   2585             IPropertySystem * This,
   2586             /* [in] */ __RPC__in REFPROPERTYKEY propkey,
   2587             /* [in] */ __RPC__in REFIID riid,
   2588             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
   2589         
   2590         HRESULT ( STDMETHODCALLTYPE *GetPropertyDescriptionByName )( 
   2591             IPropertySystem * This,
   2592             /* [string][in] */ __RPC__in LPCWSTR pszCanonicalName,
   2593             /* [in] */ __RPC__in REFIID riid,
   2594             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
   2595         
   2596         HRESULT ( STDMETHODCALLTYPE *GetPropertyDescriptionListFromString )( 
   2597             IPropertySystem * This,
   2598             /* [string][in] */ __RPC__in LPCWSTR pszPropList,
   2599             /* [in] */ __RPC__in REFIID riid,
   2600             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
   2601         
   2602         HRESULT ( STDMETHODCALLTYPE *EnumeratePropertyDescriptions )( 
   2603             IPropertySystem * This,
   2604             /* [in] */ PROPDESC_ENUMFILTER filterOn,
   2605             /* [in] */ __RPC__in REFIID riid,
   2606             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
   2607         
   2608         HRESULT ( STDMETHODCALLTYPE *FormatForDisplay )( 
   2609             IPropertySystem * This,
   2610             /* [in] */ __RPC__in REFPROPERTYKEY key,
   2611             /* [in] */ __RPC__in REFPROPVARIANT propvar,
   2612             /* [in] */ PROPDESC_FORMAT_FLAGS pdff,
   2613             /* [size_is][string][out] */ __RPC__out_ecount_full_string(cchText) LPWSTR pszText,
   2614             /* [in] */ DWORD cchText);
   2615         
   2616         HRESULT ( STDMETHODCALLTYPE *FormatForDisplayAlloc )( 
   2617             IPropertySystem * This,
   2618             /* [in] */ __RPC__in REFPROPERTYKEY key,
   2619             /* [in] */ __RPC__in REFPROPVARIANT propvar,
   2620             /* [in] */ PROPDESC_FORMAT_FLAGS pdff,
   2621             /* [string][out] */ __RPC__deref_out_opt_string LPWSTR *ppszDisplay);
   2622         
   2623         HRESULT ( STDMETHODCALLTYPE *RegisterPropertySchema )( 
   2624             IPropertySystem * This,
   2625             /* [string][in] */ __RPC__in LPCWSTR pszPath);
   2626         
   2627         HRESULT ( STDMETHODCALLTYPE *UnregisterPropertySchema )( 
   2628             IPropertySystem * This,
   2629             /* [string][in] */ __RPC__in LPCWSTR pszPath);
   2630         
   2631         HRESULT ( STDMETHODCALLTYPE *RefreshPropertySchema )( 
   2632             IPropertySystem * This);
   2633         
   2634         END_INTERFACE
   2635     } IPropertySystemVtbl;
   2636 
   2637     interface IPropertySystem
   2638     {
   2639         CONST_VTBL struct IPropertySystemVtbl *lpVtbl;
   2640     };
   2641 
   2642     
   2643 
   2644 #ifdef COBJMACROS
   2645 
   2646 
   2647 #define IPropertySystem_QueryInterface(This,riid,ppvObject)	\
   2648     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   2649 
   2650 #define IPropertySystem_AddRef(This)	\
   2651     ( (This)->lpVtbl -> AddRef(This) ) 
   2652 
   2653 #define IPropertySystem_Release(This)	\
   2654     ( (This)->lpVtbl -> Release(This) ) 
   2655 
   2656 
   2657 #define IPropertySystem_GetPropertyDescription(This,propkey,riid,ppv)	\
   2658     ( (This)->lpVtbl -> GetPropertyDescription(This,propkey,riid,ppv) ) 
   2659 
   2660 #define IPropertySystem_GetPropertyDescriptionByName(This,pszCanonicalName,riid,ppv)	\
   2661     ( (This)->lpVtbl -> GetPropertyDescriptionByName(This,pszCanonicalName,riid,ppv) ) 
   2662 
   2663 #define IPropertySystem_GetPropertyDescriptionListFromString(This,pszPropList,riid,ppv)	\
   2664     ( (This)->lpVtbl -> GetPropertyDescriptionListFromString(This,pszPropList,riid,ppv) ) 
   2665 
   2666 #define IPropertySystem_EnumeratePropertyDescriptions(This,filterOn,riid,ppv)	\
   2667     ( (This)->lpVtbl -> EnumeratePropertyDescriptions(This,filterOn,riid,ppv) ) 
   2668 
   2669 #define IPropertySystem_FormatForDisplay(This,key,propvar,pdff,pszText,cchText)	\
   2670     ( (This)->lpVtbl -> FormatForDisplay(This,key,propvar,pdff,pszText,cchText) ) 
   2671 
   2672 #define IPropertySystem_FormatForDisplayAlloc(This,key,propvar,pdff,ppszDisplay)	\
   2673     ( (This)->lpVtbl -> FormatForDisplayAlloc(This,key,propvar,pdff,ppszDisplay) ) 
   2674 
   2675 #define IPropertySystem_RegisterPropertySchema(This,pszPath)	\
   2676     ( (This)->lpVtbl -> RegisterPropertySchema(This,pszPath) ) 
   2677 
   2678 #define IPropertySystem_UnregisterPropertySchema(This,pszPath)	\
   2679     ( (This)->lpVtbl -> UnregisterPropertySchema(This,pszPath) ) 
   2680 
   2681 #define IPropertySystem_RefreshPropertySchema(This)	\
   2682     ( (This)->lpVtbl -> RefreshPropertySchema(This) ) 
   2683 
   2684 #endif /* COBJMACROS */
   2685 
   2686 
   2687 #endif 	/* C style interface */
   2688 
   2689 
   2690 
   2691 
   2692 #endif 	/* __IPropertySystem_INTERFACE_DEFINED__ */
   2693 
   2694 
   2695 #ifndef __IPropertyDescriptionList_INTERFACE_DEFINED__
   2696 #define __IPropertyDescriptionList_INTERFACE_DEFINED__
   2697 
   2698 /* interface IPropertyDescriptionList */
   2699 /* [unique][object][uuid] */ 
   2700 
   2701 
   2702 EXTERN_C const IID IID_IPropertyDescriptionList;
   2703 
   2704 #if defined(__cplusplus) && !defined(CINTERFACE)
   2705     
   2706     MIDL_INTERFACE("1f9fc1d0-c39b-4b26-817f-011967d3440e")
   2707     IPropertyDescriptionList : public IUnknown
   2708     {
   2709     public:
   2710         virtual HRESULT STDMETHODCALLTYPE GetCount( 
   2711             /* [out] */ __RPC__out UINT *pcElem) = 0;
   2712         
   2713         virtual HRESULT STDMETHODCALLTYPE GetAt( 
   2714             /* [in] */ UINT iElem,
   2715             /* [in] */ __RPC__in REFIID riid,
   2716             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv) = 0;
   2717         
   2718     };
   2719     
   2720 #else 	/* C style interface */
   2721 
   2722     typedef struct IPropertyDescriptionListVtbl
   2723     {
   2724         BEGIN_INTERFACE
   2725         
   2726         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   2727             IPropertyDescriptionList * This,
   2728             /* [in] */ __RPC__in REFIID riid,
   2729             /* [iid_is][out] */ 
   2730             __RPC__deref_out  void **ppvObject);
   2731         
   2732         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   2733             IPropertyDescriptionList * This);
   2734         
   2735         ULONG ( STDMETHODCALLTYPE *Release )( 
   2736             IPropertyDescriptionList * This);
   2737         
   2738         HRESULT ( STDMETHODCALLTYPE *GetCount )( 
   2739             IPropertyDescriptionList * This,
   2740             /* [out] */ __RPC__out UINT *pcElem);
   2741         
   2742         HRESULT ( STDMETHODCALLTYPE *GetAt )( 
   2743             IPropertyDescriptionList * This,
   2744             /* [in] */ UINT iElem,
   2745             /* [in] */ __RPC__in REFIID riid,
   2746             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
   2747         
   2748         END_INTERFACE
   2749     } IPropertyDescriptionListVtbl;
   2750 
   2751     interface IPropertyDescriptionList
   2752     {
   2753         CONST_VTBL struct IPropertyDescriptionListVtbl *lpVtbl;
   2754     };
   2755 
   2756     
   2757 
   2758 #ifdef COBJMACROS
   2759 
   2760 
   2761 #define IPropertyDescriptionList_QueryInterface(This,riid,ppvObject)	\
   2762     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   2763 
   2764 #define IPropertyDescriptionList_AddRef(This)	\
   2765     ( (This)->lpVtbl -> AddRef(This) ) 
   2766 
   2767 #define IPropertyDescriptionList_Release(This)	\
   2768     ( (This)->lpVtbl -> Release(This) ) 
   2769 
   2770 
   2771 #define IPropertyDescriptionList_GetCount(This,pcElem)	\
   2772     ( (This)->lpVtbl -> GetCount(This,pcElem) ) 
   2773 
   2774 #define IPropertyDescriptionList_GetAt(This,iElem,riid,ppv)	\
   2775     ( (This)->lpVtbl -> GetAt(This,iElem,riid,ppv) ) 
   2776 
   2777 #endif /* COBJMACROS */
   2778 
   2779 
   2780 #endif 	/* C style interface */
   2781 
   2782 
   2783 
   2784 
   2785 #endif 	/* __IPropertyDescriptionList_INTERFACE_DEFINED__ */
   2786 
   2787 
   2788 #ifndef __IPropertyStoreFactory_INTERFACE_DEFINED__
   2789 #define __IPropertyStoreFactory_INTERFACE_DEFINED__
   2790 
   2791 /* interface IPropertyStoreFactory */
   2792 /* [unique][object][uuid] */ 
   2793 
   2794 
   2795 EXTERN_C const IID IID_IPropertyStoreFactory;
   2796 
   2797 #if defined(__cplusplus) && !defined(CINTERFACE)
   2798     
   2799     MIDL_INTERFACE("bc110b6d-57e8-4148-a9c6-91015ab2f3a5")
   2800     IPropertyStoreFactory : public IUnknown
   2801     {
   2802     public:
   2803         virtual HRESULT STDMETHODCALLTYPE GetPropertyStore( 
   2804             /* [in] */ GETPROPERTYSTOREFLAGS flags,
   2805             /* [unique][in] */ __RPC__in_opt IUnknown *pUnkFactory,
   2806             /* [in] */ __RPC__in REFIID riid,
   2807             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv) = 0;
   2808         
   2809         virtual HRESULT STDMETHODCALLTYPE GetPropertyStoreForKeys( 
   2810             /* [unique][in] */ __RPC__in_opt const PROPERTYKEY *rgKeys,
   2811             /* [in] */ UINT cKeys,
   2812             /* [in] */ GETPROPERTYSTOREFLAGS flags,
   2813             /* [in] */ __RPC__in REFIID riid,
   2814             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv) = 0;
   2815         
   2816     };
   2817     
   2818 #else 	/* C style interface */
   2819 
   2820     typedef struct IPropertyStoreFactoryVtbl
   2821     {
   2822         BEGIN_INTERFACE
   2823         
   2824         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   2825             IPropertyStoreFactory * This,
   2826             /* [in] */ __RPC__in REFIID riid,
   2827             /* [iid_is][out] */ 
   2828             __RPC__deref_out  void **ppvObject);
   2829         
   2830         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   2831             IPropertyStoreFactory * This);
   2832         
   2833         ULONG ( STDMETHODCALLTYPE *Release )( 
   2834             IPropertyStoreFactory * This);
   2835         
   2836         HRESULT ( STDMETHODCALLTYPE *GetPropertyStore )( 
   2837             IPropertyStoreFactory * This,
   2838             /* [in] */ GETPROPERTYSTOREFLAGS flags,
   2839             /* [unique][in] */ __RPC__in_opt IUnknown *pUnkFactory,
   2840             /* [in] */ __RPC__in REFIID riid,
   2841             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
   2842         
   2843         HRESULT ( STDMETHODCALLTYPE *GetPropertyStoreForKeys )( 
   2844             IPropertyStoreFactory * This,
   2845             /* [unique][in] */ __RPC__in_opt const PROPERTYKEY *rgKeys,
   2846             /* [in] */ UINT cKeys,
   2847             /* [in] */ GETPROPERTYSTOREFLAGS flags,
   2848             /* [in] */ __RPC__in REFIID riid,
   2849             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
   2850         
   2851         END_INTERFACE
   2852     } IPropertyStoreFactoryVtbl;
   2853 
   2854     interface IPropertyStoreFactory
   2855     {
   2856         CONST_VTBL struct IPropertyStoreFactoryVtbl *lpVtbl;
   2857     };
   2858 
   2859     
   2860 
   2861 #ifdef COBJMACROS
   2862 
   2863 
   2864 #define IPropertyStoreFactory_QueryInterface(This,riid,ppvObject)	\
   2865     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   2866 
   2867 #define IPropertyStoreFactory_AddRef(This)	\
   2868     ( (This)->lpVtbl -> AddRef(This) ) 
   2869 
   2870 #define IPropertyStoreFactory_Release(This)	\
   2871     ( (This)->lpVtbl -> Release(This) ) 
   2872 
   2873 
   2874 #define IPropertyStoreFactory_GetPropertyStore(This,flags,pUnkFactory,riid,ppv)	\
   2875     ( (This)->lpVtbl -> GetPropertyStore(This,flags,pUnkFactory,riid,ppv) ) 
   2876 
   2877 #define IPropertyStoreFactory_GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv)	\
   2878     ( (This)->lpVtbl -> GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv) ) 
   2879 
   2880 #endif /* COBJMACROS */
   2881 
   2882 
   2883 #endif 	/* C style interface */
   2884 
   2885 
   2886 
   2887 
   2888 #endif 	/* __IPropertyStoreFactory_INTERFACE_DEFINED__ */
   2889 
   2890 
   2891 #ifndef __IDelayedPropertyStoreFactory_INTERFACE_DEFINED__
   2892 #define __IDelayedPropertyStoreFactory_INTERFACE_DEFINED__
   2893 
   2894 /* interface IDelayedPropertyStoreFactory */
   2895 /* [unique][object][uuid] */ 
   2896 
   2897 
   2898 EXTERN_C const IID IID_IDelayedPropertyStoreFactory;
   2899 
   2900 #if defined(__cplusplus) && !defined(CINTERFACE)
   2901     
   2902     MIDL_INTERFACE("40d4577f-e237-4bdb-bd69-58f089431b6a")
   2903     IDelayedPropertyStoreFactory : public IPropertyStoreFactory
   2904     {
   2905     public:
   2906         virtual HRESULT STDMETHODCALLTYPE GetDelayedPropertyStore( 
   2907             /* [in] */ GETPROPERTYSTOREFLAGS flags,
   2908             /* [in] */ DWORD dwStoreId,
   2909             /* [in] */ __RPC__in REFIID riid,
   2910             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv) = 0;
   2911         
   2912     };
   2913     
   2914 #else 	/* C style interface */
   2915 
   2916     typedef struct IDelayedPropertyStoreFactoryVtbl
   2917     {
   2918         BEGIN_INTERFACE
   2919         
   2920         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   2921             IDelayedPropertyStoreFactory * This,
   2922             /* [in] */ __RPC__in REFIID riid,
   2923             /* [iid_is][out] */ 
   2924             __RPC__deref_out  void **ppvObject);
   2925         
   2926         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   2927             IDelayedPropertyStoreFactory * This);
   2928         
   2929         ULONG ( STDMETHODCALLTYPE *Release )( 
   2930             IDelayedPropertyStoreFactory * This);
   2931         
   2932         HRESULT ( STDMETHODCALLTYPE *GetPropertyStore )( 
   2933             IDelayedPropertyStoreFactory * This,
   2934             /* [in] */ GETPROPERTYSTOREFLAGS flags,
   2935             /* [unique][in] */ __RPC__in_opt IUnknown *pUnkFactory,
   2936             /* [in] */ __RPC__in REFIID riid,
   2937             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
   2938         
   2939         HRESULT ( STDMETHODCALLTYPE *GetPropertyStoreForKeys )( 
   2940             IDelayedPropertyStoreFactory * This,
   2941             /* [unique][in] */ __RPC__in_opt const PROPERTYKEY *rgKeys,
   2942             /* [in] */ UINT cKeys,
   2943             /* [in] */ GETPROPERTYSTOREFLAGS flags,
   2944             /* [in] */ __RPC__in REFIID riid,
   2945             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
   2946         
   2947         HRESULT ( STDMETHODCALLTYPE *GetDelayedPropertyStore )( 
   2948             IDelayedPropertyStoreFactory * This,
   2949             /* [in] */ GETPROPERTYSTOREFLAGS flags,
   2950             /* [in] */ DWORD dwStoreId,
   2951             /* [in] */ __RPC__in REFIID riid,
   2952             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
   2953         
   2954         END_INTERFACE
   2955     } IDelayedPropertyStoreFactoryVtbl;
   2956 
   2957     interface IDelayedPropertyStoreFactory
   2958     {
   2959         CONST_VTBL struct IDelayedPropertyStoreFactoryVtbl *lpVtbl;
   2960     };
   2961 
   2962     
   2963 
   2964 #ifdef COBJMACROS
   2965 
   2966 
   2967 #define IDelayedPropertyStoreFactory_QueryInterface(This,riid,ppvObject)	\
   2968     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   2969 
   2970 #define IDelayedPropertyStoreFactory_AddRef(This)	\
   2971     ( (This)->lpVtbl -> AddRef(This) ) 
   2972 
   2973 #define IDelayedPropertyStoreFactory_Release(This)	\
   2974     ( (This)->lpVtbl -> Release(This) ) 
   2975 
   2976 
   2977 #define IDelayedPropertyStoreFactory_GetPropertyStore(This,flags,pUnkFactory,riid,ppv)	\
   2978     ( (This)->lpVtbl -> GetPropertyStore(This,flags,pUnkFactory,riid,ppv) ) 
   2979 
   2980 #define IDelayedPropertyStoreFactory_GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv)	\
   2981     ( (This)->lpVtbl -> GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv) ) 
   2982 
   2983 
   2984 #define IDelayedPropertyStoreFactory_GetDelayedPropertyStore(This,flags,dwStoreId,riid,ppv)	\
   2985     ( (This)->lpVtbl -> GetDelayedPropertyStore(This,flags,dwStoreId,riid,ppv) ) 
   2986 
   2987 #endif /* COBJMACROS */
   2988 
   2989 
   2990 #endif 	/* C style interface */
   2991 
   2992 
   2993 
   2994 
   2995 #endif 	/* __IDelayedPropertyStoreFactory_INTERFACE_DEFINED__ */
   2996 
   2997 
   2998 /* interface __MIDL_itf_propsys_0000_0018 */
   2999 /* [local] */ 
   3000 
   3001 /* [v1_enum] */ 
   3002 enum tagPERSIST_SPROPSTORE_FLAGS
   3003     {	FPSPS_READONLY	= 0x1
   3004     } ;
   3005 typedef int PERSIST_SPROPSTORE_FLAGS;
   3006 
   3007 typedef struct tagSERIALIZEDPROPSTORAGE SERIALIZEDPROPSTORAGE;
   3008 
   3009 typedef SERIALIZEDPROPSTORAGE __unaligned *PUSERIALIZEDPROPSTORAGE;
   3010 
   3011 typedef const SERIALIZEDPROPSTORAGE __unaligned *PCUSERIALIZEDPROPSTORAGE;
   3012 
   3013 
   3014 
   3015 extern RPC_IF_HANDLE __MIDL_itf_propsys_0000_0018_v0_0_c_ifspec;
   3016 extern RPC_IF_HANDLE __MIDL_itf_propsys_0000_0018_v0_0_s_ifspec;
   3017 
   3018 #ifndef __IPersistSerializedPropStorage_INTERFACE_DEFINED__
   3019 #define __IPersistSerializedPropStorage_INTERFACE_DEFINED__
   3020 
   3021 /* interface IPersistSerializedPropStorage */
   3022 /* [object][local][unique][uuid] */ 
   3023 
   3024 
   3025 EXTERN_C const IID IID_IPersistSerializedPropStorage;
   3026 
   3027 #if defined(__cplusplus) && !defined(CINTERFACE)
   3028     
   3029     MIDL_INTERFACE("e318ad57-0aa0-450f-aca5-6fab7103d917")
   3030     IPersistSerializedPropStorage : public IUnknown
   3031     {
   3032     public:
   3033         virtual HRESULT STDMETHODCALLTYPE SetFlags( 
   3034             /* [in] */ PERSIST_SPROPSTORE_FLAGS flags) = 0;
   3035         
   3036         virtual HRESULT STDMETHODCALLTYPE SetPropertyStorage( 
   3037             /* [in] */ 
   3038             __in_bcount(cb)  PCUSERIALIZEDPROPSTORAGE psps,
   3039             /* [in] */ 
   3040             __in  DWORD cb) = 0;
   3041         
   3042         virtual HRESULT STDMETHODCALLTYPE GetPropertyStorage( 
   3043             /* [out] */ 
   3044             __deref_out_bcount(*pcb)  SERIALIZEDPROPSTORAGE **ppsps,
   3045             /* [out] */ 
   3046             __out  DWORD *pcb) = 0;
   3047         
   3048     };
   3049     
   3050 #else 	/* C style interface */
   3051 
   3052     typedef struct IPersistSerializedPropStorageVtbl
   3053     {
   3054         BEGIN_INTERFACE
   3055         
   3056         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   3057             IPersistSerializedPropStorage * This,
   3058             /* [in] */ REFIID riid,
   3059             /* [iid_is][out] */ 
   3060             __RPC__deref_out  void **ppvObject);
   3061         
   3062         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   3063             IPersistSerializedPropStorage * This);
   3064         
   3065         ULONG ( STDMETHODCALLTYPE *Release )( 
   3066             IPersistSerializedPropStorage * This);
   3067         
   3068         HRESULT ( STDMETHODCALLTYPE *SetFlags )( 
   3069             IPersistSerializedPropStorage * This,
   3070             /* [in] */ PERSIST_SPROPSTORE_FLAGS flags);
   3071         
   3072         HRESULT ( STDMETHODCALLTYPE *SetPropertyStorage )( 
   3073             IPersistSerializedPropStorage * This,
   3074             /* [in] */ 
   3075             __in_bcount(cb)  PCUSERIALIZEDPROPSTORAGE psps,
   3076             /* [in] */ 
   3077             __in  DWORD cb);
   3078         
   3079         HRESULT ( STDMETHODCALLTYPE *GetPropertyStorage )( 
   3080             IPersistSerializedPropStorage * This,
   3081             /* [out] */ 
   3082             __deref_out_bcount(*pcb)  SERIALIZEDPROPSTORAGE **ppsps,
   3083             /* [out] */ 
   3084             __out  DWORD *pcb);
   3085         
   3086         END_INTERFACE
   3087     } IPersistSerializedPropStorageVtbl;
   3088 
   3089     interface IPersistSerializedPropStorage
   3090     {
   3091         CONST_VTBL struct IPersistSerializedPropStorageVtbl *lpVtbl;
   3092     };
   3093 
   3094     
   3095 
   3096 #ifdef COBJMACROS
   3097 
   3098 
   3099 #define IPersistSerializedPropStorage_QueryInterface(This,riid,ppvObject)	\
   3100     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   3101 
   3102 #define IPersistSerializedPropStorage_AddRef(This)	\
   3103     ( (This)->lpVtbl -> AddRef(This) ) 
   3104 
   3105 #define IPersistSerializedPropStorage_Release(This)	\
   3106     ( (This)->lpVtbl -> Release(This) ) 
   3107 
   3108 
   3109 #define IPersistSerializedPropStorage_SetFlags(This,flags)	\
   3110     ( (This)->lpVtbl -> SetFlags(This,flags) ) 
   3111 
   3112 #define IPersistSerializedPropStorage_SetPropertyStorage(This,psps,cb)	\
   3113     ( (This)->lpVtbl -> SetPropertyStorage(This,psps,cb) ) 
   3114 
   3115 #define IPersistSerializedPropStorage_GetPropertyStorage(This,ppsps,pcb)	\
   3116     ( (This)->lpVtbl -> GetPropertyStorage(This,ppsps,pcb) ) 
   3117 
   3118 #endif /* COBJMACROS */
   3119 
   3120 
   3121 #endif 	/* C style interface */
   3122 
   3123 
   3124 
   3125 
   3126 #endif 	/* __IPersistSerializedPropStorage_INTERFACE_DEFINED__ */
   3127 
   3128 
   3129 #ifndef __IPropertySystemChangeNotify_INTERFACE_DEFINED__
   3130 #define __IPropertySystemChangeNotify_INTERFACE_DEFINED__
   3131 
   3132 /* interface IPropertySystemChangeNotify */
   3133 /* [unique][object][uuid] */ 
   3134 
   3135 
   3136 EXTERN_C const IID IID_IPropertySystemChangeNotify;
   3137 
   3138 #if defined(__cplusplus) && !defined(CINTERFACE)
   3139     
   3140     MIDL_INTERFACE("fa955fd9-38be-4879-a6ce-824cf52d609f")
   3141     IPropertySystemChangeNotify : public IUnknown
   3142     {
   3143     public:
   3144         virtual HRESULT STDMETHODCALLTYPE SchemaRefreshed( void) = 0;
   3145         
   3146     };
   3147     
   3148 #else 	/* C style interface */
   3149 
   3150     typedef struct IPropertySystemChangeNotifyVtbl
   3151     {
   3152         BEGIN_INTERFACE
   3153         
   3154         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   3155             IPropertySystemChangeNotify * This,
   3156             /* [in] */ __RPC__in REFIID riid,
   3157             /* [iid_is][out] */ 
   3158             __RPC__deref_out  void **ppvObject);
   3159         
   3160         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   3161             IPropertySystemChangeNotify * This);
   3162         
   3163         ULONG ( STDMETHODCALLTYPE *Release )( 
   3164             IPropertySystemChangeNotify * This);
   3165         
   3166         HRESULT ( STDMETHODCALLTYPE *SchemaRefreshed )( 
   3167             IPropertySystemChangeNotify * This);
   3168         
   3169         END_INTERFACE
   3170     } IPropertySystemChangeNotifyVtbl;
   3171 
   3172     interface IPropertySystemChangeNotify
   3173     {
   3174         CONST_VTBL struct IPropertySystemChangeNotifyVtbl *lpVtbl;
   3175     };
   3176 
   3177     
   3178 
   3179 #ifdef COBJMACROS
   3180 
   3181 
   3182 #define IPropertySystemChangeNotify_QueryInterface(This,riid,ppvObject)	\
   3183     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   3184 
   3185 #define IPropertySystemChangeNotify_AddRef(This)	\
   3186     ( (This)->lpVtbl -> AddRef(This) ) 
   3187 
   3188 #define IPropertySystemChangeNotify_Release(This)	\
   3189     ( (This)->lpVtbl -> Release(This) ) 
   3190 
   3191 
   3192 #define IPropertySystemChangeNotify_SchemaRefreshed(This)	\
   3193     ( (This)->lpVtbl -> SchemaRefreshed(This) ) 
   3194 
   3195 #endif /* COBJMACROS */
   3196 
   3197 
   3198 #endif 	/* C style interface */
   3199 
   3200 
   3201 
   3202 
   3203 #endif 	/* __IPropertySystemChangeNotify_INTERFACE_DEFINED__ */
   3204 
   3205 
   3206 #ifndef __ICreateObject_INTERFACE_DEFINED__
   3207 #define __ICreateObject_INTERFACE_DEFINED__
   3208 
   3209 /* interface ICreateObject */
   3210 /* [object][unique][uuid] */ 
   3211 
   3212 
   3213 EXTERN_C const IID IID_ICreateObject;
   3214 
   3215 #if defined(__cplusplus) && !defined(CINTERFACE)
   3216     
   3217     MIDL_INTERFACE("75121952-e0d0-43e5-9380-1d80483acf72")
   3218     ICreateObject : public IUnknown
   3219     {
   3220     public:
   3221         virtual HRESULT STDMETHODCALLTYPE CreateObject( 
   3222             /* [in] */ __RPC__in REFCLSID clsid,
   3223             /* [unique][in] */ __RPC__in_opt IUnknown *pUnkOuter,
   3224             /* [in] */ __RPC__in REFIID riid,
   3225             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv) = 0;
   3226         
   3227     };
   3228     
   3229 #else 	/* C style interface */
   3230 
   3231     typedef struct ICreateObjectVtbl
   3232     {
   3233         BEGIN_INTERFACE
   3234         
   3235         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   3236             ICreateObject * This,
   3237             /* [in] */ __RPC__in REFIID riid,
   3238             /* [iid_is][out] */ 
   3239             __RPC__deref_out  void **ppvObject);
   3240         
   3241         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   3242             ICreateObject * This);
   3243         
   3244         ULONG ( STDMETHODCALLTYPE *Release )( 
   3245             ICreateObject * This);
   3246         
   3247         HRESULT ( STDMETHODCALLTYPE *CreateObject )( 
   3248             ICreateObject * This,
   3249             /* [in] */ __RPC__in REFCLSID clsid,
   3250             /* [unique][in] */ __RPC__in_opt IUnknown *pUnkOuter,
   3251             /* [in] */ __RPC__in REFIID riid,
   3252             /* [iid_is][out] */ __RPC__deref_out_opt void **ppv);
   3253         
   3254         END_INTERFACE
   3255     } ICreateObjectVtbl;
   3256 
   3257     interface ICreateObject
   3258     {
   3259         CONST_VTBL struct ICreateObjectVtbl *lpVtbl;
   3260     };
   3261 
   3262     
   3263 
   3264 #ifdef COBJMACROS
   3265 
   3266 
   3267 #define ICreateObject_QueryInterface(This,riid,ppvObject)	\
   3268     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   3269 
   3270 #define ICreateObject_AddRef(This)	\
   3271     ( (This)->lpVtbl -> AddRef(This) ) 
   3272 
   3273 #define ICreateObject_Release(This)	\
   3274     ( (This)->lpVtbl -> Release(This) ) 
   3275 
   3276 
   3277 #define ICreateObject_CreateObject(This,clsid,pUnkOuter,riid,ppv)	\
   3278     ( (This)->lpVtbl -> CreateObject(This,clsid,pUnkOuter,riid,ppv) ) 
   3279 
   3280 #endif /* COBJMACROS */
   3281 
   3282 
   3283 #endif 	/* C style interface */
   3284 
   3285 
   3286 
   3287 
   3288 #endif 	/* __ICreateObject_INTERFACE_DEFINED__ */
   3289 
   3290 
   3291 /* interface __MIDL_itf_propsys_0000_0021 */
   3292 /* [local] */ 
   3293 
   3294 // Format a property value for display purposes
   3295 PSSTDAPI PSFormatForDisplay(
   3296     __in REFPROPERTYKEY propkey,
   3297     __in REFPROPVARIANT propvar,
   3298     __in PROPDESC_FORMAT_FLAGS pdfFlags,
   3299     __out_ecount(cchText) LPWSTR pwszText,
   3300     __in DWORD cchText);
   3301 
   3302 PSSTDAPI PSFormatForDisplayAlloc(
   3303     __in REFPROPERTYKEY key,
   3304     __in REFPROPVARIANT propvar,
   3305     __in PROPDESC_FORMAT_FLAGS pdff,
   3306     __deref_out PWSTR *ppszDisplay);
   3307 
   3308 PSSTDAPI PSFormatPropertyValue(
   3309     __in IPropertyStore *pps,
   3310     __in IPropertyDescription *ppd,
   3311     __in PROPDESC_FORMAT_FLAGS pdff,
   3312     __deref_out LPWSTR *ppszDisplay);
   3313 
   3314 
   3315 #define PKEY_PIDSTR_MAX     10   // will take care of any long integer value
   3316 #define GUIDSTRING_MAX      (1 + 8 + 1 + 4 + 1 + 4 + 1 + 4 + 1 + 12 + 1 + 1)  // "{12345678-1234-1234-1234-123456789012}"
   3317 #define PKEYSTR_MAX         (GUIDSTRING_MAX + 1 + PKEY_PIDSTR_MAX)
   3318 
   3319 // Convert a PROPERTYKEY to and from a PWSTR
   3320 PSSTDAPI PSStringFromPropertyKey(
   3321     __in REFPROPERTYKEY pkey,
   3322     __out_ecount(cch) LPWSTR psz,
   3323     __in UINT cch);
   3324 
   3325 PSSTDAPI PSPropertyKeyFromString(
   3326     __in LPCWSTR pszString,
   3327     __out PROPERTYKEY *pkey);
   3328 
   3329 
   3330 // Creates an in-memory property store
   3331 // Returns an IPropertyStore, IPersistSerializedPropStorage, and related interfaces interface
   3332 PSSTDAPI PSCreateMemoryPropertyStore(
   3333     __in REFIID riid,
   3334     __deref_out void **ppv);
   3335 
   3336 
   3337 // Create a read-only, delay-bind multiplexing property store
   3338 // Returns an IPropertyStore interface or related interfaces
   3339 PSSTDAPI PSCreateDelayedMultiplexPropertyStore(
   3340     __in GETPROPERTYSTOREFLAGS flags,
   3341     __in IDelayedPropertyStoreFactory *pdpsf,
   3342     __in_ecount(cStores) const DWORD *rgStoreIds,
   3343     __in DWORD cStores,
   3344     __in REFIID riid,
   3345     __deref_out void **ppv);
   3346 
   3347 
   3348 // Create a read-only property store from one or more sources (which each must support either IPropertyStore or IPropertySetStorage)
   3349 // Returns an IPropertyStore interface or related interfaces
   3350 PSSTDAPI PSCreateMultiplexPropertyStore(
   3351     __in_ecount(cStores) IUnknown **prgpunkStores,
   3352     __in DWORD cStores,
   3353     __in REFIID riid,
   3354     __deref_out void **ppv);
   3355 
   3356 
   3357 // Create a container for IPropertyChanges
   3358 // Returns an IPropertyChangeArray interface
   3359 PSSTDAPI PSCreatePropertyChangeArray(
   3360     __in_ecount_opt(cChanges) const PROPERTYKEY *rgpropkey,
   3361     __in_ecount_opt(cChanges) const PKA_FLAGS *rgflags,
   3362     __in_ecount_opt(cChanges) const PROPVARIANT *rgpropvar,
   3363     __in UINT cChanges,
   3364     __in REFIID riid,
   3365     __deref_out void **ppv);
   3366 
   3367 
   3368 // Create a simple property change
   3369 // Returns an IPropertyChange interface
   3370 PSSTDAPI PSCreateSimplePropertyChange(
   3371     __in PKA_FLAGS flags,
   3372     __in REFPROPERTYKEY key,
   3373     __in REFPROPVARIANT propvar,
   3374     __in REFIID riid,
   3375     __deref_out void **ppv);
   3376 
   3377 
   3378 // Get a property description
   3379 // Returns an IPropertyDescription interface
   3380 PSSTDAPI PSGetPropertyDescription(
   3381     __in REFPROPERTYKEY propkey,
   3382     __in REFIID riid,
   3383     __deref_out void **ppv);
   3384 
   3385 PSSTDAPI PSGetPropertyDescriptionByName(
   3386     __in LPCWSTR pszCanonicalName,
   3387     __in REFIID riid,
   3388     __deref_out void **ppv);
   3389 
   3390 
   3391 // Lookup a per-machine registered file property handler
   3392 PSSTDAPI PSLookupPropertyHandlerCLSID(
   3393     __in PCWSTR pszFilePath,
   3394     __out CLSID *pclsid);
   3395 // Get a property handler, on Vista or downlevel to XP
   3396 // punkItem is a shell item created with an SHCreateItemXXX API
   3397 // Returns an IPropertyStore
   3398 PSSTDAPI PSGetItemPropertyHandler(
   3399     __in IUnknown *punkItem,
   3400     __in BOOL fReadWrite,
   3401     __in REFIID riid,
   3402     __deref_out void **ppv);
   3403 
   3404 
   3405 // Get a property handler, on Vista or downlevel to XP
   3406 // punkItem is a shell item created with an SHCreateItemXXX API
   3407 // punkCreateObject supports ICreateObject
   3408 // Returns an IPropertyStore
   3409 PSSTDAPI PSGetItemPropertyHandlerWithCreateObject(
   3410     __in IUnknown *punkItem,
   3411     __in BOOL fReadWrite,
   3412     __in IUnknown *punkCreateObject,
   3413     __in REFIID riid,
   3414     __deref_out void **ppv);
   3415 
   3416 
   3417 // Get or set a property value from a store
   3418 PSSTDAPI PSGetPropertyValue(
   3419     __in IPropertyStore *pps,
   3420     __in IPropertyDescription *ppd,
   3421     __out PROPVARIANT *ppropvar);
   3422 
   3423 PSSTDAPI PSSetPropertyValue(
   3424     __in IPropertyStore *pps,
   3425     __in IPropertyDescription *ppd,
   3426     __in REFPROPVARIANT propvar);
   3427 
   3428 
   3429 // Interact with the set of property descriptions
   3430 PSSTDAPI PSRegisterPropertySchema(
   3431     __in PCWSTR pszPath);
   3432 
   3433 PSSTDAPI PSUnregisterPropertySchema(
   3434     __in PCWSTR pszPath);
   3435 
   3436 PSSTDAPI PSRefreshPropertySchema();
   3437 
   3438 // Returns either: IPropertyDescriptionList or IEnumUnknown interfaces
   3439 PSSTDAPI PSEnumeratePropertyDescriptions(
   3440     __in PROPDESC_ENUMFILTER filterOn,
   3441     __in REFIID riid,
   3442     __deref_out void **ppv);
   3443 
   3444 
   3445 // Convert between a PROPERTYKEY and its canonical name
   3446 PSSTDAPI PSGetPropertyKeyFromName(
   3447     __in PCWSTR pszName,
   3448     __out PROPERTYKEY *ppropkey);
   3449 
   3450 PSSTDAPI PSGetNameFromPropertyKey(
   3451     __in REFPROPERTYKEY propkey,
   3452     __deref_out PWSTR *ppszCanonicalName);
   3453 
   3454 
   3455 // Coerce and canonicalize a property value
   3456 PSSTDAPI PSCoerceToCanonicalValue(
   3457     __in REFPROPERTYKEY key,
   3458     __inout PROPVARIANT *ppropvar);
   3459 
   3460 
   3461 // Convert a 'prop:' string into a list of property descriptions
   3462 // Returns an IPropertyDescriptionList interface
   3463 PSSTDAPI PSGetPropertyDescriptionListFromString(
   3464     __in LPCWSTR pszPropList,
   3465     __in REFIID riid,
   3466     __deref_out void **ppv);
   3467 
   3468 
   3469 // Wrap an IPropertySetStorage interface in an IPropertyStore interface
   3470 // Returns an IPropertyStore or related interface
   3471 PSSTDAPI PSCreatePropertyStoreFromPropertySetStorage(
   3472     __in IPropertySetStorage *ppss,
   3473     DWORD grfMode,
   3474     REFIID riid,
   3475     __deref_out void **ppv);
   3476 
   3477 
   3478 // punkSource must support IPropertyStore or IPropertySetStorage
   3479 // On success, the returned ppv is guaranteed to support IPropertyStore.
   3480 // If punkSource already supports IPropertyStore, no wrapper is created.
   3481 PSSTDAPI PSCreatePropertyStoreFromObject(
   3482     __in IUnknown *punk,
   3483     __in DWORD grfMode,
   3484     __in REFIID riid,
   3485     __deref_out void **ppv);
   3486 
   3487 
   3488 // punkSource must support IPropertyStore
   3489 // riid may be IPropertyStore, IPropertySetStorage, IPropertyStoreCapabilities, or IObjectProvider
   3490 PSSTDAPI PSCreateAdapterFromPropertyStore(
   3491     __in IPropertyStore *pps,
   3492     __in REFIID riid,
   3493     __deref_out void **ppv);
   3494 
   3495 
   3496 // Talk to the property system using an interface
   3497 // Returns an IPropertySystem interface
   3498 PSSTDAPI PSGetPropertySystem(
   3499     __in REFIID riid,
   3500     __deref_out void **ppv);
   3501 
   3502 
   3503 // Obtain a value from serialized property storage
   3504 PSSTDAPI PSGetPropertyFromPropertyStorage(
   3505     __in_bcount(cb) PCUSERIALIZEDPROPSTORAGE psps, 
   3506     __in DWORD cb, 
   3507     __in REFPROPERTYKEY rpkey, 
   3508     __out PROPVARIANT *ppropvar);
   3509 
   3510 
   3511 // Obtain a named value from serialized property storage
   3512 PSSTDAPI PSGetNamedPropertyFromPropertyStorage(
   3513     __in_bcount(cb) PCUSERIALIZEDPROPSTORAGE psps, 
   3514     __in DWORD cb, 
   3515     __in LPCWSTR pszName, 
   3516     __out PROPVARIANT *ppropvar);
   3517 
   3518 
   3519 
   3520 
   3521 extern RPC_IF_HANDLE __MIDL_itf_propsys_0000_0021_v0_0_c_ifspec;
   3522 extern RPC_IF_HANDLE __MIDL_itf_propsys_0000_0021_v0_0_s_ifspec;
   3523 
   3524 
   3525 #ifndef __PropSysObjects_LIBRARY_DEFINED__
   3526 #define __PropSysObjects_LIBRARY_DEFINED__
   3527 
   3528 /* library PropSysObjects */
   3529 /* [version][lcid][uuid] */ 
   3530 
   3531 
   3532 EXTERN_C const IID LIBID_PropSysObjects;
   3533 
   3534 EXTERN_C const CLSID CLSID_InMemoryPropertyStore;
   3535 
   3536 #ifdef __cplusplus
   3537 
   3538 class DECLSPEC_UUID("9a02e012-6303-4e1e-b9a1-630f802592c5")
   3539 InMemoryPropertyStore;
   3540 #endif
   3541 
   3542 EXTERN_C const CLSID CLSID_PropertySystem;
   3543 
   3544 #ifdef __cplusplus
   3545 
   3546 class DECLSPEC_UUID("b8967f85-58ae-4f46-9fb2-5d7904798f4b")
   3547 PropertySystem;
   3548 #endif
   3549 #endif /* __PropSysObjects_LIBRARY_DEFINED__ */
   3550 
   3551 /* Additional Prototypes for ALL interfaces */
   3552 
   3553 unsigned long             __RPC_USER  BSTR_UserSize(     unsigned long *, unsigned long            , BSTR * ); 
   3554 unsigned char * __RPC_USER  BSTR_UserMarshal(  unsigned long *, unsigned char *, BSTR * ); 
   3555 unsigned char * __RPC_USER  BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * ); 
   3556 void                      __RPC_USER  BSTR_UserFree(     unsigned long *, BSTR * ); 
   3557 
   3558 unsigned long             __RPC_USER  LPSAFEARRAY_UserSize(     unsigned long *, unsigned long            , LPSAFEARRAY * ); 
   3559 unsigned char * __RPC_USER  LPSAFEARRAY_UserMarshal(  unsigned long *, unsigned char *, LPSAFEARRAY * ); 
   3560 unsigned char * __RPC_USER  LPSAFEARRAY_UserUnmarshal(unsigned long *, unsigned char *, LPSAFEARRAY * ); 
   3561 void                      __RPC_USER  LPSAFEARRAY_UserFree(     unsigned long *, LPSAFEARRAY * ); 
   3562 
   3563 unsigned long             __RPC_USER  BSTR_UserSize64(     unsigned long *, unsigned long            , BSTR * ); 
   3564 unsigned char * __RPC_USER  BSTR_UserMarshal64(  unsigned long *, unsigned char *, BSTR * ); 
   3565 unsigned char * __RPC_USER  BSTR_UserUnmarshal64(unsigned long *, unsigned char *, BSTR * ); 
   3566 void                      __RPC_USER  BSTR_UserFree64(     unsigned long *, BSTR * ); 
   3567 
   3568 unsigned long             __RPC_USER  LPSAFEARRAY_UserSize64(     unsigned long *, unsigned long            , LPSAFEARRAY * ); 
   3569 unsigned char * __RPC_USER  LPSAFEARRAY_UserMarshal64(  unsigned long *, unsigned char *, LPSAFEARRAY * ); 
   3570 unsigned char * __RPC_USER  LPSAFEARRAY_UserUnmarshal64(unsigned long *, unsigned char *, LPSAFEARRAY * ); 
   3571 void                      __RPC_USER  LPSAFEARRAY_UserFree64(     unsigned long *, LPSAFEARRAY * ); 
   3572 
   3573 /* [local] */ HRESULT STDMETHODCALLTYPE IInitializeWithStream_Initialize_Proxy( 
   3574     IInitializeWithStream * This,
   3575     /* [in] */ IStream *pstream,
   3576     /* [in] */ DWORD grfMode);
   3577 
   3578 
   3579 /* [call_as] */ HRESULT STDMETHODCALLTYPE IInitializeWithStream_Initialize_Stub( 
   3580     IInitializeWithStream * This,
   3581     /* [in] */ __RPC__in_opt IStream *pstream,
   3582     /* [in] */ DWORD grfMode);
   3583 
   3584 /* [local] */ HRESULT STDMETHODCALLTYPE IPropertyDescription_CoerceToCanonicalValue_Proxy( 
   3585     IPropertyDescription * This,
   3586     /* [out][in] */ PROPVARIANT *ppropvar);
   3587 
   3588 
   3589 /* [call_as] */ HRESULT STDMETHODCALLTYPE IPropertyDescription_CoerceToCanonicalValue_Stub( 
   3590     IPropertyDescription * This,
   3591     /* [in] */ __RPC__in REFPROPVARIANT propvar,
   3592     /* [out] */ __RPC__out PROPVARIANT *ppropvar);
   3593 
   3594 
   3595 
   3596 /* end of Additional Prototypes */
   3597 
   3598 #ifdef __cplusplus
   3599 }
   3600 #endif
   3601 
   3602 #endif
   3603 
   3604 
   3605