diff fuhtark_test/include/winapi/propidl.h @ 1500:91c8c3b7cbf0

add: futhark tests for generating vulkan api
author sam <sam@basx.dev>
date Wed, 26 Nov 2025 21:36:48 +0700
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fuhtark_test/include/winapi/propidl.h	Wed Nov 26 21:36:48 2025 +0700
@@ -0,0 +1,652 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error This stub requires an updated version of <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif
+
+#ifndef __propidl_h__
+#define __propidl_h__
+
+#ifndef __IPropertyStorage_FWD_DEFINED__
+#define __IPropertyStorage_FWD_DEFINED__
+typedef struct IPropertyStorage IPropertyStorage;
+#endif
+
+#ifndef __IPropertySetStorage_FWD_DEFINED__
+#define __IPropertySetStorage_FWD_DEFINED__
+typedef struct IPropertySetStorage IPropertySetStorage;
+#endif
+
+#ifndef __IEnumSTATPROPSTG_FWD_DEFINED__
+#define __IEnumSTATPROPSTG_FWD_DEFINED__
+typedef struct IEnumSTATPROPSTG IEnumSTATPROPSTG;
+#endif
+
+#ifndef __IEnumSTATPROPSETSTG_FWD_DEFINED__
+#define __IEnumSTATPROPSETSTG_FWD_DEFINED__
+typedef struct IEnumSTATPROPSETSTG IEnumSTATPROPSETSTG;
+#endif
+
+#include "objidl.h"
+#include "oaidl.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+#ifndef __MIDL_user_allocate_free_DEFINED__
+#define __MIDL_user_allocate_free_DEFINED__
+  void *__RPC_API MIDL_user_allocate(size_t);
+  void __RPC_API MIDL_user_free(void *);
+#endif
+
+  typedef struct tagVersionedStream {
+    GUID guidVersion;
+    IStream *pStream;
+  } VERSIONEDSTREAM;
+
+  typedef struct tagVersionedStream *LPVERSIONEDSTREAM;
+
+#define PROPSETFLAG_DEFAULT (0)
+#define PROPSETFLAG_NONSIMPLE (1)
+#define PROPSETFLAG_ANSI (2)
+#define PROPSETFLAG_UNBUFFERED (4)
+#define PROPSETFLAG_CASE_SENSITIVE (8)
+
+#define PROPSET_BEHAVIOR_CASE_SENSITIVE (1)
+
+  typedef struct tagPROPVARIANT PROPVARIANT;
+  typedef struct tagCAC {
+    ULONG cElems;
+    CHAR *pElems;
+  } CAC;
+
+  typedef struct tagCAUB {
+    ULONG cElems;
+    UCHAR *pElems;
+  } CAUB;
+
+  typedef struct tagCAI {
+    ULONG cElems;
+    SHORT *pElems;
+  } CAI;
+
+  typedef struct tagCAUI {
+    ULONG cElems;
+    USHORT *pElems;
+  } CAUI;
+
+  typedef struct tagCAL {
+    ULONG cElems;
+    LONG *pElems;
+  } CAL;
+
+  typedef struct tagCAUL {
+    ULONG cElems;
+    ULONG *pElems;
+  } CAUL;
+
+  typedef struct tagCAFLT {
+    ULONG cElems;
+    FLOAT *pElems;
+  } CAFLT;
+
+  typedef struct tagCADBL {
+    ULONG cElems;
+    DOUBLE *pElems;
+  } CADBL;
+
+  typedef struct tagCACY {
+    ULONG cElems;
+    CY *pElems;
+  } CACY;
+
+  typedef struct tagCADATE {
+    ULONG cElems;
+    DATE *pElems;
+  } CADATE;
+
+  typedef struct tagCABSTR {
+    ULONG cElems;
+    BSTR *pElems;
+  } CABSTR;
+
+  typedef struct tagCABSTRBLOB {
+    ULONG cElems;
+    BSTRBLOB *pElems;
+  } CABSTRBLOB;
+
+  typedef struct tagCABOOL {
+    ULONG cElems;
+    VARIANT_BOOL *pElems;
+  } CABOOL;
+
+  typedef struct tagCASCODE {
+    ULONG cElems;
+    SCODE *pElems;
+  } CASCODE;
+
+  typedef struct tagCAPROPVARIANT {
+    ULONG cElems;
+    PROPVARIANT *pElems;
+  } CAPROPVARIANT;
+
+  typedef struct tagCAH {
+    ULONG cElems;
+    LARGE_INTEGER *pElems;
+  } CAH;
+
+  typedef struct tagCAUH {
+    ULONG cElems;
+    ULARGE_INTEGER *pElems;
+  } CAUH;
+
+  typedef struct tagCALPSTR {
+    ULONG cElems;
+    LPSTR *pElems;
+  } CALPSTR;
+
+  typedef struct tagCALPWSTR {
+    ULONG cElems;
+    LPWSTR *pElems;
+  } CALPWSTR;
+
+  typedef struct tagCAFILETIME {
+    ULONG cElems;
+    FILETIME *pElems;
+  } CAFILETIME;
+
+  typedef struct tagCACLIPDATA {
+    ULONG cElems;
+    CLIPDATA *pElems;
+  } CACLIPDATA;
+
+  typedef struct tagCACLSID {
+    ULONG cElems;
+    CLSID *pElems;
+  } CACLSID;
+
+  typedef WORD PROPVAR_PAD1;
+  typedef WORD PROPVAR_PAD2;
+  typedef WORD PROPVAR_PAD3;
+#define tag_inner_PROPVARIANT
+
+  struct tagPROPVARIANT {
+    __MINGW_EXTENSION union {
+      __MINGW_EXTENSION struct tag_inner_PROPVARIANT {
+	VARTYPE vt;
+	PROPVAR_PAD1 wReserved1;
+	PROPVAR_PAD2 wReserved2;
+	PROPVAR_PAD3 wReserved3;
+	__MINGW_EXTENSION union {
+	  CHAR cVal;
+	  UCHAR bVal;
+	  SHORT iVal;
+	  USHORT uiVal;
+	  LONG lVal;
+	  ULONG ulVal;
+	  INT intVal;
+	  UINT uintVal;
+	  LARGE_INTEGER hVal;
+	  ULARGE_INTEGER uhVal;
+	  FLOAT fltVal;
+	  DOUBLE dblVal;
+	  VARIANT_BOOL boolVal;
+	  /* _VARIANT_BOOL bool; */
+	  SCODE scode;
+	  CY cyVal;
+	  DATE date;
+	  FILETIME filetime;
+	  CLSID *puuid;
+	  CLIPDATA *pclipdata;
+	  BSTR bstrVal;
+	  BSTRBLOB bstrblobVal;
+	  BLOB blob;
+	  LPSTR pszVal;
+	  LPWSTR pwszVal;
+	  IUnknown *punkVal;
+	  IDispatch *pdispVal;
+	  IStream *pStream;
+	  IStorage *pStorage;
+	  LPVERSIONEDSTREAM pVersionedStream;
+	  LPSAFEARRAY parray;
+	  CAC cac;
+	  CAUB caub;
+	  CAI cai;
+	  CAUI caui;
+	  CAL cal;
+	  CAUL caul;
+	  CAH cah;
+	  CAUH cauh;
+	  CAFLT caflt;
+	  CADBL cadbl;
+	  CABOOL cabool;
+	  CASCODE cascode;
+	  CACY cacy;
+	  CADATE cadate;
+	  CAFILETIME cafiletime;
+	  CACLSID cauuid;
+	  CACLIPDATA caclipdata;
+	  CABSTR cabstr;
+	  CABSTRBLOB cabstrblob;
+	  CALPSTR calpstr;
+	  CALPWSTR calpwstr;
+	  CAPROPVARIANT capropvar;
+	  CHAR *pcVal;
+	  UCHAR *pbVal;
+	  SHORT *piVal;
+	  USHORT *puiVal;
+	  LONG *plVal;
+	  ULONG *pulVal;
+	  INT *pintVal;
+	  UINT *puintVal;
+	  FLOAT *pfltVal;
+	  DOUBLE *pdblVal;
+	  VARIANT_BOOL *pboolVal;
+	  DECIMAL *pdecVal;
+	  SCODE *pscode;
+	  CY *pcyVal;
+	  DATE *pdate;
+	  BSTR *pbstrVal;
+	  IUnknown **ppunkVal;
+	  IDispatch **ppdispVal;
+	  LPSAFEARRAY *pparray;
+	  PROPVARIANT *pvarVal;
+	};
+      };
+      DECIMAL decVal;
+    };
+  };
+
+  typedef struct tagPROPVARIANT *LPPROPVARIANT;
+
+#define PID_DICTIONARY (0)
+#define PID_CODEPAGE (0x1)
+#define PID_FIRST_USABLE (0x2)
+#define PID_FIRST_NAME_DEFAULT (0xfff)
+#define PID_LOCALE (0x80000000)
+#define PID_MODIFY_TIME (0x80000001)
+#define PID_SECURITY (0x80000002)
+#define PID_BEHAVIOR (0x80000003)
+#define PID_ILLEGAL (0xffffffff)
+#define PID_MIN_READONLY (0x80000000)
+#define PID_MAX_READONLY (0xbfffffff)
+
+#define PIDDI_THUMBNAIL 0x00000002L
+
+#define PIDSI_TITLE 0x00000002L
+#define PIDSI_SUBJECT 0x00000003L
+#define PIDSI_AUTHOR 0x00000004L
+#define PIDSI_KEYWORDS 0x00000005L
+#define PIDSI_COMMENTS 0x00000006L
+#define PIDSI_TEMPLATE 0x00000007L
+#define PIDSI_LASTAUTHOR 0x00000008L
+#define PIDSI_REVNUMBER 0x00000009L
+#define PIDSI_EDITTIME 0x0000000aL
+#define PIDSI_LASTPRINTED 0x0000000bL
+#define PIDSI_CREATE_DTM 0x0000000cL
+#define PIDSI_LASTSAVE_DTM 0x0000000dL
+#define PIDSI_PAGECOUNT 0x0000000eL
+#define PIDSI_WORDCOUNT 0x0000000fL
+#define PIDSI_CHARCOUNT 0x00000010L
+#define PIDSI_THUMBNAIL 0x00000011L
+#define PIDSI_APPNAME 0x00000012L
+#define PIDSI_DOC_SECURITY 0x00000013L
+
+#define PIDDSI_CATEGORY 0x00000002
+#define PIDDSI_PRESFORMAT 0x00000003
+#define PIDDSI_BYTECOUNT 0x00000004
+#define PIDDSI_LINECOUNT 0x00000005
+#define PIDDSI_PARCOUNT 0x00000006
+#define PIDDSI_SLIDECOUNT 0x00000007
+#define PIDDSI_NOTECOUNT 0x00000008
+#define PIDDSI_HIDDENCOUNT 0x00000009
+#define PIDDSI_MMCLIPCOUNT 0x0000000A
+#define PIDDSI_SCALE 0x0000000B
+#define PIDDSI_HEADINGPAIR 0x0000000C
+#define PIDDSI_DOCPARTS 0x0000000D
+#define PIDDSI_MANAGER 0x0000000E
+#define PIDDSI_COMPANY 0x0000000F
+#define PIDDSI_LINKSDIRTY 0x00000010
+
+#define PIDMSI_EDITOR 0x00000002L
+#define PIDMSI_SUPPLIER 0x00000003L
+#define PIDMSI_SOURCE 0x00000004L
+#define PIDMSI_SEQUENCE_NO 0x00000005L
+#define PIDMSI_PROJECT 0x00000006L
+#define PIDMSI_STATUS 0x00000007L
+#define PIDMSI_OWNER 0x00000008L
+#define PIDMSI_RATING 0x00000009L
+#define PIDMSI_PRODUCTION 0x0000000AL
+#define PIDMSI_COPYRIGHT 0x0000000BL
+
+  enum PIDMSI_STATUS_VALUE {
+    PIDMSI_STATUS_NORMAL = 0,PIDMSI_STATUS_NEW,PIDMSI_STATUS_PRELIM,
+    PIDMSI_STATUS_DRAFT,PIDMSI_STATUS_INPROGRESS,PIDMSI_STATUS_EDIT,
+    PIDMSI_STATUS_REVIEW,PIDMSI_STATUS_PROOF,PIDMSI_STATUS_FINAL,
+    PIDMSI_STATUS_OTHER = 0x7fff
+  };
+#define PRSPEC_INVALID (0xffffffff)
+#define PRSPEC_LPWSTR (0)
+#define PRSPEC_PROPID (1)
+
+  typedef struct tagPROPSPEC {
+    ULONG ulKind;
+    __MINGW_EXTENSION union {
+      PROPID propid;
+      LPOLESTR lpwstr;
+    };
+  } PROPSPEC;
+
+  typedef struct tagSTATPROPSTG {
+    LPOLESTR lpwstrName;
+    PROPID propid;
+    VARTYPE vt;
+  } STATPROPSTG;
+
+#define PROPSETHDR_OSVER_KIND(dwOSVer) HIWORD((dwOSVer))
+#define PROPSETHDR_OSVER_MAJOR(dwOSVer) LOBYTE(LOWORD((dwOSVer)))
+#define PROPSETHDR_OSVER_MINOR(dwOSVer) HIBYTE(LOWORD((dwOSVer)))
+#define PROPSETHDR_OSVERSION_UNKNOWN 0xFFFFFFFF
+  typedef struct tagSTATPROPSETSTG {
+    FMTID fmtid;
+    CLSID clsid;
+    DWORD grfFlags;
+    FILETIME mtime;
+    FILETIME ctime;
+    FILETIME atime;
+    DWORD dwOSVersion;
+  } STATPROPSETSTG;
+
+  extern RPC_IF_HANDLE __MIDL_itf_propidl_0000_v0_0_c_ifspec;
+  extern RPC_IF_HANDLE __MIDL_itf_propidl_0000_v0_0_s_ifspec;
+
+#ifndef __IPropertyStorage_INTERFACE_DEFINED__
+#define __IPropertyStorage_INTERFACE_DEFINED__
+  EXTERN_C const IID IID_IPropertyStorage;
+#if defined(__cplusplus) && !defined(CINTERFACE)
+  struct IPropertyStorage : public IUnknown {
+  public:
+    virtual HRESULT WINAPI ReadMultiple(ULONG cpspec,const PROPSPEC rgpspec[],PROPVARIANT rgpropvar[]) = 0;
+    virtual HRESULT WINAPI WriteMultiple(ULONG cpspec,const PROPSPEC rgpspec[],const PROPVARIANT rgpropvar[],PROPID propidNameFirst) = 0;
+    virtual HRESULT WINAPI DeleteMultiple(ULONG cpspec,const PROPSPEC rgpspec[]) = 0;
+    virtual HRESULT WINAPI ReadPropertyNames(ULONG cpropid,const PROPID rgpropid[],LPOLESTR rglpwstrName[]) = 0;
+    virtual HRESULT WINAPI WritePropertyNames(ULONG cpropid,const PROPID rgpropid[],const LPOLESTR rglpwstrName[]) = 0;
+    virtual HRESULT WINAPI DeletePropertyNames(ULONG cpropid,const PROPID rgpropid[]) = 0;
+    virtual HRESULT WINAPI Commit(DWORD grfCommitFlags) = 0;
+    virtual HRESULT WINAPI Revert(void) = 0;
+    virtual HRESULT WINAPI Enum(IEnumSTATPROPSTG **ppenum) = 0;
+    virtual HRESULT WINAPI SetTimes(const FILETIME *pctime,const FILETIME *patime,const FILETIME *pmtime) = 0;
+    virtual HRESULT WINAPI SetClass(REFCLSID clsid) = 0;
+    virtual HRESULT WINAPI Stat(STATPROPSETSTG *pstatpsstg) = 0;
+  };
+#else
+  typedef struct IPropertyStorageVtbl {
+    BEGIN_INTERFACE
+      HRESULT (WINAPI *QueryInterface)(IPropertyStorage *This,REFIID riid,void **ppvObject);
+      ULONG (WINAPI *AddRef)(IPropertyStorage *This);
+      ULONG (WINAPI *Release)(IPropertyStorage *This);
+      HRESULT (WINAPI *ReadMultiple)(IPropertyStorage *This,ULONG cpspec,const PROPSPEC rgpspec[],PROPVARIANT rgpropvar[]);
+      HRESULT (WINAPI *WriteMultiple)(IPropertyStorage *This,ULONG cpspec,const PROPSPEC rgpspec[],const PROPVARIANT rgpropvar[],PROPID propidNameFirst);
+      HRESULT (WINAPI *DeleteMultiple)(IPropertyStorage *This,ULONG cpspec,const PROPSPEC rgpspec[]);
+      HRESULT (WINAPI *ReadPropertyNames)(IPropertyStorage *This,ULONG cpropid,const PROPID rgpropid[],LPOLESTR rglpwstrName[]);
+      HRESULT (WINAPI *WritePropertyNames)(IPropertyStorage *This,ULONG cpropid,const PROPID rgpropid[],const LPOLESTR rglpwstrName[]);
+      HRESULT (WINAPI *DeletePropertyNames)(IPropertyStorage *This,ULONG cpropid,const PROPID rgpropid[]);
+      HRESULT (WINAPI *Commit)(IPropertyStorage *This,DWORD grfCommitFlags);
+      HRESULT (WINAPI *Revert)(IPropertyStorage *This);
+      HRESULT (WINAPI *Enum)(IPropertyStorage *This,IEnumSTATPROPSTG **ppenum);
+      HRESULT (WINAPI *SetTimes)(IPropertyStorage *This,const FILETIME *pctime,const FILETIME *patime,const FILETIME *pmtime);
+      HRESULT (WINAPI *SetClass)(IPropertyStorage *This,REFCLSID clsid);
+      HRESULT (WINAPI *Stat)(IPropertyStorage *This,STATPROPSETSTG *pstatpsstg);
+    END_INTERFACE
+  } IPropertyStorageVtbl;
+  struct IPropertyStorage {
+    CONST_VTBL struct IPropertyStorageVtbl *lpVtbl;
+  };
+#ifdef COBJMACROS
+#define IPropertyStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IPropertyStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IPropertyStorage_Release(This) (This)->lpVtbl->Release(This)
+#define IPropertyStorage_ReadMultiple(This,cpspec,rgpspec,rgpropvar) (This)->lpVtbl->ReadMultiple(This,cpspec,rgpspec,rgpropvar)
+#define IPropertyStorage_WriteMultiple(This,cpspec,rgpspec,rgpropvar,propidNameFirst) (This)->lpVtbl->WriteMultiple(This,cpspec,rgpspec,rgpropvar,propidNameFirst)
+#define IPropertyStorage_DeleteMultiple(This,cpspec,rgpspec) (This)->lpVtbl->DeleteMultiple(This,cpspec,rgpspec)
+#define IPropertyStorage_ReadPropertyNames(This,cpropid,rgpropid,rglpwstrName) (This)->lpVtbl->ReadPropertyNames(This,cpropid,rgpropid,rglpwstrName)
+#define IPropertyStorage_WritePropertyNames(This,cpropid,rgpropid,rglpwstrName) (This)->lpVtbl->WritePropertyNames(This,cpropid,rgpropid,rglpwstrName)
+#define IPropertyStorage_DeletePropertyNames(This,cpropid,rgpropid) (This)->lpVtbl->DeletePropertyNames(This,cpropid,rgpropid)
+#define IPropertyStorage_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
+#define IPropertyStorage_Revert(This) (This)->lpVtbl->Revert(This)
+#define IPropertyStorage_Enum(This,ppenum) (This)->lpVtbl->Enum(This,ppenum)
+#define IPropertyStorage_SetTimes(This,pctime,patime,pmtime) (This)->lpVtbl->SetTimes(This,pctime,patime,pmtime)
+#define IPropertyStorage_SetClass(This,clsid) (This)->lpVtbl->SetClass(This,clsid)
+#define IPropertyStorage_Stat(This,pstatpsstg) (This)->lpVtbl->Stat(This,pstatpsstg)
+#endif
+#endif
+  HRESULT WINAPI IPropertyStorage_ReadMultiple_Proxy(IPropertyStorage *This,ULONG cpspec,const PROPSPEC rgpspec[],PROPVARIANT rgpropvar[]);
+  void __RPC_STUB IPropertyStorage_ReadMultiple_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI IPropertyStorage_WriteMultiple_Proxy(IPropertyStorage *This,ULONG cpspec,const PROPSPEC rgpspec[],const PROPVARIANT rgpropvar[],PROPID propidNameFirst);
+  void __RPC_STUB IPropertyStorage_WriteMultiple_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI IPropertyStorage_DeleteMultiple_Proxy(IPropertyStorage *This,ULONG cpspec,const PROPSPEC rgpspec[]);
+  void __RPC_STUB IPropertyStorage_DeleteMultiple_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI IPropertyStorage_ReadPropertyNames_Proxy(IPropertyStorage *This,ULONG cpropid,const PROPID rgpropid[],LPOLESTR rglpwstrName[]);
+  void __RPC_STUB IPropertyStorage_ReadPropertyNames_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI IPropertyStorage_WritePropertyNames_Proxy(IPropertyStorage *This,ULONG cpropid,const PROPID rgpropid[],const LPOLESTR rglpwstrName[]);
+  void __RPC_STUB IPropertyStorage_WritePropertyNames_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI IPropertyStorage_DeletePropertyNames_Proxy(IPropertyStorage *This,ULONG cpropid,const PROPID rgpropid[]);
+  void __RPC_STUB IPropertyStorage_DeletePropertyNames_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI IPropertyStorage_Commit_Proxy(IPropertyStorage *This,DWORD grfCommitFlags);
+  void __RPC_STUB IPropertyStorage_Commit_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI IPropertyStorage_Revert_Proxy(IPropertyStorage *This);
+  void __RPC_STUB IPropertyStorage_Revert_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI IPropertyStorage_Enum_Proxy(IPropertyStorage *This,IEnumSTATPROPSTG **ppenum);
+  void __RPC_STUB IPropertyStorage_Enum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI IPropertyStorage_SetTimes_Proxy(IPropertyStorage *This,const FILETIME *pctime,const FILETIME *patime,const FILETIME *pmtime);
+  void __RPC_STUB IPropertyStorage_SetTimes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI IPropertyStorage_SetClass_Proxy(IPropertyStorage *This,REFCLSID clsid);
+  void __RPC_STUB IPropertyStorage_SetClass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI IPropertyStorage_Stat_Proxy(IPropertyStorage *This,STATPROPSETSTG *pstatpsstg);
+  void __RPC_STUB IPropertyStorage_Stat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+#endif
+
+#ifndef __IPropertySetStorage_INTERFACE_DEFINED__
+#define __IPropertySetStorage_INTERFACE_DEFINED__
+  typedef IPropertySetStorage *LPPROPERTYSETSTORAGE;
+
+  EXTERN_C const IID IID_IPropertySetStorage;
+#if defined(__cplusplus) && !defined(CINTERFACE)
+  struct IPropertySetStorage : public IUnknown {
+  public:
+    virtual HRESULT WINAPI Create(REFFMTID rfmtid,const CLSID *pclsid,DWORD grfFlags,DWORD grfMode,IPropertyStorage **ppprstg) = 0;
+    virtual HRESULT WINAPI Open(REFFMTID rfmtid,DWORD grfMode,IPropertyStorage **ppprstg) = 0;
+    virtual HRESULT WINAPI Delete(REFFMTID rfmtid) = 0;
+    virtual HRESULT WINAPI Enum(IEnumSTATPROPSETSTG **ppenum) = 0;
+  };
+#else
+  typedef struct IPropertySetStorageVtbl {
+    BEGIN_INTERFACE
+      HRESULT (WINAPI *QueryInterface)(IPropertySetStorage *This,REFIID riid,void **ppvObject);
+      ULONG (WINAPI *AddRef)(IPropertySetStorage *This);
+      ULONG (WINAPI *Release)(IPropertySetStorage *This);
+      HRESULT (WINAPI *Create)(IPropertySetStorage *This,REFFMTID rfmtid,const CLSID *pclsid,DWORD grfFlags,DWORD grfMode,IPropertyStorage **ppprstg);
+      HRESULT (WINAPI *Open)(IPropertySetStorage *This,REFFMTID rfmtid,DWORD grfMode,IPropertyStorage **ppprstg);
+      HRESULT (WINAPI *Delete)(IPropertySetStorage *This,REFFMTID rfmtid);
+      HRESULT (WINAPI *Enum)(IPropertySetStorage *This,IEnumSTATPROPSETSTG **ppenum);
+    END_INTERFACE
+  } IPropertySetStorageVtbl;
+  struct IPropertySetStorage {
+    CONST_VTBL struct IPropertySetStorageVtbl *lpVtbl;
+  };
+#ifdef COBJMACROS
+#define IPropertySetStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IPropertySetStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IPropertySetStorage_Release(This) (This)->lpVtbl->Release(This)
+#define IPropertySetStorage_Create(This,rfmtid,pclsid,grfFlags,grfMode,ppprstg) (This)->lpVtbl->Create(This,rfmtid,pclsid,grfFlags,grfMode,ppprstg)
+#define IPropertySetStorage_Open(This,rfmtid,grfMode,ppprstg) (This)->lpVtbl->Open(This,rfmtid,grfMode,ppprstg)
+#define IPropertySetStorage_Delete(This,rfmtid) (This)->lpVtbl->Delete(This,rfmtid)
+#define IPropertySetStorage_Enum(This,ppenum) (This)->lpVtbl->Enum(This,ppenum)
+#endif
+#endif
+  HRESULT WINAPI IPropertySetStorage_Create_Proxy(IPropertySetStorage *This,REFFMTID rfmtid,const CLSID *pclsid,DWORD grfFlags,DWORD grfMode,IPropertyStorage **ppprstg);
+  void __RPC_STUB IPropertySetStorage_Create_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI IPropertySetStorage_Open_Proxy(IPropertySetStorage *This,REFFMTID rfmtid,DWORD grfMode,IPropertyStorage **ppprstg);
+  void __RPC_STUB IPropertySetStorage_Open_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI IPropertySetStorage_Delete_Proxy(IPropertySetStorage *This,REFFMTID rfmtid);
+  void __RPC_STUB IPropertySetStorage_Delete_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI IPropertySetStorage_Enum_Proxy(IPropertySetStorage *This,IEnumSTATPROPSETSTG **ppenum);
+  void __RPC_STUB IPropertySetStorage_Enum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+#endif
+
+#ifndef __IEnumSTATPROPSTG_INTERFACE_DEFINED__
+#define __IEnumSTATPROPSTG_INTERFACE_DEFINED__
+  typedef IEnumSTATPROPSTG *LPENUMSTATPROPSTG;
+
+  EXTERN_C const IID IID_IEnumSTATPROPSTG;
+#if defined(__cplusplus) && !defined(CINTERFACE)
+  struct IEnumSTATPROPSTG : public IUnknown {
+  public:
+    virtual HRESULT WINAPI Next(ULONG celt,STATPROPSTG *rgelt,ULONG *pceltFetched) = 0;
+    virtual HRESULT WINAPI Skip(ULONG celt) = 0;
+    virtual HRESULT WINAPI Reset(void) = 0;
+    virtual HRESULT WINAPI Clone(IEnumSTATPROPSTG **ppenum) = 0;
+  };
+#else
+  typedef struct IEnumSTATPROPSTGVtbl {
+    BEGIN_INTERFACE
+      HRESULT (WINAPI *QueryInterface)(IEnumSTATPROPSTG *This,REFIID riid,void **ppvObject);
+      ULONG (WINAPI *AddRef)(IEnumSTATPROPSTG *This);
+      ULONG (WINAPI *Release)(IEnumSTATPROPSTG *This);
+      HRESULT (WINAPI *Next)(IEnumSTATPROPSTG *This,ULONG celt,STATPROPSTG *rgelt,ULONG *pceltFetched);
+      HRESULT (WINAPI *Skip)(IEnumSTATPROPSTG *This,ULONG celt);
+      HRESULT (WINAPI *Reset)(IEnumSTATPROPSTG *This);
+      HRESULT (WINAPI *Clone)(IEnumSTATPROPSTG *This,IEnumSTATPROPSTG **ppenum);
+    END_INTERFACE
+  } IEnumSTATPROPSTGVtbl;
+  struct IEnumSTATPROPSTG {
+    CONST_VTBL struct IEnumSTATPROPSTGVtbl *lpVtbl;
+  };
+#ifdef COBJMACROS
+#define IEnumSTATPROPSTG_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IEnumSTATPROPSTG_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IEnumSTATPROPSTG_Release(This) (This)->lpVtbl->Release(This)
+#define IEnumSTATPROPSTG_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
+#define IEnumSTATPROPSTG_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
+#define IEnumSTATPROPSTG_Reset(This) (This)->lpVtbl->Reset(This)
+#define IEnumSTATPROPSTG_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
+#endif
+#endif
+  HRESULT WINAPI IEnumSTATPROPSTG_RemoteNext_Proxy(IEnumSTATPROPSTG *This,ULONG celt,STATPROPSTG *rgelt,ULONG *pceltFetched);
+  void __RPC_STUB IEnumSTATPROPSTG_RemoteNext_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI IEnumSTATPROPSTG_Skip_Proxy(IEnumSTATPROPSTG *This,ULONG celt);
+  void __RPC_STUB IEnumSTATPROPSTG_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI IEnumSTATPROPSTG_Reset_Proxy(IEnumSTATPROPSTG *This);
+  void __RPC_STUB IEnumSTATPROPSTG_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI IEnumSTATPROPSTG_Clone_Proxy(IEnumSTATPROPSTG *This,IEnumSTATPROPSTG **ppenum);
+  void __RPC_STUB IEnumSTATPROPSTG_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+#endif
+
+#ifndef __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__
+#define __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__
+  typedef IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG;
+
+  EXTERN_C const IID IID_IEnumSTATPROPSETSTG;
+#if defined(__cplusplus) && !defined(CINTERFACE)
+  struct IEnumSTATPROPSETSTG : public IUnknown {
+  public:
+    virtual HRESULT WINAPI Next(ULONG celt,STATPROPSETSTG *rgelt,ULONG *pceltFetched) = 0;
+    virtual HRESULT WINAPI Skip(ULONG celt) = 0;
+    virtual HRESULT WINAPI Reset(void) = 0;
+    virtual HRESULT WINAPI Clone(IEnumSTATPROPSETSTG **ppenum) = 0;
+  };
+#else
+  typedef struct IEnumSTATPROPSETSTGVtbl {
+    BEGIN_INTERFACE
+      HRESULT (WINAPI *QueryInterface)(IEnumSTATPROPSETSTG *This,REFIID riid,void **ppvObject);
+      ULONG (WINAPI *AddRef)(IEnumSTATPROPSETSTG *This);
+      ULONG (WINAPI *Release)(IEnumSTATPROPSETSTG *This);
+      HRESULT (WINAPI *Next)(IEnumSTATPROPSETSTG *This,ULONG celt,STATPROPSETSTG *rgelt,ULONG *pceltFetched);
+      HRESULT (WINAPI *Skip)(IEnumSTATPROPSETSTG *This,ULONG celt);
+      HRESULT (WINAPI *Reset)(IEnumSTATPROPSETSTG *This);
+      HRESULT (WINAPI *Clone)(IEnumSTATPROPSETSTG *This,IEnumSTATPROPSETSTG **ppenum);
+    END_INTERFACE
+  } IEnumSTATPROPSETSTGVtbl;
+  struct IEnumSTATPROPSETSTG {
+    CONST_VTBL struct IEnumSTATPROPSETSTGVtbl *lpVtbl;
+  };
+#ifdef COBJMACROS
+#define IEnumSTATPROPSETSTG_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IEnumSTATPROPSETSTG_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IEnumSTATPROPSETSTG_Release(This) (This)->lpVtbl->Release(This)
+#define IEnumSTATPROPSETSTG_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
+#define IEnumSTATPROPSETSTG_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
+#define IEnumSTATPROPSETSTG_Reset(This) (This)->lpVtbl->Reset(This)
+#define IEnumSTATPROPSETSTG_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
+#endif
+#endif
+  HRESULT WINAPI IEnumSTATPROPSETSTG_RemoteNext_Proxy(IEnumSTATPROPSETSTG *This,ULONG celt,STATPROPSETSTG *rgelt,ULONG *pceltFetched);
+  void __RPC_STUB IEnumSTATPROPSETSTG_RemoteNext_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI IEnumSTATPROPSETSTG_Skip_Proxy(IEnumSTATPROPSETSTG *This,ULONG celt);
+  void __RPC_STUB IEnumSTATPROPSETSTG_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI IEnumSTATPROPSETSTG_Reset_Proxy(IEnumSTATPROPSETSTG *This);
+  void __RPC_STUB IEnumSTATPROPSETSTG_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI IEnumSTATPROPSETSTG_Clone_Proxy(IEnumSTATPROPSETSTG *This,IEnumSTATPROPSETSTG **ppenum);
+  void __RPC_STUB IEnumSTATPROPSETSTG_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+#endif
+
+  typedef IPropertyStorage *LPPROPERTYSTORAGE;
+
+  WINOLEAPI PropVariantCopy (PROPVARIANT *pvarDest,const PROPVARIANT *pvarSrc);
+  WINOLEAPI PropVariantClear (PROPVARIANT *pvar);
+  WINOLEAPI FreePropVariantArray (ULONG cVariants,PROPVARIANT *rgvars);
+
+#define _PROPVARIANTINIT_DEFINED_
+#ifdef __cplusplus
+  static inline void PropVariantInit(PROPVARIANT *pvar) { memset (pvar,0,sizeof(PROPVARIANT)); }
+#else
+#define PropVariantInit(pvar) memset((pvar),0,sizeof(PROPVARIANT))
+#endif
+
+#ifndef _STGCREATEPROPSTG_DEFINED_
+  WINOLEAPI StgCreatePropStg(IUnknown *pUnk,REFFMTID fmtid,const CLSID *pclsid,DWORD grfFlags,DWORD dwReserved,IPropertyStorage **ppPropStg);
+  WINOLEAPI StgOpenPropStg(IUnknown *pUnk,REFFMTID fmtid,DWORD grfFlags,DWORD dwReserved,IPropertyStorage **ppPropStg);
+  WINOLEAPI StgCreatePropSetStg(IStorage *pStorage,DWORD dwReserved,IPropertySetStorage **ppPropSetStg);
+
+#define CCH_MAX_PROPSTG_NAME 31
+  WINOLEAPI FmtIdToPropStgName(const FMTID *pfmtid,LPOLESTR oszName);
+  WINOLEAPI PropStgNameToFmtId(const LPOLESTR oszName,FMTID *pfmtid);
+#endif
+
+  extern RPC_IF_HANDLE __MIDL_itf_propidl_0120_v0_0_c_ifspec;
+  extern RPC_IF_HANDLE __MIDL_itf_propidl_0120_v0_0_s_ifspec;
+
+  unsigned long __RPC_API BSTR_UserSize(unsigned long *,unsigned long,BSTR *);
+  unsigned char *__RPC_API BSTR_UserMarshal(unsigned long *,unsigned char *,BSTR *);
+  unsigned char *__RPC_API BSTR_UserUnmarshal(unsigned long *,unsigned char *,BSTR *);
+  void __RPC_API BSTR_UserFree(unsigned long *,BSTR *);
+  unsigned long __RPC_API LPSAFEARRAY_UserSize(unsigned long *,unsigned long,LPSAFEARRAY *);
+  unsigned char *__RPC_API LPSAFEARRAY_UserMarshal(unsigned long *,unsigned char *,LPSAFEARRAY *);
+  unsigned char *__RPC_API LPSAFEARRAY_UserUnmarshal(unsigned long *,unsigned char *,LPSAFEARRAY *);
+  void __RPC_API LPSAFEARRAY_UserFree(unsigned long *,LPSAFEARRAY *);
+
+  HRESULT WINAPI IEnumSTATPROPSTG_Next_Proxy(IEnumSTATPROPSTG *This,ULONG celt,STATPROPSTG *rgelt,ULONG *pceltFetched);
+  HRESULT WINAPI IEnumSTATPROPSTG_Next_Stub(IEnumSTATPROPSTG *This,ULONG celt,STATPROPSTG *rgelt,ULONG *pceltFetched);
+  HRESULT WINAPI IEnumSTATPROPSETSTG_Next_Proxy(IEnumSTATPROPSETSTG *This,ULONG celt,STATPROPSETSTG *rgelt,ULONG *pceltFetched);
+  HRESULT WINAPI IEnumSTATPROPSETSTG_Next_Stub(IEnumSTATPROPSETSTG *This,ULONG celt,STATPROPSETSTG *rgelt,ULONG *pceltFetched);
+
+#ifdef __cplusplus
+}
+#endif
+#endif