propidl.h 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134
  1. /*** Autogenerated by WIDL 7.7 from include/propidl.idl - Do not edit ***/
  2. #ifdef _WIN32
  3. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  4. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  5. #endif
  6. #include <rpc.h>
  7. #include <rpcndr.h>
  8. #endif
  9. #ifndef COM_NO_WINDOWS_H
  10. #include <windows.h>
  11. #include <ole2.h>
  12. #endif
  13. #ifndef __propidl_h__
  14. #define __propidl_h__
  15. /* Forward declarations */
  16. #ifndef __IPropertyStorage_FWD_DEFINED__
  17. #define __IPropertyStorage_FWD_DEFINED__
  18. typedef interface IPropertyStorage IPropertyStorage;
  19. #ifdef __cplusplus
  20. interface IPropertyStorage;
  21. #endif /* __cplusplus */
  22. #endif
  23. #ifndef __IPropertySetStorage_FWD_DEFINED__
  24. #define __IPropertySetStorage_FWD_DEFINED__
  25. typedef interface IPropertySetStorage IPropertySetStorage;
  26. #ifdef __cplusplus
  27. interface IPropertySetStorage;
  28. #endif /* __cplusplus */
  29. #endif
  30. #ifndef __IEnumSTATPROPSTG_FWD_DEFINED__
  31. #define __IEnumSTATPROPSTG_FWD_DEFINED__
  32. typedef interface IEnumSTATPROPSTG IEnumSTATPROPSTG;
  33. #ifdef __cplusplus
  34. interface IEnumSTATPROPSTG;
  35. #endif /* __cplusplus */
  36. #endif
  37. #ifndef __IEnumSTATPROPSETSTG_FWD_DEFINED__
  38. #define __IEnumSTATPROPSETSTG_FWD_DEFINED__
  39. typedef interface IEnumSTATPROPSETSTG IEnumSTATPROPSETSTG;
  40. #ifdef __cplusplus
  41. interface IEnumSTATPROPSETSTG;
  42. #endif /* __cplusplus */
  43. #endif
  44. /* Headers for imported files */
  45. #include <wtypes.h>
  46. #include <objidl.h>
  47. #include <oaidl.h>
  48. #ifdef __cplusplus
  49. extern "C" {
  50. #endif
  51. /**
  52. * This file is part of the mingw-w64 runtime package.
  53. * No warranty is given; refer to the file DISCLAIMER within this package.
  54. */
  55. #include <winapifamily.h>
  56. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
  57. #ifndef __IPropertyStorage_FWD_DEFINED__
  58. #define __IPropertyStorage_FWD_DEFINED__
  59. typedef interface IPropertyStorage IPropertyStorage;
  60. #ifdef __cplusplus
  61. interface IPropertyStorage;
  62. #endif /* __cplusplus */
  63. #endif
  64. #ifndef __IEnumSTATPROPSTG_FWD_DEFINED__
  65. #define __IEnumSTATPROPSTG_FWD_DEFINED__
  66. typedef interface IEnumSTATPROPSTG IEnumSTATPROPSTG;
  67. #ifdef __cplusplus
  68. interface IEnumSTATPROPSTG;
  69. #endif /* __cplusplus */
  70. #endif
  71. #ifndef __IEnumSTATPROPSETSTG_FWD_DEFINED__
  72. #define __IEnumSTATPROPSETSTG_FWD_DEFINED__
  73. typedef interface IEnumSTATPROPSETSTG IEnumSTATPROPSETSTG;
  74. #ifdef __cplusplus
  75. interface IEnumSTATPROPSETSTG;
  76. #endif /* __cplusplus */
  77. #endif
  78. typedef struct tagVersionedStream {
  79. GUID guidVersion;
  80. IStream *pStream;
  81. } VERSIONEDSTREAM;
  82. typedef struct tagVersionedStream *LPVERSIONEDSTREAM;
  83. #define PROPSETFLAG_DEFAULT (0)
  84. #define PROPSETFLAG_NONSIMPLE (1)
  85. #define PROPSETFLAG_ANSI (2)
  86. #define PROPSETFLAG_UNBUFFERED (4)
  87. #define PROPSETFLAG_CASE_SENSITIVE (8)
  88. #define PROPSET_BEHAVIOR_CASE_SENSITIVE (1)
  89. #if 0
  90. typedef struct tag_inner_PROPVARIANT PROPVARIANT;
  91. #else
  92. typedef struct tagPROPVARIANT PROPVARIANT;
  93. #endif
  94. typedef struct tagCAC {
  95. ULONG cElems;
  96. CHAR *pElems;
  97. } CAC;
  98. typedef struct tagCAUB {
  99. ULONG cElems;
  100. UCHAR *pElems;
  101. } CAUB;
  102. typedef struct tagCAI {
  103. ULONG cElems;
  104. SHORT *pElems;
  105. } CAI;
  106. typedef struct tagCAUI {
  107. ULONG cElems;
  108. USHORT *pElems;
  109. } CAUI;
  110. typedef struct tagCAL {
  111. ULONG cElems;
  112. LONG *pElems;
  113. } CAL;
  114. typedef struct tagCAUL {
  115. ULONG cElems;
  116. ULONG *pElems;
  117. } CAUL;
  118. typedef struct tagCAFLT {
  119. ULONG cElems;
  120. FLOAT *pElems;
  121. } CAFLT;
  122. typedef struct tagCADBL {
  123. ULONG cElems;
  124. DOUBLE *pElems;
  125. } CADBL;
  126. typedef struct tagCACY {
  127. ULONG cElems;
  128. CY *pElems;
  129. } CACY;
  130. typedef struct tagCADATE {
  131. ULONG cElems;
  132. DATE *pElems;
  133. } CADATE;
  134. typedef struct tagCABSTR {
  135. ULONG cElems;
  136. BSTR *pElems;
  137. } CABSTR;
  138. typedef struct tagCABSTRBLOB {
  139. ULONG cElems;
  140. BSTRBLOB *pElems;
  141. } CABSTRBLOB;
  142. typedef struct tagCABOOL {
  143. ULONG cElems;
  144. VARIANT_BOOL *pElems;
  145. } CABOOL;
  146. typedef struct tagCASCODE {
  147. ULONG cElems;
  148. SCODE *pElems;
  149. } CASCODE;
  150. typedef struct tagCAPROPVARIANT {
  151. ULONG cElems;
  152. PROPVARIANT *pElems;
  153. } CAPROPVARIANT;
  154. typedef struct tagCAH {
  155. ULONG cElems;
  156. LARGE_INTEGER *pElems;
  157. } CAH;
  158. typedef struct tagCAUH {
  159. ULONG cElems;
  160. ULARGE_INTEGER *pElems;
  161. } CAUH;
  162. typedef struct tagCALPSTR {
  163. ULONG cElems;
  164. LPSTR *pElems;
  165. } CALPSTR;
  166. typedef struct tagCALPWSTR {
  167. ULONG cElems;
  168. LPWSTR *pElems;
  169. } CALPWSTR;
  170. typedef struct tagCAFILETIME {
  171. ULONG cElems;
  172. FILETIME *pElems;
  173. } CAFILETIME;
  174. typedef struct tagCACLIPDATA {
  175. ULONG cElems;
  176. CLIPDATA *pElems;
  177. } CACLIPDATA;
  178. typedef struct tagCACLSID {
  179. ULONG cElems;
  180. CLSID *pElems;
  181. } CACLSID;
  182. #if 0
  183. typedef BYTE PROPVAR_PAD1;
  184. typedef BYTE PROPVAR_PAD2;
  185. typedef ULONG PROPVAR_PAD3;
  186. #else
  187. typedef WORD PROPVAR_PAD1;
  188. typedef WORD PROPVAR_PAD2;
  189. typedef WORD PROPVAR_PAD3;
  190. #define tag_inner_PROPVARIANT
  191. #endif
  192. struct tagPROPVARIANT {
  193. __C89_NAMELESS union {
  194. __C89_NAMELESS
  195. struct tag_inner_PROPVARIANT {
  196. VARTYPE vt;
  197. PROPVAR_PAD1 wReserved1;
  198. PROPVAR_PAD2 wReserved2;
  199. PROPVAR_PAD3 wReserved3;
  200. __C89_NAMELESS union {
  201. CHAR cVal;
  202. UCHAR bVal;
  203. SHORT iVal;
  204. USHORT uiVal;
  205. LONG lVal;
  206. ULONG ulVal;
  207. INT intVal;
  208. UINT uintVal;
  209. LARGE_INTEGER hVal;
  210. ULARGE_INTEGER uhVal;
  211. FLOAT fltVal;
  212. DOUBLE dblVal;
  213. VARIANT_BOOL boolVal;
  214. SCODE scode;
  215. CY cyVal;
  216. DATE date;
  217. FILETIME filetime;
  218. CLSID *puuid;
  219. CLIPDATA *pclipdata;
  220. BSTR bstrVal;
  221. BSTRBLOB bstrblobVal;
  222. BLOB blob;
  223. LPSTR pszVal;
  224. LPWSTR pwszVal;
  225. IUnknown *punkVal;
  226. IDispatch *pdispVal;
  227. IStream *pStream;
  228. IStorage *pStorage;
  229. LPVERSIONEDSTREAM pVersionedStream;
  230. LPSAFEARRAY parray;
  231. CAC cac;
  232. CAUB caub;
  233. CAI cai;
  234. CAUI caui;
  235. CAL cal;
  236. CAUL caul;
  237. CAH cah;
  238. CAUH cauh;
  239. CAFLT caflt;
  240. CADBL cadbl;
  241. CABOOL cabool;
  242. CASCODE cascode;
  243. CACY cacy;
  244. CADATE cadate;
  245. CAFILETIME cafiletime;
  246. CACLSID cauuid;
  247. CACLIPDATA caclipdata;
  248. CABSTR cabstr;
  249. CABSTRBLOB cabstrblob;
  250. CALPSTR calpstr;
  251. CALPWSTR calpwstr;
  252. CAPROPVARIANT capropvar;
  253. CHAR *pcVal;
  254. UCHAR *pbVal;
  255. SHORT *piVal;
  256. USHORT *puiVal;
  257. LONG *plVal;
  258. ULONG *pulVal;
  259. INT *pintVal;
  260. UINT *puintVal;
  261. FLOAT *pfltVal;
  262. DOUBLE *pdblVal;
  263. VARIANT_BOOL *pboolVal;
  264. DECIMAL *pdecVal;
  265. SCODE *pscode;
  266. CY *pcyVal;
  267. DATE *pdate;
  268. BSTR *pbstrVal;
  269. IUnknown **ppunkVal;
  270. IDispatch **ppdispVal;
  271. LPSAFEARRAY *pparray;
  272. PROPVARIANT *pvarVal;
  273. } __C89_NAMELESSUNIONNAME;
  274. };
  275. DECIMAL decVal;
  276. };
  277. };
  278. #if 0
  279. typedef struct tag_inner_PROPVARIANT *LPPROPVARIANT;
  280. typedef const PROPVARIANT *REFPROPVARIANT;
  281. #else
  282. typedef struct tagPROPVARIANT * LPPROPVARIANT;
  283. #ifndef _REFPROPVARIANT_DEFINED
  284. #define _REFPROPVARIANT_DEFINED
  285. #ifdef __cplusplus
  286. #define REFPROPVARIANT const PROPVARIANT &
  287. #else
  288. #define REFPROPVARIANT const PROPVARIANT * __MIDL_CONST
  289. #endif
  290. #endif
  291. #endif
  292. #define PID_DICTIONARY (0x0)
  293. #define PID_CODEPAGE (0x1)
  294. #define PID_FIRST_USABLE (0x2)
  295. #define PID_FIRST_NAME_DEFAULT (0xfff)
  296. #define PID_LOCALE (0x80000000)
  297. #define PID_MODIFY_TIME (0x80000001)
  298. #define PID_SECURITY (0x80000002)
  299. #define PID_BEHAVIOR (0x80000003)
  300. #define PID_ILLEGAL (0xffffffff)
  301. #define PID_MIN_READONLY (0x80000000)
  302. #define PID_MAX_READONLY (0xbfffffff)
  303. #endif
  304. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  305. #define PIDDI_THUMBNAIL __MSABI_LONG(0x2)
  306. #define PIDSI_TITLE __MSABI_LONG(0x2)
  307. #define PIDSI_SUBJECT __MSABI_LONG(0x3)
  308. #define PIDSI_AUTHOR __MSABI_LONG(0x4)
  309. #define PIDSI_KEYWORDS __MSABI_LONG(0x5)
  310. #define PIDSI_COMMENTS __MSABI_LONG(0x6)
  311. #define PIDSI_TEMPLATE __MSABI_LONG(0x7)
  312. #define PIDSI_LASTAUTHOR __MSABI_LONG(0x8)
  313. #define PIDSI_REVNUMBER __MSABI_LONG(0x9)
  314. #define PIDSI_EDITTIME __MSABI_LONG(0xa)
  315. #define PIDSI_LASTPRINTED __MSABI_LONG(0xb)
  316. #define PIDSI_CREATE_DTM __MSABI_LONG(0xc)
  317. #define PIDSI_LASTSAVE_DTM __MSABI_LONG(0xd)
  318. #define PIDSI_PAGECOUNT __MSABI_LONG(0xe)
  319. #define PIDSI_WORDCOUNT __MSABI_LONG(0xf)
  320. #define PIDSI_CHARCOUNT __MSABI_LONG(0x10)
  321. #define PIDSI_THUMBNAIL __MSABI_LONG(0x11)
  322. #define PIDSI_APPNAME __MSABI_LONG(0x12)
  323. #define PIDSI_DOC_SECURITY __MSABI_LONG(0x13)
  324. #define PIDDSI_CATEGORY 0x00000002
  325. #define PIDDSI_PRESFORMAT 0x00000003
  326. #define PIDDSI_BYTECOUNT 0x00000004
  327. #define PIDDSI_LINECOUNT 0x00000005
  328. #define PIDDSI_PARCOUNT 0x00000006
  329. #define PIDDSI_SLIDECOUNT 0x00000007
  330. #define PIDDSI_NOTECOUNT 0x00000008
  331. #define PIDDSI_HIDDENCOUNT 0x00000009
  332. #define PIDDSI_MMCLIPCOUNT 0x0000000A
  333. #define PIDDSI_SCALE 0x0000000B
  334. #define PIDDSI_HEADINGPAIR 0x0000000C
  335. #define PIDDSI_DOCPARTS 0x0000000D
  336. #define PIDDSI_MANAGER 0x0000000E
  337. #define PIDDSI_COMPANY 0x0000000F
  338. #define PIDDSI_LINKSDIRTY 0x00000010
  339. #define PIDMSI_EDITOR __MSABI_LONG(0x2)
  340. #define PIDMSI_SUPPLIER __MSABI_LONG(0x3)
  341. #define PIDMSI_SOURCE __MSABI_LONG(0x4)
  342. #define PIDMSI_SEQUENCE_NO __MSABI_LONG(0x5)
  343. #define PIDMSI_PROJECT __MSABI_LONG(0x6)
  344. #define PIDMSI_STATUS __MSABI_LONG(0x7)
  345. #define PIDMSI_OWNER __MSABI_LONG(0x8)
  346. #define PIDMSI_RATING __MSABI_LONG(0x9)
  347. #define PIDMSI_PRODUCTION __MSABI_LONG(0xa)
  348. #define PIDMSI_COPYRIGHT __MSABI_LONG(0xb)
  349. enum PIDMSI_STATUS_VALUE {
  350. PIDMSI_STATUS_NORMAL = 0,
  351. PIDMSI_STATUS_NEW = 1,
  352. PIDMSI_STATUS_PRELIM = 2,
  353. PIDMSI_STATUS_DRAFT = 3,
  354. PIDMSI_STATUS_INPROGRESS = 4,
  355. PIDMSI_STATUS_EDIT = 5,
  356. PIDMSI_STATUS_REVIEW = 6,
  357. PIDMSI_STATUS_PROOF = 7,
  358. PIDMSI_STATUS_FINAL = 8,
  359. PIDMSI_STATUS_OTHER = 0x7fff
  360. };
  361. #endif
  362. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
  363. #define PRSPEC_INVALID (0xffffffff)
  364. #define PRSPEC_LPWSTR (0)
  365. #define PRSPEC_PROPID (1)
  366. typedef struct tagPROPSPEC {
  367. ULONG ulKind;
  368. union {
  369. PROPID propid;
  370. LPOLESTR lpwstr;
  371. } DUMMYUNIONNAME;
  372. } PROPSPEC;
  373. typedef struct tagSTATPROPSTG {
  374. LPOLESTR lpwstrName;
  375. PROPID propid;
  376. VARTYPE vt;
  377. } STATPROPSTG;
  378. #define PROPSETHDR_OSVER_KIND(dwOSVer) HIWORD((dwOSVer))
  379. #define PROPSETHDR_OSVER_MAJOR(dwOSVer) LOBYTE(LOWORD((dwOSVer)))
  380. #define PROPSETHDR_OSVER_MINOR(dwOSVer) HIBYTE(LOWORD((dwOSVer)))
  381. #define PROPSETHDR_OSVERSION_UNKNOWN 0xffffffff
  382. typedef struct tagSTATPROPSETSTG {
  383. FMTID fmtid;
  384. CLSID clsid;
  385. DWORD grfFlags;
  386. FILETIME mtime;
  387. FILETIME ctime;
  388. FILETIME atime;
  389. DWORD dwOSVersion;
  390. } STATPROPSETSTG;
  391. /*****************************************************************************
  392. * IPropertyStorage interface
  393. */
  394. #ifndef __IPropertyStorage_INTERFACE_DEFINED__
  395. #define __IPropertyStorage_INTERFACE_DEFINED__
  396. DEFINE_GUID(IID_IPropertyStorage, 0x00000138, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  397. #if defined(__cplusplus) && !defined(CINTERFACE)
  398. MIDL_INTERFACE("00000138-0000-0000-c000-000000000046")
  399. IPropertyStorage : public IUnknown
  400. {
  401. virtual HRESULT STDMETHODCALLTYPE ReadMultiple(
  402. ULONG cpspec,
  403. const PROPSPEC rgpspec[],
  404. PROPVARIANT rgpropvar[]) = 0;
  405. virtual HRESULT STDMETHODCALLTYPE WriteMultiple(
  406. ULONG cpspec,
  407. const PROPSPEC rgpspec[],
  408. const PROPVARIANT rgpropvar[],
  409. PROPID propidNameFirst) = 0;
  410. virtual HRESULT STDMETHODCALLTYPE DeleteMultiple(
  411. ULONG cpspec,
  412. const PROPSPEC rgpspec[]) = 0;
  413. virtual HRESULT STDMETHODCALLTYPE ReadPropertyNames(
  414. ULONG cpropid,
  415. const PROPID rgpropid[],
  416. LPOLESTR rglpwstrName[]) = 0;
  417. virtual HRESULT STDMETHODCALLTYPE WritePropertyNames(
  418. ULONG cpropid,
  419. const PROPID rgpropid[],
  420. const LPOLESTR rglpwstrName[]) = 0;
  421. virtual HRESULT STDMETHODCALLTYPE DeletePropertyNames(
  422. ULONG cpropid,
  423. const PROPID rgpropid[]) = 0;
  424. virtual HRESULT STDMETHODCALLTYPE Commit(
  425. DWORD grfCommitFlags) = 0;
  426. virtual HRESULT STDMETHODCALLTYPE Revert(
  427. ) = 0;
  428. virtual HRESULT STDMETHODCALLTYPE Enum(
  429. IEnumSTATPROPSTG **ppenum) = 0;
  430. virtual HRESULT STDMETHODCALLTYPE SetTimes(
  431. const FILETIME *pctime,
  432. const FILETIME *patime,
  433. const FILETIME *pmtime) = 0;
  434. virtual HRESULT STDMETHODCALLTYPE SetClass(
  435. REFCLSID clsid) = 0;
  436. virtual HRESULT STDMETHODCALLTYPE Stat(
  437. STATPROPSETSTG *pstatpsstg) = 0;
  438. };
  439. #ifdef __CRT_UUID_DECL
  440. __CRT_UUID_DECL(IPropertyStorage, 0x00000138, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  441. #endif
  442. #else
  443. typedef struct IPropertyStorageVtbl {
  444. BEGIN_INTERFACE
  445. /*** IUnknown methods ***/
  446. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  447. IPropertyStorage *This,
  448. REFIID riid,
  449. void **ppvObject);
  450. ULONG (STDMETHODCALLTYPE *AddRef)(
  451. IPropertyStorage *This);
  452. ULONG (STDMETHODCALLTYPE *Release)(
  453. IPropertyStorage *This);
  454. /*** IPropertyStorage methods ***/
  455. HRESULT (STDMETHODCALLTYPE *ReadMultiple)(
  456. IPropertyStorage *This,
  457. ULONG cpspec,
  458. const PROPSPEC rgpspec[],
  459. PROPVARIANT rgpropvar[]);
  460. HRESULT (STDMETHODCALLTYPE *WriteMultiple)(
  461. IPropertyStorage *This,
  462. ULONG cpspec,
  463. const PROPSPEC rgpspec[],
  464. const PROPVARIANT rgpropvar[],
  465. PROPID propidNameFirst);
  466. HRESULT (STDMETHODCALLTYPE *DeleteMultiple)(
  467. IPropertyStorage *This,
  468. ULONG cpspec,
  469. const PROPSPEC rgpspec[]);
  470. HRESULT (STDMETHODCALLTYPE *ReadPropertyNames)(
  471. IPropertyStorage *This,
  472. ULONG cpropid,
  473. const PROPID rgpropid[],
  474. LPOLESTR rglpwstrName[]);
  475. HRESULT (STDMETHODCALLTYPE *WritePropertyNames)(
  476. IPropertyStorage *This,
  477. ULONG cpropid,
  478. const PROPID rgpropid[],
  479. const LPOLESTR rglpwstrName[]);
  480. HRESULT (STDMETHODCALLTYPE *DeletePropertyNames)(
  481. IPropertyStorage *This,
  482. ULONG cpropid,
  483. const PROPID rgpropid[]);
  484. HRESULT (STDMETHODCALLTYPE *Commit)(
  485. IPropertyStorage *This,
  486. DWORD grfCommitFlags);
  487. HRESULT (STDMETHODCALLTYPE *Revert)(
  488. IPropertyStorage *This);
  489. HRESULT (STDMETHODCALLTYPE *Enum)(
  490. IPropertyStorage *This,
  491. IEnumSTATPROPSTG **ppenum);
  492. HRESULT (STDMETHODCALLTYPE *SetTimes)(
  493. IPropertyStorage *This,
  494. const FILETIME *pctime,
  495. const FILETIME *patime,
  496. const FILETIME *pmtime);
  497. HRESULT (STDMETHODCALLTYPE *SetClass)(
  498. IPropertyStorage *This,
  499. REFCLSID clsid);
  500. HRESULT (STDMETHODCALLTYPE *Stat)(
  501. IPropertyStorage *This,
  502. STATPROPSETSTG *pstatpsstg);
  503. END_INTERFACE
  504. } IPropertyStorageVtbl;
  505. interface IPropertyStorage {
  506. CONST_VTBL IPropertyStorageVtbl* lpVtbl;
  507. };
  508. #ifdef COBJMACROS
  509. #ifndef WIDL_C_INLINE_WRAPPERS
  510. /*** IUnknown methods ***/
  511. #define IPropertyStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  512. #define IPropertyStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
  513. #define IPropertyStorage_Release(This) (This)->lpVtbl->Release(This)
  514. /*** IPropertyStorage methods ***/
  515. #define IPropertyStorage_ReadMultiple(This,cpspec,rgpspec,rgpropvar) (This)->lpVtbl->ReadMultiple(This,cpspec,rgpspec,rgpropvar)
  516. #define IPropertyStorage_WriteMultiple(This,cpspec,rgpspec,rgpropvar,propidNameFirst) (This)->lpVtbl->WriteMultiple(This,cpspec,rgpspec,rgpropvar,propidNameFirst)
  517. #define IPropertyStorage_DeleteMultiple(This,cpspec,rgpspec) (This)->lpVtbl->DeleteMultiple(This,cpspec,rgpspec)
  518. #define IPropertyStorage_ReadPropertyNames(This,cpropid,rgpropid,rglpwstrName) (This)->lpVtbl->ReadPropertyNames(This,cpropid,rgpropid,rglpwstrName)
  519. #define IPropertyStorage_WritePropertyNames(This,cpropid,rgpropid,rglpwstrName) (This)->lpVtbl->WritePropertyNames(This,cpropid,rgpropid,rglpwstrName)
  520. #define IPropertyStorage_DeletePropertyNames(This,cpropid,rgpropid) (This)->lpVtbl->DeletePropertyNames(This,cpropid,rgpropid)
  521. #define IPropertyStorage_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
  522. #define IPropertyStorage_Revert(This) (This)->lpVtbl->Revert(This)
  523. #define IPropertyStorage_Enum(This,ppenum) (This)->lpVtbl->Enum(This,ppenum)
  524. #define IPropertyStorage_SetTimes(This,pctime,patime,pmtime) (This)->lpVtbl->SetTimes(This,pctime,patime,pmtime)
  525. #define IPropertyStorage_SetClass(This,clsid) (This)->lpVtbl->SetClass(This,clsid)
  526. #define IPropertyStorage_Stat(This,pstatpsstg) (This)->lpVtbl->Stat(This,pstatpsstg)
  527. #else
  528. /*** IUnknown methods ***/
  529. static FORCEINLINE HRESULT IPropertyStorage_QueryInterface(IPropertyStorage* This,REFIID riid,void **ppvObject) {
  530. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  531. }
  532. static FORCEINLINE ULONG IPropertyStorage_AddRef(IPropertyStorage* This) {
  533. return This->lpVtbl->AddRef(This);
  534. }
  535. static FORCEINLINE ULONG IPropertyStorage_Release(IPropertyStorage* This) {
  536. return This->lpVtbl->Release(This);
  537. }
  538. /*** IPropertyStorage methods ***/
  539. static FORCEINLINE HRESULT IPropertyStorage_ReadMultiple(IPropertyStorage* This,ULONG cpspec,const PROPSPEC rgpspec[],PROPVARIANT rgpropvar[]) {
  540. return This->lpVtbl->ReadMultiple(This,cpspec,rgpspec,rgpropvar);
  541. }
  542. static FORCEINLINE HRESULT IPropertyStorage_WriteMultiple(IPropertyStorage* This,ULONG cpspec,const PROPSPEC rgpspec[],const PROPVARIANT rgpropvar[],PROPID propidNameFirst) {
  543. return This->lpVtbl->WriteMultiple(This,cpspec,rgpspec,rgpropvar,propidNameFirst);
  544. }
  545. static FORCEINLINE HRESULT IPropertyStorage_DeleteMultiple(IPropertyStorage* This,ULONG cpspec,const PROPSPEC rgpspec[]) {
  546. return This->lpVtbl->DeleteMultiple(This,cpspec,rgpspec);
  547. }
  548. static FORCEINLINE HRESULT IPropertyStorage_ReadPropertyNames(IPropertyStorage* This,ULONG cpropid,const PROPID rgpropid[],LPOLESTR rglpwstrName[]) {
  549. return This->lpVtbl->ReadPropertyNames(This,cpropid,rgpropid,rglpwstrName);
  550. }
  551. static FORCEINLINE HRESULT IPropertyStorage_WritePropertyNames(IPropertyStorage* This,ULONG cpropid,const PROPID rgpropid[],const LPOLESTR rglpwstrName[]) {
  552. return This->lpVtbl->WritePropertyNames(This,cpropid,rgpropid,rglpwstrName);
  553. }
  554. static FORCEINLINE HRESULT IPropertyStorage_DeletePropertyNames(IPropertyStorage* This,ULONG cpropid,const PROPID rgpropid[]) {
  555. return This->lpVtbl->DeletePropertyNames(This,cpropid,rgpropid);
  556. }
  557. static FORCEINLINE HRESULT IPropertyStorage_Commit(IPropertyStorage* This,DWORD grfCommitFlags) {
  558. return This->lpVtbl->Commit(This,grfCommitFlags);
  559. }
  560. static FORCEINLINE HRESULT IPropertyStorage_Revert(IPropertyStorage* This) {
  561. return This->lpVtbl->Revert(This);
  562. }
  563. static FORCEINLINE HRESULT IPropertyStorage_Enum(IPropertyStorage* This,IEnumSTATPROPSTG **ppenum) {
  564. return This->lpVtbl->Enum(This,ppenum);
  565. }
  566. static FORCEINLINE HRESULT IPropertyStorage_SetTimes(IPropertyStorage* This,const FILETIME *pctime,const FILETIME *patime,const FILETIME *pmtime) {
  567. return This->lpVtbl->SetTimes(This,pctime,patime,pmtime);
  568. }
  569. static FORCEINLINE HRESULT IPropertyStorage_SetClass(IPropertyStorage* This,REFCLSID clsid) {
  570. return This->lpVtbl->SetClass(This,clsid);
  571. }
  572. static FORCEINLINE HRESULT IPropertyStorage_Stat(IPropertyStorage* This,STATPROPSETSTG *pstatpsstg) {
  573. return This->lpVtbl->Stat(This,pstatpsstg);
  574. }
  575. #endif
  576. #endif
  577. #endif
  578. #endif /* __IPropertyStorage_INTERFACE_DEFINED__ */
  579. /*****************************************************************************
  580. * IPropertySetStorage interface
  581. */
  582. #ifndef __IPropertySetStorage_INTERFACE_DEFINED__
  583. #define __IPropertySetStorage_INTERFACE_DEFINED__
  584. typedef IPropertySetStorage *LPPROPERTYSETSTORAGE;
  585. DEFINE_GUID(IID_IPropertySetStorage, 0x0000013a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  586. #if defined(__cplusplus) && !defined(CINTERFACE)
  587. MIDL_INTERFACE("0000013a-0000-0000-c000-000000000046")
  588. IPropertySetStorage : public IUnknown
  589. {
  590. virtual HRESULT STDMETHODCALLTYPE Create(
  591. REFFMTID rfmtid,
  592. const CLSID *pclsid,
  593. DWORD grfFlags,
  594. DWORD grfMode,
  595. IPropertyStorage **ppprstg) = 0;
  596. virtual HRESULT STDMETHODCALLTYPE Open(
  597. REFFMTID rfmtid,
  598. DWORD grfMode,
  599. IPropertyStorage **ppprstg) = 0;
  600. virtual HRESULT STDMETHODCALLTYPE Delete(
  601. REFFMTID rfmtid) = 0;
  602. virtual HRESULT STDMETHODCALLTYPE Enum(
  603. IEnumSTATPROPSETSTG **ppenum) = 0;
  604. };
  605. #ifdef __CRT_UUID_DECL
  606. __CRT_UUID_DECL(IPropertySetStorage, 0x0000013a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  607. #endif
  608. #else
  609. typedef struct IPropertySetStorageVtbl {
  610. BEGIN_INTERFACE
  611. /*** IUnknown methods ***/
  612. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  613. IPropertySetStorage *This,
  614. REFIID riid,
  615. void **ppvObject);
  616. ULONG (STDMETHODCALLTYPE *AddRef)(
  617. IPropertySetStorage *This);
  618. ULONG (STDMETHODCALLTYPE *Release)(
  619. IPropertySetStorage *This);
  620. /*** IPropertySetStorage methods ***/
  621. HRESULT (STDMETHODCALLTYPE *Create)(
  622. IPropertySetStorage *This,
  623. REFFMTID rfmtid,
  624. const CLSID *pclsid,
  625. DWORD grfFlags,
  626. DWORD grfMode,
  627. IPropertyStorage **ppprstg);
  628. HRESULT (STDMETHODCALLTYPE *Open)(
  629. IPropertySetStorage *This,
  630. REFFMTID rfmtid,
  631. DWORD grfMode,
  632. IPropertyStorage **ppprstg);
  633. HRESULT (STDMETHODCALLTYPE *Delete)(
  634. IPropertySetStorage *This,
  635. REFFMTID rfmtid);
  636. HRESULT (STDMETHODCALLTYPE *Enum)(
  637. IPropertySetStorage *This,
  638. IEnumSTATPROPSETSTG **ppenum);
  639. END_INTERFACE
  640. } IPropertySetStorageVtbl;
  641. interface IPropertySetStorage {
  642. CONST_VTBL IPropertySetStorageVtbl* lpVtbl;
  643. };
  644. #ifdef COBJMACROS
  645. #ifndef WIDL_C_INLINE_WRAPPERS
  646. /*** IUnknown methods ***/
  647. #define IPropertySetStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  648. #define IPropertySetStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
  649. #define IPropertySetStorage_Release(This) (This)->lpVtbl->Release(This)
  650. /*** IPropertySetStorage methods ***/
  651. #define IPropertySetStorage_Create(This,rfmtid,pclsid,grfFlags,grfMode,ppprstg) (This)->lpVtbl->Create(This,rfmtid,pclsid,grfFlags,grfMode,ppprstg)
  652. #define IPropertySetStorage_Open(This,rfmtid,grfMode,ppprstg) (This)->lpVtbl->Open(This,rfmtid,grfMode,ppprstg)
  653. #define IPropertySetStorage_Delete(This,rfmtid) (This)->lpVtbl->Delete(This,rfmtid)
  654. #define IPropertySetStorage_Enum(This,ppenum) (This)->lpVtbl->Enum(This,ppenum)
  655. #else
  656. /*** IUnknown methods ***/
  657. static FORCEINLINE HRESULT IPropertySetStorage_QueryInterface(IPropertySetStorage* This,REFIID riid,void **ppvObject) {
  658. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  659. }
  660. static FORCEINLINE ULONG IPropertySetStorage_AddRef(IPropertySetStorage* This) {
  661. return This->lpVtbl->AddRef(This);
  662. }
  663. static FORCEINLINE ULONG IPropertySetStorage_Release(IPropertySetStorage* This) {
  664. return This->lpVtbl->Release(This);
  665. }
  666. /*** IPropertySetStorage methods ***/
  667. static FORCEINLINE HRESULT IPropertySetStorage_Create(IPropertySetStorage* This,REFFMTID rfmtid,const CLSID *pclsid,DWORD grfFlags,DWORD grfMode,IPropertyStorage **ppprstg) {
  668. return This->lpVtbl->Create(This,rfmtid,pclsid,grfFlags,grfMode,ppprstg);
  669. }
  670. static FORCEINLINE HRESULT IPropertySetStorage_Open(IPropertySetStorage* This,REFFMTID rfmtid,DWORD grfMode,IPropertyStorage **ppprstg) {
  671. return This->lpVtbl->Open(This,rfmtid,grfMode,ppprstg);
  672. }
  673. static FORCEINLINE HRESULT IPropertySetStorage_Delete(IPropertySetStorage* This,REFFMTID rfmtid) {
  674. return This->lpVtbl->Delete(This,rfmtid);
  675. }
  676. static FORCEINLINE HRESULT IPropertySetStorage_Enum(IPropertySetStorage* This,IEnumSTATPROPSETSTG **ppenum) {
  677. return This->lpVtbl->Enum(This,ppenum);
  678. }
  679. #endif
  680. #endif
  681. #endif
  682. #endif /* __IPropertySetStorage_INTERFACE_DEFINED__ */
  683. /*****************************************************************************
  684. * IEnumSTATPROPSTG interface
  685. */
  686. #ifndef __IEnumSTATPROPSTG_INTERFACE_DEFINED__
  687. #define __IEnumSTATPROPSTG_INTERFACE_DEFINED__
  688. typedef IEnumSTATPROPSTG *LPENUMSTATPROPSTG;
  689. DEFINE_GUID(IID_IEnumSTATPROPSTG, 0x00000139, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  690. #if defined(__cplusplus) && !defined(CINTERFACE)
  691. MIDL_INTERFACE("00000139-0000-0000-c000-000000000046")
  692. IEnumSTATPROPSTG : public IUnknown
  693. {
  694. virtual HRESULT STDMETHODCALLTYPE Next(
  695. ULONG celt,
  696. STATPROPSTG *rgelt,
  697. ULONG *pceltFetched) = 0;
  698. virtual HRESULT STDMETHODCALLTYPE Skip(
  699. ULONG celt) = 0;
  700. virtual HRESULT STDMETHODCALLTYPE Reset(
  701. ) = 0;
  702. virtual HRESULT STDMETHODCALLTYPE Clone(
  703. IEnumSTATPROPSTG **ppenum) = 0;
  704. };
  705. #ifdef __CRT_UUID_DECL
  706. __CRT_UUID_DECL(IEnumSTATPROPSTG, 0x00000139, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  707. #endif
  708. #else
  709. typedef struct IEnumSTATPROPSTGVtbl {
  710. BEGIN_INTERFACE
  711. /*** IUnknown methods ***/
  712. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  713. IEnumSTATPROPSTG *This,
  714. REFIID riid,
  715. void **ppvObject);
  716. ULONG (STDMETHODCALLTYPE *AddRef)(
  717. IEnumSTATPROPSTG *This);
  718. ULONG (STDMETHODCALLTYPE *Release)(
  719. IEnumSTATPROPSTG *This);
  720. /*** IEnumSTATPROPSTG methods ***/
  721. HRESULT (STDMETHODCALLTYPE *Next)(
  722. IEnumSTATPROPSTG *This,
  723. ULONG celt,
  724. STATPROPSTG *rgelt,
  725. ULONG *pceltFetched);
  726. HRESULT (STDMETHODCALLTYPE *Skip)(
  727. IEnumSTATPROPSTG *This,
  728. ULONG celt);
  729. HRESULT (STDMETHODCALLTYPE *Reset)(
  730. IEnumSTATPROPSTG *This);
  731. HRESULT (STDMETHODCALLTYPE *Clone)(
  732. IEnumSTATPROPSTG *This,
  733. IEnumSTATPROPSTG **ppenum);
  734. END_INTERFACE
  735. } IEnumSTATPROPSTGVtbl;
  736. interface IEnumSTATPROPSTG {
  737. CONST_VTBL IEnumSTATPROPSTGVtbl* lpVtbl;
  738. };
  739. #ifdef COBJMACROS
  740. #ifndef WIDL_C_INLINE_WRAPPERS
  741. /*** IUnknown methods ***/
  742. #define IEnumSTATPROPSTG_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  743. #define IEnumSTATPROPSTG_AddRef(This) (This)->lpVtbl->AddRef(This)
  744. #define IEnumSTATPROPSTG_Release(This) (This)->lpVtbl->Release(This)
  745. /*** IEnumSTATPROPSTG methods ***/
  746. #define IEnumSTATPROPSTG_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
  747. #define IEnumSTATPROPSTG_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
  748. #define IEnumSTATPROPSTG_Reset(This) (This)->lpVtbl->Reset(This)
  749. #define IEnumSTATPROPSTG_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
  750. #else
  751. /*** IUnknown methods ***/
  752. static FORCEINLINE HRESULT IEnumSTATPROPSTG_QueryInterface(IEnumSTATPROPSTG* This,REFIID riid,void **ppvObject) {
  753. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  754. }
  755. static FORCEINLINE ULONG IEnumSTATPROPSTG_AddRef(IEnumSTATPROPSTG* This) {
  756. return This->lpVtbl->AddRef(This);
  757. }
  758. static FORCEINLINE ULONG IEnumSTATPROPSTG_Release(IEnumSTATPROPSTG* This) {
  759. return This->lpVtbl->Release(This);
  760. }
  761. /*** IEnumSTATPROPSTG methods ***/
  762. static FORCEINLINE HRESULT IEnumSTATPROPSTG_Next(IEnumSTATPROPSTG* This,ULONG celt,STATPROPSTG *rgelt,ULONG *pceltFetched) {
  763. return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
  764. }
  765. static FORCEINLINE HRESULT IEnumSTATPROPSTG_Skip(IEnumSTATPROPSTG* This,ULONG celt) {
  766. return This->lpVtbl->Skip(This,celt);
  767. }
  768. static FORCEINLINE HRESULT IEnumSTATPROPSTG_Reset(IEnumSTATPROPSTG* This) {
  769. return This->lpVtbl->Reset(This);
  770. }
  771. static FORCEINLINE HRESULT IEnumSTATPROPSTG_Clone(IEnumSTATPROPSTG* This,IEnumSTATPROPSTG **ppenum) {
  772. return This->lpVtbl->Clone(This,ppenum);
  773. }
  774. #endif
  775. #endif
  776. #endif
  777. HRESULT STDMETHODCALLTYPE IEnumSTATPROPSTG_RemoteNext_Proxy(
  778. IEnumSTATPROPSTG* This,
  779. ULONG celt,
  780. STATPROPSTG *rgelt,
  781. ULONG *pceltFetched);
  782. void __RPC_STUB IEnumSTATPROPSTG_RemoteNext_Stub(
  783. IRpcStubBuffer* This,
  784. IRpcChannelBuffer* pRpcChannelBuffer,
  785. PRPC_MESSAGE pRpcMessage,
  786. DWORD* pdwStubPhase);
  787. HRESULT CALLBACK IEnumSTATPROPSTG_Next_Proxy(
  788. IEnumSTATPROPSTG* This,
  789. ULONG celt,
  790. STATPROPSTG *rgelt,
  791. ULONG *pceltFetched);
  792. HRESULT __RPC_STUB IEnumSTATPROPSTG_Next_Stub(
  793. IEnumSTATPROPSTG* This,
  794. ULONG celt,
  795. STATPROPSTG *rgelt,
  796. ULONG *pceltFetched);
  797. #endif /* __IEnumSTATPROPSTG_INTERFACE_DEFINED__ */
  798. /*****************************************************************************
  799. * IEnumSTATPROPSETSTG interface
  800. */
  801. #ifndef __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__
  802. #define __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__
  803. typedef IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG;
  804. DEFINE_GUID(IID_IEnumSTATPROPSETSTG, 0x0000013b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  805. #if defined(__cplusplus) && !defined(CINTERFACE)
  806. MIDL_INTERFACE("0000013b-0000-0000-c000-000000000046")
  807. IEnumSTATPROPSETSTG : public IUnknown
  808. {
  809. virtual HRESULT STDMETHODCALLTYPE Next(
  810. ULONG celt,
  811. STATPROPSETSTG *rgelt,
  812. ULONG *pceltFetched) = 0;
  813. virtual HRESULT STDMETHODCALLTYPE Skip(
  814. ULONG celt) = 0;
  815. virtual HRESULT STDMETHODCALLTYPE Reset(
  816. ) = 0;
  817. virtual HRESULT STDMETHODCALLTYPE Clone(
  818. IEnumSTATPROPSETSTG **ppenum) = 0;
  819. };
  820. #ifdef __CRT_UUID_DECL
  821. __CRT_UUID_DECL(IEnumSTATPROPSETSTG, 0x0000013b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  822. #endif
  823. #else
  824. typedef struct IEnumSTATPROPSETSTGVtbl {
  825. BEGIN_INTERFACE
  826. /*** IUnknown methods ***/
  827. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  828. IEnumSTATPROPSETSTG *This,
  829. REFIID riid,
  830. void **ppvObject);
  831. ULONG (STDMETHODCALLTYPE *AddRef)(
  832. IEnumSTATPROPSETSTG *This);
  833. ULONG (STDMETHODCALLTYPE *Release)(
  834. IEnumSTATPROPSETSTG *This);
  835. /*** IEnumSTATPROPSETSTG methods ***/
  836. HRESULT (STDMETHODCALLTYPE *Next)(
  837. IEnumSTATPROPSETSTG *This,
  838. ULONG celt,
  839. STATPROPSETSTG *rgelt,
  840. ULONG *pceltFetched);
  841. HRESULT (STDMETHODCALLTYPE *Skip)(
  842. IEnumSTATPROPSETSTG *This,
  843. ULONG celt);
  844. HRESULT (STDMETHODCALLTYPE *Reset)(
  845. IEnumSTATPROPSETSTG *This);
  846. HRESULT (STDMETHODCALLTYPE *Clone)(
  847. IEnumSTATPROPSETSTG *This,
  848. IEnumSTATPROPSETSTG **ppenum);
  849. END_INTERFACE
  850. } IEnumSTATPROPSETSTGVtbl;
  851. interface IEnumSTATPROPSETSTG {
  852. CONST_VTBL IEnumSTATPROPSETSTGVtbl* lpVtbl;
  853. };
  854. #ifdef COBJMACROS
  855. #ifndef WIDL_C_INLINE_WRAPPERS
  856. /*** IUnknown methods ***/
  857. #define IEnumSTATPROPSETSTG_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  858. #define IEnumSTATPROPSETSTG_AddRef(This) (This)->lpVtbl->AddRef(This)
  859. #define IEnumSTATPROPSETSTG_Release(This) (This)->lpVtbl->Release(This)
  860. /*** IEnumSTATPROPSETSTG methods ***/
  861. #define IEnumSTATPROPSETSTG_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
  862. #define IEnumSTATPROPSETSTG_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
  863. #define IEnumSTATPROPSETSTG_Reset(This) (This)->lpVtbl->Reset(This)
  864. #define IEnumSTATPROPSETSTG_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
  865. #else
  866. /*** IUnknown methods ***/
  867. static FORCEINLINE HRESULT IEnumSTATPROPSETSTG_QueryInterface(IEnumSTATPROPSETSTG* This,REFIID riid,void **ppvObject) {
  868. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  869. }
  870. static FORCEINLINE ULONG IEnumSTATPROPSETSTG_AddRef(IEnumSTATPROPSETSTG* This) {
  871. return This->lpVtbl->AddRef(This);
  872. }
  873. static FORCEINLINE ULONG IEnumSTATPROPSETSTG_Release(IEnumSTATPROPSETSTG* This) {
  874. return This->lpVtbl->Release(This);
  875. }
  876. /*** IEnumSTATPROPSETSTG methods ***/
  877. static FORCEINLINE HRESULT IEnumSTATPROPSETSTG_Next(IEnumSTATPROPSETSTG* This,ULONG celt,STATPROPSETSTG *rgelt,ULONG *pceltFetched) {
  878. return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
  879. }
  880. static FORCEINLINE HRESULT IEnumSTATPROPSETSTG_Skip(IEnumSTATPROPSETSTG* This,ULONG celt) {
  881. return This->lpVtbl->Skip(This,celt);
  882. }
  883. static FORCEINLINE HRESULT IEnumSTATPROPSETSTG_Reset(IEnumSTATPROPSETSTG* This) {
  884. return This->lpVtbl->Reset(This);
  885. }
  886. static FORCEINLINE HRESULT IEnumSTATPROPSETSTG_Clone(IEnumSTATPROPSETSTG* This,IEnumSTATPROPSETSTG **ppenum) {
  887. return This->lpVtbl->Clone(This,ppenum);
  888. }
  889. #endif
  890. #endif
  891. #endif
  892. HRESULT STDMETHODCALLTYPE IEnumSTATPROPSETSTG_RemoteNext_Proxy(
  893. IEnumSTATPROPSETSTG* This,
  894. ULONG celt,
  895. STATPROPSETSTG *rgelt,
  896. ULONG *pceltFetched);
  897. void __RPC_STUB IEnumSTATPROPSETSTG_RemoteNext_Stub(
  898. IRpcStubBuffer* This,
  899. IRpcChannelBuffer* pRpcChannelBuffer,
  900. PRPC_MESSAGE pRpcMessage,
  901. DWORD* pdwStubPhase);
  902. HRESULT CALLBACK IEnumSTATPROPSETSTG_Next_Proxy(
  903. IEnumSTATPROPSETSTG* This,
  904. ULONG celt,
  905. STATPROPSETSTG *rgelt,
  906. ULONG *pceltFetched);
  907. HRESULT __RPC_STUB IEnumSTATPROPSETSTG_Next_Stub(
  908. IEnumSTATPROPSETSTG* This,
  909. ULONG celt,
  910. STATPROPSETSTG *rgelt,
  911. ULONG *pceltFetched);
  912. #endif /* __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__ */
  913. typedef IPropertyStorage *LPPROPERTYSTORAGE;
  914. WINOLEAPI PropVariantCopy(PROPVARIANT *pvarDest,const PROPVARIANT *pvarSrc);
  915. WINOLEAPI PropVariantClear(PROPVARIANT *pvar);
  916. WINOLEAPI FreePropVariantArray(ULONG cVariants, PROPVARIANT *rgvars);
  917. #define _PROPVARIANTINIT_DEFINED_
  918. #ifdef __cplusplus
  919. inline void PropVariantInit (PROPVARIANT *pvar) { memset (pvar, 0, sizeof (PROPVARIANT)); }
  920. #else
  921. #define PropVariantInit(pvar) memset ((pvar), 0, sizeof (PROPVARIANT))
  922. #endif
  923. #ifndef _STGCREATEPROPSTG_DEFINED_
  924. WINOLEAPI StgCreatePropStg(IUnknown *pUnk, REFFMTID fmtid, const CLSID *pclsid, DWORD grfFlags, DWORD dwReserved, IPropertyStorage **ppPropStg);
  925. WINOLEAPI StgOpenPropStg(IUnknown *pUnk, REFFMTID fmtid, DWORD grfFlags, DWORD dwReserved, IPropertyStorage **ppPropStg);
  926. WINOLEAPI StgCreatePropSetStg(IStorage *pStorage, DWORD dwReserved, IPropertySetStorage **ppPropSetStg);
  927. #define CCH_MAX_PROPSTG_NAME 31
  928. WINOLEAPI FmtIdToPropStgName(const FMTID *pfmtid, LPOLESTR oszName);
  929. WINOLEAPI PropStgNameToFmtId(const LPOLESTR oszName, FMTID *pfmtid);
  930. #endif
  931. #ifndef _SERIALIZEDPROPERTYVALUE_DEFINED_
  932. #define _SERIALIZEDPROPERTYVALUE_DEFINED_
  933. typedef struct tagSERIALIZEDPROPERTYVALUE {
  934. DWORD dwType;
  935. BYTE rgb[1];
  936. } SERIALIZEDPROPERTYVALUE;
  937. #endif
  938. #endif
  939. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  940. EXTERN_C SERIALIZEDPROPERTYVALUE * __stdcall StgConvertVariantToProperty(const PROPVARIANT *pvar, USHORT CodePage, SERIALIZEDPROPERTYVALUE *pprop, ULONG *pcb, PROPID pid, BOOLEAN fReserved, ULONG *pcIndirect);
  941. #ifdef __cplusplus
  942. class PMemoryAllocator;
  943. EXTERN_C BOOLEAN __stdcall StgConvertPropertyToVariant(const SERIALIZEDPROPERTYVALUE *pprop, USHORT CodePage, PROPVARIANT *pvar, PMemoryAllocator *pma);
  944. #endif
  945. #endif
  946. /* Begin additional prototypes for all interfaces */
  947. ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *);
  948. unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *);
  949. unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
  950. void __RPC_USER BSTR_UserFree (ULONG *, BSTR *);
  951. ULONG __RPC_USER LPSAFEARRAY_UserSize (ULONG *, ULONG, LPSAFEARRAY *);
  952. unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal (ULONG *, unsigned char *, LPSAFEARRAY *);
  953. unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(ULONG *, unsigned char *, LPSAFEARRAY *);
  954. void __RPC_USER LPSAFEARRAY_UserFree (ULONG *, LPSAFEARRAY *);
  955. /* End additional prototypes */
  956. #ifdef __cplusplus
  957. }
  958. #endif
  959. #endif /* __propidl_h__ */