1cpp_quote("/**") 2cpp_quote(" * This file is part of the mingw-w64 runtime package.") 3cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.") 4cpp_quote(" */") 5cpp_quote("") 6cpp_quote("#include <winapifamily.h>") 7cpp_quote("") 8 9#ifndef DO_NO_IMPORTS 10import "wtypes.idl"; 11import "objidl.idl"; 12import "oaidl.idl"; 13#endif 14 15cpp_quote("") 16cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") 17 18interface IPropertyStorage; 19interface IEnumSTATPROPSTG; 20interface IEnumSTATPROPSETSTG; 21 22cpp_quote("") 23typedef struct tagVersionedStream { 24 GUID guidVersion; 25 IStream *pStream; 26} VERSIONEDSTREAM,*LPVERSIONEDSTREAM; 27cpp_quote("") 28const DWORD PROPSETFLAG_DEFAULT = 0; 29const DWORD PROPSETFLAG_NONSIMPLE = 1; 30const DWORD PROPSETFLAG_ANSI = 2; 31const DWORD PROPSETFLAG_UNBUFFERED = 4; 32const DWORD PROPSETFLAG_CASE_SENSITIVE = 8; 33cpp_quote("") 34const DWORD PROPSET_BEHAVIOR_CASE_SENSITIVE = 1; 35cpp_quote("") 36cpp_quote("#if 0") 37typedef struct tag_inner_PROPVARIANT PROPVARIANT; 38cpp_quote("#else") 39cpp_quote("typedef struct tagPROPVARIANT PROPVARIANT;") 40cpp_quote("#endif") 41 42#define TYPEDEF_CA(type, name) typedef struct tag##name { ULONG cElems; [size_is (cElems)] type *pElems; } name 43 44cpp_quote("") 45TYPEDEF_CA (CHAR, CAC); 46TYPEDEF_CA (UCHAR, CAUB); 47TYPEDEF_CA (SHORT, CAI); 48TYPEDEF_CA (USHORT, CAUI); 49TYPEDEF_CA (LONG, CAL); 50TYPEDEF_CA (ULONG, CAUL); 51TYPEDEF_CA (FLOAT, CAFLT); 52TYPEDEF_CA (DOUBLE, CADBL); 53TYPEDEF_CA (CY, CACY); 54TYPEDEF_CA (DATE, CADATE); 55TYPEDEF_CA (BSTR, CABSTR); 56TYPEDEF_CA (BSTRBLOB, CABSTRBLOB); 57TYPEDEF_CA (VARIANT_BOOL, CABOOL); 58TYPEDEF_CA (SCODE, CASCODE); 59TYPEDEF_CA (PROPVARIANT, CAPROPVARIANT); 60TYPEDEF_CA (LARGE_INTEGER, CAH); 61TYPEDEF_CA (ULARGE_INTEGER, CAUH); 62TYPEDEF_CA (LPSTR, CALPSTR); 63TYPEDEF_CA (LPWSTR, CALPWSTR); 64TYPEDEF_CA (FILETIME, CAFILETIME); 65TYPEDEF_CA (CLIPDATA, CACLIPDATA); 66TYPEDEF_CA (CLSID, CACLSID); 67 68cpp_quote("") 69cpp_quote("#if 0") 70typedef BYTE PROPVAR_PAD1; 71typedef BYTE PROPVAR_PAD2; 72typedef ULONG PROPVAR_PAD3; 73cpp_quote("#else") 74cpp_quote("typedef WORD PROPVAR_PAD1;") 75cpp_quote("typedef WORD PROPVAR_PAD2;") 76cpp_quote("typedef WORD PROPVAR_PAD3;") 77cpp_quote("") 78cpp_quote("#define tag_inner_PROPVARIANT") 79cpp_quote("#endif") 80cpp_quote("") 81cpp_quote(" struct tagPROPVARIANT {") 82cpp_quote(" __C89_NAMELESS union {") 83cpp_quote(" __C89_NAMELESS") 84struct tag_inner_PROPVARIANT { 85 VARTYPE vt; 86 PROPVAR_PAD1 wReserved1; 87 PROPVAR_PAD2 wReserved2; 88 PROPVAR_PAD3 wReserved3; 89 [switch_is ((unsigned short) vt)] union { 90 [case (VT_EMPTY, VT_NULL)]; 91 [case (VT_I1)] CHAR cVal; 92 [case (VT_UI1)] UCHAR bVal; 93 [case (VT_I2)] SHORT iVal; 94 [case (VT_UI2)] USHORT uiVal; 95 [case (VT_I4)] LONG lVal; 96 [case (VT_UI4)] ULONG ulVal; 97 [case (VT_INT)] INT intVal; 98 [case (VT_UINT)] UINT uintVal; 99 [case (VT_DECIMAL, VT_I8)] LARGE_INTEGER hVal; 100 [case (VT_UI8)] ULARGE_INTEGER uhVal; 101 [case (VT_R4)] FLOAT fltVal; 102 [case (VT_R8)] DOUBLE dblVal; 103 [case (VT_BOOL)] VARIANT_BOOL boolVal; 104 /* [case (VT_ILLEGAL)] _VARIANT_BOOL bool; */ 105 [case (VT_ERROR)] SCODE scode; 106 [case (VT_CY)] CY cyVal; 107 [case (VT_DATE)] DATE date; 108 [case (VT_FILETIME)] FILETIME filetime; 109 [case (VT_CLSID)] CLSID *puuid; 110 [case (VT_CF)] CLIPDATA *pclipdata; 111 [case (VT_BSTR)] BSTR bstrVal; 112 [case (VT_BSTR_BLOB)] BSTRBLOB bstrblobVal; 113 [case (VT_BLOB, VT_BLOB_OBJECT)] BLOB blob; 114 [case (VT_LPSTR)] LPSTR pszVal; 115 [case (VT_LPWSTR)] LPWSTR pwszVal; 116 [case (VT_UNKNOWN)] IUnknown *punkVal; 117 [case (VT_DISPATCH)] IDispatch *pdispVal; 118 [case (VT_STREAM, VT_STREAMED_OBJECT)] IStream *pStream; 119 [case (VT_STORAGE, VT_STORED_OBJECT)] IStorage *pStorage; 120 [case (VT_VERSIONED_STREAM)] LPVERSIONEDSTREAM pVersionedStream; 121 [case (VT_ARRAY|VT_I1, VT_ARRAY|VT_UI1, VT_ARRAY|VT_I2, VT_ARRAY|VT_UI2, VT_ARRAY|VT_I4, VT_ARRAY|VT_UI4, VT_ARRAY|VT_INT, VT_ARRAY|VT_UINT, VT_ARRAY|VT_R4, VT_ARRAY|VT_R8, VT_ARRAY|VT_CY, VT_ARRAY|VT_DATE, VT_ARRAY|VT_BSTR, VT_ARRAY|VT_BOOL, VT_ARRAY|VT_DECIMAL, VT_ARRAY|VT_DISPATCH, VT_ARRAY|VT_UNKNOWN, VT_ARRAY|VT_ERROR, VT_ARRAY|VT_VARIANT)] LPSAFEARRAY parray; 122 [case (VT_VECTOR|VT_I1)] CAC cac; 123 [case (VT_VECTOR|VT_UI1)] CAUB caub; 124 [case (VT_VECTOR|VT_I2)] CAI cai; 125 [case (VT_VECTOR|VT_UI2)] CAUI caui; 126 [case (VT_VECTOR|VT_I4)] CAL cal; 127 [case (VT_VECTOR|VT_UI4)] CAUL caul; 128 [case (VT_VECTOR|VT_I8)] CAH cah; 129 [case (VT_VECTOR|VT_UI8)] CAUH cauh; 130 [case (VT_VECTOR|VT_R4)] CAFLT caflt; 131 [case (VT_VECTOR|VT_R8)] CADBL cadbl; 132 [case (VT_VECTOR|VT_BOOL)] CABOOL cabool; 133 [case (VT_VECTOR|VT_ERROR)] CASCODE cascode; 134 [case (VT_VECTOR|VT_CY)] CACY cacy; 135 [case (VT_VECTOR|VT_DATE)] CADATE cadate; 136 [case (VT_VECTOR|VT_FILETIME)] CAFILETIME cafiletime; 137 [case (VT_VECTOR|VT_CLSID)] CACLSID cauuid; 138 [case (VT_VECTOR|VT_CF)] CACLIPDATA caclipdata; 139 [case (VT_VECTOR|VT_BSTR)] CABSTR cabstr; 140 [case (VT_VECTOR|VT_BSTR_BLOB)]CABSTRBLOB cabstrblob; 141 [case (VT_VECTOR|VT_LPSTR)] CALPSTR calpstr; 142 [case (VT_VECTOR|VT_LPWSTR)] CALPWSTR calpwstr; 143 [case (VT_VECTOR|VT_VARIANT)] CAPROPVARIANT capropvar; 144 [case (VT_BYREF|VT_I1)] CHAR *pcVal; 145 [case (VT_BYREF|VT_UI1)] UCHAR *pbVal; 146 [case (VT_BYREF|VT_I2)] SHORT *piVal; 147 [case (VT_BYREF|VT_UI2)] USHORT *puiVal; 148 [case (VT_BYREF|VT_I4)] LONG *plVal; 149 [case (VT_BYREF|VT_UI4)] ULONG *pulVal; 150 [case (VT_BYREF|VT_INT)] INT *pintVal; 151 [case (VT_BYREF|VT_UINT)] UINT *puintVal; 152 [case (VT_BYREF|VT_R4)] FLOAT *pfltVal; 153 [case (VT_BYREF|VT_R8)] DOUBLE *pdblVal; 154 [case (VT_BYREF|VT_BOOL)] VARIANT_BOOL *pboolVal; 155 [case (VT_BYREF|VT_DECIMAL)] DECIMAL *pdecVal; 156 [case (VT_BYREF|VT_ERROR)] SCODE *pscode; 157 [case (VT_BYREF|VT_CY)] CY *pcyVal; 158 [case (VT_BYREF|VT_DATE)] DATE *pdate; 159 [case (VT_BYREF|VT_BSTR)] BSTR *pbstrVal; 160 [case (VT_BYREF|VT_UNKNOWN)] IUnknown **ppunkVal; 161 [case (VT_BYREF|VT_DISPATCH)] IDispatch **ppdispVal; 162 [case (VT_BYREF|VT_ARRAY)] LPSAFEARRAY *pparray; 163 [case (VT_BYREF|VT_VARIANT)] PROPVARIANT *pvarVal; 164 }; 165}; 166cpp_quote(" DECIMAL decVal;") 167cpp_quote(" };") 168cpp_quote("};") 169 170cpp_quote("") 171 172cpp_quote("#if 0") 173typedef struct tag_inner_PROPVARIANT *LPPROPVARIANT; 174typedef const PROPVARIANT *REFPROPVARIANT; 175cpp_quote("#else") 176cpp_quote("typedef struct tagPROPVARIANT * LPPROPVARIANT;") 177cpp_quote("") 178cpp_quote("#ifndef _REFPROPVARIANT_DEFINED") 179cpp_quote("#define _REFPROPVARIANT_DEFINED") 180cpp_quote("#ifdef __cplusplus") 181cpp_quote("#define REFPROPVARIANT const PROPVARIANT &") 182cpp_quote("#else") 183cpp_quote("#define REFPROPVARIANT const PROPVARIANT * __MIDL_CONST") 184cpp_quote("#endif") 185cpp_quote("#endif") 186cpp_quote("#endif") 187cpp_quote("") 188const PROPID PID_DICTIONARY = 0x00000000; 189const PROPID PID_CODEPAGE = 0x00000001; 190const PROPID PID_FIRST_USABLE = 0x00000002; 191const PROPID PID_FIRST_NAME_DEFAULT = 0x00000fff; 192const PROPID PID_LOCALE = 0x80000000; 193const PROPID PID_MODIFY_TIME = 0x80000001; 194const PROPID PID_SECURITY = 0x80000002; 195const PROPID PID_BEHAVIOR = 0x80000003; 196const PROPID PID_ILLEGAL = 0xffffffff; 197cpp_quote("") 198const PROPID PID_MIN_READONLY = 0x80000000; 199const PROPID PID_MAX_READONLY = 0xbfffffff; 200cpp_quote("#endif") 201cpp_quote("") 202cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") 203cpp_quote("") 204cpp_quote("#define PIDDI_THUMBNAIL __MSABI_LONG(0x2)") 205cpp_quote("") 206cpp_quote("#define PIDSI_TITLE __MSABI_LONG(0x2)") 207cpp_quote("#define PIDSI_SUBJECT __MSABI_LONG(0x3)") 208cpp_quote("#define PIDSI_AUTHOR __MSABI_LONG(0x4)") 209cpp_quote("#define PIDSI_KEYWORDS __MSABI_LONG(0x5)") 210cpp_quote("#define PIDSI_COMMENTS __MSABI_LONG(0x6)") 211cpp_quote("#define PIDSI_TEMPLATE __MSABI_LONG(0x7)") 212cpp_quote("#define PIDSI_LASTAUTHOR __MSABI_LONG(0x8)") 213cpp_quote("#define PIDSI_REVNUMBER __MSABI_LONG(0x9)") 214cpp_quote("#define PIDSI_EDITTIME __MSABI_LONG(0xa)") 215cpp_quote("#define PIDSI_LASTPRINTED __MSABI_LONG(0xb)") 216cpp_quote("#define PIDSI_CREATE_DTM __MSABI_LONG(0xc)") 217cpp_quote("#define PIDSI_LASTSAVE_DTM __MSABI_LONG(0xd)") 218cpp_quote("#define PIDSI_PAGECOUNT __MSABI_LONG(0xe)") 219cpp_quote("#define PIDSI_WORDCOUNT __MSABI_LONG(0xf)") 220cpp_quote("#define PIDSI_CHARCOUNT __MSABI_LONG(0x10)") 221cpp_quote("#define PIDSI_THUMBNAIL __MSABI_LONG(0x11)") 222cpp_quote("#define PIDSI_APPNAME __MSABI_LONG(0x12)") 223cpp_quote("#define PIDSI_DOC_SECURITY __MSABI_LONG(0x13)") 224cpp_quote("") 225cpp_quote("#define PIDDSI_CATEGORY 0x00000002") 226cpp_quote("#define PIDDSI_PRESFORMAT 0x00000003") 227cpp_quote("#define PIDDSI_BYTECOUNT 0x00000004") 228cpp_quote("#define PIDDSI_LINECOUNT 0x00000005") 229cpp_quote("#define PIDDSI_PARCOUNT 0x00000006") 230cpp_quote("#define PIDDSI_SLIDECOUNT 0x00000007") 231cpp_quote("#define PIDDSI_NOTECOUNT 0x00000008") 232cpp_quote("#define PIDDSI_HIDDENCOUNT 0x00000009") 233cpp_quote("#define PIDDSI_MMCLIPCOUNT 0x0000000A") 234cpp_quote("#define PIDDSI_SCALE 0x0000000B") 235cpp_quote("#define PIDDSI_HEADINGPAIR 0x0000000C") 236cpp_quote("#define PIDDSI_DOCPARTS 0x0000000D") 237cpp_quote("#define PIDDSI_MANAGER 0x0000000E") 238cpp_quote("#define PIDDSI_COMPANY 0x0000000F") 239cpp_quote("#define PIDDSI_LINKSDIRTY 0x00000010") 240cpp_quote("") 241cpp_quote("#define PIDMSI_EDITOR __MSABI_LONG(0x2)") 242cpp_quote("#define PIDMSI_SUPPLIER __MSABI_LONG(0x3)") 243cpp_quote("#define PIDMSI_SOURCE __MSABI_LONG(0x4)") 244cpp_quote("#define PIDMSI_SEQUENCE_NO __MSABI_LONG(0x5)") 245cpp_quote("#define PIDMSI_PROJECT __MSABI_LONG(0x6)") 246cpp_quote("#define PIDMSI_STATUS __MSABI_LONG(0x7)") 247cpp_quote("#define PIDMSI_OWNER __MSABI_LONG(0x8)") 248cpp_quote("#define PIDMSI_RATING __MSABI_LONG(0x9)") 249cpp_quote("#define PIDMSI_PRODUCTION __MSABI_LONG(0xa)") 250cpp_quote("#define PIDMSI_COPYRIGHT __MSABI_LONG(0xb)") 251 252cpp_quote("") 253enum PIDMSI_STATUS_VALUE { 254 PIDMSI_STATUS_NORMAL = 0, 255 PIDMSI_STATUS_NEW, 256 PIDMSI_STATUS_PRELIM, 257 PIDMSI_STATUS_DRAFT, 258 PIDMSI_STATUS_INPROGRESS, 259 PIDMSI_STATUS_EDIT, 260 PIDMSI_STATUS_REVIEW, 261 PIDMSI_STATUS_PROOF, 262 PIDMSI_STATUS_FINAL, 263 PIDMSI_STATUS_OTHER = 0x7fff 264}; 265cpp_quote("#endif") 266cpp_quote("") 267cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") 268const ULONG PRSPEC_INVALID = 0xffffffff; 269const ULONG PRSPEC_LPWSTR = 0; 270const ULONG PRSPEC_PROPID = 1; 271cpp_quote("") 272typedef struct tagPROPSPEC { 273 ULONG ulKind; 274 [switch_is (ulKind)] union { 275 [case (PRSPEC_PROPID)] PROPID propid; 276 [case (PRSPEC_LPWSTR)] LPOLESTR lpwstr; 277 [default]; 278 } DUMMYUNIONNAME; 279} PROPSPEC; 280 281cpp_quote("") 282typedef struct tagSTATPROPSTG { 283 LPOLESTR lpwstrName; 284 PROPID propid; 285 VARTYPE vt; 286} STATPROPSTG; 287cpp_quote("") 288cpp_quote("#define PROPSETHDR_OSVER_KIND(dwOSVer) HIWORD((dwOSVer))") 289cpp_quote("#define PROPSETHDR_OSVER_MAJOR(dwOSVer) LOBYTE(LOWORD((dwOSVer)))") 290cpp_quote("#define PROPSETHDR_OSVER_MINOR(dwOSVer) HIBYTE(LOWORD((dwOSVer)))") 291cpp_quote("#define PROPSETHDR_OSVERSION_UNKNOWN 0xffffffff") 292 293cpp_quote("") 294typedef struct tagSTATPROPSETSTG { 295 FMTID fmtid; 296 CLSID clsid; 297 DWORD grfFlags; 298 FILETIME mtime; 299 FILETIME ctime; 300 FILETIME atime; 301 DWORD dwOSVersion; 302} STATPROPSETSTG; 303 304cpp_quote("") 305[object, uuid (00000138-0000-0000-C000-000000000046), pointer_default (unique)] 306interface IPropertyStorage : IUnknown { 307 HRESULT ReadMultiple ([in] ULONG cpspec,[in, size_is (cpspec)]const PROPSPEC rgpspec[],[out, size_is (cpspec)]PROPVARIANT rgpropvar[]); 308 HRESULT WriteMultiple ([in] ULONG cpspec,[in, size_is (cpspec)]const PROPSPEC rgpspec[],[in, size_is (cpspec)]const PROPVARIANT rgpropvar[],[in] PROPID propidNameFirst); 309 HRESULT DeleteMultiple ([in] ULONG cpspec,[in, size_is (cpspec)]const PROPSPEC rgpspec[]); 310 HRESULT ReadPropertyNames ([in] ULONG cpropid,[in, size_is (cpropid)]const PROPID rgpropid[],[out, size_is (cpropid)]LPOLESTR rglpwstrName[]); 311 HRESULT WritePropertyNames ([in] ULONG cpropid,[in, size_is (cpropid)]const PROPID rgpropid[],[in, size_is (cpropid)]const LPOLESTR rglpwstrName[]); 312 HRESULT DeletePropertyNames ([in] ULONG cpropid,[in, size_is (cpropid)]const PROPID rgpropid[]); 313 HRESULT Commit ([in] DWORD grfCommitFlags); 314 HRESULT Revert (); 315 HRESULT Enum ([out] IEnumSTATPROPSTG **ppenum); 316 HRESULT SetTimes ([in] FILETIME const *pctime,[in] FILETIME const *patime,[in] FILETIME const *pmtime); 317 HRESULT SetClass ([in] REFCLSID clsid); 318 HRESULT Stat ([out] STATPROPSETSTG *pstatpsstg); 319} 320 321cpp_quote("") 322[object, uuid (0000013a-0000-0000-C000-000000000046), pointer_default (unique)] 323interface IPropertySetStorage : IUnknown { 324 typedef [unique] IPropertySetStorage *LPPROPERTYSETSTORAGE; 325cpp_quote("") 326 HRESULT Create ([in] REFFMTID rfmtid,[in, unique]const CLSID *pclsid,[in] DWORD grfFlags,[in] DWORD grfMode,[out] IPropertyStorage **ppprstg); 327 HRESULT Open ([in] REFFMTID rfmtid,[in] DWORD grfMode,[out] IPropertyStorage **ppprstg); 328 HRESULT Delete ([in] REFFMTID rfmtid); 329 HRESULT Enum ([out] IEnumSTATPROPSETSTG **ppenum); 330} 331 332cpp_quote("") 333[object, uuid (00000139-0000-0000-C000-000000000046), pointer_default (unique)] 334interface IEnumSTATPROPSTG : IUnknown { 335 typedef [unique] IEnumSTATPROPSTG *LPENUMSTATPROPSTG; 336cpp_quote("") 337 [local] HRESULT Next ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)]STATPROPSTG *rgelt,[out]ULONG *pceltFetched); 338 [call_as (Next)] HRESULT RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)]STATPROPSTG *rgelt,[out] ULONG *pceltFetched); 339 HRESULT Skip ([in] ULONG celt); 340 HRESULT Reset (); 341 HRESULT Clone ([out] IEnumSTATPROPSTG **ppenum); 342} 343 344cpp_quote("") 345[object, uuid (0000013b-0000-0000-C000-000000000046), pointer_default (unique)] 346interface IEnumSTATPROPSETSTG : IUnknown { 347 typedef [unique] IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG; 348cpp_quote("") 349 [local] HRESULT Next ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)]STATPROPSETSTG *rgelt,[out]ULONG *pceltFetched); 350 [call_as (Next)] HRESULT RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)]STATPROPSETSTG *rgelt,[out] ULONG *pceltFetched); 351 HRESULT Skip ([in] ULONG celt); 352 HRESULT Reset (); 353 HRESULT Clone ([out] IEnumSTATPROPSETSTG **ppenum); 354} 355 356cpp_quote("") 357typedef [unique] IPropertyStorage *LPPROPERTYSTORAGE; 358cpp_quote("") 359cpp_quote(" WINOLEAPI PropVariantCopy(PROPVARIANT *pvarDest,const PROPVARIANT *pvarSrc);") 360cpp_quote(" WINOLEAPI PropVariantClear(PROPVARIANT *pvar);") 361cpp_quote(" WINOLEAPI FreePropVariantArray(ULONG cVariants, PROPVARIANT *rgvars);") 362cpp_quote("") 363cpp_quote("#define _PROPVARIANTINIT_DEFINED_") 364cpp_quote("#ifdef __cplusplus") 365cpp_quote("inline void PropVariantInit (PROPVARIANT *pvar) { memset (pvar, 0, sizeof (PROPVARIANT)); }") 366cpp_quote("#else") 367cpp_quote("#define PropVariantInit(pvar) memset ((pvar), 0, sizeof (PROPVARIANT))") 368cpp_quote("#endif") 369cpp_quote("") 370cpp_quote("#ifndef _STGCREATEPROPSTG_DEFINED_") 371cpp_quote(" WINOLEAPI StgCreatePropStg(IUnknown *pUnk, REFFMTID fmtid, const CLSID *pclsid, DWORD grfFlags, DWORD dwReserved, IPropertyStorage **ppPropStg);") 372cpp_quote(" WINOLEAPI StgOpenPropStg(IUnknown *pUnk, REFFMTID fmtid, DWORD grfFlags, DWORD dwReserved, IPropertyStorage **ppPropStg);") 373cpp_quote(" WINOLEAPI StgCreatePropSetStg(IStorage *pStorage, DWORD dwReserved, IPropertySetStorage **ppPropSetStg);") 374cpp_quote("") 375cpp_quote("#define CCH_MAX_PROPSTG_NAME 31") 376cpp_quote("") 377cpp_quote(" WINOLEAPI FmtIdToPropStgName(const FMTID *pfmtid, LPOLESTR oszName);") 378cpp_quote(" WINOLEAPI PropStgNameToFmtId(const LPOLESTR oszName, FMTID *pfmtid);") 379cpp_quote("#endif") 380cpp_quote("") 381cpp_quote("#ifndef _SERIALIZEDPROPERTYVALUE_DEFINED_") 382cpp_quote("#define _SERIALIZEDPROPERTYVALUE_DEFINED_") 383cpp_quote("typedef struct tagSERIALIZEDPROPERTYVALUE {") 384cpp_quote(" DWORD dwType;") 385cpp_quote(" BYTE rgb[1];") 386cpp_quote("} SERIALIZEDPROPERTYVALUE;") 387cpp_quote("#endif") 388cpp_quote("#endif") 389cpp_quote("") 390cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") 391cpp_quote("EXTERN_C SERIALIZEDPROPERTYVALUE * __stdcall StgConvertVariantToProperty(const PROPVARIANT *pvar, USHORT CodePage, SERIALIZEDPROPERTYVALUE *pprop, ULONG *pcb, PROPID pid, BOOLEAN fReserved, ULONG *pcIndirect);") 392cpp_quote("") 393cpp_quote("#ifdef __cplusplus") 394cpp_quote("class PMemoryAllocator;") 395cpp_quote("") 396cpp_quote("EXTERN_C BOOLEAN __stdcall StgConvertPropertyToVariant(const SERIALIZEDPROPERTYVALUE *pprop, USHORT CodePage, PROPVARIANT *pvar, PMemoryAllocator *pma);") 397cpp_quote("#endif") 398cpp_quote("") 399cpp_quote("#endif") 400