ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

propsys.idl
Go to the documentation of this file.
00001 /*
00002  * system property interfaces
00003  *
00004  * Copyright 2009 Maarten Lankhorst
00005  *
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU Lesser General Public
00008  * License as published by the Free Software Foundation; either
00009  * version 2.1 of the License, or (at your option) any later version.
00010  *
00011  * This library is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  * Lesser General Public License for more details.
00015  *
00016  * You should have received a copy of the GNU Lesser General Public
00017  * License along with this library; if not, write to the Free Software
00018  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00019  *
00020  */
00021 
00022 
00023 import "objidl.idl";
00024 import "oleidl.idl";
00025 import "ocidl.idl";
00026 import "shtypes.idl";
00027 import "structuredquerycondition.idl";
00028 
00029 cpp_quote("#ifndef PSSTDAPI")
00030 cpp_quote("#define PSSTDAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE")
00031 cpp_quote("#endif")
00032 
00033 cpp_quote("#if 0")
00034 typedef PROPERTYKEY *REFPROPERTYKEY;
00035 cpp_quote("#endif")
00036 cpp_quote("#include <propkeydef.h>")
00037 
00038 [
00039     uuid(b7d14566-0509-4cce-a71f-0a554233bd9b),
00040     object,
00041     pointer_default(unique)
00042 ]
00043 interface IInitializeWithFile : IUnknown
00044 {
00045     HRESULT Initialize(
00046         [in,string] LPCWSTR pszFilePath,
00047         [in] DWORD grfMode
00048     );
00049 }
00050 
00051 [
00052     uuid(b824b49d-22ac-4161-ac8a-9916e8fa3f7f),
00053     object,
00054     pointer_default(unique)
00055 ]
00056 interface IInitializeWithStream : IUnknown
00057 {
00058     [local] HRESULT Initialize(
00059         [in] IStream *pstream,
00060         [in] DWORD grfMode
00061     );
00062 }
00063 
00064 [
00065     uuid(886d8eeb-8cf2-4446-8d02-cdba1dbdcf99),
00066     object,
00067     pointer_default(unique)
00068 ]
00069 interface IPropertyStore : IUnknown
00070 {
00071     HRESULT GetCount(
00072         [out] DWORD *cProps
00073     );
00074     HRESULT GetAt(
00075         [in] DWORD iProp,
00076         [out] PROPERTYKEY *pkey
00077     );
00078     HRESULT GetValue(
00079         [in] REFPROPERTYKEY key,
00080         [out] PROPVARIANT *pv
00081     );
00082     HRESULT SetValue(
00083         [in] REFPROPERTYKEY key,
00084         [in] REFPROPVARIANT propvar
00085     );
00086     HRESULT Commit(void);
00087 }
00088 
00089 typedef IPropertyStore *LPPROPERTYSTORE;
00090 
00091 [
00092     uuid(71604b0f-97b0-4764-8577-2f13e98a1422),
00093     object,
00094     pointer_default(unique)
00095 ]
00096 interface INamedPropertyStore : IUnknown
00097 {
00098     HRESULT GetNamedValue(
00099         [in,string] LPCWSTR pszName,
00100         [out] PROPVARIANT *ppropvar
00101     );
00102     HRESULT SetNamedValue(
00103         [in,string] LPCWSTR pszName,
00104         [in] REFPROPVARIANT propvar
00105     );
00106     HRESULT GetNameCount(
00107         [out] DWORD *pdwCount
00108     );
00109     HRESULT GetNameAt(
00110         [in] DWORD iProp,
00111         [out] BSTR *pbstrName
00112     );
00113 }
00114 
00115 typedef [v1_enum] enum GETPROPERTYSTOREFLAGS
00116 {
00117     GPS_DEFAULT = 0x00,
00118     GPS_HANDLERPROPERTIESONLY = 0x01,
00119     GPS_READWRITE = 0x02,
00120     GPS_TEMPORARY = 0x04,
00121     GPS_FASTPROPERTIESONLY = 0x08,
00122     GPS_OPENSLOWITEM = 0x10,
00123     GPS_DELAYCREATION = 0x20,
00124     GPS_BESTEFFORT = 0x40,
00125     GPS_NO_OPLOCK = 0x80,
00126     GPS_MASK_VALID = 0xff
00127 } GETPROPERTYSTOREFLAGS;
00128 
00129 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(GETPROPERTYSTOREFLAGS)")
00130 
00131 [
00132     uuid(fc0ca0a7-c316-4fd2-9031-3e628e6d4f23),
00133     object
00134 ]
00135 interface IObjectWithPropertyKey : IUnknown
00136 {
00137     HRESULT SetPropertyKey(
00138         [in] REFPROPERTYKEY key
00139     );
00140     HRESULT GetPropertyKey(
00141         [out] PROPERTYKEY *key
00142     );
00143 }
00144 
00145 typedef [v1_enum] enum PKA_FLAGS
00146 {
00147     PKA_SET,
00148     PKA_APPEND,
00149     PKA_DELETE
00150 } PKA_FLAGS;
00151 
00152 [
00153     uuid(f917bc8a-1bba-4478-a245-1bde03eb9431),
00154     object,
00155     pointer_default(unique)
00156 ]
00157 interface IPropertyChange : IObjectWithPropertyKey
00158 {
00159     HRESULT ApplyToPropVariant([in] REFPROPVARIANT propvarin, [out] PROPVARIANT *propvarout);
00160 }
00161 
00162 [
00163     uuid(380f5cad-1b5e-42f2-805d-637fd392d31e),
00164     object,
00165     pointer_default(unique)
00166 ]
00167 interface IPropertyChangeArray : IUnknown
00168 {
00169     HRESULT GetCount(
00170         [out] UINT *pcOperations
00171     );
00172     HRESULT GetAt(
00173         [in] UINT iIndex,
00174         [in] REFIID riid,
00175         [out, iid_is(riid)] void **ppv
00176     );
00177     HRESULT InsertAt(
00178         [in] UINT iIndex,
00179         [in] IPropertyChange *ppropChange
00180     );
00181     HRESULT Append(
00182         [in] IPropertyChange *ppropChange
00183     );
00184     HRESULT AppendOrReplace(
00185         [in] IPropertyChange *ppropChange
00186     );
00187     HRESULT RemoveAt(
00188         [in] UINT iIndex
00189     );
00190     HRESULT IsKeyInArray(
00191         [in] REFPROPERTYKEY key
00192     );
00193 }
00194 
00195 [
00196     uuid(c8e2d566-186e-4d49-bf41-6909ead56acc),
00197     object,
00198     pointer_default(unique)
00199 ]
00200 interface IPropertyStoreCapabilities : IUnknown
00201 {
00202     HRESULT IsPropertyWritable(
00203         [in] REFPROPERTYKEY key
00204     );
00205 }
00206 
00207 [
00208     uuid(3017056d-9a91-4e90-937d-746c72abbf4f),
00209     object,
00210     pointer_default(unique)
00211 ]
00212 interface IPropertyStoreCache : IPropertyStore
00213 {
00214     typedef [v1_enum] enum PSC_STATE
00215     {
00216         PSC_NORMAL = 0,
00217         PSC_NOTINSOURCE,
00218         PSC_DIRTY,
00219         PSC_READONLY
00220     } PSC_STATE;
00221 
00222     HRESULT GetState(
00223         [in] REFPROPERTYKEY key,
00224         [out] PSC_STATE *pstate
00225     );
00226     HRESULT GetValueAndState(
00227         [in] REFPROPERTYKEY key,
00228         [out] PROPVARIANT *ppropvar,
00229         [out] PSC_STATE *pstate
00230     );
00231     HRESULT SetState(
00232         [in] REFPROPERTYKEY key,
00233         [in] PSC_STATE pstate
00234     );
00235     HRESULT SetValueAndState(
00236         [in] REFPROPERTYKEY key,
00237         [in, unique] const PROPVARIANT *ppropvar,
00238         [in] PSC_STATE state
00239     );
00240 }
00241 
00242 [
00243     uuid(11e1fbf9-2d56-4a6b-8db3-7cd193a471f2),
00244     object,
00245     pointer_default(unique)
00246 ]
00247 interface IPropertyEnumType : IUnknown
00248 {
00249     typedef [v1_enum] enum PROPENUMTYPE
00250     {
00251         PET_DISCRETEVALUE = 0,
00252         PET_RANGEDVALUE,
00253         PET_DEFAULTVALUE,
00254         PET_ENDRANGE
00255     } PROPENUMTYPE;
00256 
00257     HRESULT GetEnumType(
00258         [out] PROPENUMTYPE *penumtype
00259     );
00260     HRESULT GetValue(
00261         [out] PROPVARIANT *ppropvar
00262     );
00263     HRESULT GetRangeMinValue(
00264         [out] PROPVARIANT *ppropvar
00265     );
00266     HRESULT GetRangeSetValue(
00267         [out] PROPVARIANT *ppropvar
00268     );
00269     HRESULT GetDisplayText(
00270         [out] LPWSTR *ppszDisplay
00271     );
00272 }
00273 
00274 [
00275     uuid(9b6e051c-5ddd-4321-9070-fe2acb55e974),
00276     object,
00277     pointer_default(unique)
00278 ]
00279 interface IPropertyEnumType2 : IPropertyEnumType
00280 {
00281     HRESULT GetImageReference(
00282         [out] LPWSTR *ppszImageRes
00283     );
00284 }
00285 
00286 [
00287     uuid(a99400f4-3d84-4557-94ba-1242fb2cc9a6),
00288     object,
00289     pointer_default(unique)
00290 ]
00291 interface IPropertyEnumTypeList : IUnknown
00292 {
00293     HRESULT GetCount(
00294         [out] UINT *pctypes
00295     );
00296     HRESULT GetAt(
00297         [in] UINT itype,
00298         [in] REFIID riid,
00299         [out, iid_is(riid)] void **ppv
00300     );
00301     HRESULT GetConditionAt(
00302         [in] UINT nIndex,
00303         [in] REFIID riid,
00304         [out, iid_is(riid)] void **ppv
00305     );
00306     HRESULT FindMatchingIndex(
00307         [in] REFPROPVARIANT propvarCmp,
00308         [out] UINT *pnIndex
00309     );
00310 }
00311 
00312 [
00313     uuid(6f79d558-3e96-4549-a1d1-7d75d2288814),
00314     object,
00315     pointer_default(unique)
00316 ]
00317 interface IPropertyDescription : IUnknown
00318 {
00319     typedef [v1_enum] enum PROPDESC_TYPE_FLAGS
00320     {
00321         PDTF_DEFAULT = 0,
00322         PDTF_MULTIPLEVALUES = 0x001,
00323         PDTF_ISINNATE = 0x002,
00324         PDTF_ISGROUP = 0x004,
00325         PDTF_CANGROUPBY = 0x008,
00326         PDTF_CANSTACKBY = 0x010,
00327         PDTF_ISTREEPROPERTY = 0x020,
00328         PDTF_INCLUDEINFULLTEXTQUERY = 0x040,
00329         PDTF_ISVIEWABLE = 0x080,
00330         PDTF_ISQUERYABLE = 0x100,
00331         PDTF_CANBEPURGED = 0x200,
00332         PDTF_SEARCHRAWVALUE = 0x400,
00333         PDTF_ISSYSTEMPROPERTY = 0x80000000,
00334         PDTF_MASK_ALL = 0x800007ff
00335     } PROPDESC_TYPE_FLAGS;
00336     cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_TYPE_FLAGS)")
00337 
00338     typedef [v1_enum] enum PROPDESC_VIEW_FLAGS
00339     {
00340         PDVF_DEFAULT = 0x0000,
00341         PDVF_CENTERALIGN = 0x0001,
00342         PDVF_RIGHTALIGN = 0x0002,
00343         PDVF_BEGINNEWGROUP = 0x0004,
00344         PDVF_FILLAREA = 0x0008,
00345         PDVF_SORTDESCENDING = 0x0010,
00346         PDVF_SHOWONLYIFPRESENT = 0x0020,
00347         PDVF_SHOWBYDEFAULT = 0x0040,
00348         PDVF_SHOWINPRIMARYLIST = 0x0080,
00349         PDVF_SHOWINSECONDARYLIST = 0x0100,
00350         PDVF_HIDELABEL = 0x0200,
00351         PDVF_HIDDEN = 0x0800,
00352         PDVF_CANWRAP = 0x1000,
00353         PDVF_MASK_ALL = 0x1bff
00354     } PROPDESC_VIEW_FLAGS;
00355     cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_VIEW_FLAGS)")
00356 
00357     typedef [v1_enum] enum PROPDESC_DISPLAYTYPE
00358     {
00359         PDDT_STRING = 0,
00360         PDDT_NUMBER,
00361         PDDT_BOOLEAN,
00362         PDDT_DATETIME,
00363         PDDT_ENUMERATED
00364     } PROPDESC_DISPLAYTYPE;
00365 
00366     typedef [v1_enum] enum PROPDESC_GROUPING_RANGE
00367     {
00368         PDGR_DISCRETE = 0,
00369         PDGR_ALPHANUMERIC,
00370         PDGR_SIZE,
00371         PDGR_DYNAMIC,
00372         PDGR_DATE,
00373         PDGR_PERCENT,
00374         PDGR_ENUMERATED
00375     } PROPDESC_GROUPING_RANGE;
00376 
00377     typedef [v1_enum] enum PROPDESC_FORMAT_FLAGS
00378     {
00379         PDFF_DEFAULT = 0x0000,
00380         PDFF_PREFIXNAME = 0x0001,
00381         PDFF_FILENAME = 0x0002,
00382         PDFF_ALWAYSKB = 0x0004,
00383         PDFF_RESERVED_RIGHTTOLEFT = 0x0008,
00384         PDFF_SHORTTIME = 0x0010,
00385         PDFF_LONGTIME = 0x0020,
00386         PDFF_HIDETIME = 0x0040,
00387         PDFF_SHORTDATE = 0x0080,
00388         PDFF_LONGDATE = 0x0100,
00389         PDFF_HIDEDATE = 0x0200,
00390         PDFF_RELATIVEDATE = 0x0400,
00391         PDFF_USEEDITINVITATION = 0x0800,
00392         PDFF_READONLY = 0x1000,
00393         PDFF_NOAUTOREADINGORDER = 0x2000
00394     } PROPDESC_FORMAT_FLAGS;
00395     cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_FORMAT_FLAGS)")
00396 
00397     typedef [v1_enum] enum PROPDESC_SORTDESCRIPTION
00398     {
00399         PDSD_GENERAL = 0,
00400         PDSD_A_Z,
00401         PDSD_LOWEST_HIGHEST,
00402         PDSD_SMALLEST_BIGGEST,
00403         PDSD_OLDEST_NEWEST
00404     } PROPDESC_SORTDESCRIPTION;
00405 
00406     typedef [v1_enum] enum PROPDESC_RELATIVEDESCRIPTION_TYPE
00407     {
00408         PDRDT_GENERAL = 0,
00409         PDRDT_DATE,
00410         PDRDT_SIZE,
00411         PDRDT_COUNT,
00412         PDRDT_REVISION,
00413         PDRDT_LENGTH,
00414         PDRDT_DURATION,
00415         PDRDT_SPEED,
00416         PDRDT_RATE,
00417         PDRDT_RATING,
00418         PDRDT_PRIORITY
00419     } PROPDESC_RELATIVEDESCRIPTION_TYPE;
00420 
00421     typedef [v1_enum] enum PROPDESC_AGGREGATION_TYPE
00422     {
00423         PDAT_DEFAULT = 0,
00424         PDAT_FIRST,
00425         PDAT_SUM,
00426         PDAT_AVERAGE,
00427         PDAT_DATERANGE,
00428         PDAT_UNION,
00429         PDAT_MAX,
00430         PDAT_MIN
00431     } PROPDESC_AGGREGATION_TYPE;
00432 
00433     typedef [v1_enum] enum PROPDESC_CONDITION_TYPE
00434     {
00435         PDCOT_NONE = 0,
00436         PDCOT_STRING,
00437         PDCOT_SIZE,
00438         PDCOT_DATETIME,
00439         PDCOT_BOOLEAN,
00440         PDCOT_NUMBER
00441     } PROPDESC_CONDITION_TYPE;
00442 
00443     HRESULT GetPropertyKey(
00444         [out] PROPERTYKEY *pkey
00445     );
00446     HRESULT GetCanonicalName(
00447         [out, string] LPWSTR *ppszName
00448     );
00449     HRESULT GetPropertyType(
00450         [out] VARTYPE *pvartype
00451     );
00452     HRESULT GetDisplayName(
00453         [out, string] LPWSTR *ppszName
00454     );
00455     HRESULT GetEditInvitation(
00456         [out, string] LPWSTR *ppszName
00457     );
00458     HRESULT GetTypeFlags(
00459         [in] PROPDESC_TYPE_FLAGS mask,
00460         [out] PROPDESC_TYPE_FLAGS *ppdtFlags
00461     );
00462     HRESULT GetViewFlags(
00463         [out] PROPDESC_VIEW_FLAGS *ppdvFlags
00464     );
00465     HRESULT GetDefaultColumnWidth(
00466         [out] UINT *pcxChars
00467     );
00468     HRESULT GetDisplayType(
00469         [out] PROPDESC_DISPLAYTYPE *pdisplaytype
00470     );
00471     HRESULT GetColumnState(
00472         [out] SHCOLSTATEF *pcsFlags
00473     );
00474     HRESULT GetGroupingRange(
00475         [out] PROPDESC_GROUPING_RANGE *psd
00476     );
00477     HRESULT GetRelativeDescriptionType(
00478         [out] PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt
00479     );
00480     HRESULT GetRelativeDescription(
00481         [in] REFPROPVARIANT propvar1,
00482         [in] REFPROPVARIANT propvar2,
00483         [out,string] LPWSTR *ppszDesc1,
00484         [out,string] LPWSTR *ppszDesc2
00485     );
00486     HRESULT GetSortDescription(
00487         [out] PROPDESC_SORTDESCRIPTION *psd
00488     );
00489     HRESULT GetSortDescriptionLabel(
00490         [in] BOOL fDescending,
00491         [out,string] LPWSTR *ppszDescription
00492     );
00493     HRESULT GetAggregationType(
00494         [out] PROPDESC_AGGREGATION_TYPE *paggtype
00495     );
00496     HRESULT GetConditionType(
00497         [out] PROPDESC_CONDITION_TYPE *pcontype,
00498         [out] CONDITION_OPERATION *popDefault
00499     );
00500     HRESULT GetEnumTypeList(
00501         [in] REFIID riid,
00502         [out,iid_is(riid)] void **ppv
00503     );
00504     [local] HRESULT CoerceToCanonicalValue(
00505         [in,out] PROPVARIANT *propvar
00506     );
00507     [call_as(CoerceToCanonicalValue)] HRESULT RemoteCoerceToCanonicalValue(
00508         [in] REFPROPVARIANT propvar,
00509         [out] PROPVARIANT *ppropvar
00510     );
00511     HRESULT FormatForDisplay(
00512         [in] REFPROPVARIANT propvar,
00513         [in] PROPDESC_FORMAT_FLAGS flags,
00514         [out,string] LPWSTR *ppszDisplay
00515     );
00516     HRESULT IsValueCanonical(
00517         [in] REFPROPVARIANT propvar
00518     );
00519 }
00520 
00521 [
00522     uuid(57d2eded-5062-400e-b107-5dae79fe57a6),
00523     object,
00524     pointer_default(unique)
00525 ]
00526 interface IPropertyDescription2 : IPropertyDescription
00527 {
00528     HRESULT GetImageReferenceForValue(
00529         [in] REFPROPVARIANT propvar,
00530         [out,string] LPWSTR *ppszImageRes
00531     );
00532 }
00533 
00534 [
00535     uuid(f67104fc-2af9-46fd-b32d-243c1404f3d1),
00536     object,
00537     pointer_default(unique)
00538 ]
00539 interface IPropertyDescriptionAliasInfo : IPropertyDescription
00540 {
00541     HRESULT GetSortByAlias(
00542         [in] REFIID riid,
00543         [out,iid_is(riid)] void **ppv
00544     );
00545     HRESULT GetAdditionalSortByAliases(
00546         [in] REFIID riid,
00547         [out,iid_is(riid)] void **ppv
00548     );
00549 }
00550 
00551 [
00552     uuid(078f91bd-29a2-440f-924e-46a291524520),
00553     object,
00554     pointer_default(unique)
00555 ]
00556 interface IPropertyDescriptionSearchInfo : IPropertyDescription
00557 {
00558     typedef [v1_enum] enum PROPDESC_SEARCHINFO_FLAGS
00559     {
00560         PDSIF_DEFAULT = 0x0,
00561         PDSIF_ININVERTEDINDEX = 0x1,
00562         PDSIF_ISCOLUMN = 0x2,
00563         PDSIF_ISCOLUMNSPARSE = 0x4,
00564         PDSIF_ALWAYSINCLUDE = 0x8,
00565     } PROPDESC_SEARCHINFO_FLAGS;
00566     cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_SEARCHINFO_FLAGS)")
00567 
00568     typedef [v1_enum] enum PROPDESC_COLUMNINDEX_TYPE
00569     {
00570         PDCIT_NONE = 0,
00571         PDCIT_ONDISK,
00572         PDCIT_INMEMORY,
00573         PDCIT_ONDEMAND,
00574         PDCIT_ONDISKALL,
00575         PDCIT_ONDISKVECTOR
00576     } PROPDESC_COLUMNINDEX_TYPE;
00577 
00578     HRESULT GetSearchInfoFlags(
00579         [out] PROPDESC_SEARCHINFO_FLAGS *ppdsiFlags
00580     );
00581     HRESULT GetColumnIndexType(
00582         [out] PROPDESC_COLUMNINDEX_TYPE *ppdciType
00583     );
00584     HRESULT GetProjectionString(
00585         [out] LPWSTR *ppszProjection
00586     );
00587     HRESULT GetMaxSize(
00588         [out] UINT *pcbMaxSize
00589     );
00590 }
00591 
00592 [
00593     uuid(507393f4-2a3d-4a60-b59e-d9c75716c2dd),
00594     object,
00595     pointer_default(unique)
00596 ]
00597 interface IPropertyDescriptionRelatedPropertyInfo : IPropertyDescription
00598 {
00599     HRESULT GetRelatedProperty(
00600         [in] LPCWSTR ppszRelationshipName,
00601         [in] REFIID riid,
00602         [out,iid_is(riid)] void **ppv
00603     );
00604 }
00605 
00606 typedef [v1_enum] enum PROPDESC_ENUMFILTER
00607 {
00608     PDEF_ALL = 0,
00609     PDEF_SYSTEM,
00610     PDEF_NONSYSTEM,
00611     PDEF_VIEWABLE,
00612     PDEF_QUERYABLE,
00613     PDEF_INFULLTEXTQUERY,
00614     PDEF_COLUMN
00615 } PROPDESC_ENUMFILTER;
00616 
00617 [
00618     uuid(ca724e8a-c3e6-442b-88a4-6fb0db8035a3),
00619     object,
00620     pointer_default(unique)
00621 ]
00622 interface IPropertySystem : IUnknown
00623 {
00624     HRESULT GetPropertyDescription(
00625         [in] REFPROPERTYKEY propkey,
00626         [in] REFIID riid,
00627         [out,iid_is(riid)] void **ppv
00628     );
00629     HRESULT GetPropertyDescriptionByName(
00630         [in,string] LPCWSTR pszCanonicalName,
00631         [in] REFIID riid,
00632         [out,iid_is(riid)] void **ppv
00633     );
00634     HRESULT GetPropertyDescriptionListFromString(
00635         [in,string] LPCWSTR pszPropList,
00636         [in] REFIID riid,
00637         [out,iid_is(riid)] void **ppv
00638     );
00639     HRESULT EnumeratePropertyDescriptions(
00640         [in] PROPDESC_ENUMFILTER filterOn,
00641         [in] REFIID riid,
00642         [out,iid_is(riid)] void **ppv
00643     );
00644     HRESULT FormatForDisplay(
00645         [in] REFPROPERTYKEY key,
00646         [in] REFPROPVARIANT propvar,
00647         [in] PROPDESC_FORMAT_FLAGS pdff,
00648         [out,string,size_is(cchText)] LPWSTR pszText,
00649         [in] DWORD cchText
00650     );
00651     HRESULT FormatForDisplayAlloc(
00652         [in] REFPROPERTYKEY key,
00653         [in] REFPROPVARIANT propvar,
00654         [in] PROPDESC_FORMAT_FLAGS pdff,
00655         [out,string] LPWSTR *pszText
00656     );
00657     HRESULT RegisterPropertySchema(
00658         [in,string] LPCWSTR pszPath
00659     );
00660     HRESULT UnregisterPropertySchema(
00661         [in,string] LPCWSTR pszPath
00662     );
00663     HRESULT RefreshPropertySchema(void);
00664 }
00665 
00666 [
00667     uuid(1f9fc1d0-c39b-4b26-817f-011967d3440e),
00668     object,
00669     pointer_default(unique)
00670 ]
00671 interface IPropertyDescriptionList : IUnknown
00672 {
00673     HRESULT GetCount(
00674         [out] UINT *pcelem
00675     );
00676     HRESULT GetAt(
00677         [in] UINT iElem,
00678         [in] REFIID riid,
00679         [out,iid_is(riid)] void **ppv
00680     );
00681 }
00682 
00683 [
00684     uuid(bc110b6d-57e8-4148-a9c6-91015ab2f3a5),
00685     object,
00686     pointer_default(unique)
00687 ]
00688 interface IPropertyStoreFactory : IUnknown
00689 {
00690     HRESULT GetPropertyStore(
00691         [in] GETPROPERTYSTOREFLAGS flags,
00692         [in,unique] IUnknown *pUnkFactory,
00693         [in] REFIID riid,
00694         [out,iid_is(riid)] void **ppv
00695     );
00696     HRESULT GetPropertyStoreForKeys(
00697         [in,unique] const PROPERTYKEY *rgKeys,
00698         [in] UINT cKeys,
00699         [in] GETPROPERTYSTOREFLAGS flags,
00700         [in] REFIID riid,
00701         [out,iid_is(riid)] void **ppv
00702     );
00703 }
00704 
00705 [
00706     uuid(40d4577f-e237-4bdb-bd69-58f089431b6a),
00707     object,
00708     pointer_default(unique)
00709 ]
00710 interface IDelayedPropertyStoreFactory : IPropertyStoreFactory
00711 {
00712     HRESULT GetDelayedPropertyStore(
00713         [in] GETPROPERTYSTOREFLAGS flags,
00714         [in] DWORD dwStoreId,
00715         [in] REFIID riid,
00716         [out,iid_is(riid)] void **ppv
00717     );
00718 }
00719 
00720 [v1_enum] enum _PERSIST_SPROPSTORE_FLAGS
00721 {
00722     FPSPS_DEFAULT = 0,
00723     FPSPS_READONLY = 1
00724 };
00725 typedef int PERSIST_SPROPSTORE_FLAGS;
00726 
00727 typedef struct tagSERIALIZEDROPSTORAGE SERIALIZEDPROPSTORAGE;
00728 
00729 cpp_quote("#if 0") /* Wine doesn't have __unaligned builtin, hack */
00730 typedef SERIALIZEDPROPSTORAGE *PUSERIALIZEDPROPSTORAGE;
00731 typedef const SERIALIZEDPROPSTORAGE *PCUSERIALIZEDPROPSTORAGE;
00732 cpp_quote("#endif")
00733 cpp_quote("typedef SERIALIZEDPROPSTORAGE UNALIGNED *PUSERIALIZEDPROPSTORAGE;")
00734 cpp_quote("typedef const SERIALIZEDPROPSTORAGE UNALIGNED *PCUSERIALIZEDPROPSTORAGE;")
00735 
00736 [
00737     uuid(e318ad57-0aa0-450f-aca5-6fab7103d917),
00738     pointer_default(unique),
00739     local
00740 ]
00741 interface IPersistSerializedPropStorage : IUnknown
00742 {
00743     HRESULT SetFlags(
00744         [in] PERSIST_SPROPSTORE_FLAGS flags
00745     );
00746     HRESULT SetPropertyStorage(
00747         [in] PCUSERIALIZEDPROPSTORAGE psps,
00748         [in] DWORD cb
00749     );
00750     HRESULT GetPropertyStorage(
00751         [out] SERIALIZEDPROPSTORAGE **psps,
00752         [out] DWORD *pcb
00753     );
00754 }
00755 
00756 [
00757     uuid(77effa68-4f98-4366-ba72-573b3d880571),
00758     pointer_default(unique),
00759     local
00760 ]
00761 interface IPersistSerializedPropStorage2 : IPersistSerializedPropStorage
00762 {
00763     HRESULT GetpropertyStorageSize(
00764         [out] DWORD *pcb
00765     );
00766     HRESULT GetPropertyStorageBuffer(
00767         [out] SERIALIZEDPROPSTORAGE *psps,
00768         [in] DWORD cb,
00769         [out] DWORD *pcbWritten
00770     );
00771 }
00772 
00773 [
00774     uuid(fa955fd9-38be-4879-a6ce-824cf52d609f),
00775     object,
00776     pointer_default(unique)
00777 ]
00778 interface IPropertySystemChangeNotify : IUnknown
00779 {
00780     HRESULT SchemaRefreshed(void);
00781 }
00782 
00783 /* Interface for CoCreateInstance? */
00784 [
00785     uuid(75121952-e0d0-43e5-9380-1d80483acf72),
00786     pointer_default(unique)
00787 ]
00788 interface ICreateObject : IUnknown
00789 {
00790     HRESULT CreateObject(
00791         [in] REFCLSID clsid,
00792         [in,unique] IUnknown *pUnkOuter,
00793         [in] REFIID riid,
00794         [out,iid_is(riid)] void **ppv
00795     );
00796 }
00797 
00798 cpp_quote("#define PKEY_PIDSTR_MAX 10")
00799 cpp_quote("#define GUIDSTRING_MAX 39")
00800 cpp_quote("#define PKEYSTR_MAX (GUIDSTRING_MAX + 1 + PKEY_PIDSTR_MAX)")
00801 
00802 cpp_quote("HRESULT WINAPI PSStringFromPropertyKey(REFPROPERTYKEY,LPWSTR,UINT);")
00803 cpp_quote("HRESULT WINAPI PSPropertyKeyFromString(LPCWSTR,PROPERTYKEY*);")
00804 cpp_quote("HRESULT WINAPI PSGetPropertyDescription(REFPROPERTYKEY,REFIID,void **);")
00805 cpp_quote("HRESULT WINAPI PSRefreshPropertySchema(void);")
00806 
00807 /* TODO: Add remainder of the C api here */
00808 
00809 [
00810     uuid(2cda3294-6c4f-4020-b161-27c530c81fa6),
00811     lcid(0x0000),
00812     version(1.0)
00813 ]
00814 library PropSysObjects
00815 {
00816     [uuid(9a02e012-6303-4e1e-b9a1-630f802592c5)] coclass InMemoryPropertyStore
00817     {
00818         interface IPropertyStore;
00819     }
00820     [uuid(b8967f86-58ae-4f96-9fb2-5d7904798f4b)] coclass PropertySystem
00821     {
00822         interface IPropertySystem;
00823     }
00824 }

Generated on Sat May 26 2012 04:30:59 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.