From 7f9b0906dd9717ad36ac9ae50170e4cad85e8806 Mon Sep 17 00:00:00 2001 From: Malte Starostik Date: Fri, 5 Oct 2001 19:38:43 +0000 Subject: [PATCH] Added IPersistPropertyBag2 and IPropertyBag2 definitions, added missing BINDINFO member. --- include/urlmon.h | 1 + include/wine/obj_property.h | 83 +++++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+) diff --git a/include/urlmon.h b/include/urlmon.h index 74687f5c98d..7746aac5b90 100644 --- a/include/urlmon.h +++ b/include/urlmon.h @@ -72,6 +72,7 @@ typedef struct _tagBINDINFO { ULONG cbSize; LPWSTR szExtraInfo; STGMEDIUM stgmedData; + DWORD grfBindInfoF; DWORD dwBindVerb; LPWSTR szCustomVerb; DWORD cbStgmedData; diff --git a/include/wine/obj_property.h b/include/wine/obj_property.h index 8ab92ab98d2..3c7c5da4fab 100644 --- a/include/wine/obj_property.h +++ b/include/wine/obj_property.h @@ -50,6 +50,27 @@ typedef struct tagCADWORD } CADWORD, *LPCADWORD; +typedef enum tagPROPBAG2_TYPE +{ + PROPBAG2_TYPE_UNDEFINED = 0, + PROPBAG2_TYPE_DATA = 1, + PROPBAG2_TYPE_URL = 2, + PROPBAG2_TYPE_OBJECT = 3, + PROPBAG2_TYPE_STREAM = 4, + PROPBAG2_TYPE_STORAGE = 5, + PROPBAG2_TYPE_MONIKER = 6 +} PROPBAG2_TYPE; + +typedef struct tagPROPBAG2 +{ + DWORD dwType; + VARTYPE vt; + CLIPFORMAT cfType; + DWORD dwHint; + LPOLESTR pstrName; + CLSID clsid; +} PROPBAG2; + /***************************************************************************** * Predeclare the interfaces */ @@ -77,12 +98,18 @@ typedef struct IPersistMemory IPersistMemory,*LPPERSISTMEMORY; DEFINE_GUID(IID_IPersistPropertyBag, 0x37d84f60, 0x42cb, 0x11ce, 0x81, 0x35, 0x00, 0xaa, 0x00, 0x4b, 0xb8, 0x51); typedef struct IPersistPropertyBag IPersistPropertyBag,*LPPERSISTPROPERTYBAG; +DEFINE_GUID(IID_IPersistPropertyBag2, 0x22f55881, 0x280b, 0x11d0, 0xa8, 0xa9, 0x00, 0xa0, 0xc9, 0x0c, 0x20, 0x04); +typedef struct IPersistPropertyBag2 IPersistPropertyBag2,*LPPERSISTPROPERTYBAG2; + DEFINE_GUID(IID_IErrorLog, 0x3127ca40L, 0x446e, 0x11ce, 0x81, 0x35, 0x00, 0xaa, 0x00, 0x4b, 0xb8, 0x51); typedef struct IErrorLog IErrorLog,*LPERRORLOG; DEFINE_GUID(IID_IPropertyBag, 0x55272a00L, 0x42cb, 0x11ce, 0x81, 0x35, 0x00, 0xaa, 0x00, 0x4b, 0xb8, 0x51); typedef struct IPropertyBag IPropertyBag,*LPPROPERTYBAG; +DEFINE_GUID(IID_IPropertyBag2, 0x22f55882, 0x280b, 0x11d0, 0xa8, 0xa9, 0x00, 0xa0, 0xc9, 0x0c, 0x20, 0x04); +typedef struct IPropertyBag2 IPropertyBag2,*LPPROPERTYBAG2; + DEFINE_GUID(IID_ISpecifyPropertyPages, 0xb196b28b, 0xbab4, 0x101a, 0xb6, 0x9c, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07); typedef struct ISpecifyPropertyPages ISpecifyPropertyPages,*LPSPECIFYPROPERTYPAGES; @@ -318,6 +345,34 @@ ICOM_DEFINE(IPersistPropertyBag,IPersist) #define IPersistPropertyBag_Save(p,a,b,c) ICOM_CALL3(Save,p,a,b,c) +/***************************************************************************** + * IPersistPropertyBag2 interface + */ +#define ICOM_INTERFACE IPersistPropertyBag2 +#define IPersistPropertyBag2_METHODS \ + ICOM_METHOD (HRESULT,InitNew) \ + ICOM_METHOD2(HRESULT,Load, IPropertyBag2*,pPropBag, IErrorLog*,pErrorLog) \ + ICOM_METHOD3(HRESULT,Save, IPropertyBag2*,pPropBag, BOOL,fClearDirty, BOOL,fSaveAllProperties) \ + ICOM_METHOD (HRESULT,IsDirty) +#define IPersistPropertyBag2_IMETHODS \ + IPersist_IMETHODS \ + IPersistPropertyBag2_METHODS +ICOM_DEFINE(IPersistPropertyBag2,IPersist) +#undef ICOM_INTERFACE + +/*** IUnknown methods ***/ +#define IPersistPropertyBag2_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IPersistPropertyBag2_AddRef(p) ICOM_CALL (AddRef,p) +#define IPersistPropertyBag2_Release(p) ICOM_CALL (Release,p) +/*** IPersist methods ***/ +#define IPersistPropertyBag2_GetClassID(p,a) ICOM_CALL1(GetClassID,p,a) +/*** IPersistPropertyBag methods ***/ +#define IPersistPropertyBag2_InitNew(p) ICOM_CALL (InitNew,p) +#define IPersistPropertyBag2_Load(p,a,b) ICOM_CALL2(Load,p,a,b) +#define IPersistPropertyBag2_Save(p,a,b,c) ICOM_CALL3(Save,p,a,b,c) +#define IPersistPropertyBag2_IsDirty(p) ICON_CALL (IsDirty,p) + + /***************************************************************************** * IErrorLog interface */ @@ -360,6 +415,34 @@ ICOM_DEFINE(IPropertyBag,IUnknown) #define IPropertyBag_Write(p,a,b) ICOM_CALL2(Write,p,a,b) +/***************************************************************************** + * IPropertyBag2 interface + */ +#define ICOM_INTERFACE IPropertyBag2 +#define IPropertyBag2_METHODS \ + ICOM_METHOD5(HRESULT,Read, ULONG,cProperties, PROPBAG2*,pPropBag, IErrorLog*,pErrLog, VARIANT*,pvarValue, HRESULT*,phrError) \ + ICOM_METHOD3(HRESULT,Write, ULONG,cProperties, PROPBAG2*,pPropBag, VARIANT*,pvarValue) \ + ICOM_METHOD1(HRESULT,CountProperties, ULONG*,pcProperties) \ + ICOM_METHOD4(HRESULT,GetPropertyInfo, ULONG,iProperty, ULONG,cProperties, PROPBAG2*,pPropBag, ULONG*,pcProperties) \ + ICOM_METHOD4(HRESULT,LoadObject, LPCOLESTR,pstrName, DWORD,dwHint, IUnknown*,pUnkObject, IErrorLog*,pErrLog) +#define IPropertyBag2_IMETHODS \ + IUnknown_IMETHODS \ + IPropertyBag2_METHODS +ICOM_DEFINE(IPropertyBag2,IUnknown) +#undef ICOM_INTERFACE + +/*** IUnknown methods ***/ +#define IPropertyBag2_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IPropertyBag2_AddRef(p) ICOM_CALL (AddRef,p) +#define IPropertyBag2_Release(p) ICOM_CALL (Release,p) +/*** IPropertyBag methods ***/ +#define IPropertyBag2_Read(p,a,b,c,d,e) ICOM_CALL5(Read,p,a,b,c,d,e) +#define IPropertyBag2_Write(p,a,b,c) ICOM_CALL3(Write,p,a,b,c) +#define IPropertyBag2_CountProperties(p,a) ICOM_CALL1(CountProperties,p,a) +#define IPropertyBag2_GetPropertyInfo(p,a,b,c,d) ICOM_CALL4(GetPropertyInfo,p,a,b,c,d) +#define IPropertyBag2_LoadObject(p,a,b,c,d) ICOM_CALL4(LoadObject,p,a,b,c,d) + + /***************************************************************************** * ISpecifyPropertyPages interface */