Commit 83755cca authored by Francois Gouget's avatar Francois Gouget Committed by Alexandre Julliard

Move the PROPVARIANT declaration from objidl.idl to propidl.idl.

Move related API declarations from individual C files to propidl.idl. Remove uneeded include of propidl.h in the propvariant.c test.
parent f0e6b584
......@@ -2326,8 +2326,6 @@ static void OLE_FreeClipDataArray(ULONG count, CLIPDATA * pClipDataArray)
CoTaskMemFree(pClipDataArray[i].pClipData);
}
HRESULT WINAPI FreePropVariantArray(ULONG,PROPVARIANT*);
/******************************************************************************
* Check if a PROPVARIANT's type is valid.
*/
......
......@@ -19,10 +19,6 @@
*/
#include "windows.h"
/* not present in Wine yet */
/*#include "propidl.h"*/
WINOLEAPI PropVariantClear(PROPVARIANT*);
WINOLEAPI PropVariantCopy(PROPVARIANT*, const PROPVARIANT*);
#include "wine/test.h"
......
......@@ -137,7 +137,7 @@ typedef enum {
} OLE_RELEASE_METHOD;
typedef LONG LHCLIENTDOC;
typedef struct _OLEOBJECT *LPOLEOBJECT;
typedef struct _OLEOBJECT *_LPOLEOBJECT;
typedef struct _OLECLIENT *LPOLECLIENT;
typedef LONG OLECLIPFORMAT;/* dunno about this type, please change/add */
typedef OLEOPT_UPDATE *LPOLEOPT_UPDATE;
......@@ -145,52 +145,52 @@ typedef LPCSTR LPCOLESTR16;
struct _OLESTREAM;
typedef struct _OLEOBJECTVTBL {
void CALLBACK *(*QueryProtocol)(LPOLEOBJECT,LPCOLESTR16);
OLESTATUS (CALLBACK *Release)(LPOLEOBJECT);
OLESTATUS (CALLBACK *Show)(LPOLEOBJECT,BOOL16);
OLESTATUS (CALLBACK *DoVerb)(LPOLEOBJECT,UINT16,BOOL16,BOOL16);
OLESTATUS (CALLBACK *GetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE16 *);
OLESTATUS (CALLBACK *SetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE16);
OLESTATUS (CALLBACK *SetTargetDevice)(LPOLEOBJECT,HGLOBAL16);
OLESTATUS (CALLBACK *SetBounds)(LPOLEOBJECT,LPRECT16);
OLESTATUS (CALLBACK *EnumFormats)(LPOLEOBJECT,OLECLIPFORMAT);
OLESTATUS (CALLBACK *SetColorScheme)(LPOLEOBJECT,struct tagLOGPALETTE*);
OLESTATUS (CALLBACK *Delete)(LPOLEOBJECT);
OLESTATUS (CALLBACK *SetHostNames)(LPOLEOBJECT,LPCOLESTR16,LPCOLESTR16);
OLESTATUS (CALLBACK *SaveToStream)(LPOLEOBJECT,struct _OLESTREAM*);
OLESTATUS (CALLBACK *Clone)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,LPOLEOBJECT *);
OLESTATUS (CALLBACK *CopyFromLink)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,LPOLEOBJECT *);
OLESTATUS (CALLBACK *Equal)(LPOLEOBJECT,LPOLEOBJECT);
OLESTATUS (CALLBACK *CopyToClipBoard)(LPOLEOBJECT);
OLESTATUS (CALLBACK *Draw)(LPOLEOBJECT,HDC16,LPRECT16,LPRECT16,HDC16);
OLESTATUS (CALLBACK *Activate)(LPOLEOBJECT,UINT16,BOOL16,BOOL16,HWND16,LPRECT16);
OLESTATUS (CALLBACK *Execute)(LPOLEOBJECT,HGLOBAL16,UINT16);
OLESTATUS (CALLBACK *Close)(LPOLEOBJECT);
OLESTATUS (CALLBACK *Update)(LPOLEOBJECT);
OLESTATUS (CALLBACK *Reconnect)(LPOLEOBJECT);
OLESTATUS (CALLBACK *ObjectConvert)(LPOLEOBJECT,LPCOLESTR16,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,LPOLEOBJECT*);
OLESTATUS (CALLBACK *GetLinkUpdateOptions)(LPOLEOBJECT,LPOLEOPT_UPDATE);
OLESTATUS (CALLBACK *SetLinkUpdateOptions)(LPOLEOBJECT,OLEOPT_UPDATE);
OLESTATUS (CALLBACK *Rename)(LPOLEOBJECT,LPCOLESTR16);
OLESTATUS (CALLBACK *QueryName)(LPOLEOBJECT,LPSTR,LPUINT16);
OLESTATUS (CALLBACK *QueryType)(LPOLEOBJECT,LPLONG);
OLESTATUS (CALLBACK *QueryBounds)(LPOLEOBJECT,LPRECT16);
OLESTATUS (CALLBACK *QuerySize)(LPOLEOBJECT,LPDWORD);
OLESTATUS (CALLBACK *QueryOpen)(LPOLEOBJECT);
OLESTATUS (CALLBACK *QueryOutOfDate)(LPOLEOBJECT);
OLESTATUS (CALLBACK *QueryReleaseStatus)(LPOLEOBJECT);
OLESTATUS (CALLBACK *QueryReleaseError)(LPOLEOBJECT);
OLE_RELEASE_METHOD (CALLBACK *QueryReleaseMethod)(LPOLEOBJECT);
OLESTATUS (CALLBACK *RequestData)(LPOLEOBJECT,OLECLIPFORMAT);
OLESTATUS (CALLBACK *ObjectLong)(LPOLEOBJECT,UINT16,LPLONG);
typedef struct _OLEOBJECTVTBL16 {
void CALLBACK *(*QueryProtocol)(_LPOLEOBJECT,LPCOLESTR16);
OLESTATUS (CALLBACK *Release)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *Show)(_LPOLEOBJECT,BOOL16);
OLESTATUS (CALLBACK *DoVerb)(_LPOLEOBJECT,UINT16,BOOL16,BOOL16);
OLESTATUS (CALLBACK *GetData)(_LPOLEOBJECT,OLECLIPFORMAT,HANDLE16 *);
OLESTATUS (CALLBACK *SetData)(_LPOLEOBJECT,OLECLIPFORMAT,HANDLE16);
OLESTATUS (CALLBACK *SetTargetDevice)(_LPOLEOBJECT,HGLOBAL16);
OLESTATUS (CALLBACK *SetBounds)(_LPOLEOBJECT,LPRECT16);
OLESTATUS (CALLBACK *EnumFormats)(_LPOLEOBJECT,OLECLIPFORMAT);
OLESTATUS (CALLBACK *SetColorScheme)(_LPOLEOBJECT,struct tagLOGPALETTE*);
OLESTATUS (CALLBACK *Delete)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *SetHostNames)(_LPOLEOBJECT,LPCOLESTR16,LPCOLESTR16);
OLESTATUS (CALLBACK *SaveToStream)(_LPOLEOBJECT,struct _OLESTREAM*);
OLESTATUS (CALLBACK *Clone)(_LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,_LPOLEOBJECT *);
OLESTATUS (CALLBACK *CopyFromLink)(_LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,_LPOLEOBJECT *);
OLESTATUS (CALLBACK *Equal)(_LPOLEOBJECT,_LPOLEOBJECT);
OLESTATUS (CALLBACK *CopyToClipBoard)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *Draw)(_LPOLEOBJECT,HDC16,LPRECT16,LPRECT16,HDC16);
OLESTATUS (CALLBACK *Activate)(_LPOLEOBJECT,UINT16,BOOL16,BOOL16,HWND16,LPRECT16);
OLESTATUS (CALLBACK *Execute)(_LPOLEOBJECT,HGLOBAL16,UINT16);
OLESTATUS (CALLBACK *Close)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *Update)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *Reconnect)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *ObjectConvert)(_LPOLEOBJECT,LPCOLESTR16,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,_LPOLEOBJECT*);
OLESTATUS (CALLBACK *GetLinkUpdateOptions)(_LPOLEOBJECT,LPOLEOPT_UPDATE);
OLESTATUS (CALLBACK *SetLinkUpdateOptions)(_LPOLEOBJECT,OLEOPT_UPDATE);
OLESTATUS (CALLBACK *Rename)(_LPOLEOBJECT,LPCOLESTR16);
OLESTATUS (CALLBACK *QueryName)(_LPOLEOBJECT,LPSTR,LPUINT16);
OLESTATUS (CALLBACK *QueryType)(_LPOLEOBJECT,LPLONG);
OLESTATUS (CALLBACK *QueryBounds)(_LPOLEOBJECT,LPRECT16);
OLESTATUS (CALLBACK *QuerySize)(_LPOLEOBJECT,LPDWORD);
OLESTATUS (CALLBACK *QueryOpen)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *QueryOutOfDate)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *QueryReleaseStatus)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *QueryReleaseError)(_LPOLEOBJECT);
OLE_RELEASE_METHOD (CALLBACK *QueryReleaseMethod)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *RequestData)(_LPOLEOBJECT,OLECLIPFORMAT);
OLESTATUS (CALLBACK *ObjectLong)(_LPOLEOBJECT,UINT16,LPLONG);
} OLEOBJECTVTBL;
typedef OLEOBJECTVTBL *LPOLEOBJECTVTBL;
typedef struct _OLEOBJECT
{
LPOLEOBJECTVTBL lpvtbl;
} OLEOBJECT;
} OLEOBJECT16;
static LONG OLE_current_handle;
......@@ -293,7 +293,7 @@ BOOL16 WINAPI OleIsDcMeta16(HDC16 hdc)
/******************************************************************************
* OleQueryType [OLECLI.14]
*/
OLESTATUS WINAPI OleQueryType16(LPOLEOBJECT oleob, SEGPTR xlong) {
OLESTATUS WINAPI OleQueryType16(_LPOLEOBJECT oleob, SEGPTR xlong) {
FIXME("(%p, %p): stub!\n", oleob, MapSL(xlong));
return OLE_OK;
}
......
......@@ -137,7 +137,7 @@ typedef enum {
} OLE_RELEASE_METHOD;
typedef LONG LHCLIENTDOC;
typedef struct _OLEOBJECT *LPOLEOBJECT;
typedef struct _OLEOBJECT *_LPOLEOBJECT;
typedef struct _OLECLIENT *LPOLECLIENT;
typedef LONG OLECLIPFORMAT;/* dunno about this type, please change/add */
typedef OLEOPT_UPDATE *LPOLEOPT_UPDATE;
......@@ -146,44 +146,44 @@ typedef LPCSTR LPCOLESTR16;
struct _OLESTREAM;
typedef struct _OLEOBJECTVTBL {
void CALLBACK *(*QueryProtocol)(LPOLEOBJECT,LPCOLESTR16);
OLESTATUS (CALLBACK *Release)(LPOLEOBJECT);
OLESTATUS (CALLBACK *Show)(LPOLEOBJECT,BOOL16);
OLESTATUS (CALLBACK *DoVerb)(LPOLEOBJECT,UINT16,BOOL16,BOOL16);
OLESTATUS (CALLBACK *GetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE16 *);
OLESTATUS (CALLBACK *SetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE16);
OLESTATUS (CALLBACK *SetTargetDevice)(LPOLEOBJECT,HGLOBAL16);
OLESTATUS (CALLBACK *SetBounds)(LPOLEOBJECT,LPRECT16);
OLESTATUS (CALLBACK *EnumFormats)(LPOLEOBJECT,OLECLIPFORMAT);
OLESTATUS (CALLBACK *SetColorScheme)(LPOLEOBJECT,struct tagLOGPALETTE*);
OLESTATUS (CALLBACK *Delete)(LPOLEOBJECT);
OLESTATUS (CALLBACK *SetHostNames)(LPOLEOBJECT,LPCOLESTR16,LPCOLESTR16);
OLESTATUS (CALLBACK *SaveToStream)(LPOLEOBJECT,struct _OLESTREAM*);
OLESTATUS (CALLBACK *Clone)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,LPOLEOBJECT *);
OLESTATUS (CALLBACK *CopyFromLink)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,LPOLEOBJECT *);
OLESTATUS (CALLBACK *Equal)(LPOLEOBJECT,LPOLEOBJECT);
OLESTATUS (CALLBACK *CopyToClipBoard)(LPOLEOBJECT);
OLESTATUS (CALLBACK *Draw)(LPOLEOBJECT,HDC16,LPRECT16,LPRECT16,HDC16);
OLESTATUS (CALLBACK *Activate)(LPOLEOBJECT,UINT16,BOOL16,BOOL16,HWND16,LPRECT16);
OLESTATUS (CALLBACK *Execute)(LPOLEOBJECT,HGLOBAL16,UINT16);
OLESTATUS (CALLBACK *Close)(LPOLEOBJECT);
OLESTATUS (CALLBACK *Update)(LPOLEOBJECT);
OLESTATUS (CALLBACK *Reconnect)(LPOLEOBJECT);
OLESTATUS (CALLBACK *ObjectConvert)(LPOLEOBJECT,LPCOLESTR16,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,LPOLEOBJECT*);
OLESTATUS (CALLBACK *GetLinkUpdateOptions)(LPOLEOBJECT,LPOLEOPT_UPDATE);
OLESTATUS (CALLBACK *SetLinkUpdateOptions)(LPOLEOBJECT,OLEOPT_UPDATE);
OLESTATUS (CALLBACK *Rename)(LPOLEOBJECT,LPCOLESTR16);
OLESTATUS (CALLBACK *QueryName)(LPOLEOBJECT,LPSTR,LPUINT16);
OLESTATUS (CALLBACK *QueryType)(LPOLEOBJECT,LPLONG);
OLESTATUS (CALLBACK *QueryBounds)(LPOLEOBJECT,LPRECT16);
OLESTATUS (CALLBACK *QuerySize)(LPOLEOBJECT,LPDWORD);
OLESTATUS (CALLBACK *QueryOpen)(LPOLEOBJECT);
OLESTATUS (CALLBACK *QueryOutOfDate)(LPOLEOBJECT);
OLESTATUS (CALLBACK *QueryReleaseStatus)(LPOLEOBJECT);
OLESTATUS (CALLBACK *QueryReleaseError)(LPOLEOBJECT);
OLE_RELEASE_METHOD (CALLBACK *QueryReleaseMethod)(LPOLEOBJECT);
OLESTATUS (CALLBACK *RequestData)(LPOLEOBJECT,OLECLIPFORMAT);
OLESTATUS (CALLBACK *ObjectLong)(LPOLEOBJECT,UINT16,LPLONG);
void CALLBACK *(*QueryProtocol)(_LPOLEOBJECT,LPCOLESTR16);
OLESTATUS (CALLBACK *Release)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *Show)(_LPOLEOBJECT,BOOL16);
OLESTATUS (CALLBACK *DoVerb)(_LPOLEOBJECT,UINT16,BOOL16,BOOL16);
OLESTATUS (CALLBACK *GetData)(_LPOLEOBJECT,OLECLIPFORMAT,HANDLE16 *);
OLESTATUS (CALLBACK *SetData)(_LPOLEOBJECT,OLECLIPFORMAT,HANDLE16);
OLESTATUS (CALLBACK *SetTargetDevice)(_LPOLEOBJECT,HGLOBAL16);
OLESTATUS (CALLBACK *SetBounds)(_LPOLEOBJECT,LPRECT16);
OLESTATUS (CALLBACK *EnumFormats)(_LPOLEOBJECT,OLECLIPFORMAT);
OLESTATUS (CALLBACK *SetColorScheme)(_LPOLEOBJECT,struct tagLOGPALETTE*);
OLESTATUS (CALLBACK *Delete)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *SetHostNames)(_LPOLEOBJECT,LPCOLESTR16,LPCOLESTR16);
OLESTATUS (CALLBACK *SaveToStream)(_LPOLEOBJECT,struct _OLESTREAM*);
OLESTATUS (CALLBACK *Clone)(_LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,_LPOLEOBJECT *);
OLESTATUS (CALLBACK *CopyFromLink)(_LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,_LPOLEOBJECT *);
OLESTATUS (CALLBACK *Equal)(_LPOLEOBJECT,_LPOLEOBJECT);
OLESTATUS (CALLBACK *CopyToClipBoard)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *Draw)(_LPOLEOBJECT,HDC16,LPRECT16,LPRECT16,HDC16);
OLESTATUS (CALLBACK *Activate)(_LPOLEOBJECT,UINT16,BOOL16,BOOL16,HWND16,LPRECT16);
OLESTATUS (CALLBACK *Execute)(_LPOLEOBJECT,HGLOBAL16,UINT16);
OLESTATUS (CALLBACK *Close)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *Update)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *Reconnect)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *ObjectConvert)(_LPOLEOBJECT,LPCOLESTR16,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,_LPOLEOBJECT*);
OLESTATUS (CALLBACK *GetLinkUpdateOptions)(_LPOLEOBJECT,LPOLEOPT_UPDATE);
OLESTATUS (CALLBACK *SetLinkUpdateOptions)(_LPOLEOBJECT,OLEOPT_UPDATE);
OLESTATUS (CALLBACK *Rename)(_LPOLEOBJECT,LPCOLESTR16);
OLESTATUS (CALLBACK *QueryName)(_LPOLEOBJECT,LPSTR,LPUINT16);
OLESTATUS (CALLBACK *QueryType)(_LPOLEOBJECT,LPLONG);
OLESTATUS (CALLBACK *QueryBounds)(_LPOLEOBJECT,LPRECT16);
OLESTATUS (CALLBACK *QuerySize)(_LPOLEOBJECT,LPDWORD);
OLESTATUS (CALLBACK *QueryOpen)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *QueryOutOfDate)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *QueryReleaseStatus)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *QueryReleaseError)(_LPOLEOBJECT);
OLE_RELEASE_METHOD (CALLBACK *QueryReleaseMethod)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *RequestData)(_LPOLEOBJECT,OLECLIPFORMAT);
OLESTATUS (CALLBACK *ObjectLong)(_LPOLEOBJECT,UINT16,LPLONG);
} OLEOBJECTVTBL;
typedef OLEOBJECTVTBL *LPOLEOBJECTVTBL;
......@@ -237,7 +237,7 @@ OLESTATUS WINAPI OleRevokeClientDoc(LHCLIENTDOC hServerDoc)
*/
OLESTATUS WINAPI OleCreateLinkFromClip(
LPCSTR name,LPOLECLIENT olecli,LHCLIENTDOC hclientdoc,LPCSTR xname,
LPOLEOBJECT *lpoleob,OLEOPT_RENDER render,OLECLIPFORMAT clipformat
_LPOLEOBJECT *lpoleob,OLEOPT_RENDER render,OLECLIPFORMAT clipformat
) {
FIXME("(%s,%p,%08lx,%s,%p,%d,%ld): stub!\n",
name,olecli,hclientdoc,xname,lpoleob,render,clipformat);
......@@ -272,7 +272,7 @@ BOOL WINAPI OleIsDcMeta(HDC hdc)
/******************************************************************************
* OleSetHostNames [OLECLI32.15]
*/
OLESTATUS WINAPI OleSetHostNames(LPOLEOBJECT oleob,LPCSTR name1,LPCSTR name2) {
OLESTATUS WINAPI OleSetHostNames(_LPOLEOBJECT oleob,LPCSTR name1,LPCSTR name2) {
FIXME("(%p,%s,%s): stub\n",oleob,name1,name2);
return OLE_OK;
}
......@@ -280,7 +280,7 @@ OLESTATUS WINAPI OleSetHostNames(LPOLEOBJECT oleob,LPCSTR name1,LPCSTR name2) {
/******************************************************************************
* OleQueryType [OLECLI32.14]
*/
OLESTATUS WINAPI OleQueryType(LPOLEOBJECT oleob,LONG*xlong) {
OLESTATUS WINAPI OleQueryType(_LPOLEOBJECT oleob,LONG*xlong) {
FIXME("(%p,%p): stub!\n",oleob,xlong);
if (!oleob)
return 0x10;
......@@ -294,7 +294,7 @@ OLESTATUS WINAPI OleQueryType(LPOLEOBJECT oleob,LONG*xlong) {
*/
OLESTATUS WINAPI OleCreateFromClip(
LPCSTR name,LPOLECLIENT olecli,LHCLIENTDOC hclientdoc,LPCSTR xname,
LPOLEOBJECT *lpoleob,OLEOPT_RENDER render, OLECLIPFORMAT clipformat
_LPOLEOBJECT *lpoleob,OLEOPT_RENDER render, OLECLIPFORMAT clipformat
) {
FIXME("(%s,%p,%08lx,%s,%p,%d,%ld): stub!\n",
name,olecli,hclientdoc,xname,lpoleob,render,clipformat);
......
......@@ -20,6 +20,7 @@ IDL_SRCS = \
objidl.idl \
ocidl.idl \
oleidl.idl \
propidl.idl \
pstore.idl \
servprov.idl \
shldisp.idl \
......
......@@ -487,6 +487,8 @@ HRESULT WINAPI StgOpenStorageOnILockBytes(ILockBytes *plkbyt, IStorage *pstgPrio
}
#endif
/* FIXME: #include <urlmon.h> */
#include <propidl.h>
#ifndef __WINESRC__
......
......@@ -7669,952 +7669,12 @@ void __RPC_STUB IChannelHook_ServerFillBuffer_Stub(
#endif /* __IChannelHook_INTERFACE_DEFINED__ */
#ifndef __IEnumSTATPROPSTG_FWD_DEFINED__
#define __IEnumSTATPROPSTG_FWD_DEFINED__
typedef struct IEnumSTATPROPSTG IEnumSTATPROPSTG;
#endif
#ifndef __IEnumSTATPROPSETSTG_FWD_DEFINED__
#define __IEnumSTATPROPSETSTG_FWD_DEFINED__
typedef struct IEnumSTATPROPSETSTG IEnumSTATPROPSETSTG;
#endif
#ifndef __IPropertyStorage_FWD_DEFINED__
#define __IPropertyStorage_FWD_DEFINED__
typedef struct IPropertyStorage IPropertyStorage;
#endif
typedef IPropertyStorage *LPPROPERTYSTORAGE;
extern const FMTID FMTID_SummaryInformation;
extern const FMTID FMTID_DocSummaryInformation;
extern const FMTID FMTID_UserDefinedProperties;
#define PROPSETFLAG_DEFAULT (0)
#define PROPSETFLAG_NONSIMPLE (1)
#define PROPSETFLAG_ANSI (2)
#define PROPSETFLAG_UNBUFFERED (4)
typedef struct tagPROPVARIANT PROPVARIANT;
typedef struct tagCAUB {
ULONG cElems;
unsigned char *pElems;
} CAUB;
typedef struct tagCAI {
ULONG cElems;
short *pElems;
} CAI;
typedef struct tagCAUI {
ULONG cElems;
USHORT *pElems;
} CAUI;
typedef struct tagCAL {
ULONG cElems;
long *pElems;
} CAL;
typedef struct tagCAUL {
ULONG cElems;
ULONG *pElems;
} CAUL;
typedef struct tagCAFLT {
ULONG cElems;
float *pElems;
} CAFLT;
typedef struct tagCADBL {
ULONG cElems;
double *pElems;
} CADBL;
typedef struct tagCACY {
ULONG cElems;
CY *pElems;
} CACY;
typedef struct tagCADATE {
ULONG cElems;
DATE *pElems;
} CADATE;
typedef struct tagCABSTR {
ULONG cElems;
BSTR *pElems;
} CABSTR;
typedef struct tagCABSTRBLOB {
ULONG cElems;
BSTRBLOB *pElems;
} CABSTRBLOB;
typedef struct tagCABOOL {
ULONG cElems;
VARIANT_BOOL *pElems;
} CABOOL;
typedef struct tagCASCODE {
ULONG cElems;
SCODE *pElems;
} CASCODE;
typedef struct tagCAPROPVARIANT {
ULONG cElems;
PROPVARIANT *pElems;
} CAPROPVARIANT;
typedef struct tagCAH {
ULONG cElems;
LARGE_INTEGER *pElems;
} CAH;
typedef struct tagCAUH {
ULONG cElems;
ULARGE_INTEGER *pElems;
} CAUH;
typedef struct tagCALPSTR {
ULONG cElems;
LPSTR *pElems;
} CALPSTR;
typedef struct tagCALPWSTR {
ULONG cElems;
LPWSTR *pElems;
} CALPWSTR;
typedef struct tagCAFILETIME {
ULONG cElems;
FILETIME *pElems;
} CAFILETIME;
typedef struct tagCACLIPDATA {
ULONG cElems;
CLIPDATA *pElems;
} CACLIPDATA;
typedef struct tagCACLSID {
ULONG cElems;
CLSID *pElems;
} CACLSID;
struct tagPROPVARIANT {
VARTYPE vt;
WORD wReserved1;
WORD wReserved2;
WORD wReserved3;
union {
char cVal;
UCHAR bVal;
short iVal;
USHORT uiVal;
VARIANT_BOOL boolVal;
long lVal;
ULONG ulVal;
float fltVal;
SCODE scode;
LARGE_INTEGER hVal;
ULARGE_INTEGER uhVal;
double dblVal;
CY cyVal;
DATE date;
FILETIME filetime;
CLSID *puuid;
BLOB blob;
CLIPDATA *pclipdata;
IStream *pStream;
IStorage *pStorage;
BSTR bstrVal;
BSTRBLOB bstrblobVal;
LPSTR pszVal;
LPWSTR pwszVal;
CAUB caub;
CAI cai;
CAUI caui;
CABOOL cabool;
CAL cal;
CAUL caul;
CAFLT caflt;
CASCODE cascode;
CAH cah;
CAUH cauh;
CADBL cadbl;
CACY cacy;
CADATE cadate;
CAFILETIME cafiletime;
CACLSID cauuid;
CACLIPDATA caclipdata;
CABSTR cabstr;
CABSTRBLOB cabstrblob;
CALPSTR calpstr;
CALPWSTR calpwstr;
CAPROPVARIANT capropvar;
} DUMMYUNIONNAME;
};
typedef struct tagPROPVARIANT *LPPROPVARIANT;
#define PRSPEC_INVALID (0xffffffff)
#define PRSPEC_LPWSTR (0)
#define PRSPEC_PROPID (1)
typedef struct tagPROPSPEC {
ULONG ulKind;
union {
PROPID propid;
LPOLESTR lpwstr;
} DUMMYUNIONNAME;
} PROPSPEC;
typedef struct tagSTATPROPSTG {
LPOLESTR lpwstrName;
PROPID propid;
VARTYPE vt;
} STATPROPSTG;
typedef struct tagSTATPROPSETSTG {
FMTID fmtid;
CLSID clsid;
DWORD grfFlags;
FILETIME mtime;
FILETIME ctime;
FILETIME atime;
DWORD dwOSVersion;
} STATPROPSETSTG;
/*****************************************************************************
* IPropertyStorage interface
*/
#ifndef __IPropertyStorage_INTERFACE_DEFINED__
#define __IPropertyStorage_INTERFACE_DEFINED__
DEFINE_GUID(IID_IPropertyStorage, 0x00000138, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IPropertyStorage : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE ReadMultiple(
ULONG cpspec,
const PROPSPEC rgpspec[],
PROPVARIANT rgpropvar[]) = 0;
virtual HRESULT STDMETHODCALLTYPE WriteMultiple(
ULONG cpspec,
const PROPSPEC rgpspec[],
const PROPVARIANT rgpropvar[],
PROPID propidNameFirst) = 0;
virtual HRESULT STDMETHODCALLTYPE DeleteMultiple(
ULONG cpspec,
const PROPSPEC rgpspec[]) = 0;
virtual HRESULT STDMETHODCALLTYPE ReadPropertyNames(
ULONG cpropid,
const PROPID rgpropid[],
LPOLESTR rglpwstrName[]) = 0;
virtual HRESULT STDMETHODCALLTYPE WritePropertyNames(
ULONG cpropid,
const PROPID rgpropid[],
const LPOLESTR rglpwstrName[]) = 0;
virtual HRESULT STDMETHODCALLTYPE DeletePropertyNames(
ULONG cpropid,
const PROPID rgpropid[]) = 0;
virtual HRESULT STDMETHODCALLTYPE Commit(
DWORD grfCommitFlags) = 0;
virtual HRESULT STDMETHODCALLTYPE Revert(
) = 0;
virtual HRESULT STDMETHODCALLTYPE Enum(
IEnumSTATPROPSTG** ppenum) = 0;
virtual HRESULT STDMETHODCALLTYPE SetTimes(
const FILETIME* pctime,
const FILETIME* patime,
const FILETIME* pmtime) = 0;
virtual HRESULT STDMETHODCALLTYPE SetClass(
REFCLSID clsid) = 0;
virtual HRESULT STDMETHODCALLTYPE Stat(
STATPROPSETSTG* statpsstg) = 0;
};
#else
typedef struct IPropertyStorageVtbl IPropertyStorageVtbl;
struct IPropertyStorage {
const IPropertyStorageVtbl* lpVtbl;
};
struct IPropertyStorageVtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IPropertyStorage* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IPropertyStorage* This);
ULONG (STDMETHODCALLTYPE *Release)(
IPropertyStorage* This);
/*** IPropertyStorage methods ***/
HRESULT (STDMETHODCALLTYPE *ReadMultiple)(
IPropertyStorage* This,
ULONG cpspec,
const PROPSPEC rgpspec[],
PROPVARIANT rgpropvar[]);
HRESULT (STDMETHODCALLTYPE *WriteMultiple)(
IPropertyStorage* This,
ULONG cpspec,
const PROPSPEC rgpspec[],
const PROPVARIANT rgpropvar[],
PROPID propidNameFirst);
HRESULT (STDMETHODCALLTYPE *DeleteMultiple)(
IPropertyStorage* This,
ULONG cpspec,
const PROPSPEC rgpspec[]);
HRESULT (STDMETHODCALLTYPE *ReadPropertyNames)(
IPropertyStorage* This,
ULONG cpropid,
const PROPID rgpropid[],
LPOLESTR rglpwstrName[]);
HRESULT (STDMETHODCALLTYPE *WritePropertyNames)(
IPropertyStorage* This,
ULONG cpropid,
const PROPID rgpropid[],
const LPOLESTR rglpwstrName[]);
HRESULT (STDMETHODCALLTYPE *DeletePropertyNames)(
IPropertyStorage* This,
ULONG cpropid,
const PROPID rgpropid[]);
HRESULT (STDMETHODCALLTYPE *Commit)(
IPropertyStorage* This,
DWORD grfCommitFlags);
HRESULT (STDMETHODCALLTYPE *Revert)(
IPropertyStorage* This);
HRESULT (STDMETHODCALLTYPE *Enum)(
IPropertyStorage* This,
IEnumSTATPROPSTG** ppenum);
HRESULT (STDMETHODCALLTYPE *SetTimes)(
IPropertyStorage* This,
const FILETIME* pctime,
const FILETIME* patime,
const FILETIME* pmtime);
HRESULT (STDMETHODCALLTYPE *SetClass)(
IPropertyStorage* This,
REFCLSID clsid);
HRESULT (STDMETHODCALLTYPE *Stat)(
IPropertyStorage* This,
STATPROPSETSTG* statpsstg);
END_INTERFACE
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IPropertyStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IPropertyStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IPropertyStorage_Release(p) (p)->lpVtbl->Release(p)
/*** IPropertyStorage methods ***/
#define IPropertyStorage_ReadMultiple(p,a,b,c) (p)->lpVtbl->ReadMultiple(p,a,b,c)
#define IPropertyStorage_WriteMultiple(p,a,b,c,d) (p)->lpVtbl->WriteMultiple(p,a,b,c,d)
#define IPropertyStorage_DeleteMultiple(p,a,b) (p)->lpVtbl->DeleteMultiple(p,a,b)
#define IPropertyStorage_ReadPropertyNames(p,a,b,c) (p)->lpVtbl->ReadPropertyNames(p,a,b,c)
#define IPropertyStorage_WritePropertyNames(p,a,b,c) (p)->lpVtbl->WritePropertyNames(p,a,b,c)
#define IPropertyStorage_DeletePropertyNames(p,a,b) (p)->lpVtbl->DeletePropertyNames(p,a,b)
#define IPropertyStorage_Commit(p,a) (p)->lpVtbl->Commit(p,a)
#define IPropertyStorage_Revert(p) (p)->lpVtbl->Revert(p)
#define IPropertyStorage_Enum(p,a) (p)->lpVtbl->Enum(p,a)
#define IPropertyStorage_SetTimes(p,a,b,c) (p)->lpVtbl->SetTimes(p,a,b,c)
#define IPropertyStorage_SetClass(p,a) (p)->lpVtbl->SetClass(p,a)
#define IPropertyStorage_Stat(p,a) (p)->lpVtbl->Stat(p,a)
#endif
#endif
#define IPropertyStorage_METHODS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IPropertyStorage methods ***/ \
STDMETHOD_(HRESULT,ReadMultiple)(THIS_ ULONG cpspec, const PROPSPEC rgpspec[], PROPVARIANT rgpropvar[]) PURE; \
STDMETHOD_(HRESULT,WriteMultiple)(THIS_ ULONG cpspec, const PROPSPEC rgpspec[], const PROPVARIANT rgpropvar[], PROPID propidNameFirst) PURE; \
STDMETHOD_(HRESULT,DeleteMultiple)(THIS_ ULONG cpspec, const PROPSPEC rgpspec[]) PURE; \
STDMETHOD_(HRESULT,ReadPropertyNames)(THIS_ ULONG cpropid, const PROPID rgpropid[], LPOLESTR rglpwstrName[]) PURE; \
STDMETHOD_(HRESULT,WritePropertyNames)(THIS_ ULONG cpropid, const PROPID rgpropid[], const LPOLESTR rglpwstrName[]) PURE; \
STDMETHOD_(HRESULT,DeletePropertyNames)(THIS_ ULONG cpropid, const PROPID rgpropid[]) PURE; \
STDMETHOD_(HRESULT,Commit)(THIS_ DWORD grfCommitFlags) PURE; \
STDMETHOD_(HRESULT,Revert)(THIS) PURE; \
STDMETHOD_(HRESULT,Enum)(THIS_ IEnumSTATPROPSTG** ppenum) PURE; \
STDMETHOD_(HRESULT,SetTimes)(THIS_ const FILETIME* pctime, const FILETIME* patime, const FILETIME* pmtime) PURE; \
STDMETHOD_(HRESULT,SetClass)(THIS_ REFCLSID clsid) PURE; \
STDMETHOD_(HRESULT,Stat)(THIS_ STATPROPSETSTG* statpsstg) PURE;
HRESULT CALLBACK IPropertyStorage_ReadMultiple_Proxy(
IPropertyStorage* This,
ULONG cpspec,
const PROPSPEC rgpspec[],
PROPVARIANT rgpropvar[]);
void __RPC_STUB IPropertyStorage_ReadMultiple_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertyStorage_WriteMultiple_Proxy(
IPropertyStorage* This,
ULONG cpspec,
const PROPSPEC rgpspec[],
const PROPVARIANT rgpropvar[],
PROPID propidNameFirst);
void __RPC_STUB IPropertyStorage_WriteMultiple_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertyStorage_DeleteMultiple_Proxy(
IPropertyStorage* This,
ULONG cpspec,
const PROPSPEC rgpspec[]);
void __RPC_STUB IPropertyStorage_DeleteMultiple_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertyStorage_ReadPropertyNames_Proxy(
IPropertyStorage* This,
ULONG cpropid,
const PROPID rgpropid[],
LPOLESTR rglpwstrName[]);
void __RPC_STUB IPropertyStorage_ReadPropertyNames_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertyStorage_WritePropertyNames_Proxy(
IPropertyStorage* This,
ULONG cpropid,
const PROPID rgpropid[],
const LPOLESTR rglpwstrName[]);
void __RPC_STUB IPropertyStorage_WritePropertyNames_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertyStorage_DeletePropertyNames_Proxy(
IPropertyStorage* This,
ULONG cpropid,
const PROPID rgpropid[]);
void __RPC_STUB IPropertyStorage_DeletePropertyNames_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertyStorage_Commit_Proxy(
IPropertyStorage* This,
DWORD grfCommitFlags);
void __RPC_STUB IPropertyStorage_Commit_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertyStorage_Revert_Proxy(
IPropertyStorage* This);
void __RPC_STUB IPropertyStorage_Revert_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertyStorage_Enum_Proxy(
IPropertyStorage* This,
IEnumSTATPROPSTG** ppenum);
void __RPC_STUB IPropertyStorage_Enum_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertyStorage_SetTimes_Proxy(
IPropertyStorage* This,
const FILETIME* pctime,
const FILETIME* patime,
const FILETIME* pmtime);
void __RPC_STUB IPropertyStorage_SetTimes_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertyStorage_SetClass_Proxy(
IPropertyStorage* This,
REFCLSID clsid);
void __RPC_STUB IPropertyStorage_SetClass_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertyStorage_Stat_Proxy(
IPropertyStorage* This,
STATPROPSETSTG* statpsstg);
void __RPC_STUB IPropertyStorage_Stat_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IPropertyStorage_INTERFACE_DEFINED__ */
#ifndef __IPropertySetStorage_FWD_DEFINED__
#define __IPropertySetStorage_FWD_DEFINED__
typedef struct IPropertySetStorage IPropertySetStorage;
#endif
typedef IPropertySetStorage *LPPROPERTYSETSTORAGE;
/*****************************************************************************
* IPropertySetStorage interface
*/
#ifndef __IPropertySetStorage_INTERFACE_DEFINED__
#define __IPropertySetStorage_INTERFACE_DEFINED__
DEFINE_GUID(IID_IPropertySetStorage, 0x0000013a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IPropertySetStorage : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE Create(
REFFMTID rfmtid,
const CLSID* pclsid,
DWORD grfFlags,
DWORD grfMode,
IPropertyStorage** ppprstg) = 0;
virtual HRESULT STDMETHODCALLTYPE Open(
REFFMTID rfmtid,
DWORD grfMode,
IPropertyStorage** ppprstg) = 0;
virtual HRESULT STDMETHODCALLTYPE Delete(
REFFMTID rfmtid) = 0;
virtual HRESULT STDMETHODCALLTYPE Enum(
IEnumSTATPROPSETSTG** ppenum) = 0;
};
#else
typedef struct IPropertySetStorageVtbl IPropertySetStorageVtbl;
struct IPropertySetStorage {
const IPropertySetStorageVtbl* lpVtbl;
};
struct IPropertySetStorageVtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IPropertySetStorage* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IPropertySetStorage* This);
ULONG (STDMETHODCALLTYPE *Release)(
IPropertySetStorage* This);
/*** IPropertySetStorage methods ***/
HRESULT (STDMETHODCALLTYPE *Create)(
IPropertySetStorage* This,
REFFMTID rfmtid,
const CLSID* pclsid,
DWORD grfFlags,
DWORD grfMode,
IPropertyStorage** ppprstg);
HRESULT (STDMETHODCALLTYPE *Open)(
IPropertySetStorage* This,
REFFMTID rfmtid,
DWORD grfMode,
IPropertyStorage** ppprstg);
HRESULT (STDMETHODCALLTYPE *Delete)(
IPropertySetStorage* This,
REFFMTID rfmtid);
HRESULT (STDMETHODCALLTYPE *Enum)(
IPropertySetStorage* This,
IEnumSTATPROPSETSTG** ppenum);
END_INTERFACE
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IPropertySetStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IPropertySetStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IPropertySetStorage_Release(p) (p)->lpVtbl->Release(p)
/*** IPropertySetStorage methods ***/
#define IPropertySetStorage_Create(p,a,b,c,d,e) (p)->lpVtbl->Create(p,a,b,c,d,e)
#define IPropertySetStorage_Open(p,a,b,c) (p)->lpVtbl->Open(p,a,b,c)
#define IPropertySetStorage_Delete(p,a) (p)->lpVtbl->Delete(p,a)
#define IPropertySetStorage_Enum(p,a) (p)->lpVtbl->Enum(p,a)
#endif
#endif
#define IPropertySetStorage_METHODS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IPropertySetStorage methods ***/ \
STDMETHOD_(HRESULT,Create)(THIS_ REFFMTID rfmtid, const CLSID* pclsid, DWORD grfFlags, DWORD grfMode, IPropertyStorage** ppprstg) PURE; \
STDMETHOD_(HRESULT,Open)(THIS_ REFFMTID rfmtid, DWORD grfMode, IPropertyStorage** ppprstg) PURE; \
STDMETHOD_(HRESULT,Delete)(THIS_ REFFMTID rfmtid) PURE; \
STDMETHOD_(HRESULT,Enum)(THIS_ IEnumSTATPROPSETSTG** ppenum) PURE;
HRESULT CALLBACK IPropertySetStorage_Create_Proxy(
IPropertySetStorage* This,
REFFMTID rfmtid,
const CLSID* pclsid,
DWORD grfFlags,
DWORD grfMode,
IPropertyStorage** ppprstg);
void __RPC_STUB IPropertySetStorage_Create_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertySetStorage_Open_Proxy(
IPropertySetStorage* This,
REFFMTID rfmtid,
DWORD grfMode,
IPropertyStorage** ppprstg);
void __RPC_STUB IPropertySetStorage_Open_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertySetStorage_Delete_Proxy(
IPropertySetStorage* This,
REFFMTID rfmtid);
void __RPC_STUB IPropertySetStorage_Delete_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertySetStorage_Enum_Proxy(
IPropertySetStorage* This,
IEnumSTATPROPSETSTG** ppenum);
void __RPC_STUB IPropertySetStorage_Enum_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IPropertySetStorage_INTERFACE_DEFINED__ */
typedef IEnumSTATPROPSTG *LPENUMSTATPROPSTG;
/*****************************************************************************
* IEnumSTATPROPSTG interface
*/
#ifndef __IEnumSTATPROPSTG_INTERFACE_DEFINED__
#define __IEnumSTATPROPSTG_INTERFACE_DEFINED__
DEFINE_GUID(IID_IEnumSTATPROPSTG, 0x00000139, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IEnumSTATPROPSTG : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE Next(
ULONG celt,
STATPROPSTG* rgelt,
ULONG* pceltFetched) = 0;
virtual HRESULT STDMETHODCALLTYPE Skip(
ULONG celt) = 0;
virtual HRESULT STDMETHODCALLTYPE Reset(
) = 0;
virtual HRESULT STDMETHODCALLTYPE Clone(
IEnumSTATPROPSTG** ppenum) = 0;
};
#else
typedef struct IEnumSTATPROPSTGVtbl IEnumSTATPROPSTGVtbl;
struct IEnumSTATPROPSTG {
const IEnumSTATPROPSTGVtbl* lpVtbl;
};
struct IEnumSTATPROPSTGVtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IEnumSTATPROPSTG* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IEnumSTATPROPSTG* This);
ULONG (STDMETHODCALLTYPE *Release)(
IEnumSTATPROPSTG* This);
/*** IEnumSTATPROPSTG methods ***/
HRESULT (STDMETHODCALLTYPE *Next)(
IEnumSTATPROPSTG* This,
ULONG celt,
STATPROPSTG* rgelt,
ULONG* pceltFetched);
HRESULT (STDMETHODCALLTYPE *Skip)(
IEnumSTATPROPSTG* This,
ULONG celt);
HRESULT (STDMETHODCALLTYPE *Reset)(
IEnumSTATPROPSTG* This);
HRESULT (STDMETHODCALLTYPE *Clone)(
IEnumSTATPROPSTG* This,
IEnumSTATPROPSTG** ppenum);
END_INTERFACE
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IEnumSTATPROPSTG_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IEnumSTATPROPSTG_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IEnumSTATPROPSTG_Release(p) (p)->lpVtbl->Release(p)
/*** IEnumSTATPROPSTG methods ***/
#define IEnumSTATPROPSTG_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
#define IEnumSTATPROPSTG_Skip(p,a) (p)->lpVtbl->Skip(p,a)
#define IEnumSTATPROPSTG_Reset(p) (p)->lpVtbl->Reset(p)
#define IEnumSTATPROPSTG_Clone(p,a) (p)->lpVtbl->Clone(p,a)
#endif
#endif
#define IEnumSTATPROPSTG_METHODS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IEnumSTATPROPSTG methods ***/ \
STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, STATPROPSTG* rgelt, ULONG* pceltFetched) PURE; \
STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
STDMETHOD_(HRESULT,Clone)(THIS_ IEnumSTATPROPSTG** ppenum) PURE;
HRESULT CALLBACK IEnumSTATPROPSTG_RemoteNext_Proxy(
IEnumSTATPROPSTG* This,
ULONG celt,
STATPROPSTG* rgelt,
ULONG* pceltFetched);
void __RPC_STUB IEnumSTATPROPSTG_RemoteNext_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IEnumSTATPROPSTG_Next_Proxy(
IEnumSTATPROPSTG* This,
ULONG celt,
STATPROPSTG* rgelt,
ULONG* pceltFetched);
HRESULT __RPC_STUB IEnumSTATPROPSTG_Next_Stub(
IEnumSTATPROPSTG* This,
ULONG celt,
STATPROPSTG* rgelt,
ULONG* pceltFetched);
HRESULT CALLBACK IEnumSTATPROPSTG_Skip_Proxy(
IEnumSTATPROPSTG* This,
ULONG celt);
void __RPC_STUB IEnumSTATPROPSTG_Skip_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IEnumSTATPROPSTG_Reset_Proxy(
IEnumSTATPROPSTG* This);
void __RPC_STUB IEnumSTATPROPSTG_Reset_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IEnumSTATPROPSTG_Clone_Proxy(
IEnumSTATPROPSTG* This,
IEnumSTATPROPSTG** ppenum);
void __RPC_STUB IEnumSTATPROPSTG_Clone_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IEnumSTATPROPSTG_INTERFACE_DEFINED__ */
typedef IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG;
/*****************************************************************************
* IEnumSTATPROPSETSTG interface
*/
#ifndef __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__
#define __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__
DEFINE_GUID(IID_IEnumSTATPROPSETSTG, 0x0000013b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IEnumSTATPROPSETSTG : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE Next(
ULONG celt,
STATPROPSETSTG* rgelt,
ULONG* pceltFetched) = 0;
virtual HRESULT STDMETHODCALLTYPE Skip(
ULONG celt) = 0;
virtual HRESULT STDMETHODCALLTYPE Reset(
) = 0;
virtual HRESULT STDMETHODCALLTYPE Clone(
IEnumSTATPROPSETSTG** ppenum) = 0;
};
#else
typedef struct IEnumSTATPROPSETSTGVtbl IEnumSTATPROPSETSTGVtbl;
struct IEnumSTATPROPSETSTG {
const IEnumSTATPROPSETSTGVtbl* lpVtbl;
};
struct IEnumSTATPROPSETSTGVtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IEnumSTATPROPSETSTG* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IEnumSTATPROPSETSTG* This);
ULONG (STDMETHODCALLTYPE *Release)(
IEnumSTATPROPSETSTG* This);
/*** IEnumSTATPROPSETSTG methods ***/
HRESULT (STDMETHODCALLTYPE *Next)(
IEnumSTATPROPSETSTG* This,
ULONG celt,
STATPROPSETSTG* rgelt,
ULONG* pceltFetched);
HRESULT (STDMETHODCALLTYPE *Skip)(
IEnumSTATPROPSETSTG* This,
ULONG celt);
HRESULT (STDMETHODCALLTYPE *Reset)(
IEnumSTATPROPSETSTG* This);
HRESULT (STDMETHODCALLTYPE *Clone)(
IEnumSTATPROPSETSTG* This,
IEnumSTATPROPSETSTG** ppenum);
END_INTERFACE
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IEnumSTATPROPSETSTG_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IEnumSTATPROPSETSTG_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IEnumSTATPROPSETSTG_Release(p) (p)->lpVtbl->Release(p)
/*** IEnumSTATPROPSETSTG methods ***/
#define IEnumSTATPROPSETSTG_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
#define IEnumSTATPROPSETSTG_Skip(p,a) (p)->lpVtbl->Skip(p,a)
#define IEnumSTATPROPSETSTG_Reset(p) (p)->lpVtbl->Reset(p)
#define IEnumSTATPROPSETSTG_Clone(p,a) (p)->lpVtbl->Clone(p,a)
#endif
#endif
#define IEnumSTATPROPSETSTG_METHODS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IEnumSTATPROPSETSTG methods ***/ \
STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, STATPROPSETSTG* rgelt, ULONG* pceltFetched) PURE; \
STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
STDMETHOD_(HRESULT,Clone)(THIS_ IEnumSTATPROPSETSTG** ppenum) PURE;
HRESULT CALLBACK IEnumSTATPROPSETSTG_RemoteNext_Proxy(
IEnumSTATPROPSETSTG* This,
ULONG celt,
STATPROPSETSTG* rgelt,
ULONG* pceltFetched);
void __RPC_STUB IEnumSTATPROPSETSTG_RemoteNext_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IEnumSTATPROPSETSTG_Next_Proxy(
IEnumSTATPROPSETSTG* This,
ULONG celt,
STATPROPSETSTG* rgelt,
ULONG* pceltFetched);
HRESULT __RPC_STUB IEnumSTATPROPSETSTG_Next_Stub(
IEnumSTATPROPSETSTG* This,
ULONG celt,
STATPROPSETSTG* rgelt,
ULONG* pceltFetched);
HRESULT CALLBACK IEnumSTATPROPSETSTG_Skip_Proxy(
IEnumSTATPROPSETSTG* This,
ULONG celt);
void __RPC_STUB IEnumSTATPROPSETSTG_Skip_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IEnumSTATPROPSETSTG_Reset_Proxy(
IEnumSTATPROPSETSTG* This);
void __RPC_STUB IEnumSTATPROPSETSTG_Reset_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IEnumSTATPROPSETSTG_Clone_Proxy(
IEnumSTATPROPSETSTG* This,
IEnumSTATPROPSETSTG** ppenum);
void __RPC_STUB IEnumSTATPROPSETSTG_Clone_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__ */
#ifndef __IClientSecurity_FWD_DEFINED__
#define __IClientSecurity_FWD_DEFINED__
typedef struct IClientSecurity IClientSecurity;
......
......@@ -1810,293 +1810,10 @@ interface IChannelHook : IUnknown
[in] HRESULT hrFault );
}
/******************** Property Storage ********************/
extern const FMTID FMTID_SummaryInformation;
extern const FMTID FMTID_DocSummaryInformation;
extern const FMTID FMTID_UserDefinedProperties;
interface IEnumSTATPROPSTG;
interface IEnumSTATPROPSETSTG;
[
object,
uuid(00000138-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface IPropertyStorage : IUnknown
{
typedef [unique] IPropertyStorage *LPPROPERTYSTORAGE;
extern const FMTID FMTID_SummaryInformation;
extern const FMTID FMTID_DocSummaryInformation;
extern const FMTID FMTID_UserDefinedProperties;
const DWORD PROPSETFLAG_DEFAULT = 0;
const DWORD PROPSETFLAG_NONSIMPLE = 1;
const DWORD PROPSETFLAG_ANSI = 2;
const DWORD PROPSETFLAG_UNBUFFERED = 4;
typedef struct tagPROPVARIANT PROPVARIANT;
#define TYPEDEF_CA(type, name) \
typedef struct tag##name { \
ULONG cElems; \
[size_is(cElems)] \
type *pElems; \
} name
TYPEDEF_CA(unsigned char, CAUB);
TYPEDEF_CA(short, CAI);
TYPEDEF_CA(USHORT, CAUI);
TYPEDEF_CA(long, CAL);
TYPEDEF_CA(ULONG, CAUL);
TYPEDEF_CA(float, CAFLT);
TYPEDEF_CA(double, CADBL);
TYPEDEF_CA(CY, CACY);
TYPEDEF_CA(DATE, CADATE);
TYPEDEF_CA(BSTR, CABSTR);
TYPEDEF_CA(BSTRBLOB, CABSTRBLOB);
TYPEDEF_CA(VARIANT_BOOL, CABOOL);
TYPEDEF_CA(SCODE, CASCODE);
TYPEDEF_CA(PROPVARIANT, CAPROPVARIANT);
TYPEDEF_CA(LARGE_INTEGER, CAH);
TYPEDEF_CA(ULARGE_INTEGER, CAUH);
TYPEDEF_CA(LPSTR, CALPSTR);
TYPEDEF_CA(LPWSTR, CALPWSTR);
TYPEDEF_CA(FILETIME, CAFILETIME);
TYPEDEF_CA(CLIPDATA, CACLIPDATA);
TYPEDEF_CA(CLSID, CACLSID);
struct tagPROPVARIANT {
VARTYPE vt;
WORD wReserved1;
WORD wReserved2;
WORD wReserved3;
[switch_is(vt & 0x1fff)] union {
[case(VT_EMPTY, VT_NULL)] ;
[case(VT_I1)] char cVal;
[case(VT_UI1)] UCHAR bVal;
[case(VT_I2)] short iVal;
[case(VT_UI2)] USHORT uiVal;
[case(VT_BOOL)] VARIANT_BOOL boolVal;
#if 0 /* illegal in C++ */
[case(VT_ILLEGAL)] _VARIANT_BOOL bool;
#endif
[case(VT_I4)] long lVal;
[case(VT_UI4)] ULONG ulVal;
[case(VT_R4)] float fltVal;
[case(VT_ERROR)] SCODE scode;
[case(VT_I8)] LARGE_INTEGER hVal;
[case(VT_UI8)] ULARGE_INTEGER uhVal;
[case(VT_R8)] double dblVal;
[case(VT_CY)] CY cyVal;
[case(VT_DATE)] DATE date;
[case(VT_FILETIME)] FILETIME filetime;
[case(VT_CLSID)] CLSID *puuid;
[case(VT_BLOB, VT_BLOB_OBJECT)] BLOB blob;
[case(VT_CF)] CLIPDATA *pclipdata;
[case(VT_STREAM, VT_STREAMED_OBJECT)] IStream *pStream;
[case(VT_STORAGE, VT_STORED_OBJECT)] IStorage *pStorage;
[case(VT_BSTR)] BSTR bstrVal;
[case(VT_BSTR_BLOB)] BSTRBLOB bstrblobVal;
[case(VT_LPSTR)] LPSTR pszVal;
[case(VT_LPWSTR)] LPWSTR pwszVal;
[case(VT_UI1|VT_VECTOR)] CAUB caub;
[case(VT_I2|VT_VECTOR)] CAI cai;
[case(VT_UI2|VT_VECTOR)] CAUI caui;
[case(VT_BOOL|VT_VECTOR)] CABOOL cabool;
[case(VT_I4|VT_VECTOR)] CAL cal;
[case(VT_UI4|VT_VECTOR)] CAUL caul;
[case(VT_R4|VT_VECTOR)] CAFLT caflt;
[case(VT_ERROR|VT_VECTOR)] CASCODE cascode;
[case(VT_I8|VT_VECTOR)] CAH cah;
[case(VT_UI8|VT_VECTOR)] CAUH cauh;
[case(VT_R8|VT_VECTOR)] CADBL cadbl;
[case(VT_CY|VT_VECTOR)] CACY cacy;
[case(VT_DATE|VT_VECTOR)] CADATE cadate;
[case(VT_FILETIME|VT_VECTOR)] CAFILETIME cafiletime;
[case(VT_CLSID|VT_VECTOR)] CACLSID cauuid;
[case(VT_CF|VT_VECTOR)] CACLIPDATA caclipdata;
[case(VT_BSTR|VT_VECTOR)] CABSTR cabstr;
[case(VT_BSTR_BLOB|VT_VECTOR)] CABSTRBLOB cabstrblob;
[case(VT_LPSTR|VT_VECTOR)] CALPSTR calpstr;
[case(VT_LPWSTR|VT_VECTOR)] CALPWSTR calpwstr;
[case(VT_VARIANT|VT_VECTOR)] CAPROPVARIANT capropvar;
};
};
typedef struct tagPROPVARIANT *LPPROPVARIANT;
/* FIXME: bunches of property IDs */
const ULONG PRSPEC_INVALID = 0xffffffff;
const ULONG PRSPEC_LPWSTR = 0;
const ULONG PRSPEC_PROPID = 1;
typedef struct tagPROPSPEC {
ULONG ulKind;
[switch_is(ulKind)] union {
[case(PRSPEC_PROPID)] PROPID propid;
[case(PRSPEC_LPWSTR)] LPOLESTR lpwstr;
[default] ;
};
} PROPSPEC;
typedef struct tagSTATPROPSTG {
LPOLESTR lpwstrName;
PROPID propid;
VARTYPE vt;
} STATPROPSTG;
/* FIXME: macros */
typedef struct tagSTATPROPSETSTG {
FMTID fmtid;
CLSID clsid;
DWORD grfFlags;
FILETIME mtime;
FILETIME ctime;
FILETIME atime;
DWORD dwOSVersion;
} STATPROPSETSTG;
HRESULT ReadMultiple(
[in] ULONG cpspec,
[in, size_is(cpspec)] const PROPSPEC rgpspec[],
[out, size_is(cpspec)] PROPVARIANT rgpropvar[]);
HRESULT WriteMultiple(
[in] ULONG cpspec,
[in, size_is(cpspec)] const PROPSPEC rgpspec[],
[in, size_is(cpspec)] const PROPVARIANT rgpropvar[],
[in] PROPID propidNameFirst);
HRESULT DeleteMultiple(
[in] ULONG cpspec,
[in, size_is(cpspec)] const PROPSPEC rgpspec[]);
HRESULT ReadPropertyNames(
[in] ULONG cpropid,
[in, size_is(cpropid)] const PROPID rgpropid[],
[out, size_is(cpropid)] LPOLESTR rglpwstrName[]);
HRESULT WritePropertyNames(
[in] ULONG cpropid,
[in, size_is(cpropid)] const PROPID rgpropid[],
[in, size_is(cpropid)] const LPOLESTR rglpwstrName[]);
HRESULT DeletePropertyNames(
[in] ULONG cpropid,
[in, size_is(cpropid)] const PROPID rgpropid[]);
HRESULT Commit(
[in] DWORD grfCommitFlags);
HRESULT Revert();
HRESULT Enum(
[out] IEnumSTATPROPSTG **ppenum);
HRESULT SetTimes(
[in] const FILETIME *pctime,
[in] const FILETIME *patime,
[in] const FILETIME *pmtime);
HRESULT SetClass(
[in] REFCLSID clsid);
HRESULT Stat(
[out] STATPROPSETSTG *statpsstg);
}
[
object,
uuid(0000013A-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface IPropertySetStorage : IUnknown
{
typedef [unique] IPropertySetStorage *LPPROPERTYSETSTORAGE;
HRESULT Create(
[in] REFFMTID rfmtid,
[in, unique] const CLSID *pclsid,
[in] DWORD grfFlags,
[in] DWORD grfMode,
[out] IPropertyStorage **ppprstg);
HRESULT Open(
[in] REFFMTID rfmtid,
[in] DWORD grfMode,
[out] IPropertyStorage **ppprstg);
HRESULT Delete(
[in] REFFMTID rfmtid);
HRESULT Enum(
[out] IEnumSTATPROPSETSTG **ppenum);
}
[
object,
uuid(00000139-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface IEnumSTATPROPSTG : IUnknown
{
typedef [unique] IEnumSTATPROPSTG *LPENUMSTATPROPSTG;
[local]
HRESULT Next(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)]
STATPROPSTG *rgelt,
[out] ULONG *pceltFetched);
[call_as(Next)]
HRESULT RemoteNext(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)]
STATPROPSTG *rgelt,
[out] ULONG *pceltFetched);
HRESULT Skip(
[in] ULONG celt);
HRESULT Reset();
HRESULT Clone(
[out] IEnumSTATPROPSTG **ppenum);
}
[
object,
uuid(0000013B-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface IEnumSTATPROPSETSTG : IUnknown
{
typedef [unique] IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG;
[local]
HRESULT Next(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)]
STATPROPSETSTG *rgelt,
[out] ULONG *pceltFetched);
[call_as(Next)]
HRESULT RemoteNext(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)]
STATPROPSETSTG *rgelt,
[out] ULONG *pceltFetched);
HRESULT Skip(
[in] ULONG celt);
HRESULT Reset();
HRESULT Clone(
[out] IEnumSTATPROPSETSTG **ppenum);
}
/******************** Connection Points ********************/
/* FIXME */
......
/*** Autogenerated by WIDL 0.1 from propidl.idl - Do not edit ***/
#include <rpc.h>
#include <rpcndr.h>
#ifndef __WIDL_PROPIDL_H
#define __WIDL_PROPIDL_H
#ifdef __cplusplus
extern "C" {
#endif
#include <objidl.h>
#include <oaidl.h>
#ifndef __IEnumSTATPROPSTG_FWD_DEFINED__
#define __IEnumSTATPROPSTG_FWD_DEFINED__
typedef struct IEnumSTATPROPSTG IEnumSTATPROPSTG;
#endif
#ifndef __IEnumSTATPROPSETSTG_FWD_DEFINED__
#define __IEnumSTATPROPSETSTG_FWD_DEFINED__
typedef struct IEnumSTATPROPSETSTG IEnumSTATPROPSETSTG;
#endif
#ifndef __IPropertyStorage_FWD_DEFINED__
#define __IPropertyStorage_FWD_DEFINED__
typedef struct IPropertyStorage IPropertyStorage;
#endif
typedef IPropertyStorage *LPPROPERTYSTORAGE;
#define PROPSETFLAG_DEFAULT (0)
#define PROPSETFLAG_NONSIMPLE (1)
#define PROPSETFLAG_ANSI (2)
#define PROPSETFLAG_UNBUFFERED (4)
typedef struct tagPROPVARIANT PROPVARIANT;
typedef struct tagCAUB {
ULONG cElems;
unsigned char *pElems;
} CAUB;
typedef struct tagCAI {
ULONG cElems;
short *pElems;
} CAI;
typedef struct tagCAUI {
ULONG cElems;
USHORT *pElems;
} CAUI;
typedef struct tagCAL {
ULONG cElems;
long *pElems;
} CAL;
typedef struct tagCAUL {
ULONG cElems;
ULONG *pElems;
} CAUL;
typedef struct tagCAFLT {
ULONG cElems;
float *pElems;
} CAFLT;
typedef struct tagCADBL {
ULONG cElems;
double *pElems;
} CADBL;
typedef struct tagCACY {
ULONG cElems;
CY *pElems;
} CACY;
typedef struct tagCADATE {
ULONG cElems;
DATE *pElems;
} CADATE;
typedef struct tagCABSTR {
ULONG cElems;
BSTR *pElems;
} CABSTR;
typedef struct tagCABSTRBLOB {
ULONG cElems;
BSTRBLOB *pElems;
} CABSTRBLOB;
typedef struct tagCABOOL {
ULONG cElems;
VARIANT_BOOL *pElems;
} CABOOL;
typedef struct tagCASCODE {
ULONG cElems;
SCODE *pElems;
} CASCODE;
typedef struct tagCAPROPVARIANT {
ULONG cElems;
PROPVARIANT *pElems;
} CAPROPVARIANT;
typedef struct tagCAH {
ULONG cElems;
LARGE_INTEGER *pElems;
} CAH;
typedef struct tagCAUH {
ULONG cElems;
ULARGE_INTEGER *pElems;
} CAUH;
typedef struct tagCALPSTR {
ULONG cElems;
LPSTR *pElems;
} CALPSTR;
typedef struct tagCALPWSTR {
ULONG cElems;
LPWSTR *pElems;
} CALPWSTR;
typedef struct tagCAFILETIME {
ULONG cElems;
FILETIME *pElems;
} CAFILETIME;
typedef struct tagCACLIPDATA {
ULONG cElems;
CLIPDATA *pElems;
} CACLIPDATA;
typedef struct tagCACLSID {
ULONG cElems;
CLSID *pElems;
} CACLSID;
struct tagPROPVARIANT {
VARTYPE vt;
WORD wReserved1;
WORD wReserved2;
WORD wReserved3;
union {
char cVal;
UCHAR bVal;
short iVal;
USHORT uiVal;
VARIANT_BOOL boolVal;
long lVal;
ULONG ulVal;
float fltVal;
SCODE scode;
LARGE_INTEGER hVal;
ULARGE_INTEGER uhVal;
double dblVal;
CY cyVal;
DATE date;
FILETIME filetime;
CLSID *puuid;
BLOB blob;
CLIPDATA *pclipdata;
IStream *pStream;
IStorage *pStorage;
BSTR bstrVal;
BSTRBLOB bstrblobVal;
LPSTR pszVal;
LPWSTR pwszVal;
CAUB caub;
CAI cai;
CAUI caui;
CABOOL cabool;
CAL cal;
CAUL caul;
CAFLT caflt;
CASCODE cascode;
CAH cah;
CAUH cauh;
CADBL cadbl;
CACY cacy;
CADATE cadate;
CAFILETIME cafiletime;
CACLSID cauuid;
CACLIPDATA caclipdata;
CABSTR cabstr;
CABSTRBLOB cabstrblob;
CALPSTR calpstr;
CALPWSTR calpwstr;
CAPROPVARIANT capropvar;
} DUMMYUNIONNAME;
};
typedef struct tagPROPVARIANT *LPPROPVARIANT;
#define PRSPEC_INVALID (0xffffffff)
#define PRSPEC_LPWSTR (0)
#define PRSPEC_PROPID (1)
typedef struct tagPROPSPEC {
ULONG ulKind;
union {
PROPID propid;
LPOLESTR lpwstr;
} DUMMYUNIONNAME;
} PROPSPEC;
typedef struct tagSTATPROPSTG {
LPOLESTR lpwstrName;
PROPID propid;
VARTYPE vt;
} STATPROPSTG;
typedef struct tagSTATPROPSETSTG {
FMTID fmtid;
CLSID clsid;
DWORD grfFlags;
FILETIME mtime;
FILETIME ctime;
FILETIME atime;
DWORD dwOSVersion;
} STATPROPSETSTG;
/*****************************************************************************
* IPropertyStorage interface
*/
#ifndef __IPropertyStorage_INTERFACE_DEFINED__
#define __IPropertyStorage_INTERFACE_DEFINED__
DEFINE_GUID(IID_IPropertyStorage, 0x00000138, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IPropertyStorage : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE ReadMultiple(
ULONG cpspec,
const PROPSPEC rgpspec[],
PROPVARIANT rgpropvar[]) = 0;
virtual HRESULT STDMETHODCALLTYPE WriteMultiple(
ULONG cpspec,
const PROPSPEC rgpspec[],
const PROPVARIANT rgpropvar[],
PROPID propidNameFirst) = 0;
virtual HRESULT STDMETHODCALLTYPE DeleteMultiple(
ULONG cpspec,
const PROPSPEC rgpspec[]) = 0;
virtual HRESULT STDMETHODCALLTYPE ReadPropertyNames(
ULONG cpropid,
const PROPID rgpropid[],
LPOLESTR rglpwstrName[]) = 0;
virtual HRESULT STDMETHODCALLTYPE WritePropertyNames(
ULONG cpropid,
const PROPID rgpropid[],
const LPOLESTR rglpwstrName[]) = 0;
virtual HRESULT STDMETHODCALLTYPE DeletePropertyNames(
ULONG cpropid,
const PROPID rgpropid[]) = 0;
virtual HRESULT STDMETHODCALLTYPE Commit(
DWORD grfCommitFlags) = 0;
virtual HRESULT STDMETHODCALLTYPE Revert(
) = 0;
virtual HRESULT STDMETHODCALLTYPE Enum(
IEnumSTATPROPSTG** ppenum) = 0;
virtual HRESULT STDMETHODCALLTYPE SetTimes(
const FILETIME* pctime,
const FILETIME* patime,
const FILETIME* pmtime) = 0;
virtual HRESULT STDMETHODCALLTYPE SetClass(
REFCLSID clsid) = 0;
virtual HRESULT STDMETHODCALLTYPE Stat(
STATPROPSETSTG* statpsstg) = 0;
};
#else
typedef struct IPropertyStorageVtbl IPropertyStorageVtbl;
struct IPropertyStorage {
const IPropertyStorageVtbl* lpVtbl;
};
struct IPropertyStorageVtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IPropertyStorage* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IPropertyStorage* This);
ULONG (STDMETHODCALLTYPE *Release)(
IPropertyStorage* This);
/*** IPropertyStorage methods ***/
HRESULT (STDMETHODCALLTYPE *ReadMultiple)(
IPropertyStorage* This,
ULONG cpspec,
const PROPSPEC rgpspec[],
PROPVARIANT rgpropvar[]);
HRESULT (STDMETHODCALLTYPE *WriteMultiple)(
IPropertyStorage* This,
ULONG cpspec,
const PROPSPEC rgpspec[],
const PROPVARIANT rgpropvar[],
PROPID propidNameFirst);
HRESULT (STDMETHODCALLTYPE *DeleteMultiple)(
IPropertyStorage* This,
ULONG cpspec,
const PROPSPEC rgpspec[]);
HRESULT (STDMETHODCALLTYPE *ReadPropertyNames)(
IPropertyStorage* This,
ULONG cpropid,
const PROPID rgpropid[],
LPOLESTR rglpwstrName[]);
HRESULT (STDMETHODCALLTYPE *WritePropertyNames)(
IPropertyStorage* This,
ULONG cpropid,
const PROPID rgpropid[],
const LPOLESTR rglpwstrName[]);
HRESULT (STDMETHODCALLTYPE *DeletePropertyNames)(
IPropertyStorage* This,
ULONG cpropid,
const PROPID rgpropid[]);
HRESULT (STDMETHODCALLTYPE *Commit)(
IPropertyStorage* This,
DWORD grfCommitFlags);
HRESULT (STDMETHODCALLTYPE *Revert)(
IPropertyStorage* This);
HRESULT (STDMETHODCALLTYPE *Enum)(
IPropertyStorage* This,
IEnumSTATPROPSTG** ppenum);
HRESULT (STDMETHODCALLTYPE *SetTimes)(
IPropertyStorage* This,
const FILETIME* pctime,
const FILETIME* patime,
const FILETIME* pmtime);
HRESULT (STDMETHODCALLTYPE *SetClass)(
IPropertyStorage* This,
REFCLSID clsid);
HRESULT (STDMETHODCALLTYPE *Stat)(
IPropertyStorage* This,
STATPROPSETSTG* statpsstg);
END_INTERFACE
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IPropertyStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IPropertyStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IPropertyStorage_Release(p) (p)->lpVtbl->Release(p)
/*** IPropertyStorage methods ***/
#define IPropertyStorage_ReadMultiple(p,a,b,c) (p)->lpVtbl->ReadMultiple(p,a,b,c)
#define IPropertyStorage_WriteMultiple(p,a,b,c,d) (p)->lpVtbl->WriteMultiple(p,a,b,c,d)
#define IPropertyStorage_DeleteMultiple(p,a,b) (p)->lpVtbl->DeleteMultiple(p,a,b)
#define IPropertyStorage_ReadPropertyNames(p,a,b,c) (p)->lpVtbl->ReadPropertyNames(p,a,b,c)
#define IPropertyStorage_WritePropertyNames(p,a,b,c) (p)->lpVtbl->WritePropertyNames(p,a,b,c)
#define IPropertyStorage_DeletePropertyNames(p,a,b) (p)->lpVtbl->DeletePropertyNames(p,a,b)
#define IPropertyStorage_Commit(p,a) (p)->lpVtbl->Commit(p,a)
#define IPropertyStorage_Revert(p) (p)->lpVtbl->Revert(p)
#define IPropertyStorage_Enum(p,a) (p)->lpVtbl->Enum(p,a)
#define IPropertyStorage_SetTimes(p,a,b,c) (p)->lpVtbl->SetTimes(p,a,b,c)
#define IPropertyStorage_SetClass(p,a) (p)->lpVtbl->SetClass(p,a)
#define IPropertyStorage_Stat(p,a) (p)->lpVtbl->Stat(p,a)
#endif
#endif
#define IPropertyStorage_METHODS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IPropertyStorage methods ***/ \
STDMETHOD_(HRESULT,ReadMultiple)(THIS_ ULONG cpspec, const PROPSPEC rgpspec[], PROPVARIANT rgpropvar[]) PURE; \
STDMETHOD_(HRESULT,WriteMultiple)(THIS_ ULONG cpspec, const PROPSPEC rgpspec[], const PROPVARIANT rgpropvar[], PROPID propidNameFirst) PURE; \
STDMETHOD_(HRESULT,DeleteMultiple)(THIS_ ULONG cpspec, const PROPSPEC rgpspec[]) PURE; \
STDMETHOD_(HRESULT,ReadPropertyNames)(THIS_ ULONG cpropid, const PROPID rgpropid[], LPOLESTR rglpwstrName[]) PURE; \
STDMETHOD_(HRESULT,WritePropertyNames)(THIS_ ULONG cpropid, const PROPID rgpropid[], const LPOLESTR rglpwstrName[]) PURE; \
STDMETHOD_(HRESULT,DeletePropertyNames)(THIS_ ULONG cpropid, const PROPID rgpropid[]) PURE; \
STDMETHOD_(HRESULT,Commit)(THIS_ DWORD grfCommitFlags) PURE; \
STDMETHOD_(HRESULT,Revert)(THIS) PURE; \
STDMETHOD_(HRESULT,Enum)(THIS_ IEnumSTATPROPSTG** ppenum) PURE; \
STDMETHOD_(HRESULT,SetTimes)(THIS_ const FILETIME* pctime, const FILETIME* patime, const FILETIME* pmtime) PURE; \
STDMETHOD_(HRESULT,SetClass)(THIS_ REFCLSID clsid) PURE; \
STDMETHOD_(HRESULT,Stat)(THIS_ STATPROPSETSTG* statpsstg) PURE;
HRESULT CALLBACK IPropertyStorage_ReadMultiple_Proxy(
IPropertyStorage* This,
ULONG cpspec,
const PROPSPEC rgpspec[],
PROPVARIANT rgpropvar[]);
void __RPC_STUB IPropertyStorage_ReadMultiple_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertyStorage_WriteMultiple_Proxy(
IPropertyStorage* This,
ULONG cpspec,
const PROPSPEC rgpspec[],
const PROPVARIANT rgpropvar[],
PROPID propidNameFirst);
void __RPC_STUB IPropertyStorage_WriteMultiple_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertyStorage_DeleteMultiple_Proxy(
IPropertyStorage* This,
ULONG cpspec,
const PROPSPEC rgpspec[]);
void __RPC_STUB IPropertyStorage_DeleteMultiple_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertyStorage_ReadPropertyNames_Proxy(
IPropertyStorage* This,
ULONG cpropid,
const PROPID rgpropid[],
LPOLESTR rglpwstrName[]);
void __RPC_STUB IPropertyStorage_ReadPropertyNames_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertyStorage_WritePropertyNames_Proxy(
IPropertyStorage* This,
ULONG cpropid,
const PROPID rgpropid[],
const LPOLESTR rglpwstrName[]);
void __RPC_STUB IPropertyStorage_WritePropertyNames_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertyStorage_DeletePropertyNames_Proxy(
IPropertyStorage* This,
ULONG cpropid,
const PROPID rgpropid[]);
void __RPC_STUB IPropertyStorage_DeletePropertyNames_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertyStorage_Commit_Proxy(
IPropertyStorage* This,
DWORD grfCommitFlags);
void __RPC_STUB IPropertyStorage_Commit_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertyStorage_Revert_Proxy(
IPropertyStorage* This);
void __RPC_STUB IPropertyStorage_Revert_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertyStorage_Enum_Proxy(
IPropertyStorage* This,
IEnumSTATPROPSTG** ppenum);
void __RPC_STUB IPropertyStorage_Enum_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertyStorage_SetTimes_Proxy(
IPropertyStorage* This,
const FILETIME* pctime,
const FILETIME* patime,
const FILETIME* pmtime);
void __RPC_STUB IPropertyStorage_SetTimes_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertyStorage_SetClass_Proxy(
IPropertyStorage* This,
REFCLSID clsid);
void __RPC_STUB IPropertyStorage_SetClass_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertyStorage_Stat_Proxy(
IPropertyStorage* This,
STATPROPSETSTG* statpsstg);
void __RPC_STUB IPropertyStorage_Stat_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IPropertyStorage_INTERFACE_DEFINED__ */
#ifndef __IPropertySetStorage_FWD_DEFINED__
#define __IPropertySetStorage_FWD_DEFINED__
typedef struct IPropertySetStorage IPropertySetStorage;
#endif
typedef IPropertySetStorage *LPPROPERTYSETSTORAGE;
/*****************************************************************************
* IPropertySetStorage interface
*/
#ifndef __IPropertySetStorage_INTERFACE_DEFINED__
#define __IPropertySetStorage_INTERFACE_DEFINED__
DEFINE_GUID(IID_IPropertySetStorage, 0x0000013a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IPropertySetStorage : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE Create(
REFFMTID rfmtid,
const CLSID* pclsid,
DWORD grfFlags,
DWORD grfMode,
IPropertyStorage** ppprstg) = 0;
virtual HRESULT STDMETHODCALLTYPE Open(
REFFMTID rfmtid,
DWORD grfMode,
IPropertyStorage** ppprstg) = 0;
virtual HRESULT STDMETHODCALLTYPE Delete(
REFFMTID rfmtid) = 0;
virtual HRESULT STDMETHODCALLTYPE Enum(
IEnumSTATPROPSETSTG** ppenum) = 0;
};
#else
typedef struct IPropertySetStorageVtbl IPropertySetStorageVtbl;
struct IPropertySetStorage {
const IPropertySetStorageVtbl* lpVtbl;
};
struct IPropertySetStorageVtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IPropertySetStorage* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IPropertySetStorage* This);
ULONG (STDMETHODCALLTYPE *Release)(
IPropertySetStorage* This);
/*** IPropertySetStorage methods ***/
HRESULT (STDMETHODCALLTYPE *Create)(
IPropertySetStorage* This,
REFFMTID rfmtid,
const CLSID* pclsid,
DWORD grfFlags,
DWORD grfMode,
IPropertyStorage** ppprstg);
HRESULT (STDMETHODCALLTYPE *Open)(
IPropertySetStorage* This,
REFFMTID rfmtid,
DWORD grfMode,
IPropertyStorage** ppprstg);
HRESULT (STDMETHODCALLTYPE *Delete)(
IPropertySetStorage* This,
REFFMTID rfmtid);
HRESULT (STDMETHODCALLTYPE *Enum)(
IPropertySetStorage* This,
IEnumSTATPROPSETSTG** ppenum);
END_INTERFACE
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IPropertySetStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IPropertySetStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IPropertySetStorage_Release(p) (p)->lpVtbl->Release(p)
/*** IPropertySetStorage methods ***/
#define IPropertySetStorage_Create(p,a,b,c,d,e) (p)->lpVtbl->Create(p,a,b,c,d,e)
#define IPropertySetStorage_Open(p,a,b,c) (p)->lpVtbl->Open(p,a,b,c)
#define IPropertySetStorage_Delete(p,a) (p)->lpVtbl->Delete(p,a)
#define IPropertySetStorage_Enum(p,a) (p)->lpVtbl->Enum(p,a)
#endif
#endif
#define IPropertySetStorage_METHODS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IPropertySetStorage methods ***/ \
STDMETHOD_(HRESULT,Create)(THIS_ REFFMTID rfmtid, const CLSID* pclsid, DWORD grfFlags, DWORD grfMode, IPropertyStorage** ppprstg) PURE; \
STDMETHOD_(HRESULT,Open)(THIS_ REFFMTID rfmtid, DWORD grfMode, IPropertyStorage** ppprstg) PURE; \
STDMETHOD_(HRESULT,Delete)(THIS_ REFFMTID rfmtid) PURE; \
STDMETHOD_(HRESULT,Enum)(THIS_ IEnumSTATPROPSETSTG** ppenum) PURE;
HRESULT CALLBACK IPropertySetStorage_Create_Proxy(
IPropertySetStorage* This,
REFFMTID rfmtid,
const CLSID* pclsid,
DWORD grfFlags,
DWORD grfMode,
IPropertyStorage** ppprstg);
void __RPC_STUB IPropertySetStorage_Create_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertySetStorage_Open_Proxy(
IPropertySetStorage* This,
REFFMTID rfmtid,
DWORD grfMode,
IPropertyStorage** ppprstg);
void __RPC_STUB IPropertySetStorage_Open_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertySetStorage_Delete_Proxy(
IPropertySetStorage* This,
REFFMTID rfmtid);
void __RPC_STUB IPropertySetStorage_Delete_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IPropertySetStorage_Enum_Proxy(
IPropertySetStorage* This,
IEnumSTATPROPSETSTG** ppenum);
void __RPC_STUB IPropertySetStorage_Enum_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IPropertySetStorage_INTERFACE_DEFINED__ */
typedef IEnumSTATPROPSTG *LPENUMSTATPROPSTG;
/*****************************************************************************
* IEnumSTATPROPSTG interface
*/
#ifndef __IEnumSTATPROPSTG_INTERFACE_DEFINED__
#define __IEnumSTATPROPSTG_INTERFACE_DEFINED__
DEFINE_GUID(IID_IEnumSTATPROPSTG, 0x00000139, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IEnumSTATPROPSTG : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE Next(
ULONG celt,
STATPROPSTG* rgelt,
ULONG* pceltFetched) = 0;
virtual HRESULT STDMETHODCALLTYPE Skip(
ULONG celt) = 0;
virtual HRESULT STDMETHODCALLTYPE Reset(
) = 0;
virtual HRESULT STDMETHODCALLTYPE Clone(
IEnumSTATPROPSTG** ppenum) = 0;
};
#else
typedef struct IEnumSTATPROPSTGVtbl IEnumSTATPROPSTGVtbl;
struct IEnumSTATPROPSTG {
const IEnumSTATPROPSTGVtbl* lpVtbl;
};
struct IEnumSTATPROPSTGVtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IEnumSTATPROPSTG* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IEnumSTATPROPSTG* This);
ULONG (STDMETHODCALLTYPE *Release)(
IEnumSTATPROPSTG* This);
/*** IEnumSTATPROPSTG methods ***/
HRESULT (STDMETHODCALLTYPE *Next)(
IEnumSTATPROPSTG* This,
ULONG celt,
STATPROPSTG* rgelt,
ULONG* pceltFetched);
HRESULT (STDMETHODCALLTYPE *Skip)(
IEnumSTATPROPSTG* This,
ULONG celt);
HRESULT (STDMETHODCALLTYPE *Reset)(
IEnumSTATPROPSTG* This);
HRESULT (STDMETHODCALLTYPE *Clone)(
IEnumSTATPROPSTG* This,
IEnumSTATPROPSTG** ppenum);
END_INTERFACE
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IEnumSTATPROPSTG_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IEnumSTATPROPSTG_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IEnumSTATPROPSTG_Release(p) (p)->lpVtbl->Release(p)
/*** IEnumSTATPROPSTG methods ***/
#define IEnumSTATPROPSTG_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
#define IEnumSTATPROPSTG_Skip(p,a) (p)->lpVtbl->Skip(p,a)
#define IEnumSTATPROPSTG_Reset(p) (p)->lpVtbl->Reset(p)
#define IEnumSTATPROPSTG_Clone(p,a) (p)->lpVtbl->Clone(p,a)
#endif
#endif
#define IEnumSTATPROPSTG_METHODS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IEnumSTATPROPSTG methods ***/ \
STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, STATPROPSTG* rgelt, ULONG* pceltFetched) PURE; \
STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
STDMETHOD_(HRESULT,Clone)(THIS_ IEnumSTATPROPSTG** ppenum) PURE;
HRESULT CALLBACK IEnumSTATPROPSTG_RemoteNext_Proxy(
IEnumSTATPROPSTG* This,
ULONG celt,
STATPROPSTG* rgelt,
ULONG* pceltFetched);
void __RPC_STUB IEnumSTATPROPSTG_RemoteNext_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IEnumSTATPROPSTG_Next_Proxy(
IEnumSTATPROPSTG* This,
ULONG celt,
STATPROPSTG* rgelt,
ULONG* pceltFetched);
HRESULT __RPC_STUB IEnumSTATPROPSTG_Next_Stub(
IEnumSTATPROPSTG* This,
ULONG celt,
STATPROPSTG* rgelt,
ULONG* pceltFetched);
HRESULT CALLBACK IEnumSTATPROPSTG_Skip_Proxy(
IEnumSTATPROPSTG* This,
ULONG celt);
void __RPC_STUB IEnumSTATPROPSTG_Skip_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IEnumSTATPROPSTG_Reset_Proxy(
IEnumSTATPROPSTG* This);
void __RPC_STUB IEnumSTATPROPSTG_Reset_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IEnumSTATPROPSTG_Clone_Proxy(
IEnumSTATPROPSTG* This,
IEnumSTATPROPSTG** ppenum);
void __RPC_STUB IEnumSTATPROPSTG_Clone_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IEnumSTATPROPSTG_INTERFACE_DEFINED__ */
typedef IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG;
/*****************************************************************************
* IEnumSTATPROPSETSTG interface
*/
#ifndef __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__
#define __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__
DEFINE_GUID(IID_IEnumSTATPROPSETSTG, 0x0000013b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IEnumSTATPROPSETSTG : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE Next(
ULONG celt,
STATPROPSETSTG* rgelt,
ULONG* pceltFetched) = 0;
virtual HRESULT STDMETHODCALLTYPE Skip(
ULONG celt) = 0;
virtual HRESULT STDMETHODCALLTYPE Reset(
) = 0;
virtual HRESULT STDMETHODCALLTYPE Clone(
IEnumSTATPROPSETSTG** ppenum) = 0;
};
#else
typedef struct IEnumSTATPROPSETSTGVtbl IEnumSTATPROPSETSTGVtbl;
struct IEnumSTATPROPSETSTG {
const IEnumSTATPROPSETSTGVtbl* lpVtbl;
};
struct IEnumSTATPROPSETSTGVtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IEnumSTATPROPSETSTG* This,
REFIID riid,
void** ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IEnumSTATPROPSETSTG* This);
ULONG (STDMETHODCALLTYPE *Release)(
IEnumSTATPROPSETSTG* This);
/*** IEnumSTATPROPSETSTG methods ***/
HRESULT (STDMETHODCALLTYPE *Next)(
IEnumSTATPROPSETSTG* This,
ULONG celt,
STATPROPSETSTG* rgelt,
ULONG* pceltFetched);
HRESULT (STDMETHODCALLTYPE *Skip)(
IEnumSTATPROPSETSTG* This,
ULONG celt);
HRESULT (STDMETHODCALLTYPE *Reset)(
IEnumSTATPROPSETSTG* This);
HRESULT (STDMETHODCALLTYPE *Clone)(
IEnumSTATPROPSETSTG* This,
IEnumSTATPROPSETSTG** ppenum);
END_INTERFACE
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IEnumSTATPROPSETSTG_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IEnumSTATPROPSETSTG_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IEnumSTATPROPSETSTG_Release(p) (p)->lpVtbl->Release(p)
/*** IEnumSTATPROPSETSTG methods ***/
#define IEnumSTATPROPSETSTG_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
#define IEnumSTATPROPSETSTG_Skip(p,a) (p)->lpVtbl->Skip(p,a)
#define IEnumSTATPROPSETSTG_Reset(p) (p)->lpVtbl->Reset(p)
#define IEnumSTATPROPSETSTG_Clone(p,a) (p)->lpVtbl->Clone(p,a)
#endif
#endif
#define IEnumSTATPROPSETSTG_METHODS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IEnumSTATPROPSETSTG methods ***/ \
STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, STATPROPSETSTG* rgelt, ULONG* pceltFetched) PURE; \
STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
STDMETHOD_(HRESULT,Clone)(THIS_ IEnumSTATPROPSETSTG** ppenum) PURE;
HRESULT CALLBACK IEnumSTATPROPSETSTG_RemoteNext_Proxy(
IEnumSTATPROPSETSTG* This,
ULONG celt,
STATPROPSETSTG* rgelt,
ULONG* pceltFetched);
void __RPC_STUB IEnumSTATPROPSETSTG_RemoteNext_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IEnumSTATPROPSETSTG_Next_Proxy(
IEnumSTATPROPSETSTG* This,
ULONG celt,
STATPROPSETSTG* rgelt,
ULONG* pceltFetched);
HRESULT __RPC_STUB IEnumSTATPROPSETSTG_Next_Stub(
IEnumSTATPROPSETSTG* This,
ULONG celt,
STATPROPSETSTG* rgelt,
ULONG* pceltFetched);
HRESULT CALLBACK IEnumSTATPROPSETSTG_Skip_Proxy(
IEnumSTATPROPSETSTG* This,
ULONG celt);
void __RPC_STUB IEnumSTATPROPSETSTG_Skip_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IEnumSTATPROPSETSTG_Reset_Proxy(
IEnumSTATPROPSETSTG* This);
void __RPC_STUB IEnumSTATPROPSETSTG_Reset_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT CALLBACK IEnumSTATPROPSETSTG_Clone_Proxy(
IEnumSTATPROPSETSTG* This,
IEnumSTATPROPSETSTG** ppenum);
void __RPC_STUB IEnumSTATPROPSETSTG_Clone_Stub(
struct IRpcStubBuffer* This,
struct IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__ */
HRESULT WINAPI FreePropVariantArray(ULONG,PROPVARIANT*);
HRESULT WINAPI PropVariantClear(PROPVARIANT*);
HRESULT WINAPI PropVariantCopy(PROPVARIANT*,const PROPVARIANT*);
#ifdef __cplusplus
}
#endif
#endif /* __WIDL_PROPIDL_H */
/*
* Copyright 2002 Ove Kaaven
* Copyright 2004 Francois Gouget
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
import "objidl.idl";
import "oaidl.idl";
/******************** Property Storage ********************/
interface IEnumSTATPROPSTG;
interface IEnumSTATPROPSETSTG;
[
object,
uuid(00000138-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface IPropertyStorage : IUnknown
{
typedef [unique] IPropertyStorage *LPPROPERTYSTORAGE;
const DWORD PROPSETFLAG_DEFAULT = 0;
const DWORD PROPSETFLAG_NONSIMPLE = 1;
const DWORD PROPSETFLAG_ANSI = 2;
const DWORD PROPSETFLAG_UNBUFFERED = 4;
typedef struct tagPROPVARIANT PROPVARIANT;
#define TYPEDEF_CA(type, name) \
typedef struct tag##name { \
ULONG cElems; \
[size_is(cElems)] \
type *pElems; \
} name
TYPEDEF_CA(unsigned char, CAUB);
TYPEDEF_CA(short, CAI);
TYPEDEF_CA(USHORT, CAUI);
TYPEDEF_CA(long, CAL);
TYPEDEF_CA(ULONG, CAUL);
TYPEDEF_CA(float, CAFLT);
TYPEDEF_CA(double, CADBL);
TYPEDEF_CA(CY, CACY);
TYPEDEF_CA(DATE, CADATE);
TYPEDEF_CA(BSTR, CABSTR);
TYPEDEF_CA(BSTRBLOB, CABSTRBLOB);
TYPEDEF_CA(VARIANT_BOOL, CABOOL);
TYPEDEF_CA(SCODE, CASCODE);
TYPEDEF_CA(PROPVARIANT, CAPROPVARIANT);
TYPEDEF_CA(LARGE_INTEGER, CAH);
TYPEDEF_CA(ULARGE_INTEGER, CAUH);
TYPEDEF_CA(LPSTR, CALPSTR);
TYPEDEF_CA(LPWSTR, CALPWSTR);
TYPEDEF_CA(FILETIME, CAFILETIME);
TYPEDEF_CA(CLIPDATA, CACLIPDATA);
TYPEDEF_CA(CLSID, CACLSID);
struct tagPROPVARIANT {
VARTYPE vt;
WORD wReserved1;
WORD wReserved2;
WORD wReserved3;
[switch_is(vt & 0x1fff)] union {
[case(VT_EMPTY, VT_NULL)] ;
[case(VT_I1)] char cVal;
[case(VT_UI1)] UCHAR bVal;
[case(VT_I2)] short iVal;
[case(VT_UI2)] USHORT uiVal;
[case(VT_BOOL)] VARIANT_BOOL boolVal;
#if 0 /* illegal in C++ */
[case(VT_ILLEGAL)] _VARIANT_BOOL bool;
#endif
[case(VT_I4)] long lVal;
[case(VT_UI4)] ULONG ulVal;
[case(VT_R4)] float fltVal;
[case(VT_ERROR)] SCODE scode;
[case(VT_I8)] LARGE_INTEGER hVal;
[case(VT_UI8)] ULARGE_INTEGER uhVal;
[case(VT_R8)] double dblVal;
[case(VT_CY)] CY cyVal;
[case(VT_DATE)] DATE date;
[case(VT_FILETIME)] FILETIME filetime;
[case(VT_CLSID)] CLSID *puuid;
[case(VT_BLOB, VT_BLOB_OBJECT)] BLOB blob;
[case(VT_CF)] CLIPDATA *pclipdata;
[case(VT_STREAM, VT_STREAMED_OBJECT)] IStream *pStream;
[case(VT_STORAGE, VT_STORED_OBJECT)] IStorage *pStorage;
[case(VT_BSTR)] BSTR bstrVal;
[case(VT_BSTR_BLOB)] BSTRBLOB bstrblobVal;
[case(VT_LPSTR)] LPSTR pszVal;
[case(VT_LPWSTR)] LPWSTR pwszVal;
[case(VT_UI1|VT_VECTOR)] CAUB caub;
[case(VT_I2|VT_VECTOR)] CAI cai;
[case(VT_UI2|VT_VECTOR)] CAUI caui;
[case(VT_BOOL|VT_VECTOR)] CABOOL cabool;
[case(VT_I4|VT_VECTOR)] CAL cal;
[case(VT_UI4|VT_VECTOR)] CAUL caul;
[case(VT_R4|VT_VECTOR)] CAFLT caflt;
[case(VT_ERROR|VT_VECTOR)] CASCODE cascode;
[case(VT_I8|VT_VECTOR)] CAH cah;
[case(VT_UI8|VT_VECTOR)] CAUH cauh;
[case(VT_R8|VT_VECTOR)] CADBL cadbl;
[case(VT_CY|VT_VECTOR)] CACY cacy;
[case(VT_DATE|VT_VECTOR)] CADATE cadate;
[case(VT_FILETIME|VT_VECTOR)] CAFILETIME cafiletime;
[case(VT_CLSID|VT_VECTOR)] CACLSID cauuid;
[case(VT_CF|VT_VECTOR)] CACLIPDATA caclipdata;
[case(VT_BSTR|VT_VECTOR)] CABSTR cabstr;
[case(VT_BSTR_BLOB|VT_VECTOR)] CABSTRBLOB cabstrblob;
[case(VT_LPSTR|VT_VECTOR)] CALPSTR calpstr;
[case(VT_LPWSTR|VT_VECTOR)] CALPWSTR calpwstr;
[case(VT_VARIANT|VT_VECTOR)] CAPROPVARIANT capropvar;
};
};
typedef struct tagPROPVARIANT *LPPROPVARIANT;
/* FIXME: bunches of property IDs */
const ULONG PRSPEC_INVALID = 0xffffffff;
const ULONG PRSPEC_LPWSTR = 0;
const ULONG PRSPEC_PROPID = 1;
typedef struct tagPROPSPEC {
ULONG ulKind;
[switch_is(ulKind)] union {
[case(PRSPEC_PROPID)] PROPID propid;
[case(PRSPEC_LPWSTR)] LPOLESTR lpwstr;
[default] ;
};
} PROPSPEC;
typedef struct tagSTATPROPSTG {
LPOLESTR lpwstrName;
PROPID propid;
VARTYPE vt;
} STATPROPSTG;
/* FIXME: macros */
typedef struct tagSTATPROPSETSTG {
FMTID fmtid;
CLSID clsid;
DWORD grfFlags;
FILETIME mtime;
FILETIME ctime;
FILETIME atime;
DWORD dwOSVersion;
} STATPROPSETSTG;
HRESULT ReadMultiple(
[in] ULONG cpspec,
[in, size_is(cpspec)] const PROPSPEC rgpspec[],
[out, size_is(cpspec)] PROPVARIANT rgpropvar[]);
HRESULT WriteMultiple(
[in] ULONG cpspec,
[in, size_is(cpspec)] const PROPSPEC rgpspec[],
[in, size_is(cpspec)] const PROPVARIANT rgpropvar[],
[in] PROPID propidNameFirst);
HRESULT DeleteMultiple(
[in] ULONG cpspec,
[in, size_is(cpspec)] const PROPSPEC rgpspec[]);
HRESULT ReadPropertyNames(
[in] ULONG cpropid,
[in, size_is(cpropid)] const PROPID rgpropid[],
[out, size_is(cpropid)] LPOLESTR rglpwstrName[]);
HRESULT WritePropertyNames(
[in] ULONG cpropid,
[in, size_is(cpropid)] const PROPID rgpropid[],
[in, size_is(cpropid)] const LPOLESTR rglpwstrName[]);
HRESULT DeletePropertyNames(
[in] ULONG cpropid,
[in, size_is(cpropid)] const PROPID rgpropid[]);
HRESULT Commit(
[in] DWORD grfCommitFlags);
HRESULT Revert();
HRESULT Enum(
[out] IEnumSTATPROPSTG **ppenum);
HRESULT SetTimes(
[in] const FILETIME *pctime,
[in] const FILETIME *patime,
[in] const FILETIME *pmtime);
HRESULT SetClass(
[in] REFCLSID clsid);
HRESULT Stat(
[out] STATPROPSETSTG *statpsstg);
}
[
object,
uuid(0000013A-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface IPropertySetStorage : IUnknown
{
typedef [unique] IPropertySetStorage *LPPROPERTYSETSTORAGE;
HRESULT Create(
[in] REFFMTID rfmtid,
[in, unique] const CLSID *pclsid,
[in] DWORD grfFlags,
[in] DWORD grfMode,
[out] IPropertyStorage **ppprstg);
HRESULT Open(
[in] REFFMTID rfmtid,
[in] DWORD grfMode,
[out] IPropertyStorage **ppprstg);
HRESULT Delete(
[in] REFFMTID rfmtid);
HRESULT Enum(
[out] IEnumSTATPROPSETSTG **ppenum);
}
[
object,
uuid(00000139-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface IEnumSTATPROPSTG : IUnknown
{
typedef [unique] IEnumSTATPROPSTG *LPENUMSTATPROPSTG;
[local]
HRESULT Next(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)]
STATPROPSTG *rgelt,
[out] ULONG *pceltFetched);
[call_as(Next)]
HRESULT RemoteNext(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)]
STATPROPSTG *rgelt,
[out] ULONG *pceltFetched);
HRESULT Skip(
[in] ULONG celt);
HRESULT Reset();
HRESULT Clone(
[out] IEnumSTATPROPSTG **ppenum);
}
[
object,
uuid(0000013B-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface IEnumSTATPROPSETSTG : IUnknown
{
typedef [unique] IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG;
[local]
HRESULT Next(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)]
STATPROPSETSTG *rgelt,
[out] ULONG *pceltFetched);
[call_as(Next)]
HRESULT RemoteNext(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)]
STATPROPSETSTG *rgelt,
[out] ULONG *pceltFetched);
HRESULT Skip(
[in] ULONG celt);
HRESULT Reset();
HRESULT Clone(
[out] IEnumSTATPROPSETSTG **ppenum);
}
cpp_quote("HRESULT WINAPI FreePropVariantArray(ULONG,PROPVARIANT*);");
cpp_quote("HRESULT WINAPI PropVariantClear(PROPVARIANT*);");
cpp_quote("HRESULT WINAPI PropVariantCopy(PROPVARIANT*,const PROPVARIANT*);");
......@@ -13,6 +13,7 @@ extern "C" {
#include <shtypes.h>
#include <servprov.h>
#include <comcat.h>
#include <propidl.h>
#ifndef __IPersistFolder_FWD_DEFINED__
#define __IPersistFolder_FWD_DEFINED__
typedef struct IPersistFolder IPersistFolder;
......
......@@ -25,7 +25,7 @@ import "oaidl.idl";
import "shtypes.idl";
import "servprov.idl";
import "comcat.idl";
/*import "propidl.idl";*/
import "propidl.idl";
/*import "prsht.idl";*/
/*import "msxml.idl";*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment