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