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