1/*** Autogenerated by WIDL 1.5.25 from include/propidl.idl - Do not edit ***/
2
3#ifndef __REQUIRED_RPCNDR_H_VERSION__
4#define __REQUIRED_RPCNDR_H_VERSION__ 475
5#endif
6
7#include <rpc.h>
8#include <rpcndr.h>
9
10#ifndef COM_NO_WINDOWS_H
11#include <windows.h>
12#include <ole2.h>
13#endif
14
15#ifndef __propidl_h__
16#define __propidl_h__
17
18/* Forward declarations */
19
20/* Headers for imported files */
21
22#include <objidl.h>
23#include <oaidl.h>
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
29#ifndef __IPropertyStorage_FWD_DEFINED__
30#define __IPropertyStorage_FWD_DEFINED__
31typedef struct IPropertyStorage IPropertyStorage;
32#endif
33
34#ifndef __IPropertySetStorage_FWD_DEFINED__
35#define __IPropertySetStorage_FWD_DEFINED__
36typedef struct IPropertySetStorage IPropertySetStorage;
37#endif
38
39#ifndef __IEnumSTATPROPSTG_FWD_DEFINED__
40#define __IEnumSTATPROPSTG_FWD_DEFINED__
41typedef struct IEnumSTATPROPSTG IEnumSTATPROPSTG;
42#endif
43
44#ifndef __IEnumSTATPROPSETSTG_FWD_DEFINED__
45#define __IEnumSTATPROPSETSTG_FWD_DEFINED__
46typedef struct IEnumSTATPROPSETSTG IEnumSTATPROPSETSTG;
47#endif
48typedef struct tagVersionedStream {
49    GUID guidVersion;
50    IStream *pStream;
51} VERSIONEDSTREAM;
52typedef struct tagVersionedStream *LPVERSIONEDSTREAM;
53#define PROPSETFLAG_DEFAULT (0)
54
55#define PROPSETFLAG_NONSIMPLE (1)
56
57#define PROPSETFLAG_ANSI (2)
58
59#define PROPSETFLAG_UNBUFFERED (4)
60
61#define PROPSETFLAG_CASE_SENSITIVE (8)
62
63#define PROPSET_BEHAVIOR_CASE_SENSITIVE (1)
64
65#if 0
66typedef struct tag_inner_PROPVARIANT PROPVARIANT;
67#else
68typedef struct tagPROPVARIANT PROPVARIANT;
69#endif
70typedef struct tagCAC {
71    ULONG cElems;
72    CHAR *pElems;
73} CAC;
74typedef struct tagCAUB {
75    ULONG cElems;
76    UCHAR *pElems;
77} CAUB;
78typedef struct tagCAI {
79    ULONG cElems;
80    SHORT *pElems;
81} CAI;
82typedef struct tagCAUI {
83    ULONG cElems;
84    USHORT *pElems;
85} CAUI;
86typedef struct tagCAL {
87    ULONG cElems;
88    LONG *pElems;
89} CAL;
90typedef struct tagCAUL {
91    ULONG cElems;
92    ULONG *pElems;
93} CAUL;
94typedef struct tagCAFLT {
95    ULONG cElems;
96    FLOAT *pElems;
97} CAFLT;
98typedef struct tagCADBL {
99    ULONG cElems;
100    DOUBLE *pElems;
101} CADBL;
102typedef struct tagCACY {
103    ULONG cElems;
104    CY *pElems;
105} CACY;
106typedef struct tagCADATE {
107    ULONG cElems;
108    DATE *pElems;
109} CADATE;
110typedef struct tagCABSTR {
111    ULONG cElems;
112    BSTR *pElems;
113} CABSTR;
114typedef struct tagCABSTRBLOB {
115    ULONG cElems;
116    BSTRBLOB *pElems;
117} CABSTRBLOB;
118typedef struct tagCABOOL {
119    ULONG cElems;
120    VARIANT_BOOL *pElems;
121} CABOOL;
122typedef struct tagCASCODE {
123    ULONG cElems;
124    SCODE *pElems;
125} CASCODE;
126typedef struct tagCAPROPVARIANT {
127    ULONG cElems;
128    PROPVARIANT *pElems;
129} CAPROPVARIANT;
130typedef struct tagCAH {
131    ULONG cElems;
132    LARGE_INTEGER *pElems;
133} CAH;
134typedef struct tagCAUH {
135    ULONG cElems;
136    ULARGE_INTEGER *pElems;
137} CAUH;
138typedef struct tagCALPSTR {
139    ULONG cElems;
140    LPSTR *pElems;
141} CALPSTR;
142typedef struct tagCALPWSTR {
143    ULONG cElems;
144    LPWSTR *pElems;
145} CALPWSTR;
146typedef struct tagCAFILETIME {
147    ULONG cElems;
148    FILETIME *pElems;
149} CAFILETIME;
150typedef struct tagCACLIPDATA {
151    ULONG cElems;
152    CLIPDATA *pElems;
153} CACLIPDATA;
154typedef struct tagCACLSID {
155    ULONG cElems;
156    CLSID *pElems;
157} CACLSID;
158#if 0
159typedef BYTE PROPVAR_PAD1;
160typedef BYTE PROPVAR_PAD2;
161typedef ULONG PROPVAR_PAD3;
162#else
163  typedef WORD PROPVAR_PAD1;
164  typedef WORD PROPVAR_PAD2;
165  typedef WORD PROPVAR_PAD3;
166#define tag_inner_PROPVARIANT
167#endif
168struct tagPROPVARIANT {
169    __C89_NAMELESS union {
170        __C89_NAMELESS
171struct tag_inner_PROPVARIANT {
172    VARTYPE vt;
173    PROPVAR_PAD1 wReserved1;
174    PROPVAR_PAD2 wReserved2;
175    PROPVAR_PAD3 wReserved3;
176    __C89_NAMELESS union {
177        CHAR cVal;
178        UCHAR bVal;
179        SHORT iVal;
180        USHORT uiVal;
181        LONG lVal;
182        ULONG ulVal;
183        INT intVal;
184        UINT uintVal;
185        LARGE_INTEGER hVal;
186        ULARGE_INTEGER uhVal;
187        FLOAT fltVal;
188        DOUBLE dblVal;
189        VARIANT_BOOL boolVal;
190        SCODE scode;
191        CY cyVal;
192        DATE date;
193        FILETIME filetime;
194        CLSID *puuid;
195        CLIPDATA *pclipdata;
196        BSTR bstrVal;
197        BSTRBLOB bstrblobVal;
198        BLOB blob;
199        LPSTR pszVal;
200        LPWSTR pwszVal;
201        IUnknown *punkVal;
202        IDispatch *pdispVal;
203        IStream *pStream;
204        IStorage *pStorage;
205        LPVERSIONEDSTREAM pVersionedStream;
206        LPSAFEARRAY parray;
207        CAC cac;
208        CAUB caub;
209        CAI cai;
210        CAUI caui;
211        CAL cal;
212        CAUL caul;
213        CAH cah;
214        CAUH cauh;
215        CAFLT caflt;
216        CADBL cadbl;
217        CABOOL cabool;
218        CASCODE cascode;
219        CACY cacy;
220        CADATE cadate;
221        CAFILETIME cafiletime;
222        CACLSID cauuid;
223        CACLIPDATA caclipdata;
224        CABSTR cabstr;
225        CABSTRBLOB cabstrblob;
226        CALPSTR calpstr;
227        CALPWSTR calpwstr;
228        CAPROPVARIANT capropvar;
229        CHAR *pcVal;
230        UCHAR *pbVal;
231        SHORT *piVal;
232        USHORT *puiVal;
233        LONG *plVal;
234        ULONG *pulVal;
235        INT *pintVal;
236        UINT *puintVal;
237        FLOAT *pfltVal;
238        DOUBLE *pdblVal;
239        VARIANT_BOOL *pboolVal;
240        DECIMAL *pdecVal;
241        SCODE *pscode;
242        CY *pcyVal;
243        DATE *pdate;
244        BSTR *pbstrVal;
245        IUnknown **ppunkVal;
246        IDispatch **ppdispVal;
247        LPSAFEARRAY *pparray;
248        PROPVARIANT *pvarVal;
249    } __C89_NAMELESSUNIONNAME;
250};
251
252      DECIMAL decVal;
253    };
254  };
255#if 0
256typedef struct tag_inner_PROPVARIANT *LPPROPVARIANT;
257typedef const PROPVARIANT *REFPROPVARIANT;
258#else
259  typedef struct tagPROPVARIANT *LPPROPVARIANT;
260
261#ifndef _REFPROPVARIANT_DEFINED
262#define _REFPROPVARIANT_DEFINED
263#ifdef __cplusplus
264#define REFPROPVARIANT const PROPVARIANT &
265#else
266#define REFPROPVARIANT const PROPVARIANT * __MIDL_CONST
267#endif
268#endif
269#endif
270#define PID_DICTIONARY (0)
271#define PID_CODEPAGE (0x1)
272#define PID_FIRST_USABLE (0x2)
273#define PID_FIRST_NAME_DEFAULT (0xfff)
274#define PID_LOCALE (0x80000000)
275#define PID_MODIFY_TIME (0x80000001)
276#define PID_SECURITY (0x80000002)
277#define PID_BEHAVIOR (0x80000003)
278#define PID_ILLEGAL (0xffffffff)
279#define PID_MIN_READONLY (0x80000000)
280#define PID_MAX_READONLY (0xbfffffff)
281
282#define PIDDI_THUMBNAIL 0x00000002L
283
284#define PIDSI_TITLE 0x00000002L
285#define PIDSI_SUBJECT 0x00000003L
286#define PIDSI_AUTHOR 0x00000004L
287#define PIDSI_KEYWORDS 0x00000005L
288#define PIDSI_COMMENTS 0x00000006L
289#define PIDSI_TEMPLATE 0x00000007L
290#define PIDSI_LASTAUTHOR 0x00000008L
291#define PIDSI_REVNUMBER 0x00000009L
292#define PIDSI_EDITTIME 0x0000000aL
293#define PIDSI_LASTPRINTED 0x0000000bL
294#define PIDSI_CREATE_DTM 0x0000000cL
295#define PIDSI_LASTSAVE_DTM 0x0000000dL
296#define PIDSI_PAGECOUNT 0x0000000eL
297#define PIDSI_WORDCOUNT 0x0000000fL
298#define PIDSI_CHARCOUNT 0x00000010L
299#define PIDSI_THUMBNAIL 0x00000011L
300#define PIDSI_APPNAME 0x00000012L
301#define PIDSI_DOC_SECURITY 0x00000013L
302
303#define PIDDSI_CATEGORY 0x00000002
304#define PIDDSI_PRESFORMAT 0x00000003
305#define PIDDSI_BYTECOUNT 0x00000004
306#define PIDDSI_LINECOUNT 0x00000005
307#define PIDDSI_PARCOUNT 0x00000006
308#define PIDDSI_SLIDECOUNT 0x00000007
309#define PIDDSI_NOTECOUNT 0x00000008
310#define PIDDSI_HIDDENCOUNT 0x00000009
311#define PIDDSI_MMCLIPCOUNT 0x0000000A
312#define PIDDSI_SCALE 0x0000000B
313#define PIDDSI_HEADINGPAIR 0x0000000C
314#define PIDDSI_DOCPARTS 0x0000000D
315#define PIDDSI_MANAGER 0x0000000E
316#define PIDDSI_COMPANY 0x0000000F
317#define PIDDSI_LINKSDIRTY 0x00000010
318
319#define PIDMSI_EDITOR 0x00000002L
320#define PIDMSI_SUPPLIER 0x00000003L
321#define PIDMSI_SOURCE 0x00000004L
322#define PIDMSI_SEQUENCE_NO 0x00000005L
323#define PIDMSI_PROJECT 0x00000006L
324#define PIDMSI_STATUS 0x00000007L
325#define PIDMSI_OWNER 0x00000008L
326#define PIDMSI_RATING 0x00000009L
327#define PIDMSI_PRODUCTION 0x0000000AL
328#define PIDMSI_COPYRIGHT 0x0000000BL
329
330  enum PIDMSI_STATUS_VALUE {
331    PIDMSI_STATUS_NORMAL = 0,PIDMSI_STATUS_NEW,PIDMSI_STATUS_PRELIM,
332    PIDMSI_STATUS_DRAFT,PIDMSI_STATUS_INPROGRESS,PIDMSI_STATUS_EDIT,
333    PIDMSI_STATUS_REVIEW,PIDMSI_STATUS_PROOF,PIDMSI_STATUS_FINAL,
334    PIDMSI_STATUS_OTHER = 0x7fff
335  };
336#define PRSPEC_INVALID (0xffffffff)
337#define PRSPEC_LPWSTR (0)
338#define PRSPEC_PROPID (1)
339
340  typedef struct tagPROPSPEC {
341    ULONG ulKind;
342    __C89_NAMELESS union {
343      PROPID propid;
344      LPOLESTR lpwstr;
345    } DUMMYUNIONNAME;
346  } PROPSPEC;
347
348  typedef struct tagSTATPROPSTG {
349    LPOLESTR lpwstrName;
350    PROPID propid;
351    VARTYPE vt;
352  } STATPROPSTG;
353
354#define PROPSETHDR_OSVER_KIND(dwOSVer) HIWORD((dwOSVer))
355#define PROPSETHDR_OSVER_MAJOR(dwOSVer) LOBYTE(LOWORD((dwOSVer)))
356#define PROPSETHDR_OSVER_MINOR(dwOSVer) HIBYTE(LOWORD((dwOSVer)))
357#define PROPSETHDR_OSVERSION_UNKNOWN 0xFFFFFFFF
358  typedef struct tagSTATPROPSETSTG {
359    FMTID fmtid;
360    CLSID clsid;
361    DWORD grfFlags;
362    FILETIME mtime;
363    FILETIME ctime;
364    FILETIME atime;
365    DWORD dwOSVersion;
366  } STATPROPSETSTG;
367
368  extern RPC_IF_HANDLE __MIDL_itf_propidl_0000_v0_0_c_ifspec;
369  extern RPC_IF_HANDLE __MIDL_itf_propidl_0000_v0_0_s_ifspec;
370
371#ifndef __IPropertyStorage_INTERFACE_DEFINED__
372#define __IPropertyStorage_INTERFACE_DEFINED__
373  EXTERN_C const IID IID_IPropertyStorage;
374#if defined(__cplusplus) && !defined(CINTERFACE)
375  struct IPropertyStorage : public IUnknown {
376  public:
377    virtual HRESULT WINAPI ReadMultiple(ULONG cpspec,const PROPSPEC rgpspec[],PROPVARIANT rgpropvar[]) = 0;
378    virtual HRESULT WINAPI WriteMultiple(ULONG cpspec,const PROPSPEC rgpspec[],const PROPVARIANT rgpropvar[],PROPID propidNameFirst) = 0;
379    virtual HRESULT WINAPI DeleteMultiple(ULONG cpspec,const PROPSPEC rgpspec[]) = 0;
380    virtual HRESULT WINAPI ReadPropertyNames(ULONG cpropid,const PROPID rgpropid[],LPOLESTR rglpwstrName[]) = 0;
381    virtual HRESULT WINAPI WritePropertyNames(ULONG cpropid,const PROPID rgpropid[],const LPOLESTR rglpwstrName[]) = 0;
382    virtual HRESULT WINAPI DeletePropertyNames(ULONG cpropid,const PROPID rgpropid[]) = 0;
383    virtual HRESULT WINAPI Commit(DWORD grfCommitFlags) = 0;
384    virtual HRESULT WINAPI Revert(void) = 0;
385    virtual HRESULT WINAPI Enum(IEnumSTATPROPSTG **ppenum) = 0;
386    virtual HRESULT WINAPI SetTimes(const FILETIME *pctime,const FILETIME *patime,const FILETIME *pmtime) = 0;
387    virtual HRESULT WINAPI SetClass(REFCLSID clsid) = 0;
388    virtual HRESULT WINAPI Stat(STATPROPSETSTG *pstatpsstg) = 0;
389  };
390#else
391  typedef struct IPropertyStorageVtbl {
392    BEGIN_INTERFACE
393      HRESULT (WINAPI *QueryInterface)(IPropertyStorage *This,REFIID riid,void **ppvObject);
394      ULONG (WINAPI *AddRef)(IPropertyStorage *This);
395      ULONG (WINAPI *Release)(IPropertyStorage *This);
396      HRESULT (WINAPI *ReadMultiple)(IPropertyStorage *This,ULONG cpspec,const PROPSPEC rgpspec[],PROPVARIANT rgpropvar[]);
397      HRESULT (WINAPI *WriteMultiple)(IPropertyStorage *This,ULONG cpspec,const PROPSPEC rgpspec[],const PROPVARIANT rgpropvar[],PROPID propidNameFirst);
398      HRESULT (WINAPI *DeleteMultiple)(IPropertyStorage *This,ULONG cpspec,const PROPSPEC rgpspec[]);
399      HRESULT (WINAPI *ReadPropertyNames)(IPropertyStorage *This,ULONG cpropid,const PROPID rgpropid[],LPOLESTR rglpwstrName[]);
400      HRESULT (WINAPI *WritePropertyNames)(IPropertyStorage *This,ULONG cpropid,const PROPID rgpropid[],const LPOLESTR rglpwstrName[]);
401      HRESULT (WINAPI *DeletePropertyNames)(IPropertyStorage *This,ULONG cpropid,const PROPID rgpropid[]);
402      HRESULT (WINAPI *Commit)(IPropertyStorage *This,DWORD grfCommitFlags);
403      HRESULT (WINAPI *Revert)(IPropertyStorage *This);
404      HRESULT (WINAPI *Enum)(IPropertyStorage *This,IEnumSTATPROPSTG **ppenum);
405      HRESULT (WINAPI *SetTimes)(IPropertyStorage *This,const FILETIME *pctime,const FILETIME *patime,const FILETIME *pmtime);
406      HRESULT (WINAPI *SetClass)(IPropertyStorage *This,REFCLSID clsid);
407      HRESULT (WINAPI *Stat)(IPropertyStorage *This,STATPROPSETSTG *pstatpsstg);
408    END_INTERFACE
409  } IPropertyStorageVtbl;
410  struct IPropertyStorage {
411    CONST_VTBL struct IPropertyStorageVtbl *lpVtbl;
412  };
413#ifdef COBJMACROS
414#define IPropertyStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
415#define IPropertyStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
416#define IPropertyStorage_Release(This) (This)->lpVtbl->Release(This)
417#define IPropertyStorage_ReadMultiple(This,cpspec,rgpspec,rgpropvar) (This)->lpVtbl->ReadMultiple(This,cpspec,rgpspec,rgpropvar)
418#define IPropertyStorage_WriteMultiple(This,cpspec,rgpspec,rgpropvar,propidNameFirst) (This)->lpVtbl->WriteMultiple(This,cpspec,rgpspec,rgpropvar,propidNameFirst)
419#define IPropertyStorage_DeleteMultiple(This,cpspec,rgpspec) (This)->lpVtbl->DeleteMultiple(This,cpspec,rgpspec)
420#define IPropertyStorage_ReadPropertyNames(This,cpropid,rgpropid,rglpwstrName) (This)->lpVtbl->ReadPropertyNames(This,cpropid,rgpropid,rglpwstrName)
421#define IPropertyStorage_WritePropertyNames(This,cpropid,rgpropid,rglpwstrName) (This)->lpVtbl->WritePropertyNames(This,cpropid,rgpropid,rglpwstrName)
422#define IPropertyStorage_DeletePropertyNames(This,cpropid,rgpropid) (This)->lpVtbl->DeletePropertyNames(This,cpropid,rgpropid)
423#define IPropertyStorage_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
424#define IPropertyStorage_Revert(This) (This)->lpVtbl->Revert(This)
425#define IPropertyStorage_Enum(This,ppenum) (This)->lpVtbl->Enum(This,ppenum)
426#define IPropertyStorage_SetTimes(This,pctime,patime,pmtime) (This)->lpVtbl->SetTimes(This,pctime,patime,pmtime)
427#define IPropertyStorage_SetClass(This,clsid) (This)->lpVtbl->SetClass(This,clsid)
428#define IPropertyStorage_Stat(This,pstatpsstg) (This)->lpVtbl->Stat(This,pstatpsstg)
429#endif
430#endif
431  HRESULT WINAPI IPropertyStorage_ReadMultiple_Proxy(IPropertyStorage *This,ULONG cpspec,const PROPSPEC rgpspec[],PROPVARIANT rgpropvar[]);
432  void __RPC_STUB IPropertyStorage_ReadMultiple_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
433  HRESULT WINAPI IPropertyStorage_WriteMultiple_Proxy(IPropertyStorage *This,ULONG cpspec,const PROPSPEC rgpspec[],const PROPVARIANT rgpropvar[],PROPID propidNameFirst);
434  void __RPC_STUB IPropertyStorage_WriteMultiple_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
435  HRESULT WINAPI IPropertyStorage_DeleteMultiple_Proxy(IPropertyStorage *This,ULONG cpspec,const PROPSPEC rgpspec[]);
436  void __RPC_STUB IPropertyStorage_DeleteMultiple_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
437  HRESULT WINAPI IPropertyStorage_ReadPropertyNames_Proxy(IPropertyStorage *This,ULONG cpropid,const PROPID rgpropid[],LPOLESTR rglpwstrName[]);
438  void __RPC_STUB IPropertyStorage_ReadPropertyNames_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
439  HRESULT WINAPI IPropertyStorage_WritePropertyNames_Proxy(IPropertyStorage *This,ULONG cpropid,const PROPID rgpropid[],const LPOLESTR rglpwstrName[]);
440  void __RPC_STUB IPropertyStorage_WritePropertyNames_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
441  HRESULT WINAPI IPropertyStorage_DeletePropertyNames_Proxy(IPropertyStorage *This,ULONG cpropid,const PROPID rgpropid[]);
442  void __RPC_STUB IPropertyStorage_DeletePropertyNames_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
443  HRESULT WINAPI IPropertyStorage_Commit_Proxy(IPropertyStorage *This,DWORD grfCommitFlags);
444  void __RPC_STUB IPropertyStorage_Commit_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
445  HRESULT WINAPI IPropertyStorage_Revert_Proxy(IPropertyStorage *This);
446  void __RPC_STUB IPropertyStorage_Revert_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
447  HRESULT WINAPI IPropertyStorage_Enum_Proxy(IPropertyStorage *This,IEnumSTATPROPSTG **ppenum);
448  void __RPC_STUB IPropertyStorage_Enum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
449  HRESULT WINAPI IPropertyStorage_SetTimes_Proxy(IPropertyStorage *This,const FILETIME *pctime,const FILETIME *patime,const FILETIME *pmtime);
450  void __RPC_STUB IPropertyStorage_SetTimes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
451  HRESULT WINAPI IPropertyStorage_SetClass_Proxy(IPropertyStorage *This,REFCLSID clsid);
452  void __RPC_STUB IPropertyStorage_SetClass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
453  HRESULT WINAPI IPropertyStorage_Stat_Proxy(IPropertyStorage *This,STATPROPSETSTG *pstatpsstg);
454  void __RPC_STUB IPropertyStorage_Stat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
455#endif
456
457#ifndef __IPropertySetStorage_INTERFACE_DEFINED__
458#define __IPropertySetStorage_INTERFACE_DEFINED__
459  typedef IPropertySetStorage *LPPROPERTYSETSTORAGE;
460
461  EXTERN_C const IID IID_IPropertySetStorage;
462#if defined(__cplusplus) && !defined(CINTERFACE)
463  struct IPropertySetStorage : public IUnknown {
464  public:
465    virtual HRESULT WINAPI Create(REFFMTID rfmtid,const CLSID *pclsid,DWORD grfFlags,DWORD grfMode,IPropertyStorage **ppprstg) = 0;
466    virtual HRESULT WINAPI Open(REFFMTID rfmtid,DWORD grfMode,IPropertyStorage **ppprstg) = 0;
467    virtual HRESULT WINAPI Delete(REFFMTID rfmtid) = 0;
468    virtual HRESULT WINAPI Enum(IEnumSTATPROPSETSTG **ppenum) = 0;
469  };
470#else
471  typedef struct IPropertySetStorageVtbl {
472    BEGIN_INTERFACE
473      HRESULT (WINAPI *QueryInterface)(IPropertySetStorage *This,REFIID riid,void **ppvObject);
474      ULONG (WINAPI *AddRef)(IPropertySetStorage *This);
475      ULONG (WINAPI *Release)(IPropertySetStorage *This);
476      HRESULT (WINAPI *Create)(IPropertySetStorage *This,REFFMTID rfmtid,const CLSID *pclsid,DWORD grfFlags,DWORD grfMode,IPropertyStorage **ppprstg);
477      HRESULT (WINAPI *Open)(IPropertySetStorage *This,REFFMTID rfmtid,DWORD grfMode,IPropertyStorage **ppprstg);
478      HRESULT (WINAPI *Delete)(IPropertySetStorage *This,REFFMTID rfmtid);
479      HRESULT (WINAPI *Enum)(IPropertySetStorage *This,IEnumSTATPROPSETSTG **ppenum);
480    END_INTERFACE
481  } IPropertySetStorageVtbl;
482  struct IPropertySetStorage {
483    CONST_VTBL struct IPropertySetStorageVtbl *lpVtbl;
484  };
485#ifdef COBJMACROS
486#define IPropertySetStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
487#define IPropertySetStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
488#define IPropertySetStorage_Release(This) (This)->lpVtbl->Release(This)
489#define IPropertySetStorage_Create(This,rfmtid,pclsid,grfFlags,grfMode,ppprstg) (This)->lpVtbl->Create(This,rfmtid,pclsid,grfFlags,grfMode,ppprstg)
490#define IPropertySetStorage_Open(This,rfmtid,grfMode,ppprstg) (This)->lpVtbl->Open(This,rfmtid,grfMode,ppprstg)
491#define IPropertySetStorage_Delete(This,rfmtid) (This)->lpVtbl->Delete(This,rfmtid)
492#define IPropertySetStorage_Enum(This,ppenum) (This)->lpVtbl->Enum(This,ppenum)
493#endif
494#endif
495  HRESULT WINAPI IPropertySetStorage_Create_Proxy(IPropertySetStorage *This,REFFMTID rfmtid,const CLSID *pclsid,DWORD grfFlags,DWORD grfMode,IPropertyStorage **ppprstg);
496  void __RPC_STUB IPropertySetStorage_Create_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
497  HRESULT WINAPI IPropertySetStorage_Open_Proxy(IPropertySetStorage *This,REFFMTID rfmtid,DWORD grfMode,IPropertyStorage **ppprstg);
498  void __RPC_STUB IPropertySetStorage_Open_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
499  HRESULT WINAPI IPropertySetStorage_Delete_Proxy(IPropertySetStorage *This,REFFMTID rfmtid);
500  void __RPC_STUB IPropertySetStorage_Delete_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
501  HRESULT WINAPI IPropertySetStorage_Enum_Proxy(IPropertySetStorage *This,IEnumSTATPROPSETSTG **ppenum);
502  void __RPC_STUB IPropertySetStorage_Enum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
503#endif
504
505#ifndef __IEnumSTATPROPSTG_INTERFACE_DEFINED__
506#define __IEnumSTATPROPSTG_INTERFACE_DEFINED__
507  typedef IEnumSTATPROPSTG *LPENUMSTATPROPSTG;
508
509  EXTERN_C const IID IID_IEnumSTATPROPSTG;
510#if defined(__cplusplus) && !defined(CINTERFACE)
511  struct IEnumSTATPROPSTG : public IUnknown {
512  public:
513    virtual HRESULT WINAPI Next(ULONG celt,STATPROPSTG *rgelt,ULONG *pceltFetched) = 0;
514    virtual HRESULT WINAPI Skip(ULONG celt) = 0;
515    virtual HRESULT WINAPI Reset(void) = 0;
516    virtual HRESULT WINAPI Clone(IEnumSTATPROPSTG **ppenum) = 0;
517  };
518#else
519  typedef struct IEnumSTATPROPSTGVtbl {
520    BEGIN_INTERFACE
521      HRESULT (WINAPI *QueryInterface)(IEnumSTATPROPSTG *This,REFIID riid,void **ppvObject);
522      ULONG (WINAPI *AddRef)(IEnumSTATPROPSTG *This);
523      ULONG (WINAPI *Release)(IEnumSTATPROPSTG *This);
524      HRESULT (WINAPI *Next)(IEnumSTATPROPSTG *This,ULONG celt,STATPROPSTG *rgelt,ULONG *pceltFetched);
525      HRESULT (WINAPI *Skip)(IEnumSTATPROPSTG *This,ULONG celt);
526      HRESULT (WINAPI *Reset)(IEnumSTATPROPSTG *This);
527      HRESULT (WINAPI *Clone)(IEnumSTATPROPSTG *This,IEnumSTATPROPSTG **ppenum);
528    END_INTERFACE
529  } IEnumSTATPROPSTGVtbl;
530  struct IEnumSTATPROPSTG {
531    CONST_VTBL struct IEnumSTATPROPSTGVtbl *lpVtbl;
532  };
533#ifdef COBJMACROS
534#define IEnumSTATPROPSTG_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
535#define IEnumSTATPROPSTG_AddRef(This) (This)->lpVtbl->AddRef(This)
536#define IEnumSTATPROPSTG_Release(This) (This)->lpVtbl->Release(This)
537#define IEnumSTATPROPSTG_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
538#define IEnumSTATPROPSTG_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
539#define IEnumSTATPROPSTG_Reset(This) (This)->lpVtbl->Reset(This)
540#define IEnumSTATPROPSTG_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
541#endif
542#endif
543  HRESULT WINAPI IEnumSTATPROPSTG_RemoteNext_Proxy(IEnumSTATPROPSTG *This,ULONG celt,STATPROPSTG *rgelt,ULONG *pceltFetched);
544  void __RPC_STUB IEnumSTATPROPSTG_RemoteNext_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
545  HRESULT WINAPI IEnumSTATPROPSTG_Skip_Proxy(IEnumSTATPROPSTG *This,ULONG celt);
546  void __RPC_STUB IEnumSTATPROPSTG_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
547  HRESULT WINAPI IEnumSTATPROPSTG_Reset_Proxy(IEnumSTATPROPSTG *This);
548  void __RPC_STUB IEnumSTATPROPSTG_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
549  HRESULT WINAPI IEnumSTATPROPSTG_Clone_Proxy(IEnumSTATPROPSTG *This,IEnumSTATPROPSTG **ppenum);
550  void __RPC_STUB IEnumSTATPROPSTG_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
551#endif
552
553#ifndef __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__
554#define __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__
555  typedef IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG;
556
557  EXTERN_C const IID IID_IEnumSTATPROPSETSTG;
558#if defined(__cplusplus) && !defined(CINTERFACE)
559  struct IEnumSTATPROPSETSTG : public IUnknown {
560  public:
561    virtual HRESULT WINAPI Next(ULONG celt,STATPROPSETSTG *rgelt,ULONG *pceltFetched) = 0;
562    virtual HRESULT WINAPI Skip(ULONG celt) = 0;
563    virtual HRESULT WINAPI Reset(void) = 0;
564    virtual HRESULT WINAPI Clone(IEnumSTATPROPSETSTG **ppenum) = 0;
565  };
566#else
567  typedef struct IEnumSTATPROPSETSTGVtbl {
568    BEGIN_INTERFACE
569      HRESULT (WINAPI *QueryInterface)(IEnumSTATPROPSETSTG *This,REFIID riid,void **ppvObject);
570      ULONG (WINAPI *AddRef)(IEnumSTATPROPSETSTG *This);
571      ULONG (WINAPI *Release)(IEnumSTATPROPSETSTG *This);
572      HRESULT (WINAPI *Next)(IEnumSTATPROPSETSTG *This,ULONG celt,STATPROPSETSTG *rgelt,ULONG *pceltFetched);
573      HRESULT (WINAPI *Skip)(IEnumSTATPROPSETSTG *This,ULONG celt);
574      HRESULT (WINAPI *Reset)(IEnumSTATPROPSETSTG *This);
575      HRESULT (WINAPI *Clone)(IEnumSTATPROPSETSTG *This,IEnumSTATPROPSETSTG **ppenum);
576    END_INTERFACE
577  } IEnumSTATPROPSETSTGVtbl;
578  struct IEnumSTATPROPSETSTG {
579    CONST_VTBL struct IEnumSTATPROPSETSTGVtbl *lpVtbl;
580  };
581#ifdef COBJMACROS
582#define IEnumSTATPROPSETSTG_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
583#define IEnumSTATPROPSETSTG_AddRef(This) (This)->lpVtbl->AddRef(This)
584#define IEnumSTATPROPSETSTG_Release(This) (This)->lpVtbl->Release(This)
585#define IEnumSTATPROPSETSTG_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
586#define IEnumSTATPROPSETSTG_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
587#define IEnumSTATPROPSETSTG_Reset(This) (This)->lpVtbl->Reset(This)
588#define IEnumSTATPROPSETSTG_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
589#endif
590#endif
591  HRESULT WINAPI IEnumSTATPROPSETSTG_RemoteNext_Proxy(IEnumSTATPROPSETSTG *This,ULONG celt,STATPROPSETSTG *rgelt,ULONG *pceltFetched);
592  void __RPC_STUB IEnumSTATPROPSETSTG_RemoteNext_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
593  HRESULT WINAPI IEnumSTATPROPSETSTG_Skip_Proxy(IEnumSTATPROPSETSTG *This,ULONG celt);
594  void __RPC_STUB IEnumSTATPROPSETSTG_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
595  HRESULT WINAPI IEnumSTATPROPSETSTG_Reset_Proxy(IEnumSTATPROPSETSTG *This);
596  void __RPC_STUB IEnumSTATPROPSETSTG_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
597  HRESULT WINAPI IEnumSTATPROPSETSTG_Clone_Proxy(IEnumSTATPROPSETSTG *This,IEnumSTATPROPSETSTG **ppenum);
598  void __RPC_STUB IEnumSTATPROPSETSTG_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
599#endif
600
601  typedef IPropertyStorage *LPPROPERTYSTORAGE;
602
603  WINOLEAPI PropVariantCopy (PROPVARIANT *pvarDest,const PROPVARIANT *pvarSrc);
604  WINOLEAPI PropVariantClear (PROPVARIANT *pvar);
605  WINOLEAPI FreePropVariantArray (ULONG cVariants,PROPVARIANT *rgvars);
606
607#define _PROPVARIANTINIT_DEFINED_
608#ifdef __cplusplus
609  static inline void PropVariantInit(PROPVARIANT *pvar) { memset (pvar,0,sizeof(PROPVARIANT)); }
610#else
611#define PropVariantInit(pvar) memset((pvar),0,sizeof(PROPVARIANT))
612#endif
613
614#ifndef _STGCREATEPROPSTG_DEFINED_
615  WINOLEAPI StgCreatePropStg(IUnknown *pUnk,REFFMTID fmtid,const CLSID *pclsid,DWORD grfFlags,DWORD dwReserved,IPropertyStorage **ppPropStg);
616  WINOLEAPI StgOpenPropStg(IUnknown *pUnk,REFFMTID fmtid,DWORD grfFlags,DWORD dwReserved,IPropertyStorage **ppPropStg);
617  WINOLEAPI StgCreatePropSetStg(IStorage *pStorage,DWORD dwReserved,IPropertySetStorage **ppPropSetStg);
618
619#define CCH_MAX_PROPSTG_NAME 31
620  WINOLEAPI FmtIdToPropStgName(const FMTID *pfmtid,LPOLESTR oszName);
621  WINOLEAPI PropStgNameToFmtId(const LPOLESTR oszName,FMTID *pfmtid);
622#endif
623
624  extern RPC_IF_HANDLE __MIDL_itf_propidl_0120_v0_0_c_ifspec;
625  extern RPC_IF_HANDLE __MIDL_itf_propidl_0120_v0_0_s_ifspec;
626
627  ULONG __RPC_API BSTR_UserSize(ULONG *,ULONG,BSTR *);
628  unsigned char *__RPC_API BSTR_UserMarshal(ULONG *,unsigned char *,BSTR *);
629  unsigned char *__RPC_API BSTR_UserUnmarshal(ULONG *,unsigned char *,BSTR *);
630  void __RPC_API BSTR_UserFree(ULONG *,BSTR *);
631  ULONG __RPC_API LPSAFEARRAY_UserSize(ULONG *,ULONG,LPSAFEARRAY *);
632  unsigned char *__RPC_API LPSAFEARRAY_UserMarshal(ULONG *,unsigned char *,LPSAFEARRAY *);
633  unsigned char *__RPC_API LPSAFEARRAY_UserUnmarshal(ULONG *,unsigned char *,LPSAFEARRAY *);
634  void __RPC_API LPSAFEARRAY_UserFree(ULONG *,LPSAFEARRAY *);
635
636  HRESULT WINAPI IEnumSTATPROPSTG_Next_Proxy(IEnumSTATPROPSTG *This,ULONG celt,STATPROPSTG *rgelt,ULONG *pceltFetched);
637  HRESULT WINAPI IEnumSTATPROPSTG_Next_Stub(IEnumSTATPROPSTG *This,ULONG celt,STATPROPSTG *rgelt,ULONG *pceltFetched);
638  HRESULT WINAPI IEnumSTATPROPSETSTG_Next_Proxy(IEnumSTATPROPSETSTG *This,ULONG celt,STATPROPSETSTG *rgelt,ULONG *pceltFetched);
639  HRESULT WINAPI IEnumSTATPROPSETSTG_Next_Stub(IEnumSTATPROPSETSTG *This,ULONG celt,STATPROPSETSTG *rgelt,ULONG *pceltFetched);
640/* Begin additional prototypes for all interfaces */
641
642
643/* End additional prototypes */
644
645#ifdef __cplusplus
646}
647#endif
648
649#endif /* __propidl_h__ */
650