| /* | |
| * system property interfaces | |
| * | |
| * Copyright 2009 Maarten Lankhorst | |
| * | |
| * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | |
| * | |
| * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | |
| * | |
| * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | |
| * | |
| */ | |
| import "objidl.idl"; | |
| import "oleidl.idl"; | |
| import "ocidl.idl"; | |
| import "shtypes.idl"; | |
| import "structuredquerycondition.idl"; | |
| cpp_quote("#ifndef PSSTDAPI") | |
| cpp_quote("#define PSSTDAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE") | |
| cpp_quote("#endif") | |
| cpp_quote("#if 0") | |
| typedef PROPERTYKEY *REFPROPERTYKEY; | |
| cpp_quote("#endif") | |
| cpp_quote("#include <propkeydef.h>") | |
| [ | |
| uuid(b7d14566-0509-4cce-a71f-0a554233bd9b), | |
| object, | |
| pointer_default(unique) | |
| ] | |
| interface IInitializeWithFile : IUnknown | |
| { | |
| HRESULT Initialize( | |
| [in,string] LPCWSTR pszFilePath, | |
| [in] DWORD grfMode | |
| ); | |
| } | |
| [ | |
| uuid(b824b49d-22ac-4161-ac8a-9916e8fa3f7f), | |
| object, | |
| pointer_default(unique) | |
| ] | |
| interface IInitializeWithStream : IUnknown | |
| { | |
| [local] HRESULT Initialize( | |
| [in] IStream *pstream, | |
| [in] DWORD grfMode | |
| ); | |
| } | |
| [ | |
| uuid(886d8eeb-8cf2-4446-8d02-cdba1dbdcf99), | |
| object, | |
| pointer_default(unique) | |
| ] | |
| interface IPropertyStore : IUnknown | |
| { | |
| HRESULT GetCount( | |
| [out] DWORD *cProps | |
| ); | |
| HRESULT GetAt( | |
| [in] DWORD iProp, | |
| [out] PROPERTYKEY *pkey | |
| ); | |
| HRESULT GetValue( | |
| [in] REFPROPERTYKEY key, | |
| [out] PROPVARIANT *pv | |
| ); | |
| HRESULT SetValue( | |
| [in] REFPROPERTYKEY key, | |
| [in] REFPROPVARIANT propvar | |
| ); | |
| HRESULT Commit(void); | |
| } | |
| typedef IPropertyStore *LPPROPERTYSTORE; | |
| [ | |
| uuid(71604b0f-97b0-4764-8577-2f13e98a1422), | |
| object, | |
| pointer_default(unique) | |
| ] | |
| interface INamedPropertyStore : IUnknown | |
| { | |
| HRESULT GetNamedValue( | |
| [in,string] LPCWSTR pszName, | |
| [out] PROPVARIANT *ppropvar | |
| ); | |
| HRESULT SetNamedValue( | |
| [in,string] LPCWSTR pszName, | |
| [in] REFPROPVARIANT propvar | |
| ); | |
| HRESULT GetNameCount( | |
| [out] DWORD *pdwCount | |
| ); | |
| HRESULT GetNameAt( | |
| [in] DWORD iProp, | |
| [out] BSTR *pbstrName | |
| ); | |
| } | |
| typedef [v1_enum] enum GETPROPERTYSTOREFLAGS | |
| { | |
| GPS_DEFAULT = 0x00, | |
| GPS_HANDLERPROPERTIESONLY = 0x01, | |
| GPS_READWRITE = 0x02, | |
| GPS_TEMPORARY = 0x04, | |
| GPS_FASTPROPERTIESONLY = 0x08, | |
| GPS_OPENSLOWITEM = 0x10, | |
| GPS_DELAYCREATION = 0x20, | |
| GPS_BESTEFFORT = 0x40, | |
| GPS_NO_OPLOCK = 0x80, | |
| GPS_MASK_VALID = 0xff | |
| } GETPROPERTYSTOREFLAGS; | |
| cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(GETPROPERTYSTOREFLAGS)") | |
| [ | |
| uuid(fc0ca0a7-c316-4fd2-9031-3e628e6d4f23), | |
| object | |
| ] | |
| interface IObjectWithPropertyKey : IUnknown | |
| { | |
| HRESULT SetPropertyKey( | |
| [in] REFPROPERTYKEY key | |
| ); | |
| HRESULT GetPropertyKey( | |
| [out] PROPERTYKEY *key | |
| ); | |
| } | |
| typedef [v1_enum] enum PKA_FLAGS | |
| { | |
| PKA_SET, | |
| PKA_APPEND, | |
| PKA_DELETE | |
| } PKA_FLAGS; | |
| [ | |
| uuid(f917bc8a-1bba-4478-a245-1bde03eb9431), | |
| object, | |
| pointer_default(unique) | |
| ] | |
| interface IPropertyChange : IObjectWithPropertyKey | |
| { | |
| HRESULT ApplyToPropVariant([in] REFPROPVARIANT propvarin, [out] PROPVARIANT *propvarout); | |
| } | |
| [ | |
| uuid(380f5cad-1b5e-42f2-805d-637fd392d31e), | |
| object, | |
| pointer_default(unique) | |
| ] | |
| interface IPropertyChangeArray : IUnknown | |
| { | |
| HRESULT GetCount( | |
| [out] UINT *pcOperations | |
| ); | |
| HRESULT GetAt( | |
| [in] UINT iIndex, | |
| [in] REFIID riid, | |
| [out, iid_is(riid)] void **ppv | |
| ); | |
| HRESULT InsertAt( | |
| [in] UINT iIndex, | |
| [in] IPropertyChange *ppropChange | |
| ); | |
| HRESULT Append( | |
| [in] IPropertyChange *ppropChange | |
| ); | |
| HRESULT AppendOrReplace( | |
| [in] IPropertyChange *ppropChange | |
| ); | |
| HRESULT RemoveAt( | |
| [in] UINT iIndex | |
| ); | |
| HRESULT IsKeyInArray( | |
| [in] REFPROPERTYKEY key | |
| ); | |
| } | |
| [ | |
| uuid(c8e2d566-186e-4d49-bf41-6909ead56acc), | |
| object, | |
| pointer_default(unique) | |
| ] | |
| interface IPropertyStoreCapabilities : IUnknown | |
| { | |
| HRESULT IsPropertyWritable( | |
| [in] REFPROPERTYKEY key | |
| ); | |
| } | |
| [ | |
| uuid(3017056d-9a91-4e90-937d-746c72abbf4f), | |
| object, | |
| pointer_default(unique) | |
| ] | |
| interface IPropertyStoreCache : IPropertyStore | |
| { | |
| typedef [v1_enum] enum PSC_STATE | |
| { | |
| PSC_NORMAL = 0, | |
| PSC_NOTINSOURCE, | |
| PSC_DIRTY, | |
| PSC_READONLY | |
| } PSC_STATE; | |
| HRESULT GetState( | |
| [in] REFPROPERTYKEY key, | |
| [out] PSC_STATE *pstate | |
| ); | |
| HRESULT GetValueAndState( | |
| [in] REFPROPERTYKEY key, | |
| [out] PROPVARIANT *ppropvar, | |
| [out] PSC_STATE *pstate | |
| ); | |
| HRESULT SetState( | |
| [in] REFPROPERTYKEY key, | |
| [in] PSC_STATE pstate | |
| ); | |
| HRESULT SetValueAndState( | |
| [in] REFPROPERTYKEY key, | |
| [in, unique] const PROPVARIANT *ppropvar, | |
| [in] PSC_STATE state | |
| ); | |
| } | |
| [ | |
| uuid(11e1fbf9-2d56-4a6b-8db3-7cd193a471f2), | |
| object, | |
| pointer_default(unique) | |
| ] | |
| interface IPropertyEnumType : IUnknown | |
| { | |
| typedef [v1_enum] enum PROPENUMTYPE | |
| { | |
| PET_DISCRETEVALUE = 0, | |
| PET_RANGEDVALUE, | |
| PET_DEFAULTVALUE, | |
| PET_ENDRANGE | |
| } PROPENUMTYPE; | |
| HRESULT GetEnumType( | |
| [out] PROPENUMTYPE *penumtype | |
| ); | |
| HRESULT GetValue( | |
| [out] PROPVARIANT *ppropvar | |
| ); | |
| HRESULT GetRangeMinValue( | |
| [out] PROPVARIANT *ppropvar | |
| ); | |
| HRESULT GetRangeSetValue( | |
| [out] PROPVARIANT *ppropvar | |
| ); | |
| HRESULT GetDisplayText( | |
| [out] LPWSTR *ppszDisplay | |
| ); | |
| } | |
| [ | |
| uuid(9b6e051c-5ddd-4321-9070-fe2acb55e974), | |
| object, | |
| pointer_default(unique) | |
| ] | |
| interface IPropertyEnumType2 : IPropertyEnumType | |
| { | |
| HRESULT GetImageReference( | |
| [out] LPWSTR *ppszImageRes | |
| ); | |
| } | |
| [ | |
| uuid(a99400f4-3d84-4557-94ba-1242fb2cc9a6), | |
| object, | |
| pointer_default(unique) | |
| ] | |
| interface IPropertyEnumTypeList : IUnknown | |
| { | |
| HRESULT GetCount( | |
| [out] UINT *pctypes | |
| ); | |
| HRESULT GetAt( | |
| [in] UINT itype, | |
| [in] REFIID riid, | |
| [out, iid_is(riid)] void **ppv | |
| ); | |
| HRESULT GetConditionAt( | |
| [in] UINT nIndex, | |
| [in] REFIID riid, | |
| [out, iid_is(riid)] void **ppv | |
| ); | |
| HRESULT FindMatchingIndex( | |
| [in] REFPROPVARIANT propvarCmp, | |
| [out] UINT *pnIndex | |
| ); | |
| } | |
| [ | |
| uuid(6f79d558-3e96-4549-a1d1-7d75d2288814), | |
| object, | |
| pointer_default(unique) | |
| ] | |
| interface IPropertyDescription : IUnknown | |
| { | |
| typedef [v1_enum] enum PROPDESC_TYPE_FLAGS | |
| { | |
| PDTF_DEFAULT = 0, | |
| PDTF_MULTIPLEVALUES = 0x001, | |
| PDTF_ISINNATE = 0x002, | |
| PDTF_ISGROUP = 0x004, | |
| PDTF_CANGROUPBY = 0x008, | |
| PDTF_CANSTACKBY = 0x010, | |
| PDTF_ISTREEPROPERTY = 0x020, | |
| PDTF_INCLUDEINFULLTEXTQUERY = 0x040, | |
| PDTF_ISVIEWABLE = 0x080, | |
| PDTF_ISQUERYABLE = 0x100, | |
| PDTF_CANBEPURGED = 0x200, | |
| PDTF_SEARCHRAWVALUE = 0x400, | |
| PDTF_ISSYSTEMPROPERTY = 0x80000000, | |
| PDTF_MASK_ALL = 0x800007ff | |
| } PROPDESC_TYPE_FLAGS; | |
| cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_TYPE_FLAGS)") | |
| typedef [v1_enum] enum PROPDESC_VIEW_FLAGS | |
| { | |
| PDVF_DEFAULT = 0x0000, | |
| PDVF_CENTERALIGN = 0x0001, | |
| PDVF_RIGHTALIGN = 0x0002, | |
| PDVF_BEGINNEWGROUP = 0x0004, | |
| PDVF_FILLAREA = 0x0008, | |
| PDVF_SORTDESCENDING = 0x0010, | |
| PDVF_SHOWONLYIFPRESENT = 0x0020, | |
| PDVF_SHOWBYDEFAULT = 0x0040, | |
| PDVF_SHOWINPRIMARYLIST = 0x0080, | |
| PDVF_SHOWINSECONDARYLIST = 0x0100, | |
| PDVF_HIDELABEL = 0x0200, | |
| PDVF_HIDDEN = 0x0800, | |
| PDVF_CANWRAP = 0x1000, | |
| PDVF_MASK_ALL = 0x1bff | |
| } PROPDESC_VIEW_FLAGS; | |
| cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_VIEW_FLAGS)") | |
| typedef [v1_enum] enum PROPDESC_DISPLAYTYPE | |
| { | |
| PDDT_STRING = 0, | |
| PDDT_NUMBER, | |
| PDDT_BOOLEAN, | |
| PDDT_DATETIME, | |
| PDDT_ENUMERATED | |
| } PROPDESC_DISPLAYTYPE; | |
| typedef [v1_enum] enum PROPDESC_GROUPING_RANGE | |
| { | |
| PDGR_DISCRETE = 0, | |
| PDGR_ALPHANUMERIC, | |
| PDGR_SIZE, | |
| PDGR_DYNAMIC, | |
| PDGR_DATE, | |
| PDGR_PERCENT, | |
| PDGR_ENUMERATED | |
| } PROPDESC_GROUPING_RANGE; | |
| typedef [v1_enum] enum PROPDESC_FORMAT_FLAGS | |
| { | |
| PDFF_DEFAULT = 0x0000, | |
| PDFF_PREFIXNAME = 0x0001, | |
| PDFF_FILENAME = 0x0002, | |
| PDFF_ALWAYSKB = 0x0004, | |
| PDFF_RESERVED_RIGHTTOLEFT = 0x0008, | |
| PDFF_SHORTTIME = 0x0010, | |
| PDFF_LONGTIME = 0x0020, | |
| PDFF_HIDETIME = 0x0040, | |
| PDFF_SHORTDATE = 0x0080, | |
| PDFF_LONGDATE = 0x0100, | |
| PDFF_HIDEDATE = 0x0200, | |
| PDFF_RELATIVEDATE = 0x0400, | |
| PDFF_USEEDITINVITATION = 0x0800, | |
| PDFF_READONLY = 0x1000, | |
| PDFF_NOAUTOREADINGORDER = 0x2000 | |
| } PROPDESC_FORMAT_FLAGS; | |
| cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_FORMAT_FLAGS)") | |
| typedef [v1_enum] enum PROPDESC_SORTDESCRIPTION | |
| { | |
| PDSD_GENERAL = 0, | |
| PDSD_A_Z, | |
| PDSD_LOWEST_HIGHEST, | |
| PDSD_SMALLEST_BIGGEST, | |
| PDSD_OLDEST_NEWEST | |
| } PROPDESC_SORTDESCRIPTION; | |
| typedef [v1_enum] enum PROPDESC_RELATIVEDESCRIPTION_TYPE | |
| { | |
| PDRDT_GENERAL = 0, | |
| PDRDT_DATE, | |
| PDRDT_SIZE, | |
| PDRDT_COUNT, | |
| PDRDT_REVISION, | |
| PDRDT_LENGTH, | |
| PDRDT_DURATION, | |
| PDRDT_SPEED, | |
| PDRDT_RATE, | |
| PDRDT_RATING, | |
| PDRDT_PRIORITY | |
| } PROPDESC_RELATIVEDESCRIPTION_TYPE; | |
| typedef [v1_enum] enum PROPDESC_AGGREGATION_TYPE | |
| { | |
| PDAT_DEFAULT = 0, | |
| PDAT_FIRST, | |
| PDAT_SUM, | |
| PDAT_AVERAGE, | |
| PDAT_DATERANGE, | |
| PDAT_UNION, | |
| PDAT_MAX, | |
| PDAT_MIN | |
| } PROPDESC_AGGREGATION_TYPE; | |
| typedef [v1_enum] enum PROPDESC_CONDITION_TYPE | |
| { | |
| PDCOT_NONE = 0, | |
| PDCOT_STRING, | |
| PDCOT_SIZE, | |
| PDCOT_DATETIME, | |
| PDCOT_BOOLEAN, | |
| PDCOT_NUMBER | |
| } PROPDESC_CONDITION_TYPE; | |
| HRESULT GetPropertyKey( | |
| [out] PROPERTYKEY *pkey | |
| ); | |
| HRESULT GetCanonicalName( | |
| [out, string] LPWSTR *ppszName | |
| ); | |
| HRESULT GetPropertyType( | |
| [out] VARTYPE *pvartype | |
| ); | |
| HRESULT GetDisplayName( | |
| [out, string] LPWSTR *ppszName | |
| ); | |
| HRESULT GetEditInvitation( | |
| [out, string] LPWSTR *ppszName | |
| ); | |
| HRESULT GetTypeFlags( | |
| [in] PROPDESC_TYPE_FLAGS mask, | |
| [out] PROPDESC_TYPE_FLAGS *ppdtFlags | |
| ); | |
| HRESULT GetViewFlags( | |
| [out] PROPDESC_VIEW_FLAGS *ppdvFlags | |
| ); | |
| HRESULT GetDefaultColumnWidth( | |
| [out] UINT *pcxChars | |
| ); | |
| HRESULT GetDisplayType( | |
| [out] PROPDESC_DISPLAYTYPE *pdisplaytype | |
| ); | |
| HRESULT GetColumnState( | |
| [out] SHCOLSTATEF *pcsFlags | |
| ); | |
| HRESULT GetGroupingRange( | |
| [out] PROPDESC_GROUPING_RANGE *psd | |
| ); | |
| HRESULT GetRelativeDescriptionType( | |
| [out] PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt | |
| ); | |
| HRESULT GetRelativeDescription( | |
| [in] REFPROPVARIANT propvar1, | |
| [in] REFPROPVARIANT propvar2, | |
| [out,string] LPWSTR *ppszDesc1, | |
| [out,string] LPWSTR *ppszDesc2 | |
| ); | |
| HRESULT GetSortDescription( | |
| [out] PROPDESC_SORTDESCRIPTION *psd | |
| ); | |
| HRESULT GetSortDescriptionLabel( | |
| [in] BOOL fDescending, | |
| [out,string] LPWSTR *ppszDescription | |
| ); | |
| HRESULT GetAggregationType( | |
| [out] PROPDESC_AGGREGATION_TYPE *paggtype | |
| ); | |
| HRESULT GetConditionType( | |
| [out] PROPDESC_CONDITION_TYPE *pcontype, | |
| [out] CONDITION_OPERATION *popDefault | |
| ); | |
| HRESULT GetEnumTypeList( | |
| [in] REFIID riid, | |
| [out,iid_is(riid)] void **ppv | |
| ); | |
| [local] HRESULT CoerceToCanonicalValue( | |
| [in,out] PROPVARIANT *propvar | |
| ); | |
| [call_as(CoerceToCanonicalValue)] HRESULT RemoteCoerceToCanonicalValue( | |
| [in] REFPROPVARIANT propvar, | |
| [out] PROPVARIANT *ppropvar | |
| ); | |
| HRESULT FormatForDisplay( | |
| [in] REFPROPVARIANT propvar, | |
| [in] PROPDESC_FORMAT_FLAGS flags, | |
| [out,string] LPWSTR *ppszDisplay | |
| ); | |
| HRESULT IsValueCanonical( | |
| [in] REFPROPVARIANT propvar | |
| ); | |
| } | |
| [ | |
| uuid(57d2eded-5062-400e-b107-5dae79fe57a6), | |
| object, | |
| pointer_default(unique) | |
| ] | |
| interface IPropertyDescription2 : IPropertyDescription | |
| { | |
| HRESULT GetImageReferenceForValue( | |
| [in] REFPROPVARIANT propvar, | |
| [out,string] LPWSTR *ppszImageRes | |
| ); | |
| } | |
| [ | |
| uuid(f67104fc-2af9-46fd-b32d-243c1404f3d1), | |
| object, | |
| pointer_default(unique) | |
| ] | |
| interface IPropertyDescriptionAliasInfo : IPropertyDescription | |
| { | |
| HRESULT GetSortByAlias( | |
| [in] REFIID riid, | |
| [out,iid_is(riid)] void **ppv | |
| ); | |
| HRESULT GetAdditionalSortByAliases( | |
| [in] REFIID riid, | |
| [out,iid_is(riid)] void **ppv | |
| ); | |
| } | |
| [ | |
| uuid(078f91bd-29a2-440f-924e-46a291524520), | |
| object, | |
| pointer_default(unique) | |
| ] | |
| interface IPropertyDescriptionSearchInfo : IPropertyDescription | |
| { | |
| typedef [v1_enum] enum PROPDESC_SEARCHINFO_FLAGS | |
| { | |
| PDSIF_DEFAULT = 0x0, | |
| PDSIF_ININVERTEDINDEX = 0x1, | |
| PDSIF_ISCOLUMN = 0x2, | |
| PDSIF_ISCOLUMNSPARSE = 0x4, | |
| PDSIF_ALWAYSINCLUDE = 0x8, | |
| } PROPDESC_SEARCHINFO_FLAGS; | |
| cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_SEARCHINFO_FLAGS)") | |
| typedef [v1_enum] enum PROPDESC_COLUMNINDEX_TYPE | |
| { | |
| PDCIT_NONE = 0, | |
| PDCIT_ONDISK, | |
| PDCIT_INMEMORY, | |
| PDCIT_ONDEMAND, | |
| PDCIT_ONDISKALL, | |
| PDCIT_ONDISKVECTOR | |
| } PROPDESC_COLUMNINDEX_TYPE; | |
| HRESULT GetSearchInfoFlags( | |
| [out] PROPDESC_SEARCHINFO_FLAGS *ppdsiFlags | |
| ); | |
| HRESULT GetColumnIndexType( | |
| [out] PROPDESC_COLUMNINDEX_TYPE *ppdciType | |
| ); | |
| HRESULT GetProjectionString( | |
| [out] LPWSTR *ppszProjection | |
| ); | |
| HRESULT GetMaxSize( | |
| [out] UINT *pcbMaxSize | |
| ); | |
| } | |
| [ | |
| uuid(507393f4-2a3d-4a60-b59e-d9c75716c2dd), | |
| object, | |
| pointer_default(unique) | |
| ] | |
| interface IPropertyDescriptionRelatedPropertyInfo : IPropertyDescription | |
| { | |
| HRESULT GetRelatedProperty( | |
| [in] LPCWSTR ppszRelationshipName, | |
| [in] REFIID riid, | |
| [out,iid_is(riid)] void **ppv | |
| ); | |
| } | |
| typedef [v1_enum] enum PROPDESC_ENUMFILTER | |
| { | |
| PDEF_ALL = 0, | |
| PDEF_SYSTEM, | |
| PDEF_NONSYSTEM, | |
| PDEF_VIEWABLE, | |
| PDEF_QUERYABLE, | |
| PDEF_INFULLTEXTQUERY, | |
| PDEF_COLUMN | |
| } PROPDESC_ENUMFILTER; | |
| [ | |
| uuid(ca724e8a-c3e6-442b-88a4-6fb0db8035a3), | |
| object, | |
| pointer_default(unique) | |
| ] | |
| interface IPropertySystem : IUnknown | |
| { | |
| HRESULT GetPropertyDescription( | |
| [in] REFPROPERTYKEY propkey, | |
| [in] REFIID riid, | |
| [out,iid_is(riid)] void **ppv | |
| ); | |
| HRESULT GetPropertyDescriptionByName( | |
| [in,string] LPCWSTR pszCanonicalName, | |
| [in] REFIID riid, | |
| [out,iid_is(riid)] void **ppv | |
| ); | |
| HRESULT GetPropertyDescriptionListFromString( | |
| [in,string] LPCWSTR pszPropList, | |
| [in] REFIID riid, | |
| [out,iid_is(riid)] void **ppv | |
| ); | |
| HRESULT EnumeratePropertyDescriptions( | |
| [in] PROPDESC_ENUMFILTER filterOn, | |
| [in] REFIID riid, | |
| [out,iid_is(riid)] void **ppv | |
| ); | |
| HRESULT FormatForDisplay( | |
| [in] REFPROPERTYKEY key, | |
| [in] REFPROPVARIANT propvar, | |
| [in] PROPDESC_FORMAT_FLAGS pdff, | |
| [out,string,size_is(cchText)] LPWSTR pszText, | |
| [in] DWORD cchText | |
| ); | |
| HRESULT FormatForDisplayAlloc( | |
| [in] REFPROPERTYKEY key, | |
| [in] REFPROPVARIANT propvar, | |
| [in] PROPDESC_FORMAT_FLAGS pdff, | |
| [out,string] LPWSTR *pszText | |
| ); | |
| HRESULT RegisterPropertySchema( | |
| [in,string] LPCWSTR pszPath | |
| ); | |
| HRESULT UnregisterPropertySchema( | |
| [in,string] LPCWSTR pszPath | |
| ); | |
| HRESULT RefreshPropertySchema(void); | |
| } | |
| [ | |
| uuid(1f9fc1d0-c39b-4b26-817f-011967d3440e), | |
| object, | |
| pointer_default(unique) | |
| ] | |
| interface IPropertyDescriptionList : IUnknown | |
| { | |
| HRESULT GetCount( | |
| [out] UINT *pcelem | |
| ); | |
| HRESULT GetAt( | |
| [in] UINT iElem, | |
| [in] REFIID riid, | |
| [out,iid_is(riid)] void **ppv | |
| ); | |
| } | |
| [ | |
| uuid(bc110b6d-57e8-4148-a9c6-91015ab2f3a5), | |
| object, | |
| pointer_default(unique) | |
| ] | |
| interface IPropertyStoreFactory : IUnknown | |
| { | |
| HRESULT GetPropertyStore( | |
| [in] GETPROPERTYSTOREFLAGS flags, | |
| [in,unique] IUnknown *pUnkFactory, | |
| [in] REFIID riid, | |
| [out,iid_is(riid)] void **ppv | |
| ); | |
| HRESULT GetPropertyStoreForKeys( | |
| [in,unique] const PROPERTYKEY *rgKeys, | |
| [in] UINT cKeys, | |
| [in] GETPROPERTYSTOREFLAGS flags, | |
| [in] REFIID riid, | |
| [out,iid_is(riid)] void **ppv | |
| ); | |
| } | |
| [ | |
| uuid(40d4577f-e237-4bdb-bd69-58f089431b6a), | |
| object, | |
| pointer_default(unique) | |
| ] | |
| interface IDelayedPropertyStoreFactory : IPropertyStoreFactory | |
| { | |
| HRESULT GetDelayedPropertyStore( | |
| [in] GETPROPERTYSTOREFLAGS flags, | |
| [in] DWORD dwStoreId, | |
| [in] REFIID riid, | |
| [out,iid_is(riid)] void **ppv | |
| ); | |
| } | |
| [v1_enum] enum _PERSIST_SPROPSTORE_FLAGS | |
| { | |
| FPSPS_DEFAULT = 0, | |
| FPSPS_READONLY = 1 | |
| }; | |
| typedef int PERSIST_SPROPSTORE_FLAGS; | |
| typedef struct tagSERIALIZEDROPSTORAGE SERIALIZEDPROPSTORAGE; | |
| cpp_quote("#if 0") /* Wine doesn't have __unaligned builtin, hack */ | |
| typedef SERIALIZEDPROPSTORAGE *PUSERIALIZEDPROPSTORAGE; | |
| typedef const SERIALIZEDPROPSTORAGE *PCUSERIALIZEDPROPSTORAGE; | |
| cpp_quote("#endif") | |
| cpp_quote("typedef SERIALIZEDPROPSTORAGE UNALIGNED *PUSERIALIZEDPROPSTORAGE;") | |
| cpp_quote("typedef const SERIALIZEDPROPSTORAGE UNALIGNED *PCUSERIALIZEDPROPSTORAGE;") | |
| [ | |
| uuid(e318ad57-0aa0-450f-aca5-6fab7103d917), | |
| pointer_default(unique), | |
| local | |
| ] | |
| interface IPersistSerializedPropStorage : IUnknown | |
| { | |
| HRESULT SetFlags( | |
| [in] PERSIST_SPROPSTORE_FLAGS flags | |
| ); | |
| HRESULT SetPropertyStorage( | |
| [in] PCUSERIALIZEDPROPSTORAGE psps, | |
| [in] DWORD cb | |
| ); | |
| HRESULT GetPropertyStorage( | |
| [out] SERIALIZEDPROPSTORAGE **psps, | |
| [out] DWORD *pcb | |
| ); | |
| } | |
| [ | |
| uuid(77effa68-4f98-4366-ba72-573b3d880571), | |
| pointer_default(unique), | |
| local | |
| ] | |
| interface IPersistSerializedPropStorage2 : IPersistSerializedPropStorage | |
| { | |
| HRESULT GetpropertyStorageSize( | |
| [out] DWORD *pcb | |
| ); | |
| HRESULT GetPropertyStorageBuffer( | |
| [out] SERIALIZEDPROPSTORAGE *psps, | |
| [in] DWORD cb, | |
| [out] DWORD *pcbWritten | |
| ); | |
| } | |
| [ | |
| uuid(fa955fd9-38be-4879-a6ce-824cf52d609f), | |
| object, | |
| pointer_default(unique) | |
| ] | |
| interface IPropertySystemChangeNotify : IUnknown | |
| { | |
| HRESULT SchemaRefreshed(void); | |
| } | |
| /* Interface for CoCreateInstance? */ | |
| [ | |
| uuid(75121952-e0d0-43e5-9380-1d80483acf72), | |
| pointer_default(unique) | |
| ] | |
| interface ICreateObject : IUnknown | |
| { | |
| HRESULT CreateObject( | |
| [in] REFCLSID clsid, | |
| [in,unique] IUnknown *pUnkOuter, | |
| [in] REFIID riid, | |
| [out,iid_is(riid)] void **ppv | |
| ); | |
| } | |
| cpp_quote("#define PKEY_PIDSTR_MAX 10") | |
| cpp_quote("#define GUIDSTRING_MAX 39") | |
| cpp_quote("#define PKEYSTR_MAX (GUIDSTRING_MAX + 1 + PKEY_PIDSTR_MAX)") | |
| cpp_quote("HRESULT WINAPI PSStringFromPropertyKey(REFPROPERTYKEY,LPWSTR,UINT);") | |
| cpp_quote("HRESULT WINAPI PSPropertyKeyFromString(LPCWSTR,PROPERTYKEY*);") | |
| cpp_quote("HRESULT WINAPI PSGetPropertyDescription(REFPROPERTYKEY,REFIID,void **);") | |
| cpp_quote("HRESULT WINAPI PSRefreshPropertySchema(void);") | |
| /* TODO: Add remainder of the C api here */ | |
| [ | |
| uuid(2cda3294-6c4f-4020-b161-27c530c81fa6), | |
| lcid(0x0000), | |
| version(1.0) | |
| ] | |
| library PropSysObjects | |
| { | |
| [uuid(9a02e012-6303-4e1e-b9a1-630f802592c5)] coclass InMemoryPropertyStore | |
| { | |
| interface IPropertyStore; | |
| } | |
| [uuid(b8967f86-58ae-4f96-9fb2-5d7904798f4b)] coclass PropertySystem | |
| { | |
| interface IPropertySystem; | |
| } | |
| } |