| /* |
| * 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; |
| } |
| } |