VirtualBox

source: vbox/trunk/src/VBox/Devices/Graphics/shaderlib/wine/include/propsys.idl@ 69505

Last change on this file since 69505 was 53206, checked in by vboxsync, 10 years ago

Devices/vmsvga: header fixes

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

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette