PropIdl.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:44k
源码类别:

模拟服务器

开发平台:

C/C++

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