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