propsys.idl 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541
  1. cpp_quote("/**")
  2. cpp_quote(" * This file is part of the mingw-w64 runtime package.")
  3. cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.")
  4. cpp_quote(" */")
  5. cpp_quote("")
  6. cpp_quote("#include <winapifamily.h>")
  7. cpp_quote("")
  8. import "objidl.idl";
  9. import "oleidl.idl";
  10. import "ocidl.idl";
  11. import "shtypes.idl";
  12. import "structuredquerycondition.idl";
  13. cpp_quote("")
  14. cpp_quote("#ifndef PSSTDAPI")
  15. cpp_quote("#ifdef _PROPSYS_")
  16. cpp_quote("#define PSSTDAPI STDAPI")
  17. cpp_quote("#define PSSTDAPI_(type) STDAPI_(type)")
  18. cpp_quote("#else")
  19. cpp_quote("#define PSSTDAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE")
  20. cpp_quote("#define PSSTDAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE")
  21. cpp_quote("#endif")
  22. cpp_quote("#endif")
  23. cpp_quote("")
  24. cpp_quote("#if 0")
  25. typedef PROPERTYKEY *REFPROPERTYKEY;
  26. cpp_quote("#endif")
  27. cpp_quote("")
  28. cpp_quote("#include <propkeydef.h>")
  29. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
  30. [uuid (b7d14566-0509-4cce-a71f-0a554233bd9b), object, pointer_default (unique)]
  31. interface IInitializeWithFile : IUnknown {
  32. HRESULT Initialize ([in, string] LPCWSTR pszFilePath,[in] DWORD grfMode);
  33. }
  34. cpp_quote("")
  35. [uuid (b824b49d-22ac-4161-ac8a-9916e8fa3f7f), object, pointer_default (unique)]
  36. interface IInitializeWithStream : IUnknown {
  37. [local] HRESULT Initialize ([in] IStream *pstream,[in] DWORD grfMode);
  38. [call_as (Initialize)] HRESULT RemoteInitialize ([in] IStream *pstream,[in] DWORD grfMode);
  39. }
  40. cpp_quote("#endif")
  41. cpp_quote("")
  42. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
  43. [uuid (886d8eeb-8cf2-4446-8d02-cdba1dbdcf99), helpstring ("Simple Property Store Interface"), object, pointer_default (unique)]
  44. interface IPropertyStore : IUnknown {
  45. HRESULT GetCount ([out] DWORD *cProps);
  46. HRESULT GetAt ([in] DWORD iProp,[out] PROPERTYKEY *pkey);
  47. HRESULT GetValue ([in] REFPROPERTYKEY key,[out] PROPVARIANT *pv);
  48. HRESULT SetValue ([in] REFPROPERTYKEY key,[in] REFPROPVARIANT propvar);
  49. HRESULT Commit ();
  50. }
  51. cpp_quote("")
  52. typedef [unique] IPropertyStore *LPPROPERTYSTORE;
  53. cpp_quote("#endif")
  54. cpp_quote("")
  55. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
  56. [uuid (71604b0f-97b0-4764-8577-2f13e98a1422), object, pointer_default (unique)]
  57. interface INamedPropertyStore : IUnknown {
  58. HRESULT GetNamedValue ([in, string] LPCWSTR pszName,[out] PROPVARIANT *ppropvar);
  59. HRESULT SetNamedValue ([in, string] LPCWSTR pszName,[in] REFPROPVARIANT propvar);
  60. HRESULT GetNameCount ([out] DWORD *pdwCount);
  61. HRESULT GetNameAt ([in] DWORD iProp,[out] BSTR *pbstrName);
  62. };
  63. cpp_quote("")
  64. typedef [v1_enum] enum GETPROPERTYSTOREFLAGS {
  65. GPS_DEFAULT = 0x00000000,
  66. GPS_HANDLERPROPERTIESONLY = 0x00000001,
  67. GPS_READWRITE = 0x00000002,
  68. GPS_TEMPORARY = 0x00000004,
  69. GPS_FASTPROPERTIESONLY = 0x00000008,
  70. GPS_OPENSLOWITEM = 0x00000010,
  71. GPS_DELAYCREATION = 0x00000020,
  72. GPS_BESTEFFORT = 0x00000040,
  73. GPS_NO_OPLOCK = 0x00000080,
  74. GPS_PREFERQUERYPROPERTIES = 0x00000100,
  75. GPS_MASK_VALID = 0x000001ff
  76. } GETPROPERTYSTOREFLAGS;
  77. cpp_quote("")
  78. cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(GETPROPERTYSTOREFLAGS)")
  79. cpp_quote("")
  80. [object, uuid (fc0ca0a7-c316-4fd2-9031-3e628e6d4f23)]
  81. interface IObjectWithPropertyKey : IUnknown {
  82. HRESULT SetPropertyKey ([in] REFPROPERTYKEY key);
  83. HRESULT GetPropertyKey ([out] PROPERTYKEY *pkey);
  84. }
  85. cpp_quote("")
  86. typedef [v1_enum] enum PKA_FLAGS {
  87. PKA_SET,
  88. PKA_APPEND,
  89. PKA_DELETE
  90. } PKA_FLAGS;
  91. cpp_quote("")
  92. [uuid (f917bc8a-1bba-4478-a245-1bde03eb9431), object, pointer_default (unique)]
  93. interface IPropertyChange : IObjectWithPropertyKey {
  94. HRESULT ApplyToPropVariant ([in] REFPROPVARIANT propvarIn,[out] PROPVARIANT *ppropvarOut);
  95. }
  96. cpp_quote("")
  97. [uuid (380f5cad-1b5e-42f2-805d-637fd392d31e), object, pointer_default (unique)]
  98. interface IPropertyChangeArray : IUnknown {
  99. HRESULT GetCount ([out] UINT *pcOperations);
  100. HRESULT GetAt ([in] UINT iIndex,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
  101. HRESULT InsertAt ([in] UINT iIndex,[in] IPropertyChange *ppropChange);
  102. HRESULT Append ([in] IPropertyChange *ppropChange);
  103. HRESULT AppendOrReplace ([in] IPropertyChange *ppropChange);
  104. HRESULT RemoveAt ([in] UINT iIndex);
  105. HRESULT IsKeyInArray ([in] REFPROPERTYKEY key);
  106. }
  107. cpp_quote("")
  108. [uuid (c8e2d566-186e-4d49-bf41-6909ead56acc), object, pointer_default (unique)]
  109. interface IPropertyStoreCapabilities : IUnknown {
  110. HRESULT IsPropertyWritable ([in] REFPROPERTYKEY key);
  111. }
  112. cpp_quote("")
  113. [uuid (3017056d-9a91-4e90-937d-746c72abbf4f), object, pointer_default (unique)]
  114. interface IPropertyStoreCache : IPropertyStore {
  115. typedef [v1_enum] enum PSC_STATE {
  116. PSC_NORMAL = 0,
  117. PSC_NOTINSOURCE = 1,
  118. PSC_DIRTY = 2,
  119. PSC_READONLY = 3
  120. } PSC_STATE;
  121. cpp_quote("")
  122. HRESULT GetState ([in] REFPROPERTYKEY key,[out] PSC_STATE *pstate);
  123. HRESULT GetValueAndState ([in] REFPROPERTYKEY key,[out] PROPVARIANT *ppropvar,[out] PSC_STATE *pstate);
  124. HRESULT SetState ([in] REFPROPERTYKEY key,[in] PSC_STATE state);
  125. HRESULT SetValueAndState ([in] REFPROPERTYKEY key,[in, unique] const PROPVARIANT *ppropvar,[in] PSC_STATE state);
  126. }
  127. cpp_quote("")
  128. [uuid (11e1fbf9-2d56-4a6b-8db3-7cd193a471f2), object, pointer_default (unique)]
  129. interface IPropertyEnumType : IUnknown {
  130. typedef [v1_enum] enum PROPENUMTYPE {
  131. PET_DISCRETEVALUE = 0,
  132. PET_RANGEDVALUE = 1,
  133. PET_DEFAULTVALUE = 2,
  134. PET_ENDRANGE = 3
  135. } PROPENUMTYPE;
  136. cpp_quote("")
  137. HRESULT GetEnumType ([out] PROPENUMTYPE *penumtype);
  138. HRESULT GetValue ([out] PROPVARIANT *ppropvar);
  139. HRESULT GetRangeMinValue ([out] PROPVARIANT *ppropvarMin);
  140. HRESULT GetRangeSetValue ([out] PROPVARIANT *ppropvarSet);
  141. HRESULT GetDisplayText ([out] LPWSTR *ppszDisplay);
  142. }
  143. cpp_quote("")
  144. [uuid (9b6e051c-5ddd-4321-9070-fe2acb55e794), object, pointer_default (unique)]
  145. interface IPropertyEnumType2 : IPropertyEnumType {
  146. HRESULT GetImageReference ([out] LPWSTR *ppszImageRes);
  147. }
  148. cpp_quote("")
  149. [uuid (a99400f4-3d84-4557-94ba-1242fb2cc9a6), object, pointer_default (unique)]
  150. interface IPropertyEnumTypeList : IUnknown {
  151. HRESULT GetCount ([out] UINT *pctypes);
  152. HRESULT GetAt ([in] UINT itype,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
  153. HRESULT GetConditionAt ([in] UINT nIndex,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
  154. HRESULT FindMatchingIndex ([in] REFPROPVARIANT propvarCmp,[out] UINT *pnIndex);
  155. }
  156. cpp_quote("")
  157. [uuid (6f79d558-3e96-4549-a1d1-7d75d2288814), object, pointer_default (unique)]
  158. interface IPropertyDescription : IUnknown {
  159. typedef [v1_enum] enum PROPDESC_TYPE_FLAGS {
  160. PDTF_DEFAULT = 0x00000000,
  161. PDTF_MULTIPLEVALUES = 0x00000001,
  162. PDTF_ISINNATE = 0x00000002,
  163. PDTF_ISGROUP = 0x00000004,
  164. PDTF_CANGROUPBY = 0x00000008,
  165. PDTF_CANSTACKBY = 0x00000010,
  166. PDTF_ISTREEPROPERTY = 0x00000020,
  167. PDTF_INCLUDEINFULLTEXTQUERY = 0x00000040,
  168. PDTF_ISVIEWABLE = 0x00000080,
  169. PDTF_ISQUERYABLE = 0x00000100,
  170. PDTF_CANBEPURGED = 0x00000200,
  171. PDTF_SEARCHRAWVALUE = 0x00000400,
  172. PDTF_ISSYSTEMPROPERTY = 0x80000000,
  173. PDTF_MASK_ALL = 0x800007ff
  174. } PROPDESC_TYPE_FLAGS;
  175. cpp_quote("")
  176. cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_TYPE_FLAGS)")
  177. cpp_quote("")
  178. typedef [v1_enum] enum PROPDESC_VIEW_FLAGS {
  179. PDVF_DEFAULT = 0x00000000,
  180. PDVF_CENTERALIGN = 0x00000001,
  181. PDVF_RIGHTALIGN = 0x00000002,
  182. PDVF_BEGINNEWGROUP = 0x00000004,
  183. PDVF_FILLAREA = 0x00000008,
  184. PDVF_SORTDESCENDING = 0x00000010,
  185. PDVF_SHOWONLYIFPRESENT = 0x00000020,
  186. PDVF_SHOWBYDEFAULT = 0x00000040,
  187. PDVF_SHOWINPRIMARYLIST = 0x00000080,
  188. PDVF_SHOWINSECONDARYLIST = 0x00000100,
  189. PDVF_HIDELABEL = 0x00000200,
  190. PDVF_HIDDEN = 0x00000800,
  191. PDVF_CANWRAP = 0x00001000,
  192. PDVF_MASK_ALL = 0x00001bff
  193. } PROPDESC_VIEW_FLAGS;
  194. cpp_quote("")
  195. cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_VIEW_FLAGS)")
  196. cpp_quote("")
  197. typedef [v1_enum] enum PROPDESC_DISPLAYTYPE {
  198. PDDT_STRING = 0,
  199. PDDT_NUMBER = 1,
  200. PDDT_BOOLEAN = 2,
  201. PDDT_DATETIME = 3,
  202. PDDT_ENUMERATED = 4,
  203. } PROPDESC_DISPLAYTYPE;
  204. cpp_quote("")
  205. typedef [v1_enum] enum PROPDESC_GROUPING_RANGE {
  206. PDGR_DISCRETE = 0,
  207. PDGR_ALPHANUMERIC = 1,
  208. PDGR_SIZE = 2,
  209. PDGR_DYNAMIC = 3,
  210. PDGR_DATE = 4,
  211. PDGR_PERCENT = 5,
  212. PDGR_ENUMERATED = 6
  213. } PROPDESC_GROUPING_RANGE;
  214. cpp_quote("")
  215. typedef [v1_enum] enum PROPDESC_FORMAT_FLAGS {
  216. PDFF_DEFAULT = 0x00000000,
  217. PDFF_PREFIXNAME = 0x00000001,
  218. PDFF_FILENAME = 0x00000002,
  219. PDFF_ALWAYSKB = 0x00000004,
  220. PDFF_RESERVED_RIGHTTOLEFT = 0x00000008,
  221. PDFF_SHORTTIME = 0x00000010,
  222. PDFF_LONGTIME = 0x00000020,
  223. PDFF_HIDETIME = 0x00000040,
  224. PDFF_SHORTDATE = 0x00000080,
  225. PDFF_LONGDATE = 0x00000100,
  226. PDFF_HIDEDATE = 0x00000200,
  227. PDFF_RELATIVEDATE = 0x00000400,
  228. PDFF_USEEDITINVITATION = 0x00000800,
  229. PDFF_READONLY = 0x00001000,
  230. PDFF_NOAUTOREADINGORDER = 0x00002000
  231. } PROPDESC_FORMAT_FLAGS;
  232. cpp_quote("")
  233. cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_FORMAT_FLAGS)")
  234. cpp_quote("")
  235. typedef [v1_enum] enum PROPDESC_SORTDESCRIPTION {
  236. PDSD_GENERAL = 0,
  237. PDSD_A_Z = 1,
  238. PDSD_LOWEST_HIGHEST = 2,
  239. PDSD_SMALLEST_BIGGEST = 3,
  240. PDSD_OLDEST_NEWEST = 4
  241. } PROPDESC_SORTDESCRIPTION;
  242. cpp_quote("")
  243. typedef [v1_enum] enum PROPDESC_RELATIVEDESCRIPTION_TYPE {
  244. PDRDT_GENERAL = 0,
  245. PDRDT_DATE = 1,
  246. PDRDT_SIZE = 2,
  247. PDRDT_COUNT = 3,
  248. PDRDT_REVISION = 4,
  249. PDRDT_LENGTH = 5,
  250. PDRDT_DURATION = 6,
  251. PDRDT_SPEED = 7,
  252. PDRDT_RATE = 8,
  253. PDRDT_RATING = 9,
  254. PDRDT_PRIORITY = 10
  255. } PROPDESC_RELATIVEDESCRIPTION_TYPE;
  256. cpp_quote("")
  257. typedef [v1_enum] enum PROPDESC_AGGREGATION_TYPE {
  258. PDAT_DEFAULT = 0,
  259. PDAT_FIRST = 1,
  260. PDAT_SUM = 2,
  261. PDAT_AVERAGE = 3,
  262. PDAT_DATERANGE = 4,
  263. PDAT_UNION = 5,
  264. PDAT_MAX = 6,
  265. PDAT_MIN = 7
  266. } PROPDESC_AGGREGATION_TYPE;
  267. cpp_quote("")
  268. typedef [v1_enum] enum PROPDESC_CONDITION_TYPE {
  269. PDCOT_NONE = 0,
  270. PDCOT_STRING = 1,
  271. PDCOT_SIZE = 2,
  272. PDCOT_DATETIME = 3,
  273. PDCOT_BOOLEAN = 4,
  274. PDCOT_NUMBER = 5
  275. } PROPDESC_CONDITION_TYPE;
  276. cpp_quote("")
  277. HRESULT GetPropertyKey ([out] PROPERTYKEY *pkey);
  278. HRESULT GetCanonicalName ([out, string] LPWSTR *ppszName);
  279. HRESULT GetPropertyType ([out] VARTYPE *pvartype);
  280. HRESULT GetDisplayName ([out, string] LPWSTR *ppszName);
  281. HRESULT GetEditInvitation ([out, string] LPWSTR *ppszInvite);
  282. HRESULT GetTypeFlags ([in] PROPDESC_TYPE_FLAGS mask,[out] PROPDESC_TYPE_FLAGS *ppdtFlags);
  283. HRESULT GetViewFlags ([out] PROPDESC_VIEW_FLAGS *ppdvFlags);
  284. HRESULT GetDefaultColumnWidth ([out] UINT *pcxChars);
  285. HRESULT GetDisplayType ([out] PROPDESC_DISPLAYTYPE *pdisplaytype);
  286. HRESULT GetColumnState ([out] SHCOLSTATEF *pcsFlags);
  287. HRESULT GetGroupingRange ([out] PROPDESC_GROUPING_RANGE *pgr);
  288. HRESULT GetRelativeDescriptionType ([out] PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt);
  289. HRESULT GetRelativeDescription ([in] REFPROPVARIANT propvar1,[in] REFPROPVARIANT propvar2,[out, string] LPWSTR *ppszDesc1,[out, string] LPWSTR *ppszDesc2);
  290. HRESULT GetSortDescription ([out] PROPDESC_SORTDESCRIPTION *psd);
  291. HRESULT GetSortDescriptionLabel ([in] BOOL fDescending,[out, string] LPWSTR *ppszDescription);
  292. HRESULT GetAggregationType ([out] PROPDESC_AGGREGATION_TYPE *paggtype);
  293. HRESULT GetConditionType ([out] PROPDESC_CONDITION_TYPE *pcontype,[out] CONDITION_OPERATION *popDefault);
  294. HRESULT GetEnumTypeList ([in] REFIID riid,[out, iid_is (riid)] void **ppv);
  295. [local] HRESULT CoerceToCanonicalValue ([in, out] PROPVARIANT *ppropvar);
  296. [call_as (CoerceToCanonicalValue)] HRESULT RemoteCoerceToCanonicalValue ([in] REFPROPVARIANT propvar,[out] PROPVARIANT *ppropvar);
  297. HRESULT FormatForDisplay ([in] REFPROPVARIANT propvar,[in] PROPDESC_FORMAT_FLAGS pdfFlags,[out, string] LPWSTR *ppszDisplay);
  298. HRESULT IsValueCanonical ([in] REFPROPVARIANT propvar);
  299. }
  300. cpp_quote("")
  301. [uuid (57d2eded-5062-400e-b107-5dae79fe57a6), object, pointer_default (unique)]
  302. interface IPropertyDescription2 : IPropertyDescription {
  303. HRESULT GetImageReferenceForValue ([in] REFPROPVARIANT propvar,[out, string] LPWSTR *ppszImageRes);
  304. }
  305. cpp_quote("")
  306. [uuid (f67104fc-2af9-46fd-b32d-243c1404f3d1), object, pointer_default (unique)]
  307. interface IPropertyDescriptionAliasInfo : IPropertyDescription {
  308. HRESULT GetSortByAlias ([in] REFIID riid,[out, iid_is (riid)] void **ppv);
  309. HRESULT GetAdditionalSortByAliases ([in] REFIID riid,[out, iid_is (riid)] void **ppv);
  310. };
  311. cpp_quote("")
  312. [uuid (078f91bd-29a2-440f-924e-46a291524520), object, pointer_default (unique)]
  313. interface IPropertyDescriptionSearchInfo : IPropertyDescription {
  314. typedef [v1_enum] enum PROPDESC_SEARCHINFO_FLAGS {
  315. PDSIF_DEFAULT = 0x00000000,
  316. PDSIF_ININVERTEDINDEX = 0x00000001,
  317. PDSIF_ISCOLUMN = 0x00000002,
  318. PDSIF_ISCOLUMNSPARSE = 0x00000004,
  319. PDSIF_ALWAYSINCLUDE = 0x00000008,
  320. PDSIF_USEFORTYPEAHEAD = 0x00000010,
  321. } PROPDESC_SEARCHINFO_FLAGS;
  322. cpp_quote("")
  323. cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_SEARCHINFO_FLAGS)")
  324. cpp_quote("")
  325. typedef [v1_enum] enum PROPDESC_COLUMNINDEX_TYPE {
  326. PDCIT_NONE = 0,
  327. PDCIT_ONDISK = 1,
  328. PDCIT_INMEMORY = 2,
  329. PDCIT_ONDEMAND = 3,
  330. PDCIT_ONDISKALL = 4,
  331. PDCIT_ONDISKVECTOR = 5
  332. } PROPDESC_COLUMNINDEX_TYPE;
  333. cpp_quote("")
  334. HRESULT GetSearchInfoFlags ([out] PROPDESC_SEARCHINFO_FLAGS *ppdsiFlags);
  335. HRESULT GetColumnIndexType ([out] PROPDESC_COLUMNINDEX_TYPE *ppdciType);
  336. HRESULT GetProjectionString ([out] LPWSTR *ppszProjection);
  337. HRESULT GetMaxSize ([out] UINT *pcbMaxSize);
  338. };
  339. cpp_quote("")
  340. [uuid (507393f4-2a3d-4a60-b59e-d9c75716c2dd), object, pointer_default (unique)]
  341. interface IPropertyDescriptionRelatedPropertyInfo : IPropertyDescription {
  342. HRESULT GetRelatedProperty ([in] LPCWSTR pszRelationshipName,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
  343. }
  344. cpp_quote("")
  345. typedef [v1_enum] enum PROPDESC_ENUMFILTER {
  346. PDEF_ALL = 0,
  347. PDEF_SYSTEM = 1,
  348. PDEF_NONSYSTEM = 2,
  349. PDEF_VIEWABLE = 3,
  350. PDEF_QUERYABLE = 4,
  351. PDEF_INFULLTEXTQUERY= 5,
  352. PDEF_COLUMN = 6
  353. } PROPDESC_ENUMFILTER;
  354. cpp_quote("")
  355. [uuid (ca724e8a-c3e6-442b-88a4-6fb0db8035a3), object, pointer_default (unique)]
  356. interface IPropertySystem : IUnknown {
  357. HRESULT GetPropertyDescription ([in] REFPROPERTYKEY propkey,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
  358. HRESULT GetPropertyDescriptionByName ([in, string] LPCWSTR pszCanonicalName,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
  359. HRESULT GetPropertyDescriptionListFromString ([in, string] LPCWSTR pszPropList,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
  360. HRESULT EnumeratePropertyDescriptions ([in] PROPDESC_ENUMFILTER filterOn,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
  361. HRESULT FormatForDisplay ([in] REFPROPERTYKEY key,[in] REFPROPVARIANT propvar,[in] PROPDESC_FORMAT_FLAGS pdff,[out, string, size_is (cchText)] LPWSTR pszText,[in, range (0, 0x8000)] DWORD cchText);
  362. HRESULT FormatForDisplayAlloc ([in] REFPROPERTYKEY key,[in] REFPROPVARIANT propvar,[in] PROPDESC_FORMAT_FLAGS pdff,[out, string] LPWSTR *ppszDisplay);
  363. HRESULT RegisterPropertySchema ([in, string] LPCWSTR pszPath);
  364. HRESULT UnregisterPropertySchema ([in, string] LPCWSTR pszPath);
  365. HRESULT RefreshPropertySchema ();
  366. }
  367. cpp_quote("")
  368. [uuid (1f9fc1d0-c39b-4b26-817f-011967d3440e), object, pointer_default (unique)]
  369. interface IPropertyDescriptionList : IUnknown {
  370. HRESULT GetCount ([out] UINT *pcElem);
  371. HRESULT GetAt ([in] UINT iElem,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
  372. }
  373. cpp_quote("")
  374. [uuid (bc110b6d-57e8-4148-a9c6-91015ab2f3a5), object, pointer_default (unique)]
  375. interface IPropertyStoreFactory : IUnknown {
  376. HRESULT GetPropertyStore ([in] GETPROPERTYSTOREFLAGS flags,[in, unique] IUnknown *pUnkFactory,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
  377. HRESULT GetPropertyStoreForKeys ([in, unique] const PROPERTYKEY *rgKeys,[in] UINT cKeys,[in] GETPROPERTYSTOREFLAGS flags,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
  378. }
  379. cpp_quote("")
  380. [uuid (40d4577f-e237-4bdb-bd69-58f089431b6a), object, pointer_default (unique)]
  381. interface IDelayedPropertyStoreFactory : IPropertyStoreFactory {
  382. HRESULT GetDelayedPropertyStore ([in] GETPROPERTYSTOREFLAGS flags,[in] DWORD dwStoreId,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
  383. }
  384. cpp_quote("")
  385. [v1_enum] enum _PERSIST_SPROPSTORE_FLAGS {
  386. FPSPS_DEFAULT = 0x00000000,
  387. FPSPS_READONLY = 0x00000001,
  388. FPSPS_TREAT_NEW_VALUES_AS_DIRTY = 0x00000002,
  389. };
  390. cpp_quote("")
  391. typedef int PERSIST_SPROPSTORE_FLAGS;
  392. typedef struct tagSERIALIZEDPROPSTORAGE SERIALIZEDPROPSTORAGE;
  393. typedef SERIALIZEDPROPSTORAGE *PUSERIALIZEDPROPSTORAGE;
  394. typedef const SERIALIZEDPROPSTORAGE *PCUSERIALIZEDPROPSTORAGE;
  395. cpp_quote("")
  396. [uuid (e318ad57-0aa0-450f-aca5-6fab7103d917), pointer_default (unique), local]
  397. interface IPersistSerializedPropStorage : IUnknown {
  398. HRESULT SetFlags ([in] PERSIST_SPROPSTORE_FLAGS flags);
  399. HRESULT SetPropertyStorage ([in] PCUSERIALIZEDPROPSTORAGE psps,[in] DWORD cb);
  400. HRESULT GetPropertyStorage ([out] SERIALIZEDPROPSTORAGE **ppsps,[out] DWORD *pcb);
  401. }
  402. cpp_quote("")
  403. [uuid (77effa68-4f98-4366-ba72-573b3d880571), pointer_default (unique), local]
  404. interface IPersistSerializedPropStorage2 : IPersistSerializedPropStorage {
  405. HRESULT GetPropertyStorageSize ([out] DWORD *pcb);
  406. HRESULT GetPropertyStorageBuffer ([out] SERIALIZEDPROPSTORAGE *psps,[in] DWORD cb,[out] DWORD *pcbWritten);
  407. }
  408. cpp_quote("")
  409. [uuid (fa955fd9-38be-4879-a6ce-824cf52d609f), object, pointer_default (unique)]
  410. interface IPropertySystemChangeNotify : IUnknown {
  411. HRESULT SchemaRefreshed ();
  412. }
  413. cpp_quote("")
  414. [uuid (75121952-e0d0-43e5-9380-1d80483acf72), pointer_default (unique)]
  415. interface ICreateObject : IUnknown {
  416. HRESULT CreateObject ([in] REFCLSID clsid,[in, unique] IUnknown *pUnkOuter,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
  417. };
  418. cpp_quote("")
  419. cpp_quote("#define PKEY_PIDSTR_MAX 10")
  420. cpp_quote("#define GUIDSTRING_MAX (39)")
  421. cpp_quote("#define PKEYSTR_MAX (GUIDSTRING_MAX + 1 + PKEY_PIDSTR_MAX)")
  422. cpp_quote("")
  423. cpp_quote("PSSTDAPI PSCoerceToCanonicalValue(REFPROPERTYKEY key, PROPVARIANT *ppropvar);")
  424. cpp_quote("PSSTDAPI PSCreateAdapterFromPropertyStore(IPropertyStore *pps, REFIID riid, void **ppv);")
  425. cpp_quote("PSSTDAPI PSCreateDelayedMultiplexPropertyStore(GETPROPERTYSTOREFLAGS flags, IDelayedPropertyStoreFactory *pdpsf, const DWORD *rgStoreIds, DWORD cStores, REFIID riid, void **ppv);")
  426. cpp_quote("PSSTDAPI PSCreateMemoryPropertyStore(REFIID riid, void **ppv);")
  427. cpp_quote("PSSTDAPI PSCreateMultiplexPropertyStore(IUnknown **prgpunkStores, DWORD cStores, REFIID riid, void **ppv);")
  428. cpp_quote("PSSTDAPI PSCreatePropertyChangeArray(const PROPERTYKEY *rgpropkey, const PKA_FLAGS *rgflags, const PROPVARIANT *rgpropvar, UINT cChanges, REFIID riid, void **ppv);")
  429. cpp_quote("PSSTDAPI PSCreatePropertyStoreFromObject(IUnknown *punk, DWORD grfMode, REFIID riid, void **ppv);")
  430. cpp_quote("PSSTDAPI PSCreatePropertyStoreFromPropertySetStorage(IPropertySetStorage *ppss, DWORD grfMode, REFIID riid, void **ppv);")
  431. cpp_quote("PSSTDAPI PSCreateSimplePropertyChange(PKA_FLAGS flags, REFPROPERTYKEY key, REFPROPVARIANT propvar, REFIID riid, void **ppv);")
  432. cpp_quote("PSSTDAPI PSEnumeratePropertyDescriptions(PROPDESC_ENUMFILTER filterOn, REFIID riid, void **ppv);")
  433. cpp_quote("PSSTDAPI PSFormatForDisplay(REFPROPERTYKEY propkey, REFPROPVARIANT propvar, PROPDESC_FORMAT_FLAGS pdfFlags, LPWSTR pwszText, DWORD cchText);")
  434. cpp_quote("PSSTDAPI PSFormatForDisplayAlloc(REFPROPERTYKEY key, REFPROPVARIANT propvar, PROPDESC_FORMAT_FLAGS pdff, PWSTR *ppszDisplay);")
  435. cpp_quote("PSSTDAPI PSFormatPropertyValue(IPropertyStore *pps, IPropertyDescription *ppd, PROPDESC_FORMAT_FLAGS pdff, LPWSTR *ppszDisplay);")
  436. cpp_quote("PSSTDAPI PSGetImageReferenceForValue(REFPROPERTYKEY propkey, REFPROPVARIANT propvar, PWSTR *ppszImageRes);")
  437. cpp_quote("PSSTDAPI PSGetItemPropertyHandler(IUnknown *punkItem, BOOL fReadWrite, REFIID riid, void **ppv);")
  438. cpp_quote("PSSTDAPI PSGetItemPropertyHandlerWithCreateObject(IUnknown *punkItem, BOOL fReadWrite, IUnknown *punkCreateObject, REFIID riid, void **ppv);")
  439. cpp_quote("PSSTDAPI PSGetNamedPropertyFromPropertyStorage(PCUSERIALIZEDPROPSTORAGE psps, DWORD cb, LPCWSTR pszName, PROPVARIANT *ppropvar);")
  440. cpp_quote("PSSTDAPI PSGetNameFromPropertyKey(REFPROPERTYKEY propkey, PWSTR *ppszCanonicalName);")
  441. cpp_quote("PSSTDAPI PSGetPropertyDescription(REFPROPERTYKEY propkey, REFIID riid, void **ppv);")
  442. cpp_quote("PSSTDAPI PSGetPropertyDescriptionByName(LPCWSTR pszCanonicalName, REFIID riid, void **ppv);")
  443. cpp_quote("PSSTDAPI PSGetPropertyDescriptionListFromString(LPCWSTR pszPropList, REFIID riid, void **ppv);")
  444. cpp_quote("PSSTDAPI PSGetPropertyFromPropertyStorage(PCUSERIALIZEDPROPSTORAGE psps, DWORD cb, REFPROPERTYKEY rpkey, PROPVARIANT *ppropvar);")
  445. cpp_quote("PSSTDAPI PSGetPropertyKeyFromName(PCWSTR pszName, PROPERTYKEY *ppropkey);")
  446. cpp_quote("PSSTDAPI PSGetPropertySystem(REFIID riid, void **ppv);")
  447. cpp_quote("PSSTDAPI PSGetPropertyValue(IPropertyStore *pps, IPropertyDescription *ppd, PROPVARIANT *ppropvar);")
  448. cpp_quote("PSSTDAPI PSLookupPropertyHandlerCLSID(PCWSTR pszFilePath, CLSID *pclsid);")
  449. cpp_quote("PSSTDAPI PSPropertyBag_Delete(IPropertyBag *propBag, LPCWSTR propName);")
  450. cpp_quote("PSSTDAPI PSPropertyBag_ReadBOOL(IPropertyBag *propBag, LPCWSTR propName, BOOL *value);")
  451. cpp_quote("PSSTDAPI PSPropertyBag_ReadBSTR(IPropertyBag *propBag, LPCWSTR propName, BSTR *value);")
  452. cpp_quote("PSSTDAPI PSPropertyBag_ReadDWORD(IPropertyBag *propBag, LPCWSTR propName, DWORD *value);")
  453. cpp_quote("PSSTDAPI PSPropertyBag_ReadGUID(IPropertyBag *propBag, LPCWSTR propName, GUID *value);")
  454. cpp_quote("PSSTDAPI PSPropertyBag_ReadInt(IPropertyBag *propBag, LPCWSTR propName, INT *value);")
  455. cpp_quote("PSSTDAPI PSPropertyBag_ReadLONG(IPropertyBag *propBag, LPCWSTR propName, LONG *value);")
  456. cpp_quote("PSSTDAPI PSPropertyBag_ReadPOINTL(IPropertyBag *propBag, LPCWSTR propName, POINTL *value);")
  457. cpp_quote("PSSTDAPI PSPropertyBag_ReadPOINTS(IPropertyBag *propBag, LPCWSTR propName, POINTS *value);")
  458. cpp_quote("PSSTDAPI PSPropertyBag_ReadPropertyKey(IPropertyBag *propBag, LPCWSTR propName, PROPERTYKEY *value);")
  459. cpp_quote("PSSTDAPI PSPropertyBag_ReadRECTL(IPropertyBag *propBag, LPCWSTR propName, RECTL *value);")
  460. cpp_quote("PSSTDAPI PSPropertyBag_ReadSHORT(IPropertyBag *propBag, LPCWSTR propName, SHORT *value);")
  461. cpp_quote("PSSTDAPI PSPropertyBag_ReadStr(IPropertyBag *propBag, LPCWSTR propName, LPWSTR value, int characterCount);")
  462. cpp_quote("PSSTDAPI PSPropertyBag_ReadStrAlloc(IPropertyBag *propBag, LPCWSTR propName, PWSTR *value);")
  463. cpp_quote("PSSTDAPI PSPropertyBag_ReadStream(IPropertyBag *propBag, LPCWSTR propName, IStream **value);")
  464. cpp_quote("PSSTDAPI PSPropertyBag_ReadType(IPropertyBag *propBag, LPCWSTR propName, VARIANT *var, VARTYPE type);")
  465. cpp_quote("PSSTDAPI PSPropertyBag_ReadULONGLONG(IPropertyBag *propBag, LPCWSTR propName, ULONGLONG *value);")
  466. cpp_quote("PSSTDAPI PSPropertyBag_ReadUnknown(IPropertyBag *propBag, LPCWSTR propName, REFIID riid, void **ppv);")
  467. cpp_quote("PSSTDAPI PSPropertyBag_WriteBOOL(IPropertyBag *propBag, LPCWSTR propName, BOOL value);")
  468. cpp_quote("PSSTDAPI PSPropertyBag_WriteBSTR(IPropertyBag *propBag, LPCWSTR propName, BSTR value);")
  469. cpp_quote("PSSTDAPI PSPropertyBag_WriteDWORD(IPropertyBag *propBag, LPCWSTR propName, DWORD value);")
  470. cpp_quote("PSSTDAPI PSPropertyBag_WriteGUID(IPropertyBag *propBag, LPCWSTR propName, const GUID *value);")
  471. cpp_quote("PSSTDAPI PSPropertyBag_WriteInt(IPropertyBag *propBag, LPCWSTR propName, INT value);")
  472. cpp_quote("PSSTDAPI PSPropertyBag_WriteLONG(IPropertyBag *propBag, LPCWSTR propName, LONG value);")
  473. cpp_quote("PSSTDAPI PSPropertyBag_WritePOINTL(IPropertyBag *propBag, LPCWSTR propName, const POINTL *value);")
  474. cpp_quote("PSSTDAPI PSPropertyBag_WritePOINTS(IPropertyBag *propBag, LPCWSTR propName, const POINTS *value);")
  475. cpp_quote("PSSTDAPI PSPropertyBag_WritePropertyKey(IPropertyBag *propBag, LPCWSTR propName, REFPROPERTYKEY value);")
  476. cpp_quote("PSSTDAPI PSPropertyBag_WriteRECTL(IPropertyBag *propBag, LPCWSTR propName, const RECTL *value);")
  477. cpp_quote("PSSTDAPI PSPropertyBag_WriteSHORT(IPropertyBag *propBag, LPCWSTR propName, SHORT value);")
  478. cpp_quote("PSSTDAPI PSPropertyBag_WriteStr(IPropertyBag *propBag, LPCWSTR propName, LPCWSTR value);")
  479. cpp_quote("PSSTDAPI PSPropertyBag_WriteStream(IPropertyBag *propBag, LPCWSTR propName, IStream *value);")
  480. cpp_quote("PSSTDAPI PSPropertyBag_WriteULONGLONG(IPropertyBag *propBag, LPCWSTR propName, ULONGLONG value);")
  481. cpp_quote("PSSTDAPI PSPropertyBag_WriteUnknown(IPropertyBag *propBag, LPCWSTR propName, IUnknown *punk);")
  482. cpp_quote("PSSTDAPI PSPropertyKeyFromString(LPCWSTR pszString, PROPERTYKEY *pkey);")
  483. cpp_quote("PSSTDAPI PSRefreshPropertySchema(void);")
  484. cpp_quote("PSSTDAPI PSRegisterPropertySchema(PCWSTR pszPath);")
  485. cpp_quote("PSSTDAPI PSSetPropertyValue(IPropertyStore *pps, IPropertyDescription *ppd, REFPROPVARIANT propvar);")
  486. cpp_quote("PSSTDAPI PSStringFromPropertyKey(REFPROPERTYKEY pkey, LPWSTR psz, UINT cch);")
  487. cpp_quote("PSSTDAPI PSUnregisterPropertySchema(PCWSTR pszPath);")
  488. cpp_quote("")
  489. [uuid (2cda3294-6c4f-4020-b161-27c530c81fa6), lcid (0x0000), version (1.0)]
  490. library PropSysObjects {
  491. [uuid (9a02e012-6303-4e1e-b9a1-630f802592c5)] coclass InMemoryPropertyStore { interface IPropertyStore; }
  492. [uuid (b8967f85-58ae-4f46-9fb2-5d7904798f4b)] coclass PropertySystem { interface IPropertySystem; }
  493. };
  494. cpp_quote("#endif")