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