3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/*
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Copyright 2002 Ove Kaaven
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Copyright 2004 Francois Gouget
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Copyright 2005 Juan Lang
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is free software; you can redistribute it and/or
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * modify it under the terms of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License as published by the Free Software Foundation; either
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * version 2.1 of the License, or (at your option) any later version.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is distributed in the hope that it will be useful,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Lesser General Public License for more details.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * You should have received a copy of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License along with this library; if not, write to the Free Software
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync/*
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * a choice of LGPL license versions is made available with the language indicating
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * of the LGPL is applied is otherwise unspecified.
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync */
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef DO_NO_IMPORTS
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncimport "objidl.idl";
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncimport "oaidl.idl";
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/*
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Windows SDK braindamage alert
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * PID_DICTIONARY and PID_CODEPAGE are defined by msidefs.h too
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * PID_SECURITY is defined in msidefs.h with a different value!
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * So these need to be undefined first.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#ifdef PID_DICTIONARY")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#undef PID_DICTIONARY")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#endif")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#ifdef PID_CODEPAGE")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#undef PID_CODEPAGE")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#endif")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#ifdef PID_SECURITY")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#undef PID_SECURITY")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#endif")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/******************** Property Storage ********************/
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IEnumSTATPROPSTG;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IEnumSTATPROPSETSTG;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync object,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(00000138-0000-0000-C000-000000000046),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync pointer_default(unique)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IPropertyStorage : IUnknown
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync typedef [unique] IPropertyStorage *LPPROPERTYSTORAGE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const DWORD PROPSETFLAG_DEFAULT = 0;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const DWORD PROPSETFLAG_NONSIMPLE = 1;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const DWORD PROPSETFLAG_ANSI = 2;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const DWORD PROPSETFLAG_UNBUFFERED = 4;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const DWORD PROPSETFLAG_CASE_SENSITIVE = 8;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const DWORD PROPSET_BEHAVIOR_CASE_SENSITIVE = 1;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const PROPID PID_DICTIONARY = 0x00000000;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const PROPID PID_CODEPAGE = 0x00000001;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const PROPID PID_FIRST_USABLE = 0x00000002;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const PROPID PID_FIRST_NAME_DEFAULT = 0x00000fff;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const PROPID PID_LOCALE = 0x80000000;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const PROPID PID_MODIFY_TIME = 0x80000001;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const PROPID PID_SECURITY = 0x80000002;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const PROPID PID_BEHAVIOR = 0x80000003;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const PROPID PID_ILLEGAL = 0xffffffff;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const PROPID PID_MIN_READONLY = 0x80000000;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const PROPID PID_MAX_READONLY = 0xbfffffff;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync typedef struct tagPROPVARIANT PROPVARIANT;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TYPEDEF_CA(type, name) \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync typedef struct tag##name { \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ULONG cElems; \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [size_is(cElems)] \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync type *pElems; \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync } name
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync TYPEDEF_CA(unsigned char, CAUB);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync TYPEDEF_CA(short, CAI);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync TYPEDEF_CA(USHORT, CAUI);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync TYPEDEF_CA(long, CAL);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync TYPEDEF_CA(ULONG, CAUL);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync TYPEDEF_CA(float, CAFLT);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync TYPEDEF_CA(double, CADBL);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync TYPEDEF_CA(CY, CACY);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync TYPEDEF_CA(DATE, CADATE);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync TYPEDEF_CA(BSTR, CABSTR);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync TYPEDEF_CA(BSTRBLOB, CABSTRBLOB);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync TYPEDEF_CA(VARIANT_BOOL, CABOOL);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync TYPEDEF_CA(SCODE, CASCODE);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync TYPEDEF_CA(PROPVARIANT, CAPROPVARIANT);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync TYPEDEF_CA(LARGE_INTEGER, CAH);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync TYPEDEF_CA(ULARGE_INTEGER, CAUH);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync TYPEDEF_CA(LPSTR, CALPSTR);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync TYPEDEF_CA(LPWSTR, CALPWSTR);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync TYPEDEF_CA(FILETIME, CAFILETIME);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync TYPEDEF_CA(CLIPDATA, CACLIPDATA);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync TYPEDEF_CA(CLSID, CACLSID);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync struct tagPROPVARIANT {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync VARTYPE vt;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync WORD wReserved1;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync WORD wReserved2;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync WORD wReserved3;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [switch_is(vt & 0x1fff)] union {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_EMPTY, VT_NULL)] ;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_I1)] char cVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_UI1)] UCHAR bVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_I2)] short iVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_UI2)] USHORT uiVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BOOL)] VARIANT_BOOL boolVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#if 0 /* illegal in C++ */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_ILLEGAL)] _VARIANT_BOOL bool;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_I4)] long lVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_UI4)] ULONG ulVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_R4)] float fltVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_ERROR)] SCODE scode;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_I8)] LARGE_INTEGER hVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_UI8)] ULARGE_INTEGER uhVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_R8)] double dblVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_CY)] CY cyVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_DATE)] DATE date;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_FILETIME)] FILETIME filetime;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_CLSID)] CLSID *puuid;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BLOB, VT_BLOB_OBJECT)] BLOB blob;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_CF)] CLIPDATA *pclipdata;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_STREAM, VT_STREAMED_OBJECT)] IStream *pStream;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_STORAGE, VT_STORED_OBJECT)] IStorage *pStorage;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BSTR)] BSTR bstrVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BSTR_BLOB)] BSTRBLOB bstrblobVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_LPSTR)] LPSTR pszVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_LPWSTR)] LPWSTR pwszVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_UI1|VT_VECTOR)] CAUB caub;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_I2|VT_VECTOR)] CAI cai;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_UI2|VT_VECTOR)] CAUI caui;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BOOL|VT_VECTOR)] CABOOL cabool;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_I4|VT_VECTOR)] CAL cal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_UI4|VT_VECTOR)] CAUL caul;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_R4|VT_VECTOR)] CAFLT caflt;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_ERROR|VT_VECTOR)] CASCODE cascode;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_I8|VT_VECTOR)] CAH cah;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_UI8|VT_VECTOR)] CAUH cauh;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_R8|VT_VECTOR)] CADBL cadbl;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_CY|VT_VECTOR)] CACY cacy;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_DATE|VT_VECTOR)] CADATE cadate;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_FILETIME|VT_VECTOR)] CAFILETIME cafiletime;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_CLSID|VT_VECTOR)] CACLSID cauuid;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_CF|VT_VECTOR)] CACLIPDATA caclipdata;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BSTR|VT_VECTOR)] CABSTR cabstr;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BSTR_BLOB|VT_VECTOR)] CABSTRBLOB cabstrblob;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_LPSTR|VT_VECTOR)] CALPSTR calpstr;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_LPWSTR|VT_VECTOR)] CALPWSTR calpwstr;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_VARIANT|VT_VECTOR)] CAPROPVARIANT capropvar;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_ARRAY|VT_I1,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync VT_ARRAY|VT_UI1,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync VT_ARRAY|VT_I2,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync VT_ARRAY|VT_UI2,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync VT_ARRAY|VT_I4,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync VT_ARRAY|VT_UI4,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync VT_ARRAY|VT_INT,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync VT_ARRAY|VT_UINT,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync VT_ARRAY|VT_R4,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync VT_ARRAY|VT_R8,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync VT_ARRAY|VT_CY,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync VT_ARRAY|VT_DATE,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync VT_ARRAY|VT_BSTR,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync VT_ARRAY|VT_BOOL,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync VT_ARRAY|VT_DECIMAL,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync VT_ARRAY|VT_DISPATCH,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync VT_ARRAY|VT_UNKNOWN,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync VT_ARRAY|VT_ERROR,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync VT_ARRAY|VT_VARIANT)] LPSAFEARRAY parray;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BYREF|VT_I1)] CHAR *pcVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BYREF|VT_UI1)] UCHAR *pbVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BYREF|VT_I2)] SHORT *piVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BYREF|VT_UI2)] USHORT *puiVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BYREF|VT_I4)] LONG *plVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BYREF|VT_UI4)] ULONG *pulVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BYREF|VT_INT)] INT *pintVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BYREF|VT_UINT)] UINT *puintVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BYREF|VT_R4)] FLOAT *pfltVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BYREF|VT_R8)] DOUBLE *pdblVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BYREF|VT_BOOL)] VARIANT_BOOL *pboolVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BYREF|VT_DECIMAL)] DECIMAL *pdecVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BYREF|VT_ERROR)] SCODE *pscode;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BYREF|VT_CY)] CY *pcyVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BYREF|VT_DATE)] DATE *pdate;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BYREF|VT_BSTR)] BSTR *pbstrVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BYREF|VT_UNKNOWN)] IUnknown **ppunkVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BYREF|VT_DISPATCH)] IDispatch **ppdispVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BYREF|VT_ARRAY)] LPSAFEARRAY *pparray;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(VT_BYREF|VT_VARIANT)] PROPVARIANT *pvarVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync };
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync };
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync typedef struct tagPROPVARIANT *LPPROPVARIANT;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#if 0")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync typedef const PROPVARIANT * REFPROPVARIANT;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#endif")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#ifndef _REFPROPVARIANT_DEFINED")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define _REFPROPVARIANT_DEFINED")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#ifdef __cplusplus")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define REFPROPVARIANT const PROPVARIANT &")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#else")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define REFPROPVARIANT const PROPVARIANT * __MIDL_CONST")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#endif")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#endif")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDDI_THUMBNAIL 0x00000002L /* VT_BLOB */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDSI_TITLE 0x00000002L /* VT_LPSTR */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDSI_SUBJECT 0x00000003L /* VT_LPSTR */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDSI_AUTHOR 0x00000004L /* VT_LPSTR */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDSI_KEYWORDS 0x00000005L /* VT_LPSTR */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDSI_COMMENTS 0x00000006L /* VT_LPSTR */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDSI_TEMPLATE 0x00000007L /* VT_LPSTR */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDSI_LASTAUTHOR 0x00000008L /* VT_LPSTR */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDSI_REVNUMBER 0x00000009L /* VT_LPSTR */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDSI_EDITTIME 0x0000000AL /* VT_FILETIME (UTC) */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDSI_LASTPRINTED 0x0000000BL /* VT_FILETIME (UTC) */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDSI_CREATE_DTM 0x0000000CL /* VT_FILETIME (UTC) */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDSI_LASTSAVE_DTM 0x0000000DL /* VT_FILETIME (UTC) */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDSI_PAGECOUNT 0x0000000EL /* VT_I4 */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDSI_WORDCOUNT 0x0000000FL /* VT_I4 */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDSI_CHARCOUNT 0x00000010L /* VT_I4 */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDSI_THUMBNAIL 0x00000011L /* VT_CF */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDSI_APPNAME 0x00000012L /* VT_LPSTR */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDSI_DOC_SECURITY 0x00000013L /* VT_I4 */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDDSI_CATEGORY 0x00000002L /* VT_LPSTR */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDDSI_PRESFORMAT 0x00000003L /* VT_LPSTR */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDDSI_BYTECOUNT 0x00000004L /* VT_I4 */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDDSI_LINECOUNT 0x00000005L /* VT_I4 */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDDSI_PARCOUNT 0x00000006L /* VT_I4 */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDDSI_SLIDECOUNT 0x00000007L /* VT_I4 */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDDSI_NOTECOUNT 0x00000008L /* VT_I4 */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDDSI_HIDDENCOUNT 0x00000009L /* VT_I4 */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDDSI_MMCLIPCOUNT 0x0000000AL /* VT_I4 */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDDSI_SCALE 0x0000000BL /* VT_BOOL */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDDSI_HEADINGPAIR 0x0000000CL /* VT_VARIANT|VT_VECTOR */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDDSI_DOCPARTS 0x0000000DL /* VT_LPSTR|VT_VECTOR */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDDSI_MANAGER 0x0000000EL /* VT_LPSTR */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDDSI_COMPANY 0x0000000FL /* VT_LPSTR */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PIDDSI_LINKSDIRTY 0x00000010L /* VT_B0OL */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const ULONG PRSPEC_INVALID = 0xffffffff;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const ULONG PRSPEC_LPWSTR = 0;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const ULONG PRSPEC_PROPID = 1;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync typedef struct tagPROPSPEC {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ULONG ulKind;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [switch_is(ulKind)] union {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(PRSPEC_PROPID)] PROPID propid;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [case(PRSPEC_LPWSTR)] LPOLESTR lpwstr;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [default] ;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync } DUMMYUNIONNAME;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync } PROPSPEC;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync typedef struct tagSTATPROPSTG {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LPOLESTR lpwstrName;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync PROPID propid;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync VARTYPE vt;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync } STATPROPSTG;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("/* Macros for dwOSVersion member of STATPROPSETSTG */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PROPSETHDR_OSVER_KIND(dwOSVer) HIWORD((dwOSVer))")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PROPSETHDR_OSVER_MAJOR(dwOSVer) LOBYTE(LOWORD((dwOSVer)))")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PROPSETHDR_OSVER_MINOR(dwOSVer) HIBYTE(LOWORD((dwOSVer)))")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cpp_quote("#define PROPSETHDR_OSVERSION_UNKNOWN 0xffffffff")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync typedef struct tagSTATPROPSETSTG {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync FMTID fmtid;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync CLSID clsid;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD grfFlags;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync FILETIME mtime;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync FILETIME ctime;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync FILETIME atime;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD dwOSVersion;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync } STATPROPSETSTG;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT ReadMultiple(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] ULONG cpspec,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in, size_is(cpspec)] const PROPSPEC rgpspec[],
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out, size_is(cpspec)] PROPVARIANT rgpropvar[]);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT WriteMultiple(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] ULONG cpspec,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in, size_is(cpspec)] const PROPSPEC rgpspec[],
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in, size_is(cpspec)] const PROPVARIANT rgpropvar[],
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] PROPID propidNameFirst);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT DeleteMultiple(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] ULONG cpspec,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in, size_is(cpspec)] const PROPSPEC rgpspec[]);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT ReadPropertyNames(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] ULONG cpropid,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in, size_is(cpropid)] const PROPID rgpropid[],
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out, size_is(cpropid)] LPOLESTR rglpwstrName[]);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT WritePropertyNames(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] ULONG cpropid,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in, size_is(cpropid)] const PROPID rgpropid[],
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in, size_is(cpropid)] const LPOLESTR rglpwstrName[]);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT DeletePropertyNames(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] ULONG cpropid,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in, size_is(cpropid)] const PROPID rgpropid[]);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Commit(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] DWORD grfCommitFlags);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Revert();
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Enum(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] IEnumSTATPROPSTG **ppenum);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetTimes(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] const FILETIME *pctime,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] const FILETIME *patime,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] const FILETIME *pmtime);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetClass(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] REFCLSID clsid);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Stat(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] STATPROPSETSTG *statpsstg);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync object,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(0000013A-0000-0000-C000-000000000046),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync pointer_default(unique)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IPropertySetStorage : IUnknown
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync typedef [unique] IPropertySetStorage *LPPROPERTYSETSTORAGE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Create(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] REFFMTID rfmtid,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in, unique] const CLSID *pclsid,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] DWORD grfFlags,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] DWORD grfMode,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] IPropertyStorage **ppprstg);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Open(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] REFFMTID rfmtid,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] DWORD grfMode,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] IPropertyStorage **ppprstg);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Delete(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] REFFMTID rfmtid);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Enum(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] IEnumSTATPROPSETSTG **ppenum);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync object,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(00000139-0000-0000-C000-000000000046),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync pointer_default(unique)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IEnumSTATPROPSTG : IUnknown
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync typedef [unique] IEnumSTATPROPSTG *LPENUMSTATPROPSTG;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [local]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Next(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] ULONG celt,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out, size_is(celt), length_is(*pceltFetched)]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STATPROPSTG *rgelt,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] ULONG *pceltFetched);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [call_as(Next)]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT RemoteNext(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] ULONG celt,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out, size_is(celt), length_is(*pceltFetched)]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STATPROPSTG *rgelt,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] ULONG *pceltFetched);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Skip(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] ULONG celt);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Reset();
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Clone(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] IEnumSTATPROPSTG **ppenum);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync object,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(0000013B-0000-0000-C000-000000000046),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync pointer_default(unique)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IEnumSTATPROPSETSTG : IUnknown
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync typedef [unique] IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [local]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Next(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] ULONG celt,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out, size_is(celt), length_is(*pceltFetched)]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STATPROPSETSTG *rgelt,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] ULONG *pceltFetched);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [call_as(Next)]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT RemoteNext(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] ULONG celt,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out, size_is(celt), length_is(*pceltFetched)]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STATPROPSETSTG *rgelt,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] ULONG *pceltFetched);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Skip(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] ULONG celt);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Reset();
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Clone(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] IEnumSTATPROPSETSTG **ppenum);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct SERIALIZEDPROPERTYVALUE {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD dwType;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync BYTE rgb[1];
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} SERIALIZEDPROPERTYVALUE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("HRESULT WINAPI FreePropVariantArray(ULONG,PROPVARIANT*);")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("HRESULT WINAPI PropVariantClear(PROPVARIANT*);")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("HRESULT WINAPI PropVariantCopy(PROPVARIANT*,const PROPVARIANT*);")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#define _PROPVARIANT_INIT_DEFINED_")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#define PropVariantInit(p) memset((p), 0, sizeof(PROPVARIANT))")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#ifndef _STGCREATEPROPSTG_DEFINED_")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#define _STGCREATEPROPSTG_DEFINED_")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("HRESULT WINAPI StgCreatePropStg(IUnknown *, REFFMTID, const CLSID *, DWORD, DWORD, IPropertyStorage **);")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("HRESULT WINAPI StgOpenPropStg(IUnknown *, REFFMTID, DWORD, DWORD, IPropertyStorage **);")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("HRESULT WINAPI StgCreatePropSetStg(IStorage *, DWORD, IPropertySetStorage **);")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#define CCH_MAX_PROPSTG_NAME 31")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("HRESULT WINAPI FmtIdToPropStgName(const FMTID *, LPOLESTR);")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("HRESULT WINAPI PropStgNameToFmtId(const LPOLESTR, FMTID *);")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#endif /* _STGCREATEPROPSTG_DEFINED_ */")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("")