1cpp_quote("/**") 2cpp_quote(" * This file is part of the mingw-w64 runtime package.") 3cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.") 4cpp_quote(" */") 5cpp_quote("") 6cpp_quote("#include <winapifamily.h>") 7cpp_quote("") 8 9import "objidl.idl"; 10import "oleidl.idl"; 11import "ocidl.idl"; 12import "shtypes.idl"; 13import "structuredquerycondition.idl"; 14 15cpp_quote("") 16cpp_quote("#ifndef PSSTDAPI") 17cpp_quote("#ifdef _PROPSYS_") 18cpp_quote("#define PSSTDAPI STDAPI") 19cpp_quote("#define PSSTDAPI_(type) STDAPI_(type)") 20cpp_quote("#else") 21cpp_quote("#define PSSTDAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE") 22cpp_quote("#define PSSTDAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE") 23cpp_quote("#endif") 24cpp_quote("#endif") 25cpp_quote("") 26cpp_quote("#if 0") 27typedef PROPERTYKEY *REFPROPERTYKEY; 28cpp_quote("#endif") 29cpp_quote("") 30cpp_quote("#include <propkeydef.h>") 31 32cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") 33[uuid (b7d14566-0509-4cce-a71f-0a554233bd9b), object, pointer_default (unique)] 34interface IInitializeWithFile : IUnknown { 35 HRESULT Initialize ([in, string] LPCWSTR pszFilePath,[in] DWORD grfMode); 36} 37 38cpp_quote("") 39[uuid (b824b49d-22ac-4161-ac8a-9916e8fa3f7f), object, pointer_default (unique)] 40interface IInitializeWithStream : IUnknown { 41 [local] HRESULT Initialize ([in] IStream *pstream,[in] DWORD grfMode); 42 [call_as (Initialize)] HRESULT RemoteInitialize ([in] IStream *pstream,[in] DWORD grfMode); 43} 44cpp_quote("#endif") 45cpp_quote("") 46cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") 47[uuid (886d8eeb-8cf2-4446-8d02-cdba1dbdcf99), helpstring ("Simple Property Store Interface"), object, pointer_default (unique)] 48interface IPropertyStore : IUnknown { 49 HRESULT GetCount ([out] DWORD *cProps); 50 HRESULT GetAt ([in] DWORD iProp,[out] PROPERTYKEY *pkey); 51 HRESULT GetValue ([in] REFPROPERTYKEY key,[out] PROPVARIANT *pv); 52 HRESULT SetValue ([in] REFPROPERTYKEY key,[in] REFPROPVARIANT propvar); 53 HRESULT Commit (); 54} 55 56cpp_quote("") 57typedef [unique] IPropertyStore *LPPROPERTYSTORE; 58cpp_quote("#endif") 59cpp_quote("") 60cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") 61[uuid (71604b0f-97b0-4764-8577-2f13e98a1422), object, pointer_default (unique)] 62interface INamedPropertyStore : IUnknown { 63 HRESULT GetNamedValue ([in, string] LPCWSTR pszName,[out] PROPVARIANT *ppropvar); 64 HRESULT SetNamedValue ([in, string] LPCWSTR pszName,[in] REFPROPVARIANT propvar); 65 HRESULT GetNameCount ([out] DWORD *pdwCount); 66 HRESULT GetNameAt ([in] DWORD iProp,[out] BSTR *pbstrName); 67}; 68 69cpp_quote("") 70typedef [v1_enum] enum GETPROPERTYSTOREFLAGS { 71 GPS_DEFAULT = 0x00000000, 72 GPS_HANDLERPROPERTIESONLY = 0x00000001, 73 GPS_READWRITE = 0x00000002, 74 GPS_TEMPORARY = 0x00000004, 75 GPS_FASTPROPERTIESONLY = 0x00000008, 76 GPS_OPENSLOWITEM = 0x00000010, 77 GPS_DELAYCREATION = 0x00000020, 78 GPS_BESTEFFORT = 0x00000040, 79 GPS_NO_OPLOCK = 0x00000080, 80 GPS_PREFERQUERYPROPERTIES = 0x00000100, 81 GPS_MASK_VALID = 0x000001ff 82} GETPROPERTYSTOREFLAGS; 83 84cpp_quote("") 85cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(GETPROPERTYSTOREFLAGS)") 86 87cpp_quote("") 88[object, uuid (fc0ca0a7-c316-4fd2-9031-3e628e6d4f23)] 89interface IObjectWithPropertyKey : IUnknown { 90 HRESULT SetPropertyKey ([in] REFPROPERTYKEY key); 91 HRESULT GetPropertyKey ([out] PROPERTYKEY *pkey); 92} 93 94cpp_quote("") 95typedef [v1_enum] enum PKA_FLAGS { 96 PKA_SET, 97 PKA_APPEND, 98 PKA_DELETE 99} PKA_FLAGS; 100 101cpp_quote("") 102[uuid (f917bc8a-1bba-4478-a245-1bde03eb9431), object, pointer_default (unique)] 103interface IPropertyChange : IObjectWithPropertyKey { 104 HRESULT ApplyToPropVariant ([in] REFPROPVARIANT propvarIn,[out] PROPVARIANT *ppropvarOut); 105} 106 107cpp_quote("") 108[uuid (380f5cad-1b5e-42f2-805d-637fd392d31e), object, pointer_default (unique)] 109interface IPropertyChangeArray : IUnknown { 110 HRESULT GetCount ([out] UINT *pcOperations); 111 HRESULT GetAt ([in] UINT iIndex,[in] REFIID riid,[out, iid_is (riid)] void **ppv); 112 HRESULT InsertAt ([in] UINT iIndex,[in] IPropertyChange *ppropChange); 113 HRESULT Append ([in] IPropertyChange *ppropChange); 114 HRESULT AppendOrReplace ([in] IPropertyChange *ppropChange); 115 HRESULT RemoveAt ([in] UINT iIndex); 116 HRESULT IsKeyInArray ([in] REFPROPERTYKEY key); 117} 118 119cpp_quote("") 120[uuid (c8e2d566-186e-4d49-bf41-6909ead56acc), object, pointer_default (unique)] 121interface IPropertyStoreCapabilities : IUnknown { 122 HRESULT IsPropertyWritable ([in] REFPROPERTYKEY key); 123} 124 125cpp_quote("") 126[uuid (3017056d-9a91-4e90-937d-746c72abbf4f), object, pointer_default (unique)] 127interface IPropertyStoreCache : IPropertyStore { 128 typedef [v1_enum] enum PSC_STATE { 129 PSC_NORMAL = 0, 130 PSC_NOTINSOURCE = 1, 131 PSC_DIRTY = 2, 132 PSC_READONLY = 3 133 } PSC_STATE; 134 135cpp_quote("") 136 HRESULT GetState ([in] REFPROPERTYKEY key,[out] PSC_STATE *pstate); 137 HRESULT GetValueAndState ([in] REFPROPERTYKEY key,[out] PROPVARIANT *ppropvar,[out] PSC_STATE *pstate); 138 HRESULT SetState ([in] REFPROPERTYKEY key,[in] PSC_STATE state); 139 HRESULT SetValueAndState ([in] REFPROPERTYKEY key,[in, unique] const PROPVARIANT *ppropvar,[in] PSC_STATE state); 140} 141 142cpp_quote("") 143[uuid (11e1fbf9-2d56-4a6b-8db3-7cd193a471f2), object, pointer_default (unique)] 144interface IPropertyEnumType : IUnknown { 145 typedef [v1_enum] enum PROPENUMTYPE { 146 PET_DISCRETEVALUE = 0, 147 PET_RANGEDVALUE = 1, 148 PET_DEFAULTVALUE = 2, 149 PET_ENDRANGE = 3 150 } PROPENUMTYPE; 151 152cpp_quote("") 153 HRESULT GetEnumType ([out] PROPENUMTYPE *penumtype); 154 HRESULT GetValue ([out] PROPVARIANT *ppropvar); 155 HRESULT GetRangeMinValue ([out] PROPVARIANT *ppropvarMin); 156 HRESULT GetRangeSetValue ([out] PROPVARIANT *ppropvarSet); 157 HRESULT GetDisplayText ([out] LPWSTR *ppszDisplay); 158} 159 160cpp_quote("") 161[uuid (9b6e051c-5ddd-4321-9070-fe2acb55e794), object, pointer_default (unique)] 162interface IPropertyEnumType2 : IPropertyEnumType { 163 HRESULT GetImageReference ([out] LPWSTR *ppszImageRes); 164} 165 166cpp_quote("") 167[uuid (a99400f4-3d84-4557-94ba-1242fb2cc9a6), object, pointer_default (unique)] 168interface IPropertyEnumTypeList : IUnknown { 169 HRESULT GetCount ([out] UINT *pctypes); 170 HRESULT GetAt ([in] UINT itype,[in] REFIID riid,[out, iid_is (riid)] void **ppv); 171 HRESULT GetConditionAt ([in] UINT nIndex,[in] REFIID riid,[out, iid_is (riid)] void **ppv); 172 HRESULT FindMatchingIndex ([in] REFPROPVARIANT propvarCmp,[out] UINT *pnIndex); 173} 174 175cpp_quote("") 176[uuid (6f79d558-3e96-4549-a1d1-7d75d2288814), object, pointer_default (unique)] 177interface IPropertyDescription : IUnknown { 178 typedef [v1_enum] enum PROPDESC_TYPE_FLAGS { 179 PDTF_DEFAULT = 0x00000000, 180 PDTF_MULTIPLEVALUES = 0x00000001, 181 PDTF_ISINNATE = 0x00000002, 182 PDTF_ISGROUP = 0x00000004, 183 PDTF_CANGROUPBY = 0x00000008, 184 PDTF_CANSTACKBY = 0x00000010, 185 PDTF_ISTREEPROPERTY = 0x00000020, 186 PDTF_INCLUDEINFULLTEXTQUERY = 0x00000040, 187 PDTF_ISVIEWABLE = 0x00000080, 188 PDTF_ISQUERYABLE = 0x00000100, 189 PDTF_CANBEPURGED = 0x00000200, 190 PDTF_SEARCHRAWVALUE = 0x00000400, 191 PDTF_ISSYSTEMPROPERTY = 0x80000000, 192 PDTF_MASK_ALL = 0x800007ff 193 } PROPDESC_TYPE_FLAGS; 194cpp_quote("") 195 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_TYPE_FLAGS)") 196 197cpp_quote("") 198 typedef [v1_enum] enum PROPDESC_VIEW_FLAGS { 199 PDVF_DEFAULT = 0x00000000, 200 PDVF_CENTERALIGN = 0x00000001, 201 PDVF_RIGHTALIGN = 0x00000002, 202 PDVF_BEGINNEWGROUP = 0x00000004, 203 PDVF_FILLAREA = 0x00000008, 204 PDVF_SORTDESCENDING = 0x00000010, 205 PDVF_SHOWONLYIFPRESENT = 0x00000020, 206 PDVF_SHOWBYDEFAULT = 0x00000040, 207 PDVF_SHOWINPRIMARYLIST = 0x00000080, 208 PDVF_SHOWINSECONDARYLIST = 0x00000100, 209 PDVF_HIDELABEL = 0x00000200, 210 PDVF_HIDDEN = 0x00000800, 211 PDVF_CANWRAP = 0x00001000, 212 PDVF_MASK_ALL = 0x00001bff 213 } PROPDESC_VIEW_FLAGS; 214cpp_quote("") 215 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_VIEW_FLAGS)") 216 217cpp_quote("") 218 typedef [v1_enum] enum PROPDESC_DISPLAYTYPE { 219 PDDT_STRING = 0, 220 PDDT_NUMBER = 1, 221 PDDT_BOOLEAN = 2, 222 PDDT_DATETIME = 3, 223 PDDT_ENUMERATED = 4, 224 } PROPDESC_DISPLAYTYPE; 225 226cpp_quote("") 227 typedef [v1_enum] enum PROPDESC_GROUPING_RANGE { 228 PDGR_DISCRETE = 0, 229 PDGR_ALPHANUMERIC = 1, 230 PDGR_SIZE = 2, 231 PDGR_DYNAMIC = 3, 232 PDGR_DATE = 4, 233 PDGR_PERCENT = 5, 234 PDGR_ENUMERATED = 6 235 } PROPDESC_GROUPING_RANGE; 236 237cpp_quote("") 238 typedef [v1_enum] enum PROPDESC_FORMAT_FLAGS { 239 PDFF_DEFAULT = 0x00000000, 240 PDFF_PREFIXNAME = 0x00000001, 241 PDFF_FILENAME = 0x00000002, 242 PDFF_ALWAYSKB = 0x00000004, 243 PDFF_RESERVED_RIGHTTOLEFT = 0x00000008, 244 PDFF_SHORTTIME = 0x00000010, 245 PDFF_LONGTIME = 0x00000020, 246 PDFF_HIDETIME = 0x00000040, 247 PDFF_SHORTDATE = 0x00000080, 248 PDFF_LONGDATE = 0x00000100, 249 PDFF_HIDEDATE = 0x00000200, 250 PDFF_RELATIVEDATE = 0x00000400, 251 PDFF_USEEDITINVITATION = 0x00000800, 252 PDFF_READONLY = 0x00001000, 253 PDFF_NOAUTOREADINGORDER = 0x00002000 254 } PROPDESC_FORMAT_FLAGS; 255cpp_quote("") 256 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_FORMAT_FLAGS)") 257 258cpp_quote("") 259 typedef [v1_enum] enum PROPDESC_SORTDESCRIPTION { 260 PDSD_GENERAL = 0, 261 PDSD_A_Z = 1, 262 PDSD_LOWEST_HIGHEST = 2, 263 PDSD_SMALLEST_BIGGEST = 3, 264 PDSD_OLDEST_NEWEST = 4 265 } PROPDESC_SORTDESCRIPTION; 266 267cpp_quote("") 268 typedef [v1_enum] enum PROPDESC_RELATIVEDESCRIPTION_TYPE { 269 PDRDT_GENERAL = 0, 270 PDRDT_DATE = 1, 271 PDRDT_SIZE = 2, 272 PDRDT_COUNT = 3, 273 PDRDT_REVISION = 4, 274 PDRDT_LENGTH = 5, 275 PDRDT_DURATION = 6, 276 PDRDT_SPEED = 7, 277 PDRDT_RATE = 8, 278 PDRDT_RATING = 9, 279 PDRDT_PRIORITY = 10 280 } PROPDESC_RELATIVEDESCRIPTION_TYPE; 281 282cpp_quote("") 283 typedef [v1_enum] enum PROPDESC_AGGREGATION_TYPE { 284 PDAT_DEFAULT = 0, 285 PDAT_FIRST = 1, 286 PDAT_SUM = 2, 287 PDAT_AVERAGE = 3, 288 PDAT_DATERANGE = 4, 289 PDAT_UNION = 5, 290 PDAT_MAX = 6, 291 PDAT_MIN = 7 292 } PROPDESC_AGGREGATION_TYPE; 293 294cpp_quote("") 295 typedef [v1_enum] enum PROPDESC_CONDITION_TYPE { 296 PDCOT_NONE = 0, 297 PDCOT_STRING = 1, 298 PDCOT_SIZE = 2, 299 PDCOT_DATETIME = 3, 300 PDCOT_BOOLEAN = 4, 301 PDCOT_NUMBER = 5 302 } PROPDESC_CONDITION_TYPE; 303 304cpp_quote("") 305 HRESULT GetPropertyKey ([out] PROPERTYKEY *pkey); 306 HRESULT GetCanonicalName ([out, string] LPWSTR *ppszName); 307 HRESULT GetPropertyType ([out] VARTYPE *pvartype); 308 HRESULT GetDisplayName ([out, string] LPWSTR *ppszName); 309 HRESULT GetEditInvitation ([out, string] LPWSTR *ppszInvite); 310 HRESULT GetTypeFlags ([in] PROPDESC_TYPE_FLAGS mask,[out] PROPDESC_TYPE_FLAGS *ppdtFlags); 311 HRESULT GetViewFlags ([out] PROPDESC_VIEW_FLAGS *ppdvFlags); 312 HRESULT GetDefaultColumnWidth ([out] UINT *pcxChars); 313 HRESULT GetDisplayType ([out] PROPDESC_DISPLAYTYPE *pdisplaytype); 314 HRESULT GetColumnState ([out] SHCOLSTATEF *pcsFlags); 315 HRESULT GetGroupingRange ([out] PROPDESC_GROUPING_RANGE *pgr); 316 HRESULT GetRelativeDescriptionType ([out] PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt); 317 HRESULT GetRelativeDescription ([in] REFPROPVARIANT propvar1,[in] REFPROPVARIANT propvar2,[out, string] LPWSTR *ppszDesc1,[out, string] LPWSTR *ppszDesc2); 318 HRESULT GetSortDescription ([out] PROPDESC_SORTDESCRIPTION *psd); 319 HRESULT GetSortDescriptionLabel ([in] BOOL fDescending,[out, string] LPWSTR *ppszDescription); 320 HRESULT GetAggregationType ([out] PROPDESC_AGGREGATION_TYPE *paggtype); 321 HRESULT GetConditionType ([out] PROPDESC_CONDITION_TYPE *pcontype,[out] CONDITION_OPERATION *popDefault); 322 HRESULT GetEnumTypeList ([in] REFIID riid,[out, iid_is (riid)] void **ppv); 323 [local] HRESULT CoerceToCanonicalValue ([in, out] PROPVARIANT *ppropvar); 324 [call_as (CoerceToCanonicalValue)] HRESULT RemoteCoerceToCanonicalValue ([in] REFPROPVARIANT propvar,[out] PROPVARIANT *ppropvar); 325 HRESULT FormatForDisplay ([in] REFPROPVARIANT propvar,[in] PROPDESC_FORMAT_FLAGS pdfFlags,[out, string] LPWSTR *ppszDisplay); 326 HRESULT IsValueCanonical ([in] REFPROPVARIANT propvar); 327} 328 329cpp_quote("") 330[uuid (57d2eded-5062-400e-b107-5dae79fe57a6), object, pointer_default (unique)] 331interface IPropertyDescription2 : IPropertyDescription { 332 HRESULT GetImageReferenceForValue ([in] REFPROPVARIANT propvar,[out, string] LPWSTR *ppszImageRes); 333} 334 335cpp_quote("") 336[uuid (f67104fc-2af9-46fd-b32d-243c1404f3d1), object, pointer_default (unique)] 337interface IPropertyDescriptionAliasInfo : IPropertyDescription { 338 HRESULT GetSortByAlias ([in] REFIID riid,[out, iid_is (riid)] void **ppv); 339 HRESULT GetAdditionalSortByAliases ([in] REFIID riid,[out, iid_is (riid)] void **ppv); 340}; 341 342cpp_quote("") 343[uuid (078f91bd-29a2-440f-924e-46a291524520), object, pointer_default (unique)] 344interface IPropertyDescriptionSearchInfo : IPropertyDescription { 345 typedef [v1_enum] enum PROPDESC_SEARCHINFO_FLAGS { 346 PDSIF_DEFAULT = 0x00000000, 347 PDSIF_ININVERTEDINDEX = 0x00000001, 348 PDSIF_ISCOLUMN = 0x00000002, 349 PDSIF_ISCOLUMNSPARSE = 0x00000004, 350 PDSIF_ALWAYSINCLUDE = 0x00000008, 351 PDSIF_USEFORTYPEAHEAD = 0x00000010, 352 } PROPDESC_SEARCHINFO_FLAGS; 353cpp_quote("") 354 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_SEARCHINFO_FLAGS)") 355 356cpp_quote("") 357 typedef [v1_enum] enum PROPDESC_COLUMNINDEX_TYPE { 358 PDCIT_NONE = 0, 359 PDCIT_ONDISK = 1, 360 PDCIT_INMEMORY = 2, 361 PDCIT_ONDEMAND = 3, 362 PDCIT_ONDISKALL = 4, 363 PDCIT_ONDISKVECTOR = 5 364 } PROPDESC_COLUMNINDEX_TYPE; 365cpp_quote("") 366 HRESULT GetSearchInfoFlags ([out] PROPDESC_SEARCHINFO_FLAGS *ppdsiFlags); 367 HRESULT GetColumnIndexType ([out] PROPDESC_COLUMNINDEX_TYPE *ppdciType); 368 HRESULT GetProjectionString ([out] LPWSTR *ppszProjection); 369 HRESULT GetMaxSize ([out] UINT *pcbMaxSize); 370}; 371 372cpp_quote("") 373[uuid (507393f4-2a3d-4a60-b59e-d9c75716c2dd), object, pointer_default (unique)] 374interface IPropertyDescriptionRelatedPropertyInfo : IPropertyDescription { 375 HRESULT GetRelatedProperty ([in] LPCWSTR pszRelationshipName,[in] REFIID riid,[out, iid_is (riid)] void **ppv); 376} 377 378cpp_quote("") 379typedef [v1_enum] enum PROPDESC_ENUMFILTER { 380 PDEF_ALL = 0, 381 PDEF_SYSTEM = 1, 382 PDEF_NONSYSTEM = 2, 383 PDEF_VIEWABLE = 3, 384 PDEF_QUERYABLE = 4, 385 PDEF_INFULLTEXTQUERY= 5, 386 PDEF_COLUMN = 6 387} PROPDESC_ENUMFILTER; 388 389cpp_quote("") 390[uuid (ca724e8a-c3e6-442b-88a4-6fb0db8035a3), object, pointer_default (unique)] 391interface IPropertySystem : IUnknown { 392 HRESULT GetPropertyDescription ([in] REFPROPERTYKEY propkey,[in] REFIID riid,[out, iid_is (riid)] void **ppv); 393 HRESULT GetPropertyDescriptionByName ([in, string] LPCWSTR pszCanonicalName,[in] REFIID riid,[out, iid_is (riid)] void **ppv); 394 HRESULT GetPropertyDescriptionListFromString ([in, string] LPCWSTR pszPropList,[in] REFIID riid,[out, iid_is (riid)] void **ppv); 395 HRESULT EnumeratePropertyDescriptions ([in] PROPDESC_ENUMFILTER filterOn,[in] REFIID riid,[out, iid_is (riid)] void **ppv); 396 HRESULT FormatForDisplay ([in] REFPROPERTYKEY key,[in] REFPROPVARIANT propvar,[in] PROPDESC_FORMAT_FLAGS pdff,[out, string, size_is (cchText)] LPWSTR pszText,[in, range (0, 0x8000)] DWORD cchText); 397 HRESULT FormatForDisplayAlloc ([in] REFPROPERTYKEY key,[in] REFPROPVARIANT propvar,[in] PROPDESC_FORMAT_FLAGS pdff,[out, string] LPWSTR *ppszDisplay); 398 HRESULT RegisterPropertySchema ([in, string] LPCWSTR pszPath); 399 HRESULT UnregisterPropertySchema ([in, string] LPCWSTR pszPath); 400 HRESULT RefreshPropertySchema (); 401} 402 403cpp_quote("") 404[uuid (1f9fc1d0-c39b-4b26-817f-011967d3440e), object, pointer_default (unique)] 405interface IPropertyDescriptionList : IUnknown { 406 HRESULT GetCount ([out] UINT *pcElem); 407 HRESULT GetAt ([in] UINT iElem,[in] REFIID riid,[out, iid_is (riid)] void **ppv); 408} 409 410cpp_quote("") 411[uuid (bc110b6d-57e8-4148-a9c6-91015ab2f3a5), object, pointer_default (unique)] 412interface IPropertyStoreFactory : IUnknown { 413 HRESULT GetPropertyStore ([in] GETPROPERTYSTOREFLAGS flags,[in, unique] IUnknown *pUnkFactory,[in] REFIID riid,[out, iid_is (riid)] void **ppv); 414 HRESULT GetPropertyStoreForKeys ([in, unique] const PROPERTYKEY *rgKeys,[in] UINT cKeys,[in] GETPROPERTYSTOREFLAGS flags,[in] REFIID riid,[out, iid_is (riid)] void **ppv); 415} 416 417cpp_quote("") 418[uuid (40d4577f-e237-4bdb-bd69-58f089431b6a), object, pointer_default (unique)] 419interface IDelayedPropertyStoreFactory : IPropertyStoreFactory { 420 HRESULT GetDelayedPropertyStore ([in] GETPROPERTYSTOREFLAGS flags,[in] DWORD dwStoreId,[in] REFIID riid,[out, iid_is (riid)] void **ppv); 421} 422 423cpp_quote("") 424[v1_enum] enum _PERSIST_SPROPSTORE_FLAGS { 425 FPSPS_DEFAULT = 0x00000000, 426 FPSPS_READONLY = 0x00000001, 427 FPSPS_TREAT_NEW_VALUES_AS_DIRTY = 0x00000002, 428}; 429 430cpp_quote("") 431typedef int PERSIST_SPROPSTORE_FLAGS; 432typedef struct tagSERIALIZEDPROPSTORAGE SERIALIZEDPROPSTORAGE; 433typedef SERIALIZEDPROPSTORAGE *PUSERIALIZEDPROPSTORAGE; 434typedef const SERIALIZEDPROPSTORAGE *PCUSERIALIZEDPROPSTORAGE; 435 436cpp_quote("") 437[uuid (e318ad57-0aa0-450f-aca5-6fab7103d917), pointer_default (unique), local] 438interface IPersistSerializedPropStorage : IUnknown { 439 HRESULT SetFlags ([in] PERSIST_SPROPSTORE_FLAGS flags); 440 HRESULT SetPropertyStorage ([in] PCUSERIALIZEDPROPSTORAGE psps,[in] DWORD cb); 441 HRESULT GetPropertyStorage ([out] SERIALIZEDPROPSTORAGE **ppsps,[out] DWORD *pcb); 442} 443 444cpp_quote("") 445[uuid (77effa68-4f98-4366-ba72-573b3d880571), pointer_default (unique), local] 446interface IPersistSerializedPropStorage2 : IPersistSerializedPropStorage { 447 HRESULT GetPropertyStorageSize ([out] DWORD *pcb); 448 HRESULT GetPropertyStorageBuffer ([out] SERIALIZEDPROPSTORAGE *psps,[in] DWORD cb,[out] DWORD *pcbWritten); 449} 450 451cpp_quote("") 452[uuid (fa955fd9-38be-4879-a6ce-824cf52d609f), object, pointer_default (unique)] 453interface IPropertySystemChangeNotify : IUnknown { 454 HRESULT SchemaRefreshed (); 455} 456 457cpp_quote("") 458[uuid (75121952-e0d0-43e5-9380-1d80483acf72), pointer_default (unique)] 459interface ICreateObject : IUnknown { 460 HRESULT CreateObject ([in] REFCLSID clsid,[in, unique] IUnknown *pUnkOuter,[in] REFIID riid,[out, iid_is (riid)] void **ppv); 461}; 462 463cpp_quote("") 464cpp_quote("#define PKEY_PIDSTR_MAX 10") 465cpp_quote("#define GUIDSTRING_MAX (39)") 466cpp_quote("#define PKEYSTR_MAX (GUIDSTRING_MAX + 1 + PKEY_PIDSTR_MAX)") 467 468cpp_quote("") 469cpp_quote("PSSTDAPI PSCoerceToCanonicalValue(REFPROPERTYKEY key, PROPVARIANT *ppropvar);") 470cpp_quote("PSSTDAPI PSCreateAdapterFromPropertyStore(IPropertyStore *pps, REFIID riid, void **ppv);") 471cpp_quote("PSSTDAPI PSCreateDelayedMultiplexPropertyStore(GETPROPERTYSTOREFLAGS flags, IDelayedPropertyStoreFactory *pdpsf, const DWORD *rgStoreIds, DWORD cStores, REFIID riid, void **ppv);") 472cpp_quote("PSSTDAPI PSCreateMemoryPropertyStore(REFIID riid, void **ppv);") 473cpp_quote("PSSTDAPI PSCreateMultiplexPropertyStore(IUnknown **prgpunkStores, DWORD cStores, REFIID riid, void **ppv);") 474cpp_quote("PSSTDAPI PSCreatePropertyChangeArray(const PROPERTYKEY *rgpropkey, const PKA_FLAGS *rgflags, const PROPVARIANT *rgpropvar, UINT cChanges, REFIID riid, void **ppv);") 475cpp_quote("PSSTDAPI PSCreatePropertyStoreFromObject(IUnknown *punk, DWORD grfMode, REFIID riid, void **ppv);") 476cpp_quote("PSSTDAPI PSCreatePropertyStoreFromPropertySetStorage(IPropertySetStorage *ppss, DWORD grfMode, REFIID riid, void **ppv);") 477cpp_quote("PSSTDAPI PSCreateSimplePropertyChange(PKA_FLAGS flags, REFPROPERTYKEY key, REFPROPVARIANT propvar, REFIID riid, void **ppv);") 478cpp_quote("PSSTDAPI PSEnumeratePropertyDescriptions(PROPDESC_ENUMFILTER filterOn, REFIID riid, void **ppv);") 479cpp_quote("PSSTDAPI PSFormatForDisplay(REFPROPERTYKEY propkey, REFPROPVARIANT propvar, PROPDESC_FORMAT_FLAGS pdfFlags, LPWSTR pwszText, DWORD cchText);") 480cpp_quote("PSSTDAPI PSFormatForDisplayAlloc(REFPROPERTYKEY key, REFPROPVARIANT propvar, PROPDESC_FORMAT_FLAGS pdff, PWSTR *ppszDisplay);") 481cpp_quote("PSSTDAPI PSFormatPropertyValue(IPropertyStore *pps, IPropertyDescription *ppd, PROPDESC_FORMAT_FLAGS pdff, LPWSTR *ppszDisplay);") 482cpp_quote("PSSTDAPI PSGetImageReferenceForValue(REFPROPERTYKEY propkey, REFPROPVARIANT propvar, PWSTR *ppszImageRes);") 483cpp_quote("PSSTDAPI PSGetItemPropertyHandler(IUnknown *punkItem, BOOL fReadWrite, REFIID riid, void **ppv);") 484cpp_quote("PSSTDAPI PSGetItemPropertyHandlerWithCreateObject(IUnknown *punkItem, BOOL fReadWrite, IUnknown *punkCreateObject, REFIID riid, void **ppv);") 485cpp_quote("PSSTDAPI PSGetNamedPropertyFromPropertyStorage(PCUSERIALIZEDPROPSTORAGE psps, DWORD cb, LPCWSTR pszName, PROPVARIANT *ppropvar);") 486cpp_quote("PSSTDAPI PSGetNameFromPropertyKey(REFPROPERTYKEY propkey, PWSTR *ppszCanonicalName);") 487cpp_quote("PSSTDAPI PSGetPropertyDescription(REFPROPERTYKEY propkey, REFIID riid, void **ppv);") 488cpp_quote("PSSTDAPI PSGetPropertyDescriptionByName(LPCWSTR pszCanonicalName, REFIID riid, void **ppv);") 489cpp_quote("PSSTDAPI PSGetPropertyDescriptionListFromString(LPCWSTR pszPropList, REFIID riid, void **ppv);") 490cpp_quote("PSSTDAPI PSGetPropertyFromPropertyStorage(PCUSERIALIZEDPROPSTORAGE psps, DWORD cb, REFPROPERTYKEY rpkey, PROPVARIANT *ppropvar);") 491cpp_quote("PSSTDAPI PSGetPropertyKeyFromName(PCWSTR pszName, PROPERTYKEY *ppropkey);") 492cpp_quote("PSSTDAPI PSGetPropertySystem(REFIID riid, void **ppv);") 493cpp_quote("PSSTDAPI PSGetPropertyValue(IPropertyStore *pps, IPropertyDescription *ppd, PROPVARIANT *ppropvar);") 494cpp_quote("PSSTDAPI PSLookupPropertyHandlerCLSID(PCWSTR pszFilePath, CLSID *pclsid);") 495cpp_quote("PSSTDAPI PSPropertyBag_Delete(IPropertyBag *propBag, LPCWSTR propName);") 496cpp_quote("PSSTDAPI PSPropertyBag_ReadBOOL(IPropertyBag *propBag, LPCWSTR propName, BOOL *value);") 497cpp_quote("PSSTDAPI PSPropertyBag_ReadBSTR(IPropertyBag *propBag, LPCWSTR propName, BSTR *value);") 498cpp_quote("PSSTDAPI PSPropertyBag_ReadDWORD(IPropertyBag *propBag, LPCWSTR propName, DWORD *value);") 499cpp_quote("PSSTDAPI PSPropertyBag_ReadGUID(IPropertyBag *propBag, LPCWSTR propName, GUID *value);") 500cpp_quote("PSSTDAPI PSPropertyBag_ReadInt(IPropertyBag *propBag, LPCWSTR propName, INT *value);") 501cpp_quote("PSSTDAPI PSPropertyBag_ReadLONG(IPropertyBag *propBag, LPCWSTR propName, LONG *value);") 502cpp_quote("PSSTDAPI PSPropertyBag_ReadPOINTL(IPropertyBag *propBag, LPCWSTR propName, POINTL *value);") 503cpp_quote("PSSTDAPI PSPropertyBag_ReadPOINTS(IPropertyBag *propBag, LPCWSTR propName, POINTS *value);") 504cpp_quote("PSSTDAPI PSPropertyBag_ReadPropertyKey(IPropertyBag *propBag, LPCWSTR propName, PROPERTYKEY *value);") 505cpp_quote("PSSTDAPI PSPropertyBag_ReadRECTL(IPropertyBag *propBag, LPCWSTR propName, RECTL *value);") 506cpp_quote("PSSTDAPI PSPropertyBag_ReadSHORT(IPropertyBag *propBag, LPCWSTR propName, SHORT *value);") 507cpp_quote("PSSTDAPI PSPropertyBag_ReadStr(IPropertyBag *propBag, LPCWSTR propName, LPWSTR value, int characterCount);") 508cpp_quote("PSSTDAPI PSPropertyBag_ReadStrAlloc(IPropertyBag *propBag, LPCWSTR propName, PWSTR *value);") 509cpp_quote("PSSTDAPI PSPropertyBag_ReadStream(IPropertyBag *propBag, LPCWSTR propName, IStream **value);") 510cpp_quote("PSSTDAPI PSPropertyBag_ReadType(IPropertyBag *propBag, LPCWSTR propName, VARIANT *var, VARTYPE type);") 511cpp_quote("PSSTDAPI PSPropertyBag_ReadULONGLONG(IPropertyBag *propBag, LPCWSTR propName, ULONGLONG *value);") 512cpp_quote("PSSTDAPI PSPropertyBag_ReadUnknown(IPropertyBag *propBag, LPCWSTR propName, REFIID riid, void **ppv);") 513cpp_quote("PSSTDAPI PSPropertyBag_WriteBOOL(IPropertyBag *propBag, LPCWSTR propName, BOOL value);") 514cpp_quote("PSSTDAPI PSPropertyBag_WriteBSTR(IPropertyBag *propBag, LPCWSTR propName, BSTR value);") 515cpp_quote("PSSTDAPI PSPropertyBag_WriteDWORD(IPropertyBag *propBag, LPCWSTR propName, DWORD value);") 516cpp_quote("PSSTDAPI PSPropertyBag_WriteGUID(IPropertyBag *propBag, LPCWSTR propName, const GUID *value);") 517cpp_quote("PSSTDAPI PSPropertyBag_WriteInt(IPropertyBag *propBag, LPCWSTR propName, INT value);") 518cpp_quote("PSSTDAPI PSPropertyBag_WriteLONG(IPropertyBag *propBag, LPCWSTR propName, LONG value);") 519cpp_quote("PSSTDAPI PSPropertyBag_WritePOINTL(IPropertyBag *propBag, LPCWSTR propName, const POINTL *value);") 520cpp_quote("PSSTDAPI PSPropertyBag_WritePOINTS(IPropertyBag *propBag, LPCWSTR propName, const POINTS *value);") 521cpp_quote("PSSTDAPI PSPropertyBag_WritePropertyKey(IPropertyBag *propBag, LPCWSTR propName, REFPROPERTYKEY value);") 522cpp_quote("PSSTDAPI PSPropertyBag_WriteRECTL(IPropertyBag *propBag, LPCWSTR propName, const RECTL *value);") 523cpp_quote("PSSTDAPI PSPropertyBag_WriteSHORT(IPropertyBag *propBag, LPCWSTR propName, SHORT value);") 524cpp_quote("PSSTDAPI PSPropertyBag_WriteStr(IPropertyBag *propBag, LPCWSTR propName, LPCWSTR value);") 525cpp_quote("PSSTDAPI PSPropertyBag_WriteStream(IPropertyBag *propBag, LPCWSTR propName, IStream *value);") 526cpp_quote("PSSTDAPI PSPropertyBag_WriteULONGLONG(IPropertyBag *propBag, LPCWSTR propName, ULONGLONG value);") 527cpp_quote("PSSTDAPI PSPropertyBag_WriteUnknown(IPropertyBag *propBag, LPCWSTR propName, IUnknown *punk);") 528cpp_quote("PSSTDAPI PSPropertyKeyFromString(LPCWSTR pszString, PROPERTYKEY *pkey);") 529cpp_quote("PSSTDAPI PSRefreshPropertySchema(void);") 530cpp_quote("PSSTDAPI PSRegisterPropertySchema(PCWSTR pszPath);") 531cpp_quote("PSSTDAPI PSSetPropertyValue(IPropertyStore *pps, IPropertyDescription *ppd, REFPROPVARIANT propvar);") 532cpp_quote("PSSTDAPI PSStringFromPropertyKey(REFPROPERTYKEY pkey, LPWSTR psz, UINT cch);") 533cpp_quote("PSSTDAPI PSUnregisterPropertySchema(PCWSTR pszPath);") 534 535cpp_quote("") 536[uuid (2cda3294-6c4f-4020-b161-27c530c81fa6), lcid (0x0000), version (1.0)] 537library PropSysObjects { 538 [uuid (9a02e012-6303-4e1e-b9a1-630f802592c5)] coclass InMemoryPropertyStore { interface IPropertyStore; } 539 [uuid (b8967f85-58ae-4f46-9fb2-5d7904798f4b)] coclass PropertySystem { interface IPropertySystem; } 540}; 541cpp_quote("#endif") 542