home *** CD-ROM | disk | FTP | other *** search
/ PC Format (South-Africa) 2001 June / PCFJune.iso / Xenon / C++ / FreeCommandLineTools.exe / Include / propidl.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-01-31  |  46.5 KB  |  1,478 lines

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