/*
* system property interfaces
*
* Copyright 2009 Maarten Lankhorst
*
* 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
*
*/
/*
* Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
* other than GPL or LGPL is available it will apply instead, Oracle elects to use only
* the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
* a choice of LGPL license versions is made available with the language indicating
* that LGPLv2 or any later version may be used, or where a choice of which version
* of the LGPL is applied is otherwise unspecified.
*/
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")
cpp_quote("#endif")
cpp_quote("#include <propkeydef.h>")
[
]
interface IInitializeWithFile : IUnknown
{
);
}
[
]
interface IInitializeWithStream : IUnknown
{
);
}
[
]
interface IPropertyStore : IUnknown
{
);
);
);
);
}
[
]
interface INamedPropertyStore : IUnknown
{
);
);
);
);
}
{
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
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(GETPROPERTYSTOREFLAGS)")
[
]
interface IObjectWithPropertyKey : IUnknown
{
);
);
}
{
} PKA_FLAGS;
[
]
interface IPropertyChange : IObjectWithPropertyKey
{
}
[
]
interface IPropertyChangeArray : IUnknown
{
);
);
);
);
);
);
);
}
[
]
interface IPropertyStoreCapabilities : IUnknown
{
);
}
[
]
interface IPropertyStoreCache : IPropertyStore
{
{
PSC_NORMAL = 0,
} PSC_STATE;
);
);
);
);
}
[
]
interface IPropertyEnumType : IUnknown
{
{
PET_DISCRETEVALUE = 0,
} PROPENUMTYPE;
);
);
);
);
);
}
[
]
interface IPropertyEnumType2 : IPropertyEnumType
{
);
}
[
]
interface IPropertyEnumTypeList : IUnknown
{
);
);
);
);
}
[
]
interface IPropertyDescription : IUnknown
{
{
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
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_TYPE_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
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_VIEW_FLAGS)")
{
PDDT_STRING = 0,
{
PDGR_DISCRETE = 0,
{
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
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_FORMAT_FLAGS)")
{
PDSD_GENERAL = 0,
{
PDRDT_GENERAL = 0,
{
PDAT_DEFAULT = 0,
{
PDCOT_NONE = 0,
);
);
);
);
);
);
);
);
);
);
);
);
);
);
);
);
);
);
);
);
);
);
}
[
]
interface IPropertyDescription2 : IPropertyDescription
{
);
}
[
]
interface IPropertyDescriptionAliasInfo : IPropertyDescription
{
);
);
}
[
]
interface IPropertyDescriptionSearchInfo : IPropertyDescription
{
{
PDSIF_DEFAULT = 0x0,
PDSIF_ININVERTEDINDEX = 0x1,
PDSIF_ISCOLUMN = 0x2,
PDSIF_ISCOLUMNSPARSE = 0x4,
PDSIF_ALWAYSINCLUDE = 0x8,
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_SEARCHINFO_FLAGS)")
{
PDCIT_NONE = 0,
);
);
);
);
}
[
]
{
);
}
{
PDEF_ALL = 0,
[
]
interface IPropertySystem : IUnknown
{
);
);
);
);
);
);
);
);
HRESULT RefreshPropertySchema(void);
}
[
]
interface IPropertyDescriptionList : IUnknown
{
);
);
}
[
]
interface IPropertyStoreFactory : IUnknown
{
);
);
}
[
]
interface IDelayedPropertyStoreFactory : IPropertyStoreFactory
{
);
}
[v1_enum] enum _PERSIST_SPROPSTORE_FLAGS
{
FPSPS_DEFAULT = 0,
FPSPS_READONLY = 1
};
cpp_quote("#endif")
cpp_quote("typedef SERIALIZEDPROPSTORAGE UNALIGNED *PUSERIALIZEDPROPSTORAGE;")
cpp_quote("typedef const SERIALIZEDPROPSTORAGE UNALIGNED *PCUSERIALIZEDPROPSTORAGE;")
[
]
interface IPersistSerializedPropStorage : IUnknown
{
);
);
);
}
[
]
{
);
);
}
[
]
interface IPropertySystemChangeNotify : IUnknown
{
HRESULT SchemaRefreshed(void);
}
/* Interface for CoCreateInstance? */
[
]
interface ICreateObject : IUnknown
{
);
}
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 */
[
lcid(0x0000),
version(1.0)
]
{
{
interface IPropertyStore;
}
{
interface IPropertySystem;
}
}