propidl.idl 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399
  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. #ifndef DO_NO_IMPORTS
  9. import "wtypes.idl";
  10. import "objidl.idl";
  11. import "oaidl.idl";
  12. #endif
  13. cpp_quote("")
  14. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
  15. interface IPropertyStorage;
  16. interface IEnumSTATPROPSTG;
  17. interface IEnumSTATPROPSETSTG;
  18. cpp_quote("")
  19. typedef struct tagVersionedStream {
  20. GUID guidVersion;
  21. IStream *pStream;
  22. } VERSIONEDSTREAM,*LPVERSIONEDSTREAM;
  23. cpp_quote("")
  24. const DWORD PROPSETFLAG_DEFAULT = 0;
  25. const DWORD PROPSETFLAG_NONSIMPLE = 1;
  26. const DWORD PROPSETFLAG_ANSI = 2;
  27. const DWORD PROPSETFLAG_UNBUFFERED = 4;
  28. const DWORD PROPSETFLAG_CASE_SENSITIVE = 8;
  29. cpp_quote("")
  30. const DWORD PROPSET_BEHAVIOR_CASE_SENSITIVE = 1;
  31. cpp_quote("")
  32. cpp_quote("#if 0")
  33. typedef struct tag_inner_PROPVARIANT PROPVARIANT;
  34. cpp_quote("#else")
  35. cpp_quote("typedef struct tagPROPVARIANT PROPVARIANT;")
  36. cpp_quote("#endif")
  37. #define TYPEDEF_CA(type, name) typedef struct tag##name { ULONG cElems; [size_is (cElems)] type *pElems; } name
  38. cpp_quote("")
  39. TYPEDEF_CA (CHAR, CAC);
  40. TYPEDEF_CA (UCHAR, CAUB);
  41. TYPEDEF_CA (SHORT, CAI);
  42. TYPEDEF_CA (USHORT, CAUI);
  43. TYPEDEF_CA (LONG, CAL);
  44. TYPEDEF_CA (ULONG, CAUL);
  45. TYPEDEF_CA (FLOAT, CAFLT);
  46. TYPEDEF_CA (DOUBLE, CADBL);
  47. TYPEDEF_CA (CY, CACY);
  48. TYPEDEF_CA (DATE, CADATE);
  49. TYPEDEF_CA (BSTR, CABSTR);
  50. TYPEDEF_CA (BSTRBLOB, CABSTRBLOB);
  51. TYPEDEF_CA (VARIANT_BOOL, CABOOL);
  52. TYPEDEF_CA (SCODE, CASCODE);
  53. TYPEDEF_CA (PROPVARIANT, CAPROPVARIANT);
  54. TYPEDEF_CA (LARGE_INTEGER, CAH);
  55. TYPEDEF_CA (ULARGE_INTEGER, CAUH);
  56. TYPEDEF_CA (LPSTR, CALPSTR);
  57. TYPEDEF_CA (LPWSTR, CALPWSTR);
  58. TYPEDEF_CA (FILETIME, CAFILETIME);
  59. TYPEDEF_CA (CLIPDATA, CACLIPDATA);
  60. TYPEDEF_CA (CLSID, CACLSID);
  61. cpp_quote("")
  62. cpp_quote("#if 0")
  63. typedef BYTE PROPVAR_PAD1;
  64. typedef BYTE PROPVAR_PAD2;
  65. typedef ULONG PROPVAR_PAD3;
  66. cpp_quote("#else")
  67. cpp_quote("typedef WORD PROPVAR_PAD1;")
  68. cpp_quote("typedef WORD PROPVAR_PAD2;")
  69. cpp_quote("typedef WORD PROPVAR_PAD3;")
  70. cpp_quote("")
  71. cpp_quote("#define tag_inner_PROPVARIANT")
  72. cpp_quote("#endif")
  73. cpp_quote("")
  74. cpp_quote(" struct tagPROPVARIANT {")
  75. cpp_quote(" __C89_NAMELESS union {")
  76. cpp_quote(" __C89_NAMELESS")
  77. struct tag_inner_PROPVARIANT {
  78. VARTYPE vt;
  79. PROPVAR_PAD1 wReserved1;
  80. PROPVAR_PAD2 wReserved2;
  81. PROPVAR_PAD3 wReserved3;
  82. [switch_is ((unsigned short) vt)] union {
  83. [case (VT_EMPTY, VT_NULL)];
  84. [case (VT_I1)] CHAR cVal;
  85. [case (VT_UI1)] UCHAR bVal;
  86. [case (VT_I2)] SHORT iVal;
  87. [case (VT_UI2)] USHORT uiVal;
  88. [case (VT_I4)] LONG lVal;
  89. [case (VT_UI4)] ULONG ulVal;
  90. [case (VT_INT)] INT intVal;
  91. [case (VT_UINT)] UINT uintVal;
  92. [case (VT_DECIMAL, VT_I8)] LARGE_INTEGER hVal;
  93. [case (VT_UI8)] ULARGE_INTEGER uhVal;
  94. [case (VT_R4)] FLOAT fltVal;
  95. [case (VT_R8)] DOUBLE dblVal;
  96. [case (VT_BOOL)] VARIANT_BOOL boolVal;
  97. /* [case (VT_ILLEGAL)] _VARIANT_BOOL bool; */
  98. [case (VT_ERROR)] SCODE scode;
  99. [case (VT_CY)] CY cyVal;
  100. [case (VT_DATE)] DATE date;
  101. [case (VT_FILETIME)] FILETIME filetime;
  102. [case (VT_CLSID)] CLSID *puuid;
  103. [case (VT_CF)] CLIPDATA *pclipdata;
  104. [case (VT_BSTR)] BSTR bstrVal;
  105. [case (VT_BSTR_BLOB)] BSTRBLOB bstrblobVal;
  106. [case (VT_BLOB, VT_BLOB_OBJECT)] BLOB blob;
  107. [case (VT_LPSTR)] LPSTR pszVal;
  108. [case (VT_LPWSTR)] LPWSTR pwszVal;
  109. [case (VT_UNKNOWN)] IUnknown *punkVal;
  110. [case (VT_DISPATCH)] IDispatch *pdispVal;
  111. [case (VT_STREAM, VT_STREAMED_OBJECT)] IStream *pStream;
  112. [case (VT_STORAGE, VT_STORED_OBJECT)] IStorage *pStorage;
  113. [case (VT_VERSIONED_STREAM)] LPVERSIONEDSTREAM pVersionedStream;
  114. [case (VT_ARRAY|VT_I1, VT_ARRAY|VT_UI1, VT_ARRAY|VT_I2, VT_ARRAY|VT_UI2, VT_ARRAY|VT_I4, VT_ARRAY|VT_UI4, VT_ARRAY|VT_INT, VT_ARRAY|VT_UINT, VT_ARRAY|VT_R4, VT_ARRAY|VT_R8, VT_ARRAY|VT_CY, VT_ARRAY|VT_DATE, VT_ARRAY|VT_BSTR, VT_ARRAY|VT_BOOL, VT_ARRAY|VT_DECIMAL, VT_ARRAY|VT_DISPATCH, VT_ARRAY|VT_UNKNOWN, VT_ARRAY|VT_ERROR, VT_ARRAY|VT_VARIANT)] LPSAFEARRAY parray;
  115. [case (VT_VECTOR|VT_I1)] CAC cac;
  116. [case (VT_VECTOR|VT_UI1)] CAUB caub;
  117. [case (VT_VECTOR|VT_I2)] CAI cai;
  118. [case (VT_VECTOR|VT_UI2)] CAUI caui;
  119. [case (VT_VECTOR|VT_I4)] CAL cal;
  120. [case (VT_VECTOR|VT_UI4)] CAUL caul;
  121. [case (VT_VECTOR|VT_I8)] CAH cah;
  122. [case (VT_VECTOR|VT_UI8)] CAUH cauh;
  123. [case (VT_VECTOR|VT_R4)] CAFLT caflt;
  124. [case (VT_VECTOR|VT_R8)] CADBL cadbl;
  125. [case (VT_VECTOR|VT_BOOL)] CABOOL cabool;
  126. [case (VT_VECTOR|VT_ERROR)] CASCODE cascode;
  127. [case (VT_VECTOR|VT_CY)] CACY cacy;
  128. [case (VT_VECTOR|VT_DATE)] CADATE cadate;
  129. [case (VT_VECTOR|VT_FILETIME)] CAFILETIME cafiletime;
  130. [case (VT_VECTOR|VT_CLSID)] CACLSID cauuid;
  131. [case (VT_VECTOR|VT_CF)] CACLIPDATA caclipdata;
  132. [case (VT_VECTOR|VT_BSTR)] CABSTR cabstr;
  133. [case (VT_VECTOR|VT_BSTR_BLOB)]CABSTRBLOB cabstrblob;
  134. [case (VT_VECTOR|VT_LPSTR)] CALPSTR calpstr;
  135. [case (VT_VECTOR|VT_LPWSTR)] CALPWSTR calpwstr;
  136. [case (VT_VECTOR|VT_VARIANT)] CAPROPVARIANT capropvar;
  137. [case (VT_BYREF|VT_I1)] CHAR *pcVal;
  138. [case (VT_BYREF|VT_UI1)] UCHAR *pbVal;
  139. [case (VT_BYREF|VT_I2)] SHORT *piVal;
  140. [case (VT_BYREF|VT_UI2)] USHORT *puiVal;
  141. [case (VT_BYREF|VT_I4)] LONG *plVal;
  142. [case (VT_BYREF|VT_UI4)] ULONG *pulVal;
  143. [case (VT_BYREF|VT_INT)] INT *pintVal;
  144. [case (VT_BYREF|VT_UINT)] UINT *puintVal;
  145. [case (VT_BYREF|VT_R4)] FLOAT *pfltVal;
  146. [case (VT_BYREF|VT_R8)] DOUBLE *pdblVal;
  147. [case (VT_BYREF|VT_BOOL)] VARIANT_BOOL *pboolVal;
  148. [case (VT_BYREF|VT_DECIMAL)] DECIMAL *pdecVal;
  149. [case (VT_BYREF|VT_ERROR)] SCODE *pscode;
  150. [case (VT_BYREF|VT_CY)] CY *pcyVal;
  151. [case (VT_BYREF|VT_DATE)] DATE *pdate;
  152. [case (VT_BYREF|VT_BSTR)] BSTR *pbstrVal;
  153. [case (VT_BYREF|VT_UNKNOWN)] IUnknown **ppunkVal;
  154. [case (VT_BYREF|VT_DISPATCH)] IDispatch **ppdispVal;
  155. [case (VT_BYREF|VT_ARRAY)] LPSAFEARRAY *pparray;
  156. [case (VT_BYREF|VT_VARIANT)] PROPVARIANT *pvarVal;
  157. };
  158. };
  159. cpp_quote(" DECIMAL decVal;")
  160. cpp_quote(" };")
  161. cpp_quote("};")
  162. cpp_quote("")
  163. cpp_quote("#if 0")
  164. typedef struct tag_inner_PROPVARIANT *LPPROPVARIANT;
  165. typedef const PROPVARIANT *REFPROPVARIANT;
  166. cpp_quote("#else")
  167. cpp_quote("typedef struct tagPROPVARIANT * LPPROPVARIANT;")
  168. cpp_quote("")
  169. cpp_quote("#ifndef _REFPROPVARIANT_DEFINED")
  170. cpp_quote("#define _REFPROPVARIANT_DEFINED")
  171. cpp_quote("#ifdef __cplusplus")
  172. cpp_quote("#define REFPROPVARIANT const PROPVARIANT &")
  173. cpp_quote("#else")
  174. cpp_quote("#define REFPROPVARIANT const PROPVARIANT * __MIDL_CONST")
  175. cpp_quote("#endif")
  176. cpp_quote("#endif")
  177. cpp_quote("#endif")
  178. cpp_quote("")
  179. const PROPID PID_DICTIONARY = 0x00000000;
  180. const PROPID PID_CODEPAGE = 0x00000001;
  181. const PROPID PID_FIRST_USABLE = 0x00000002;
  182. const PROPID PID_FIRST_NAME_DEFAULT = 0x00000fff;
  183. const PROPID PID_LOCALE = 0x80000000;
  184. const PROPID PID_MODIFY_TIME = 0x80000001;
  185. const PROPID PID_SECURITY = 0x80000002;
  186. const PROPID PID_BEHAVIOR = 0x80000003;
  187. const PROPID PID_ILLEGAL = 0xffffffff;
  188. cpp_quote("")
  189. const PROPID PID_MIN_READONLY = 0x80000000;
  190. const PROPID PID_MAX_READONLY = 0xbfffffff;
  191. cpp_quote("#endif")
  192. cpp_quote("")
  193. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
  194. cpp_quote("")
  195. cpp_quote("#define PIDDI_THUMBNAIL __MSABI_LONG(0x2)")
  196. cpp_quote("")
  197. cpp_quote("#define PIDSI_TITLE __MSABI_LONG(0x2)")
  198. cpp_quote("#define PIDSI_SUBJECT __MSABI_LONG(0x3)")
  199. cpp_quote("#define PIDSI_AUTHOR __MSABI_LONG(0x4)")
  200. cpp_quote("#define PIDSI_KEYWORDS __MSABI_LONG(0x5)")
  201. cpp_quote("#define PIDSI_COMMENTS __MSABI_LONG(0x6)")
  202. cpp_quote("#define PIDSI_TEMPLATE __MSABI_LONG(0x7)")
  203. cpp_quote("#define PIDSI_LASTAUTHOR __MSABI_LONG(0x8)")
  204. cpp_quote("#define PIDSI_REVNUMBER __MSABI_LONG(0x9)")
  205. cpp_quote("#define PIDSI_EDITTIME __MSABI_LONG(0xa)")
  206. cpp_quote("#define PIDSI_LASTPRINTED __MSABI_LONG(0xb)")
  207. cpp_quote("#define PIDSI_CREATE_DTM __MSABI_LONG(0xc)")
  208. cpp_quote("#define PIDSI_LASTSAVE_DTM __MSABI_LONG(0xd)")
  209. cpp_quote("#define PIDSI_PAGECOUNT __MSABI_LONG(0xe)")
  210. cpp_quote("#define PIDSI_WORDCOUNT __MSABI_LONG(0xf)")
  211. cpp_quote("#define PIDSI_CHARCOUNT __MSABI_LONG(0x10)")
  212. cpp_quote("#define PIDSI_THUMBNAIL __MSABI_LONG(0x11)")
  213. cpp_quote("#define PIDSI_APPNAME __MSABI_LONG(0x12)")
  214. cpp_quote("#define PIDSI_DOC_SECURITY __MSABI_LONG(0x13)")
  215. cpp_quote("")
  216. cpp_quote("#define PIDDSI_CATEGORY 0x00000002")
  217. cpp_quote("#define PIDDSI_PRESFORMAT 0x00000003")
  218. cpp_quote("#define PIDDSI_BYTECOUNT 0x00000004")
  219. cpp_quote("#define PIDDSI_LINECOUNT 0x00000005")
  220. cpp_quote("#define PIDDSI_PARCOUNT 0x00000006")
  221. cpp_quote("#define PIDDSI_SLIDECOUNT 0x00000007")
  222. cpp_quote("#define PIDDSI_NOTECOUNT 0x00000008")
  223. cpp_quote("#define PIDDSI_HIDDENCOUNT 0x00000009")
  224. cpp_quote("#define PIDDSI_MMCLIPCOUNT 0x0000000A")
  225. cpp_quote("#define PIDDSI_SCALE 0x0000000B")
  226. cpp_quote("#define PIDDSI_HEADINGPAIR 0x0000000C")
  227. cpp_quote("#define PIDDSI_DOCPARTS 0x0000000D")
  228. cpp_quote("#define PIDDSI_MANAGER 0x0000000E")
  229. cpp_quote("#define PIDDSI_COMPANY 0x0000000F")
  230. cpp_quote("#define PIDDSI_LINKSDIRTY 0x00000010")
  231. cpp_quote("")
  232. cpp_quote("#define PIDMSI_EDITOR __MSABI_LONG(0x2)")
  233. cpp_quote("#define PIDMSI_SUPPLIER __MSABI_LONG(0x3)")
  234. cpp_quote("#define PIDMSI_SOURCE __MSABI_LONG(0x4)")
  235. cpp_quote("#define PIDMSI_SEQUENCE_NO __MSABI_LONG(0x5)")
  236. cpp_quote("#define PIDMSI_PROJECT __MSABI_LONG(0x6)")
  237. cpp_quote("#define PIDMSI_STATUS __MSABI_LONG(0x7)")
  238. cpp_quote("#define PIDMSI_OWNER __MSABI_LONG(0x8)")
  239. cpp_quote("#define PIDMSI_RATING __MSABI_LONG(0x9)")
  240. cpp_quote("#define PIDMSI_PRODUCTION __MSABI_LONG(0xa)")
  241. cpp_quote("#define PIDMSI_COPYRIGHT __MSABI_LONG(0xb)")
  242. cpp_quote("")
  243. enum PIDMSI_STATUS_VALUE {
  244. PIDMSI_STATUS_NORMAL = 0,
  245. PIDMSI_STATUS_NEW,
  246. PIDMSI_STATUS_PRELIM,
  247. PIDMSI_STATUS_DRAFT,
  248. PIDMSI_STATUS_INPROGRESS,
  249. PIDMSI_STATUS_EDIT,
  250. PIDMSI_STATUS_REVIEW,
  251. PIDMSI_STATUS_PROOF,
  252. PIDMSI_STATUS_FINAL,
  253. PIDMSI_STATUS_OTHER = 0x7fff
  254. };
  255. cpp_quote("#endif")
  256. cpp_quote("")
  257. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
  258. const ULONG PRSPEC_INVALID = 0xffffffff;
  259. const ULONG PRSPEC_LPWSTR = 0;
  260. const ULONG PRSPEC_PROPID = 1;
  261. cpp_quote("")
  262. typedef struct tagPROPSPEC {
  263. ULONG ulKind;
  264. [switch_is (ulKind)] union {
  265. [case (PRSPEC_PROPID)] PROPID propid;
  266. [case (PRSPEC_LPWSTR)] LPOLESTR lpwstr;
  267. [default];
  268. } DUMMYUNIONNAME;
  269. } PROPSPEC;
  270. cpp_quote("")
  271. typedef struct tagSTATPROPSTG {
  272. LPOLESTR lpwstrName;
  273. PROPID propid;
  274. VARTYPE vt;
  275. } STATPROPSTG;
  276. cpp_quote("")
  277. cpp_quote("#define PROPSETHDR_OSVER_KIND(dwOSVer) HIWORD((dwOSVer))")
  278. cpp_quote("#define PROPSETHDR_OSVER_MAJOR(dwOSVer) LOBYTE(LOWORD((dwOSVer)))")
  279. cpp_quote("#define PROPSETHDR_OSVER_MINOR(dwOSVer) HIBYTE(LOWORD((dwOSVer)))")
  280. cpp_quote("#define PROPSETHDR_OSVERSION_UNKNOWN 0xffffffff")
  281. cpp_quote("")
  282. typedef struct tagSTATPROPSETSTG {
  283. FMTID fmtid;
  284. CLSID clsid;
  285. DWORD grfFlags;
  286. FILETIME mtime;
  287. FILETIME ctime;
  288. FILETIME atime;
  289. DWORD dwOSVersion;
  290. } STATPROPSETSTG;
  291. cpp_quote("")
  292. [object, uuid (00000138-0000-0000-C000-000000000046), pointer_default (unique)]
  293. interface IPropertyStorage : IUnknown {
  294. HRESULT ReadMultiple ([in] ULONG cpspec,[in, size_is (cpspec)]const PROPSPEC rgpspec[],[out, size_is (cpspec)]PROPVARIANT rgpropvar[]);
  295. HRESULT WriteMultiple ([in] ULONG cpspec,[in, size_is (cpspec)]const PROPSPEC rgpspec[],[in, size_is (cpspec)]const PROPVARIANT rgpropvar[],[in] PROPID propidNameFirst);
  296. HRESULT DeleteMultiple ([in] ULONG cpspec,[in, size_is (cpspec)]const PROPSPEC rgpspec[]);
  297. HRESULT ReadPropertyNames ([in] ULONG cpropid,[in, size_is (cpropid)]const PROPID rgpropid[],[out, size_is (cpropid)]LPOLESTR rglpwstrName[]);
  298. HRESULT WritePropertyNames ([in] ULONG cpropid,[in, size_is (cpropid)]const PROPID rgpropid[],[in, size_is (cpropid)]const LPOLESTR rglpwstrName[]);
  299. HRESULT DeletePropertyNames ([in] ULONG cpropid,[in, size_is (cpropid)]const PROPID rgpropid[]);
  300. HRESULT Commit ([in] DWORD grfCommitFlags);
  301. HRESULT Revert ();
  302. HRESULT Enum ([out] IEnumSTATPROPSTG **ppenum);
  303. HRESULT SetTimes ([in] FILETIME const *pctime,[in] FILETIME const *patime,[in] FILETIME const *pmtime);
  304. HRESULT SetClass ([in] REFCLSID clsid);
  305. HRESULT Stat ([out] STATPROPSETSTG *pstatpsstg);
  306. }
  307. cpp_quote("")
  308. [object, uuid (0000013a-0000-0000-C000-000000000046), pointer_default (unique)]
  309. interface IPropertySetStorage : IUnknown {
  310. typedef [unique] IPropertySetStorage *LPPROPERTYSETSTORAGE;
  311. cpp_quote("")
  312. HRESULT Create ([in] REFFMTID rfmtid,[in, unique]const CLSID *pclsid,[in] DWORD grfFlags,[in] DWORD grfMode,[out] IPropertyStorage **ppprstg);
  313. HRESULT Open ([in] REFFMTID rfmtid,[in] DWORD grfMode,[out] IPropertyStorage **ppprstg);
  314. HRESULT Delete ([in] REFFMTID rfmtid);
  315. HRESULT Enum ([out] IEnumSTATPROPSETSTG **ppenum);
  316. }
  317. cpp_quote("")
  318. [object, uuid (00000139-0000-0000-C000-000000000046), pointer_default (unique)]
  319. interface IEnumSTATPROPSTG : IUnknown {
  320. typedef [unique] IEnumSTATPROPSTG *LPENUMSTATPROPSTG;
  321. cpp_quote("")
  322. [local] HRESULT Next ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)]STATPROPSTG *rgelt,[out]ULONG *pceltFetched);
  323. [call_as (Next)] HRESULT RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)]STATPROPSTG *rgelt,[out] ULONG *pceltFetched);
  324. HRESULT Skip ([in] ULONG celt);
  325. HRESULT Reset ();
  326. HRESULT Clone ([out] IEnumSTATPROPSTG **ppenum);
  327. }
  328. cpp_quote("")
  329. [object, uuid (0000013b-0000-0000-C000-000000000046), pointer_default (unique)]
  330. interface IEnumSTATPROPSETSTG : IUnknown {
  331. typedef [unique] IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG;
  332. cpp_quote("")
  333. [local] HRESULT Next ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)]STATPROPSETSTG *rgelt,[out]ULONG *pceltFetched);
  334. [call_as (Next)] HRESULT RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)]STATPROPSETSTG *rgelt,[out] ULONG *pceltFetched);
  335. HRESULT Skip ([in] ULONG celt);
  336. HRESULT Reset ();
  337. HRESULT Clone ([out] IEnumSTATPROPSETSTG **ppenum);
  338. }
  339. cpp_quote("")
  340. typedef [unique] IPropertyStorage *LPPROPERTYSTORAGE;
  341. cpp_quote("")
  342. cpp_quote(" WINOLEAPI PropVariantCopy(PROPVARIANT *pvarDest,const PROPVARIANT *pvarSrc);")
  343. cpp_quote(" WINOLEAPI PropVariantClear(PROPVARIANT *pvar);")
  344. cpp_quote(" WINOLEAPI FreePropVariantArray(ULONG cVariants, PROPVARIANT *rgvars);")
  345. cpp_quote("")
  346. cpp_quote("#define _PROPVARIANTINIT_DEFINED_")
  347. cpp_quote("#ifdef __cplusplus")
  348. cpp_quote("inline void PropVariantInit (PROPVARIANT *pvar) { memset (pvar, 0, sizeof (PROPVARIANT)); }")
  349. cpp_quote("#else")
  350. cpp_quote("#define PropVariantInit(pvar) memset ((pvar), 0, sizeof (PROPVARIANT))")
  351. cpp_quote("#endif")
  352. cpp_quote("")
  353. cpp_quote("#ifndef _STGCREATEPROPSTG_DEFINED_")
  354. cpp_quote(" WINOLEAPI StgCreatePropStg(IUnknown *pUnk, REFFMTID fmtid, const CLSID *pclsid, DWORD grfFlags, DWORD dwReserved, IPropertyStorage **ppPropStg);")
  355. cpp_quote(" WINOLEAPI StgOpenPropStg(IUnknown *pUnk, REFFMTID fmtid, DWORD grfFlags, DWORD dwReserved, IPropertyStorage **ppPropStg);")
  356. cpp_quote(" WINOLEAPI StgCreatePropSetStg(IStorage *pStorage, DWORD dwReserved, IPropertySetStorage **ppPropSetStg);")
  357. cpp_quote("")
  358. cpp_quote("#define CCH_MAX_PROPSTG_NAME 31")
  359. cpp_quote("")
  360. cpp_quote(" WINOLEAPI FmtIdToPropStgName(const FMTID *pfmtid, LPOLESTR oszName);")
  361. cpp_quote(" WINOLEAPI PropStgNameToFmtId(const LPOLESTR oszName, FMTID *pfmtid);")
  362. cpp_quote("#endif")
  363. cpp_quote("")
  364. cpp_quote("#ifndef _SERIALIZEDPROPERTYVALUE_DEFINED_")
  365. cpp_quote("#define _SERIALIZEDPROPERTYVALUE_DEFINED_")
  366. cpp_quote("typedef struct tagSERIALIZEDPROPERTYVALUE {")
  367. cpp_quote(" DWORD dwType;")
  368. cpp_quote(" BYTE rgb[1];")
  369. cpp_quote("} SERIALIZEDPROPERTYVALUE;")
  370. cpp_quote("#endif")
  371. cpp_quote("#endif")
  372. cpp_quote("")
  373. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
  374. cpp_quote("EXTERN_C SERIALIZEDPROPERTYVALUE * __stdcall StgConvertVariantToProperty(const PROPVARIANT *pvar, USHORT CodePage, SERIALIZEDPROPERTYVALUE *pprop, ULONG *pcb, PROPID pid, BOOLEAN fReserved, ULONG *pcIndirect);")
  375. cpp_quote("")
  376. cpp_quote("#ifdef __cplusplus")
  377. cpp_quote("class PMemoryAllocator;")
  378. cpp_quote("")
  379. cpp_quote("EXTERN_C BOOLEAN __stdcall StgConvertPropertyToVariant(const SERIALIZEDPROPERTYVALUE *pprop, USHORT CodePage, PROPVARIANT *pvar, PMemoryAllocator *pma);")
  380. cpp_quote("#endif")
  381. cpp_quote("")
  382. cpp_quote("#endif")