Home | History | Annotate | Download | only in include
      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
     26 extern "C" {
     27 #endif
     28 
     29 #ifndef __IPropertyStorage_FWD_DEFINED__
     30 #define __IPropertyStorage_FWD_DEFINED__
     31 typedef struct IPropertyStorage IPropertyStorage;
     32 #endif
     33 
     34 #ifndef __IPropertySetStorage_FWD_DEFINED__
     35 #define __IPropertySetStorage_FWD_DEFINED__
     36 typedef struct IPropertySetStorage IPropertySetStorage;
     37 #endif
     38 
     39 #ifndef __IEnumSTATPROPSTG_FWD_DEFINED__
     40 #define __IEnumSTATPROPSTG_FWD_DEFINED__
     41 typedef struct IEnumSTATPROPSTG IEnumSTATPROPSTG;
     42 #endif
     43 
     44 #ifndef __IEnumSTATPROPSETSTG_FWD_DEFINED__
     45 #define __IEnumSTATPROPSETSTG_FWD_DEFINED__
     46 typedef struct IEnumSTATPROPSETSTG IEnumSTATPROPSETSTG;
     47 #endif
     48 typedef struct tagVersionedStream {
     49     GUID guidVersion;
     50     IStream *pStream;
     51 } VERSIONEDSTREAM;
     52 typedef 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
     66 typedef struct tag_inner_PROPVARIANT PROPVARIANT;
     67 #else
     68 typedef struct tagPROPVARIANT PROPVARIANT;
     69 #endif
     70 typedef struct tagCAC {
     71     ULONG cElems;
     72     CHAR *pElems;
     73 } CAC;
     74 typedef struct tagCAUB {
     75     ULONG cElems;
     76     UCHAR *pElems;
     77 } CAUB;
     78 typedef struct tagCAI {
     79     ULONG cElems;
     80     SHORT *pElems;
     81 } CAI;
     82 typedef struct tagCAUI {
     83     ULONG cElems;
     84     USHORT *pElems;
     85 } CAUI;
     86 typedef struct tagCAL {
     87     ULONG cElems;
     88     LONG *pElems;
     89 } CAL;
     90 typedef struct tagCAUL {
     91     ULONG cElems;
     92     ULONG *pElems;
     93 } CAUL;
     94 typedef struct tagCAFLT {
     95     ULONG cElems;
     96     FLOAT *pElems;
     97 } CAFLT;
     98 typedef struct tagCADBL {
     99     ULONG cElems;
    100     DOUBLE *pElems;
    101 } CADBL;
    102 typedef struct tagCACY {
    103     ULONG cElems;
    104     CY *pElems;
    105 } CACY;
    106 typedef struct tagCADATE {
    107     ULONG cElems;
    108     DATE *pElems;
    109 } CADATE;
    110 typedef struct tagCABSTR {
    111     ULONG cElems;
    112     BSTR *pElems;
    113 } CABSTR;
    114 typedef struct tagCABSTRBLOB {
    115     ULONG cElems;
    116     BSTRBLOB *pElems;
    117 } CABSTRBLOB;
    118 typedef struct tagCABOOL {
    119     ULONG cElems;
    120     VARIANT_BOOL *pElems;
    121 } CABOOL;
    122 typedef struct tagCASCODE {
    123     ULONG cElems;
    124     SCODE *pElems;
    125 } CASCODE;
    126 typedef struct tagCAPROPVARIANT {
    127     ULONG cElems;
    128     PROPVARIANT *pElems;
    129 } CAPROPVARIANT;
    130 typedef struct tagCAH {
    131     ULONG cElems;
    132     LARGE_INTEGER *pElems;
    133 } CAH;
    134 typedef struct tagCAUH {
    135     ULONG cElems;
    136     ULARGE_INTEGER *pElems;
    137 } CAUH;
    138 typedef struct tagCALPSTR {
    139     ULONG cElems;
    140     LPSTR *pElems;
    141 } CALPSTR;
    142 typedef struct tagCALPWSTR {
    143     ULONG cElems;
    144     LPWSTR *pElems;
    145 } CALPWSTR;
    146 typedef struct tagCAFILETIME {
    147     ULONG cElems;
    148     FILETIME *pElems;
    149 } CAFILETIME;
    150 typedef struct tagCACLIPDATA {
    151     ULONG cElems;
    152     CLIPDATA *pElems;
    153 } CACLIPDATA;
    154 typedef struct tagCACLSID {
    155     ULONG cElems;
    156     CLSID *pElems;
    157 } CACLSID;
    158 #if 0
    159 typedef BYTE PROPVAR_PAD1;
    160 typedef BYTE PROPVAR_PAD2;
    161 typedef 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
    168 struct tagPROPVARIANT {
    169     __C89_NAMELESS union {
    170         __C89_NAMELESS
    171 struct 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
    256 typedef struct tag_inner_PROPVARIANT *LPPROPVARIANT;
    257 typedef 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