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