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