1c2c66affSColin Finck/* 2c2c66affSColin Finck * system property interfaces 3c2c66affSColin Finck * 4c2c66affSColin Finck * Copyright 2009 Maarten Lankhorst 5c2c66affSColin Finck * 6c2c66affSColin Finck * This library is free software; you can redistribute it and/or 7c2c66affSColin Finck * modify it under the terms of the GNU Lesser General Public 8c2c66affSColin Finck * License as published by the Free Software Foundation; either 9c2c66affSColin Finck * version 2.1 of the License, or (at your option) any later version. 10c2c66affSColin Finck * 11c2c66affSColin Finck * This library is distributed in the hope that it will be useful, 12c2c66affSColin Finck * but WITHOUT ANY WARRANTY; without even the implied warranty of 13c2c66affSColin Finck * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14c2c66affSColin Finck * Lesser General Public License for more details. 15c2c66affSColin Finck * 16c2c66affSColin Finck * You should have received a copy of the GNU Lesser General Public 17c2c66affSColin Finck * License along with this library; if not, write to the Free Software 18c2c66affSColin Finck * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 19c2c66affSColin Finck * 20c2c66affSColin Finck */ 21c2c66affSColin Finck 22c2c66affSColin Finck 23c2c66affSColin Finckimport "objidl.idl"; 24c2c66affSColin Finckimport "oleidl.idl"; 25c2c66affSColin Finckimport "ocidl.idl"; 26c2c66affSColin Finckimport "shtypes.idl"; 27c2c66affSColin Finckimport "structuredquerycondition.idl"; 28c2c66affSColin Finck 29c2c66affSColin Finckcpp_quote("#ifndef PSSTDAPI") 30c2c66affSColin Finckcpp_quote("#define PSSTDAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE") 31c2c66affSColin Finckcpp_quote("#endif") 32c2c66affSColin Finck 33c2c66affSColin Finckcpp_quote("#if 0") 34c2c66affSColin Fincktypedef PROPERTYKEY *REFPROPERTYKEY; 35c2c66affSColin Finckcpp_quote("#endif") 36c2c66affSColin Finckcpp_quote("#include <propkeydef.h>") 37c2c66affSColin Finck 38c2c66affSColin Finck[ 39c2c66affSColin Finck uuid(b7d14566-0509-4cce-a71f-0a554233bd9b), 40c2c66affSColin Finck object, 41c2c66affSColin Finck pointer_default(unique) 42c2c66affSColin Finck] 43c2c66affSColin Finckinterface IInitializeWithFile : IUnknown 44c2c66affSColin Finck{ 45c2c66affSColin Finck HRESULT Initialize( 46c2c66affSColin Finck [in,string] LPCWSTR pszFilePath, 47c2c66affSColin Finck [in] DWORD grfMode 48c2c66affSColin Finck ); 49c2c66affSColin Finck} 50c2c66affSColin Finck 51c2c66affSColin Finck[ 52c2c66affSColin Finck uuid(b824b49d-22ac-4161-ac8a-9916e8fa3f7f), 53c2c66affSColin Finck object, 54c2c66affSColin Finck pointer_default(unique) 55c2c66affSColin Finck] 56c2c66affSColin Finckinterface IInitializeWithStream : IUnknown 57c2c66affSColin Finck{ 58c2c66affSColin Finck [local] HRESULT Initialize( 59c2c66affSColin Finck [in] IStream *pstream, 60c2c66affSColin Finck [in] DWORD grfMode 61c2c66affSColin Finck ); 62c2c66affSColin Finck} 63c2c66affSColin Finck 64c2c66affSColin Finck[ 65c2c66affSColin Finck uuid(886d8eeb-8cf2-4446-8d02-cdba1dbdcf99), 66c2c66affSColin Finck object, 67c2c66affSColin Finck pointer_default(unique) 68c2c66affSColin Finck] 69c2c66affSColin Finckinterface IPropertyStore : IUnknown 70c2c66affSColin Finck{ 71c2c66affSColin Finck HRESULT GetCount( 72c2c66affSColin Finck [out] DWORD *cProps 73c2c66affSColin Finck ); 74c2c66affSColin Finck HRESULT GetAt( 75c2c66affSColin Finck [in] DWORD iProp, 76c2c66affSColin Finck [out] PROPERTYKEY *pkey 77c2c66affSColin Finck ); 78c2c66affSColin Finck HRESULT GetValue( 79c2c66affSColin Finck [in] REFPROPERTYKEY key, 80c2c66affSColin Finck [out] PROPVARIANT *pv 81c2c66affSColin Finck ); 82c2c66affSColin Finck HRESULT SetValue( 83c2c66affSColin Finck [in] REFPROPERTYKEY key, 84c2c66affSColin Finck [in] REFPROPVARIANT propvar 85c2c66affSColin Finck ); 86c2c66affSColin Finck HRESULT Commit(void); 87c2c66affSColin Finck} 88c2c66affSColin Finck 89c2c66affSColin Fincktypedef IPropertyStore *LPPROPERTYSTORE; 90c2c66affSColin Finck 91c2c66affSColin Finck[ 92c2c66affSColin Finck uuid(71604b0f-97b0-4764-8577-2f13e98a1422), 93c2c66affSColin Finck object, 94c2c66affSColin Finck pointer_default(unique) 95c2c66affSColin Finck] 96c2c66affSColin Finckinterface INamedPropertyStore : IUnknown 97c2c66affSColin Finck{ 98c2c66affSColin Finck HRESULT GetNamedValue( 99c2c66affSColin Finck [in,string] LPCWSTR pszName, 100c2c66affSColin Finck [out] PROPVARIANT *ppropvar 101c2c66affSColin Finck ); 102c2c66affSColin Finck HRESULT SetNamedValue( 103c2c66affSColin Finck [in,string] LPCWSTR pszName, 104c2c66affSColin Finck [in] REFPROPVARIANT propvar 105c2c66affSColin Finck ); 106c2c66affSColin Finck HRESULT GetNameCount( 107c2c66affSColin Finck [out] DWORD *pdwCount 108c2c66affSColin Finck ); 109c2c66affSColin Finck HRESULT GetNameAt( 110c2c66affSColin Finck [in] DWORD iProp, 111c2c66affSColin Finck [out] BSTR *pbstrName 112c2c66affSColin Finck ); 113c2c66affSColin Finck} 114c2c66affSColin Finck 115c2c66affSColin Fincktypedef [v1_enum] enum GETPROPERTYSTOREFLAGS 116c2c66affSColin Finck{ 117c2c66affSColin Finck GPS_DEFAULT = 0x00, 118c2c66affSColin Finck GPS_HANDLERPROPERTIESONLY = 0x01, 119c2c66affSColin Finck GPS_READWRITE = 0x02, 120c2c66affSColin Finck GPS_TEMPORARY = 0x04, 121c2c66affSColin Finck GPS_FASTPROPERTIESONLY = 0x08, 122c2c66affSColin Finck GPS_OPENSLOWITEM = 0x10, 123c2c66affSColin Finck GPS_DELAYCREATION = 0x20, 124c2c66affSColin Finck GPS_BESTEFFORT = 0x40, 125c2c66affSColin Finck GPS_NO_OPLOCK = 0x80, 126c2c66affSColin Finck GPS_MASK_VALID = 0xff 127c2c66affSColin Finck} GETPROPERTYSTOREFLAGS; 128c2c66affSColin Finck 129c2c66affSColin Finckcpp_quote("DEFINE_ENUM_FLAG_OPERATORS(GETPROPERTYSTOREFLAGS)") 130c2c66affSColin Finck 131c2c66affSColin Finck[ 132c2c66affSColin Finck uuid(fc0ca0a7-c316-4fd2-9031-3e628e6d4f23), 133c2c66affSColin Finck object 134c2c66affSColin Finck] 135c2c66affSColin Finckinterface IObjectWithPropertyKey : IUnknown 136c2c66affSColin Finck{ 137c2c66affSColin Finck HRESULT SetPropertyKey( 138c2c66affSColin Finck [in] REFPROPERTYKEY key 139c2c66affSColin Finck ); 140c2c66affSColin Finck HRESULT GetPropertyKey( 141c2c66affSColin Finck [out] PROPERTYKEY *key 142c2c66affSColin Finck ); 143c2c66affSColin Finck} 144c2c66affSColin Finck 145c2c66affSColin Fincktypedef [v1_enum] enum PKA_FLAGS 146c2c66affSColin Finck{ 147c2c66affSColin Finck PKA_SET, 148c2c66affSColin Finck PKA_APPEND, 149c2c66affSColin Finck PKA_DELETE 150c2c66affSColin Finck} PKA_FLAGS; 151c2c66affSColin Finck 152c2c66affSColin Finck[ 153c2c66affSColin Finck uuid(f917bc8a-1bba-4478-a245-1bde03eb9431), 154c2c66affSColin Finck object, 155c2c66affSColin Finck pointer_default(unique) 156c2c66affSColin Finck] 157c2c66affSColin Finckinterface IPropertyChange : IObjectWithPropertyKey 158c2c66affSColin Finck{ 159c2c66affSColin Finck HRESULT ApplyToPropVariant([in] REFPROPVARIANT propvarin, [out] PROPVARIANT *propvarout); 160c2c66affSColin Finck} 161c2c66affSColin Finck 162c2c66affSColin Finck[ 163c2c66affSColin Finck uuid(380f5cad-1b5e-42f2-805d-637fd392d31e), 164c2c66affSColin Finck object, 165c2c66affSColin Finck pointer_default(unique) 166c2c66affSColin Finck] 167c2c66affSColin Finckinterface IPropertyChangeArray : IUnknown 168c2c66affSColin Finck{ 169c2c66affSColin Finck HRESULT GetCount( 170c2c66affSColin Finck [out] UINT *pcOperations 171c2c66affSColin Finck ); 172c2c66affSColin Finck HRESULT GetAt( 173c2c66affSColin Finck [in] UINT iIndex, 174c2c66affSColin Finck [in] REFIID riid, 175c2c66affSColin Finck [out, iid_is(riid)] void **ppv 176c2c66affSColin Finck ); 177c2c66affSColin Finck HRESULT InsertAt( 178c2c66affSColin Finck [in] UINT iIndex, 179c2c66affSColin Finck [in] IPropertyChange *ppropChange 180c2c66affSColin Finck ); 181c2c66affSColin Finck HRESULT Append( 182c2c66affSColin Finck [in] IPropertyChange *ppropChange 183c2c66affSColin Finck ); 184c2c66affSColin Finck HRESULT AppendOrReplace( 185c2c66affSColin Finck [in] IPropertyChange *ppropChange 186c2c66affSColin Finck ); 187c2c66affSColin Finck HRESULT RemoveAt( 188c2c66affSColin Finck [in] UINT iIndex 189c2c66affSColin Finck ); 190c2c66affSColin Finck HRESULT IsKeyInArray( 191c2c66affSColin Finck [in] REFPROPERTYKEY key 192c2c66affSColin Finck ); 193c2c66affSColin Finck} 194c2c66affSColin Finck 195c2c66affSColin Finck[ 196c2c66affSColin Finck uuid(c8e2d566-186e-4d49-bf41-6909ead56acc), 197c2c66affSColin Finck object, 198c2c66affSColin Finck pointer_default(unique) 199c2c66affSColin Finck] 200c2c66affSColin Finckinterface IPropertyStoreCapabilities : IUnknown 201c2c66affSColin Finck{ 202c2c66affSColin Finck HRESULT IsPropertyWritable( 203c2c66affSColin Finck [in] REFPROPERTYKEY key 204c2c66affSColin Finck ); 205c2c66affSColin Finck} 206c2c66affSColin Finck 207c2c66affSColin Finck[ 208c2c66affSColin Finck uuid(3017056d-9a91-4e90-937d-746c72abbf4f), 209c2c66affSColin Finck object, 210c2c66affSColin Finck pointer_default(unique) 211c2c66affSColin Finck] 212c2c66affSColin Finckinterface IPropertyStoreCache : IPropertyStore 213c2c66affSColin Finck{ 214c2c66affSColin Finck typedef [v1_enum] enum PSC_STATE 215c2c66affSColin Finck { 216c2c66affSColin Finck PSC_NORMAL = 0, 217c2c66affSColin Finck PSC_NOTINSOURCE, 218c2c66affSColin Finck PSC_DIRTY, 219c2c66affSColin Finck PSC_READONLY 220c2c66affSColin Finck } PSC_STATE; 221c2c66affSColin Finck 222c2c66affSColin Finck HRESULT GetState( 223c2c66affSColin Finck [in] REFPROPERTYKEY key, 224c2c66affSColin Finck [out] PSC_STATE *pstate 225c2c66affSColin Finck ); 226c2c66affSColin Finck HRESULT GetValueAndState( 227c2c66affSColin Finck [in] REFPROPERTYKEY key, 228c2c66affSColin Finck [out] PROPVARIANT *ppropvar, 229c2c66affSColin Finck [out] PSC_STATE *pstate 230c2c66affSColin Finck ); 231c2c66affSColin Finck HRESULT SetState( 232c2c66affSColin Finck [in] REFPROPERTYKEY key, 233c2c66affSColin Finck [in] PSC_STATE pstate 234c2c66affSColin Finck ); 235c2c66affSColin Finck HRESULT SetValueAndState( 236c2c66affSColin Finck [in] REFPROPERTYKEY key, 237c2c66affSColin Finck [in, unique] const PROPVARIANT *ppropvar, 238c2c66affSColin Finck [in] PSC_STATE state 239c2c66affSColin Finck ); 240c2c66affSColin Finck} 241c2c66affSColin Finck 242c2c66affSColin Finck[ 243c2c66affSColin Finck uuid(11e1fbf9-2d56-4a6b-8db3-7cd193a471f2), 244c2c66affSColin Finck object, 245c2c66affSColin Finck pointer_default(unique) 246c2c66affSColin Finck] 247c2c66affSColin Finckinterface IPropertyEnumType : IUnknown 248c2c66affSColin Finck{ 249c2c66affSColin Finck typedef [v1_enum] enum PROPENUMTYPE 250c2c66affSColin Finck { 251c2c66affSColin Finck PET_DISCRETEVALUE = 0, 252c2c66affSColin Finck PET_RANGEDVALUE, 253c2c66affSColin Finck PET_DEFAULTVALUE, 254c2c66affSColin Finck PET_ENDRANGE 255c2c66affSColin Finck } PROPENUMTYPE; 256c2c66affSColin Finck 257c2c66affSColin Finck HRESULT GetEnumType( 258c2c66affSColin Finck [out] PROPENUMTYPE *penumtype 259c2c66affSColin Finck ); 260c2c66affSColin Finck HRESULT GetValue( 261c2c66affSColin Finck [out] PROPVARIANT *ppropvar 262c2c66affSColin Finck ); 263c2c66affSColin Finck HRESULT GetRangeMinValue( 264c2c66affSColin Finck [out] PROPVARIANT *ppropvar 265c2c66affSColin Finck ); 266c2c66affSColin Finck HRESULT GetRangeSetValue( 267c2c66affSColin Finck [out] PROPVARIANT *ppropvar 268c2c66affSColin Finck ); 269c2c66affSColin Finck HRESULT GetDisplayText( 270c2c66affSColin Finck [out] LPWSTR *ppszDisplay 271c2c66affSColin Finck ); 272c2c66affSColin Finck} 273c2c66affSColin Finck 274c2c66affSColin Finck[ 275c2c66affSColin Finck uuid(9b6e051c-5ddd-4321-9070-fe2acb55e974), 276c2c66affSColin Finck object, 277c2c66affSColin Finck pointer_default(unique) 278c2c66affSColin Finck] 279c2c66affSColin Finckinterface IPropertyEnumType2 : IPropertyEnumType 280c2c66affSColin Finck{ 281c2c66affSColin Finck HRESULT GetImageReference( 282c2c66affSColin Finck [out] LPWSTR *ppszImageRes 283c2c66affSColin Finck ); 284c2c66affSColin Finck} 285c2c66affSColin Finck 286c2c66affSColin Finck[ 287c2c66affSColin Finck uuid(a99400f4-3d84-4557-94ba-1242fb2cc9a6), 288c2c66affSColin Finck object, 289c2c66affSColin Finck pointer_default(unique) 290c2c66affSColin Finck] 291c2c66affSColin Finckinterface IPropertyEnumTypeList : IUnknown 292c2c66affSColin Finck{ 293c2c66affSColin Finck HRESULT GetCount( 294c2c66affSColin Finck [out] UINT *pctypes 295c2c66affSColin Finck ); 296c2c66affSColin Finck HRESULT GetAt( 297c2c66affSColin Finck [in] UINT itype, 298c2c66affSColin Finck [in] REFIID riid, 299c2c66affSColin Finck [out, iid_is(riid)] void **ppv 300c2c66affSColin Finck ); 301c2c66affSColin Finck HRESULT GetConditionAt( 302c2c66affSColin Finck [in] UINT nIndex, 303c2c66affSColin Finck [in] REFIID riid, 304c2c66affSColin Finck [out, iid_is(riid)] void **ppv 305c2c66affSColin Finck ); 306c2c66affSColin Finck HRESULT FindMatchingIndex( 307c2c66affSColin Finck [in] REFPROPVARIANT propvarCmp, 308c2c66affSColin Finck [out] UINT *pnIndex 309c2c66affSColin Finck ); 310c2c66affSColin Finck} 311c2c66affSColin Finck 312c2c66affSColin Finck[ 313c2c66affSColin Finck uuid(6f79d558-3e96-4549-a1d1-7d75d2288814), 314c2c66affSColin Finck object, 315c2c66affSColin Finck pointer_default(unique) 316c2c66affSColin Finck] 317c2c66affSColin Finckinterface IPropertyDescription : IUnknown 318c2c66affSColin Finck{ 319c2c66affSColin Finck typedef [v1_enum] enum PROPDESC_TYPE_FLAGS 320c2c66affSColin Finck { 321c2c66affSColin Finck PDTF_DEFAULT = 0, 322c2c66affSColin Finck PDTF_MULTIPLEVALUES = 0x001, 323c2c66affSColin Finck PDTF_ISINNATE = 0x002, 324c2c66affSColin Finck PDTF_ISGROUP = 0x004, 325c2c66affSColin Finck PDTF_CANGROUPBY = 0x008, 326c2c66affSColin Finck PDTF_CANSTACKBY = 0x010, 327c2c66affSColin Finck PDTF_ISTREEPROPERTY = 0x020, 328c2c66affSColin Finck PDTF_INCLUDEINFULLTEXTQUERY = 0x040, 329c2c66affSColin Finck PDTF_ISVIEWABLE = 0x080, 330c2c66affSColin Finck PDTF_ISQUERYABLE = 0x100, 331c2c66affSColin Finck PDTF_CANBEPURGED = 0x200, 332c2c66affSColin Finck PDTF_SEARCHRAWVALUE = 0x400, 333c2c66affSColin Finck PDTF_ISSYSTEMPROPERTY = 0x80000000, 334c2c66affSColin Finck PDTF_MASK_ALL = 0x800007ff 335c2c66affSColin Finck } PROPDESC_TYPE_FLAGS; 336c2c66affSColin Finck cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_TYPE_FLAGS)") 337c2c66affSColin Finck 338c2c66affSColin Finck typedef [v1_enum] enum PROPDESC_VIEW_FLAGS 339c2c66affSColin Finck { 340c2c66affSColin Finck PDVF_DEFAULT = 0x0000, 341c2c66affSColin Finck PDVF_CENTERALIGN = 0x0001, 342c2c66affSColin Finck PDVF_RIGHTALIGN = 0x0002, 343c2c66affSColin Finck PDVF_BEGINNEWGROUP = 0x0004, 344c2c66affSColin Finck PDVF_FILLAREA = 0x0008, 345c2c66affSColin Finck PDVF_SORTDESCENDING = 0x0010, 346c2c66affSColin Finck PDVF_SHOWONLYIFPRESENT = 0x0020, 347c2c66affSColin Finck PDVF_SHOWBYDEFAULT = 0x0040, 348c2c66affSColin Finck PDVF_SHOWINPRIMARYLIST = 0x0080, 349c2c66affSColin Finck PDVF_SHOWINSECONDARYLIST = 0x0100, 350c2c66affSColin Finck PDVF_HIDELABEL = 0x0200, 351c2c66affSColin Finck PDVF_HIDDEN = 0x0800, 352c2c66affSColin Finck PDVF_CANWRAP = 0x1000, 353c2c66affSColin Finck PDVF_MASK_ALL = 0x1bff 354c2c66affSColin Finck } PROPDESC_VIEW_FLAGS; 355c2c66affSColin Finck cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_VIEW_FLAGS)") 356c2c66affSColin Finck 357c2c66affSColin Finck typedef [v1_enum] enum PROPDESC_DISPLAYTYPE 358c2c66affSColin Finck { 359c2c66affSColin Finck PDDT_STRING = 0, 360c2c66affSColin Finck PDDT_NUMBER, 361c2c66affSColin Finck PDDT_BOOLEAN, 362c2c66affSColin Finck PDDT_DATETIME, 363c2c66affSColin Finck PDDT_ENUMERATED 364c2c66affSColin Finck } PROPDESC_DISPLAYTYPE; 365c2c66affSColin Finck 366c2c66affSColin Finck typedef [v1_enum] enum PROPDESC_GROUPING_RANGE 367c2c66affSColin Finck { 368c2c66affSColin Finck PDGR_DISCRETE = 0, 369c2c66affSColin Finck PDGR_ALPHANUMERIC, 370c2c66affSColin Finck PDGR_SIZE, 371c2c66affSColin Finck PDGR_DYNAMIC, 372c2c66affSColin Finck PDGR_DATE, 373c2c66affSColin Finck PDGR_PERCENT, 374c2c66affSColin Finck PDGR_ENUMERATED 375c2c66affSColin Finck } PROPDESC_GROUPING_RANGE; 376c2c66affSColin Finck 377c2c66affSColin Finck typedef [v1_enum] enum PROPDESC_FORMAT_FLAGS 378c2c66affSColin Finck { 379c2c66affSColin Finck PDFF_DEFAULT = 0x0000, 380c2c66affSColin Finck PDFF_PREFIXNAME = 0x0001, 381c2c66affSColin Finck PDFF_FILENAME = 0x0002, 382c2c66affSColin Finck PDFF_ALWAYSKB = 0x0004, 383c2c66affSColin Finck PDFF_RESERVED_RIGHTTOLEFT = 0x0008, 384c2c66affSColin Finck PDFF_SHORTTIME = 0x0010, 385c2c66affSColin Finck PDFF_LONGTIME = 0x0020, 386c2c66affSColin Finck PDFF_HIDETIME = 0x0040, 387c2c66affSColin Finck PDFF_SHORTDATE = 0x0080, 388c2c66affSColin Finck PDFF_LONGDATE = 0x0100, 389c2c66affSColin Finck PDFF_HIDEDATE = 0x0200, 390c2c66affSColin Finck PDFF_RELATIVEDATE = 0x0400, 391c2c66affSColin Finck PDFF_USEEDITINVITATION = 0x0800, 392c2c66affSColin Finck PDFF_READONLY = 0x1000, 393c2c66affSColin Finck PDFF_NOAUTOREADINGORDER = 0x2000 394c2c66affSColin Finck } PROPDESC_FORMAT_FLAGS; 395c2c66affSColin Finck cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_FORMAT_FLAGS)") 396c2c66affSColin Finck 397c2c66affSColin Finck typedef [v1_enum] enum PROPDESC_SORTDESCRIPTION 398c2c66affSColin Finck { 399c2c66affSColin Finck PDSD_GENERAL = 0, 400c2c66affSColin Finck PDSD_A_Z, 401c2c66affSColin Finck PDSD_LOWEST_HIGHEST, 402c2c66affSColin Finck PDSD_SMALLEST_BIGGEST, 403c2c66affSColin Finck PDSD_OLDEST_NEWEST 404c2c66affSColin Finck } PROPDESC_SORTDESCRIPTION; 405c2c66affSColin Finck 406c2c66affSColin Finck typedef [v1_enum] enum PROPDESC_RELATIVEDESCRIPTION_TYPE 407c2c66affSColin Finck { 408c2c66affSColin Finck PDRDT_GENERAL = 0, 409c2c66affSColin Finck PDRDT_DATE, 410c2c66affSColin Finck PDRDT_SIZE, 411c2c66affSColin Finck PDRDT_COUNT, 412c2c66affSColin Finck PDRDT_REVISION, 413c2c66affSColin Finck PDRDT_LENGTH, 414c2c66affSColin Finck PDRDT_DURATION, 415c2c66affSColin Finck PDRDT_SPEED, 416c2c66affSColin Finck PDRDT_RATE, 417c2c66affSColin Finck PDRDT_RATING, 418c2c66affSColin Finck PDRDT_PRIORITY 419c2c66affSColin Finck } PROPDESC_RELATIVEDESCRIPTION_TYPE; 420c2c66affSColin Finck 421c2c66affSColin Finck typedef [v1_enum] enum PROPDESC_AGGREGATION_TYPE 422c2c66affSColin Finck { 423c2c66affSColin Finck PDAT_DEFAULT = 0, 424c2c66affSColin Finck PDAT_FIRST, 425c2c66affSColin Finck PDAT_SUM, 426c2c66affSColin Finck PDAT_AVERAGE, 427c2c66affSColin Finck PDAT_DATERANGE, 428c2c66affSColin Finck PDAT_UNION, 429c2c66affSColin Finck PDAT_MAX, 430c2c66affSColin Finck PDAT_MIN 431c2c66affSColin Finck } PROPDESC_AGGREGATION_TYPE; 432c2c66affSColin Finck 433c2c66affSColin Finck typedef [v1_enum] enum PROPDESC_CONDITION_TYPE 434c2c66affSColin Finck { 435c2c66affSColin Finck PDCOT_NONE = 0, 436c2c66affSColin Finck PDCOT_STRING, 437c2c66affSColin Finck PDCOT_SIZE, 438c2c66affSColin Finck PDCOT_DATETIME, 439c2c66affSColin Finck PDCOT_BOOLEAN, 440c2c66affSColin Finck PDCOT_NUMBER 441c2c66affSColin Finck } PROPDESC_CONDITION_TYPE; 442c2c66affSColin Finck 443c2c66affSColin Finck HRESULT GetPropertyKey( 444c2c66affSColin Finck [out] PROPERTYKEY *pkey 445c2c66affSColin Finck ); 446c2c66affSColin Finck HRESULT GetCanonicalName( 447c2c66affSColin Finck [out, string] LPWSTR *ppszName 448c2c66affSColin Finck ); 449c2c66affSColin Finck HRESULT GetPropertyType( 450c2c66affSColin Finck [out] VARTYPE *pvartype 451c2c66affSColin Finck ); 452c2c66affSColin Finck HRESULT GetDisplayName( 453c2c66affSColin Finck [out, string] LPWSTR *ppszName 454c2c66affSColin Finck ); 455c2c66affSColin Finck HRESULT GetEditInvitation( 456c2c66affSColin Finck [out, string] LPWSTR *ppszName 457c2c66affSColin Finck ); 458c2c66affSColin Finck HRESULT GetTypeFlags( 459c2c66affSColin Finck [in] PROPDESC_TYPE_FLAGS mask, 460c2c66affSColin Finck [out] PROPDESC_TYPE_FLAGS *ppdtFlags 461c2c66affSColin Finck ); 462c2c66affSColin Finck HRESULT GetViewFlags( 463c2c66affSColin Finck [out] PROPDESC_VIEW_FLAGS *ppdvFlags 464c2c66affSColin Finck ); 465c2c66affSColin Finck HRESULT GetDefaultColumnWidth( 466c2c66affSColin Finck [out] UINT *pcxChars 467c2c66affSColin Finck ); 468c2c66affSColin Finck HRESULT GetDisplayType( 469c2c66affSColin Finck [out] PROPDESC_DISPLAYTYPE *pdisplaytype 470c2c66affSColin Finck ); 471c2c66affSColin Finck HRESULT GetColumnState( 472c2c66affSColin Finck [out] SHCOLSTATEF *pcsFlags 473c2c66affSColin Finck ); 474c2c66affSColin Finck HRESULT GetGroupingRange( 475c2c66affSColin Finck [out] PROPDESC_GROUPING_RANGE *psd 476c2c66affSColin Finck ); 477c2c66affSColin Finck HRESULT GetRelativeDescriptionType( 478c2c66affSColin Finck [out] PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt 479c2c66affSColin Finck ); 480c2c66affSColin Finck HRESULT GetRelativeDescription( 481c2c66affSColin Finck [in] REFPROPVARIANT propvar1, 482c2c66affSColin Finck [in] REFPROPVARIANT propvar2, 483c2c66affSColin Finck [out,string] LPWSTR *ppszDesc1, 484c2c66affSColin Finck [out,string] LPWSTR *ppszDesc2 485c2c66affSColin Finck ); 486c2c66affSColin Finck HRESULT GetSortDescription( 487c2c66affSColin Finck [out] PROPDESC_SORTDESCRIPTION *psd 488c2c66affSColin Finck ); 489c2c66affSColin Finck HRESULT GetSortDescriptionLabel( 490c2c66affSColin Finck [in] BOOL fDescending, 491c2c66affSColin Finck [out,string] LPWSTR *ppszDescription 492c2c66affSColin Finck ); 493c2c66affSColin Finck HRESULT GetAggregationType( 494c2c66affSColin Finck [out] PROPDESC_AGGREGATION_TYPE *paggtype 495c2c66affSColin Finck ); 496c2c66affSColin Finck HRESULT GetConditionType( 497c2c66affSColin Finck [out] PROPDESC_CONDITION_TYPE *pcontype, 498c2c66affSColin Finck [out] CONDITION_OPERATION *popDefault 499c2c66affSColin Finck ); 500c2c66affSColin Finck HRESULT GetEnumTypeList( 501c2c66affSColin Finck [in] REFIID riid, 502c2c66affSColin Finck [out,iid_is(riid)] void **ppv 503c2c66affSColin Finck ); 504c2c66affSColin Finck [local] HRESULT CoerceToCanonicalValue( 505c2c66affSColin Finck [in,out] PROPVARIANT *propvar 506c2c66affSColin Finck ); 507c2c66affSColin Finck [call_as(CoerceToCanonicalValue)] HRESULT RemoteCoerceToCanonicalValue( 508c2c66affSColin Finck [in] REFPROPVARIANT propvar, 509c2c66affSColin Finck [out] PROPVARIANT *ppropvar 510c2c66affSColin Finck ); 511c2c66affSColin Finck HRESULT FormatForDisplay( 512c2c66affSColin Finck [in] REFPROPVARIANT propvar, 513c2c66affSColin Finck [in] PROPDESC_FORMAT_FLAGS flags, 514c2c66affSColin Finck [out,string] LPWSTR *ppszDisplay 515c2c66affSColin Finck ); 516c2c66affSColin Finck HRESULT IsValueCanonical( 517c2c66affSColin Finck [in] REFPROPVARIANT propvar 518c2c66affSColin Finck ); 519c2c66affSColin Finck} 520c2c66affSColin Finck 521c2c66affSColin Finck[ 522c2c66affSColin Finck uuid(57d2eded-5062-400e-b107-5dae79fe57a6), 523c2c66affSColin Finck object, 524c2c66affSColin Finck pointer_default(unique) 525c2c66affSColin Finck] 526c2c66affSColin Finckinterface IPropertyDescription2 : IPropertyDescription 527c2c66affSColin Finck{ 528c2c66affSColin Finck HRESULT GetImageReferenceForValue( 529c2c66affSColin Finck [in] REFPROPVARIANT propvar, 530c2c66affSColin Finck [out,string] LPWSTR *ppszImageRes 531c2c66affSColin Finck ); 532c2c66affSColin Finck} 533c2c66affSColin Finck 534c2c66affSColin Finck[ 535c2c66affSColin Finck uuid(f67104fc-2af9-46fd-b32d-243c1404f3d1), 536c2c66affSColin Finck object, 537c2c66affSColin Finck pointer_default(unique) 538c2c66affSColin Finck] 539c2c66affSColin Finckinterface IPropertyDescriptionAliasInfo : IPropertyDescription 540c2c66affSColin Finck{ 541c2c66affSColin Finck HRESULT GetSortByAlias( 542c2c66affSColin Finck [in] REFIID riid, 543c2c66affSColin Finck [out,iid_is(riid)] void **ppv 544c2c66affSColin Finck ); 545c2c66affSColin Finck HRESULT GetAdditionalSortByAliases( 546c2c66affSColin Finck [in] REFIID riid, 547c2c66affSColin Finck [out,iid_is(riid)] void **ppv 548c2c66affSColin Finck ); 549c2c66affSColin Finck} 550c2c66affSColin Finck 551c2c66affSColin Finck[ 552c2c66affSColin Finck uuid(078f91bd-29a2-440f-924e-46a291524520), 553c2c66affSColin Finck object, 554c2c66affSColin Finck pointer_default(unique) 555c2c66affSColin Finck] 556c2c66affSColin Finckinterface IPropertyDescriptionSearchInfo : IPropertyDescription 557c2c66affSColin Finck{ 558c2c66affSColin Finck typedef [v1_enum] enum PROPDESC_SEARCHINFO_FLAGS 559c2c66affSColin Finck { 560c2c66affSColin Finck PDSIF_DEFAULT = 0x0, 561c2c66affSColin Finck PDSIF_ININVERTEDINDEX = 0x1, 562c2c66affSColin Finck PDSIF_ISCOLUMN = 0x2, 563c2c66affSColin Finck PDSIF_ISCOLUMNSPARSE = 0x4, 564c2c66affSColin Finck PDSIF_ALWAYSINCLUDE = 0x8, 565c2c66affSColin Finck } PROPDESC_SEARCHINFO_FLAGS; 566c2c66affSColin Finck cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_SEARCHINFO_FLAGS)") 567c2c66affSColin Finck 568c2c66affSColin Finck typedef [v1_enum] enum PROPDESC_COLUMNINDEX_TYPE 569c2c66affSColin Finck { 570c2c66affSColin Finck PDCIT_NONE = 0, 571c2c66affSColin Finck PDCIT_ONDISK, 572c2c66affSColin Finck PDCIT_INMEMORY, 573c2c66affSColin Finck PDCIT_ONDEMAND, 574c2c66affSColin Finck PDCIT_ONDISKALL, 575c2c66affSColin Finck PDCIT_ONDISKVECTOR 576c2c66affSColin Finck } PROPDESC_COLUMNINDEX_TYPE; 577c2c66affSColin Finck 578c2c66affSColin Finck HRESULT GetSearchInfoFlags( 579c2c66affSColin Finck [out] PROPDESC_SEARCHINFO_FLAGS *ppdsiFlags 580c2c66affSColin Finck ); 581c2c66affSColin Finck HRESULT GetColumnIndexType( 582c2c66affSColin Finck [out] PROPDESC_COLUMNINDEX_TYPE *ppdciType 583c2c66affSColin Finck ); 584c2c66affSColin Finck HRESULT GetProjectionString( 585c2c66affSColin Finck [out] LPWSTR *ppszProjection 586c2c66affSColin Finck ); 587c2c66affSColin Finck HRESULT GetMaxSize( 588c2c66affSColin Finck [out] UINT *pcbMaxSize 589c2c66affSColin Finck ); 590c2c66affSColin Finck} 591c2c66affSColin Finck 592c2c66affSColin Finck[ 593c2c66affSColin Finck uuid(507393f4-2a3d-4a60-b59e-d9c75716c2dd), 594c2c66affSColin Finck object, 595c2c66affSColin Finck pointer_default(unique) 596c2c66affSColin Finck] 597c2c66affSColin Finckinterface IPropertyDescriptionRelatedPropertyInfo : IPropertyDescription 598c2c66affSColin Finck{ 599c2c66affSColin Finck HRESULT GetRelatedProperty( 600c2c66affSColin Finck [in] LPCWSTR ppszRelationshipName, 601c2c66affSColin Finck [in] REFIID riid, 602c2c66affSColin Finck [out,iid_is(riid)] void **ppv 603c2c66affSColin Finck ); 604c2c66affSColin Finck} 605c2c66affSColin Finck 606c2c66affSColin Fincktypedef [v1_enum] enum PROPDESC_ENUMFILTER 607c2c66affSColin Finck{ 608c2c66affSColin Finck PDEF_ALL = 0, 609c2c66affSColin Finck PDEF_SYSTEM, 610c2c66affSColin Finck PDEF_NONSYSTEM, 611c2c66affSColin Finck PDEF_VIEWABLE, 612c2c66affSColin Finck PDEF_QUERYABLE, 613c2c66affSColin Finck PDEF_INFULLTEXTQUERY, 614c2c66affSColin Finck PDEF_COLUMN 615c2c66affSColin Finck} PROPDESC_ENUMFILTER; 616c2c66affSColin Finck 617c2c66affSColin Finck[ 618c2c66affSColin Finck uuid(ca724e8a-c3e6-442b-88a4-6fb0db8035a3), 619c2c66affSColin Finck object, 620c2c66affSColin Finck pointer_default(unique) 621c2c66affSColin Finck] 622c2c66affSColin Finckinterface IPropertySystem : IUnknown 623c2c66affSColin Finck{ 624c2c66affSColin Finck HRESULT GetPropertyDescription( 625c2c66affSColin Finck [in] REFPROPERTYKEY propkey, 626c2c66affSColin Finck [in] REFIID riid, 627c2c66affSColin Finck [out,iid_is(riid)] void **ppv 628c2c66affSColin Finck ); 629c2c66affSColin Finck HRESULT GetPropertyDescriptionByName( 630c2c66affSColin Finck [in,string] LPCWSTR pszCanonicalName, 631c2c66affSColin Finck [in] REFIID riid, 632c2c66affSColin Finck [out,iid_is(riid)] void **ppv 633c2c66affSColin Finck ); 634c2c66affSColin Finck HRESULT GetPropertyDescriptionListFromString( 635c2c66affSColin Finck [in,string] LPCWSTR pszPropList, 636c2c66affSColin Finck [in] REFIID riid, 637c2c66affSColin Finck [out,iid_is(riid)] void **ppv 638c2c66affSColin Finck ); 639c2c66affSColin Finck HRESULT EnumeratePropertyDescriptions( 640c2c66affSColin Finck [in] PROPDESC_ENUMFILTER filterOn, 641c2c66affSColin Finck [in] REFIID riid, 642c2c66affSColin Finck [out,iid_is(riid)] void **ppv 643c2c66affSColin Finck ); 644c2c66affSColin Finck HRESULT FormatForDisplay( 645c2c66affSColin Finck [in] REFPROPERTYKEY key, 646c2c66affSColin Finck [in] REFPROPVARIANT propvar, 647c2c66affSColin Finck [in] PROPDESC_FORMAT_FLAGS pdff, 648c2c66affSColin Finck [out,string,size_is(cchText)] LPWSTR pszText, 649c2c66affSColin Finck [in] DWORD cchText 650c2c66affSColin Finck ); 651c2c66affSColin Finck HRESULT FormatForDisplayAlloc( 652c2c66affSColin Finck [in] REFPROPERTYKEY key, 653c2c66affSColin Finck [in] REFPROPVARIANT propvar, 654c2c66affSColin Finck [in] PROPDESC_FORMAT_FLAGS pdff, 655c2c66affSColin Finck [out,string] LPWSTR *pszText 656c2c66affSColin Finck ); 657c2c66affSColin Finck HRESULT RegisterPropertySchema( 658c2c66affSColin Finck [in,string] LPCWSTR pszPath 659c2c66affSColin Finck ); 660c2c66affSColin Finck HRESULT UnregisterPropertySchema( 661c2c66affSColin Finck [in,string] LPCWSTR pszPath 662c2c66affSColin Finck ); 663c2c66affSColin Finck HRESULT RefreshPropertySchema(void); 664c2c66affSColin Finck} 665c2c66affSColin Finck 666c2c66affSColin Finck[ 667c2c66affSColin Finck uuid(1f9fc1d0-c39b-4b26-817f-011967d3440e), 668c2c66affSColin Finck object, 669c2c66affSColin Finck pointer_default(unique) 670c2c66affSColin Finck] 671c2c66affSColin Finckinterface IPropertyDescriptionList : IUnknown 672c2c66affSColin Finck{ 673c2c66affSColin Finck HRESULT GetCount( 674c2c66affSColin Finck [out] UINT *pcelem 675c2c66affSColin Finck ); 676c2c66affSColin Finck HRESULT GetAt( 677c2c66affSColin Finck [in] UINT iElem, 678c2c66affSColin Finck [in] REFIID riid, 679c2c66affSColin Finck [out,iid_is(riid)] void **ppv 680c2c66affSColin Finck ); 681c2c66affSColin Finck} 682c2c66affSColin Finck 683c2c66affSColin Finck[ 684c2c66affSColin Finck uuid(bc110b6d-57e8-4148-a9c6-91015ab2f3a5), 685c2c66affSColin Finck object, 686c2c66affSColin Finck pointer_default(unique) 687c2c66affSColin Finck] 688c2c66affSColin Finckinterface IPropertyStoreFactory : IUnknown 689c2c66affSColin Finck{ 690c2c66affSColin Finck HRESULT GetPropertyStore( 691c2c66affSColin Finck [in] GETPROPERTYSTOREFLAGS flags, 692c2c66affSColin Finck [in,unique] IUnknown *pUnkFactory, 693c2c66affSColin Finck [in] REFIID riid, 694c2c66affSColin Finck [out,iid_is(riid)] void **ppv 695c2c66affSColin Finck ); 696c2c66affSColin Finck HRESULT GetPropertyStoreForKeys( 697c2c66affSColin Finck [in,unique] const PROPERTYKEY *rgKeys, 698c2c66affSColin Finck [in] UINT cKeys, 699c2c66affSColin Finck [in] GETPROPERTYSTOREFLAGS flags, 700c2c66affSColin Finck [in] REFIID riid, 701c2c66affSColin Finck [out,iid_is(riid)] void **ppv 702c2c66affSColin Finck ); 703c2c66affSColin Finck} 704c2c66affSColin Finck 705c2c66affSColin Finck[ 706c2c66affSColin Finck uuid(40d4577f-e237-4bdb-bd69-58f089431b6a), 707c2c66affSColin Finck object, 708c2c66affSColin Finck pointer_default(unique) 709c2c66affSColin Finck] 710c2c66affSColin Finckinterface IDelayedPropertyStoreFactory : IPropertyStoreFactory 711c2c66affSColin Finck{ 712c2c66affSColin Finck HRESULT GetDelayedPropertyStore( 713c2c66affSColin Finck [in] GETPROPERTYSTOREFLAGS flags, 714c2c66affSColin Finck [in] DWORD dwStoreId, 715c2c66affSColin Finck [in] REFIID riid, 716c2c66affSColin Finck [out,iid_is(riid)] void **ppv 717c2c66affSColin Finck ); 718c2c66affSColin Finck} 719c2c66affSColin Finck 720c2c66affSColin Finck[v1_enum] enum _PERSIST_SPROPSTORE_FLAGS 721c2c66affSColin Finck{ 722c2c66affSColin Finck FPSPS_DEFAULT = 0, 723c2c66affSColin Finck FPSPS_READONLY = 1 724c2c66affSColin Finck}; 725c2c66affSColin Fincktypedef int PERSIST_SPROPSTORE_FLAGS; 726c2c66affSColin Finck 727c2c66affSColin Fincktypedef struct tagSERIALIZEDROPSTORAGE SERIALIZEDPROPSTORAGE; 728c2c66affSColin Finck 729c2c66affSColin Finckcpp_quote("#if 0") /* Wine doesn't have __unaligned builtin, hack */ 730c2c66affSColin Fincktypedef SERIALIZEDPROPSTORAGE *PUSERIALIZEDPROPSTORAGE; 731c2c66affSColin Fincktypedef const SERIALIZEDPROPSTORAGE *PCUSERIALIZEDPROPSTORAGE; 732c2c66affSColin Finckcpp_quote("#endif") 733c2c66affSColin Finckcpp_quote("typedef SERIALIZEDPROPSTORAGE UNALIGNED *PUSERIALIZEDPROPSTORAGE;") 734c2c66affSColin Finckcpp_quote("typedef const SERIALIZEDPROPSTORAGE UNALIGNED *PCUSERIALIZEDPROPSTORAGE;") 735c2c66affSColin Finck 736c2c66affSColin Finck[ 737c2c66affSColin Finck uuid(e318ad57-0aa0-450f-aca5-6fab7103d917), 738c2c66affSColin Finck pointer_default(unique), 739c2c66affSColin Finck local 740c2c66affSColin Finck] 741c2c66affSColin Finckinterface IPersistSerializedPropStorage : IUnknown 742c2c66affSColin Finck{ 743c2c66affSColin Finck HRESULT SetFlags( 744c2c66affSColin Finck [in] PERSIST_SPROPSTORE_FLAGS flags 745c2c66affSColin Finck ); 746c2c66affSColin Finck HRESULT SetPropertyStorage( 747c2c66affSColin Finck [in] PCUSERIALIZEDPROPSTORAGE psps, 748c2c66affSColin Finck [in] DWORD cb 749c2c66affSColin Finck ); 750c2c66affSColin Finck HRESULT GetPropertyStorage( 751c2c66affSColin Finck [out] SERIALIZEDPROPSTORAGE **psps, 752c2c66affSColin Finck [out] DWORD *pcb 753c2c66affSColin Finck ); 754c2c66affSColin Finck} 755c2c66affSColin Finck 756c2c66affSColin Finck[ 757c2c66affSColin Finck uuid(77effa68-4f98-4366-ba72-573b3d880571), 758c2c66affSColin Finck pointer_default(unique), 759c2c66affSColin Finck local 760c2c66affSColin Finck] 761c2c66affSColin Finckinterface IPersistSerializedPropStorage2 : IPersistSerializedPropStorage 762c2c66affSColin Finck{ 763c2c66affSColin Finck HRESULT GetpropertyStorageSize( 764c2c66affSColin Finck [out] DWORD *pcb 765c2c66affSColin Finck ); 766c2c66affSColin Finck HRESULT GetPropertyStorageBuffer( 767c2c66affSColin Finck [out] SERIALIZEDPROPSTORAGE *psps, 768c2c66affSColin Finck [in] DWORD cb, 769c2c66affSColin Finck [out] DWORD *pcbWritten 770c2c66affSColin Finck ); 771c2c66affSColin Finck} 772c2c66affSColin Finck 773c2c66affSColin Finck[ 774c2c66affSColin Finck uuid(fa955fd9-38be-4879-a6ce-824cf52d609f), 775c2c66affSColin Finck object, 776c2c66affSColin Finck pointer_default(unique) 777c2c66affSColin Finck] 778c2c66affSColin Finckinterface IPropertySystemChangeNotify : IUnknown 779c2c66affSColin Finck{ 780c2c66affSColin Finck HRESULT SchemaRefreshed(void); 781c2c66affSColin Finck} 782c2c66affSColin Finck 783c2c66affSColin Finck/* Interface for CoCreateInstance? */ 784c2c66affSColin Finck[ 785c2c66affSColin Finck uuid(75121952-e0d0-43e5-9380-1d80483acf72), 786c2c66affSColin Finck pointer_default(unique) 787c2c66affSColin Finck] 788c2c66affSColin Finckinterface ICreateObject : IUnknown 789c2c66affSColin Finck{ 790c2c66affSColin Finck HRESULT CreateObject( 791c2c66affSColin Finck [in] REFCLSID clsid, 792c2c66affSColin Finck [in,unique] IUnknown *pUnkOuter, 793c2c66affSColin Finck [in] REFIID riid, 794c2c66affSColin Finck [out,iid_is(riid)] void **ppv 795c2c66affSColin Finck ); 796c2c66affSColin Finck} 797c2c66affSColin Finck 798c2c66affSColin Finckcpp_quote("#define PKEY_PIDSTR_MAX 10") 799c2c66affSColin Finckcpp_quote("#define GUIDSTRING_MAX 39") 800c2c66affSColin Finckcpp_quote("#define PKEYSTR_MAX (GUIDSTRING_MAX + 1 + PKEY_PIDSTR_MAX)") 801c2c66affSColin Finck 802*7eba2742SAmine Khaldicpp_quote("HRESULT WINAPI PSCreateMemoryPropertyStore(REFIID,void **);") 803c2c66affSColin Finckcpp_quote("HRESULT WINAPI PSStringFromPropertyKey(REFPROPERTYKEY,LPWSTR,UINT);") 804c2c66affSColin Finckcpp_quote("HRESULT WINAPI PSPropertyKeyFromString(LPCWSTR,PROPERTYKEY*);") 805c2c66affSColin Finckcpp_quote("HRESULT WINAPI PSGetPropertyDescription(REFPROPERTYKEY,REFIID,void **);") 806c2c66affSColin Finckcpp_quote("HRESULT WINAPI PSGetPropertyDescriptionListFromString(LPCWSTR,REFIID,void **);") 807c2c66affSColin Finckcpp_quote("HRESULT WINAPI PSRefreshPropertySchema(void);") 808c2c66affSColin Finckcpp_quote("HRESULT WINAPI PSRegisterPropertySchema(LPCWSTR);") 809c2c66affSColin Finckcpp_quote("HRESULT WINAPI PSUnregisterPropertySchema(LPCWSTR);") 810c2c66affSColin Finck 811c2c66affSColin Finck/* TODO: Add remainder of the C api here */ 812c2c66affSColin Finck 813c2c66affSColin Finck[ 814c2c66affSColin Finck uuid(2cda3294-6c4f-4020-b161-27c530c81fa6), 815c2c66affSColin Finck lcid(0x0000), 816c2c66affSColin Finck version(1.0) 817c2c66affSColin Finck] 818c2c66affSColin Fincklibrary PropSysObjects 819c2c66affSColin Finck{ 820c2c66affSColin Finck [uuid(9a02e012-6303-4e1e-b9a1-630f802592c5)] coclass InMemoryPropertyStore 821c2c66affSColin Finck { 822c2c66affSColin Finck interface IPropertyStore; 823c2c66affSColin Finck } 824c2c66affSColin Finck [uuid(b8967f86-58ae-4f96-9fb2-5d7904798f4b)] coclass PropertySystem 825c2c66affSColin Finck { 826c2c66affSColin Finck interface IPropertySystem; 827c2c66affSColin Finck } 828c2c66affSColin Finck} 829