From d04d2f1474d37f9d24a0b80b61b6417fb65e8ea9 Mon Sep 17 00:00:00 2001 From: Francois Gouget Date: Thu, 18 Feb 1999 10:59:20 +0000 Subject: [PATCH] Updated to use the latest COM macros. Defined more interfaces and API functions. --- include/wine/obj_moniker.h | 328 +++++++++++++++++++------- include/wine/obj_storage.h | 465 +++++++++++++++++++++++++------------ ole/storage.c | 60 ++--- 3 files changed, 582 insertions(+), 271 deletions(-) diff --git a/include/wine/obj_moniker.h b/include/wine/obj_moniker.h index a41c165570f..83c055be024 100644 --- a/include/wine/obj_moniker.h +++ b/include/wine/obj_moniker.h @@ -39,18 +39,18 @@ typedef struct IRunningObjectTable IRunningObjectTable,*LPRUNNINGOBJECTTABLE; /********************************************************************************* * BIND_OPTS and BIND_OPTS2 structures definition - * Thes structures contain parameters used during a moniker-binding operation. + * These structures contain parameters used during a moniker-binding operation. *********************************************************************************/ -typedef struct tagBIND_OPTS{ - +typedef struct tagBIND_OPTS +{ DWORD cbStruct; DWORD grfFlags; DWORD grfMode; DWORD dwTickCountDeadline; } BIND_OPTS, * LPBIND_OPTS; -typedef struct tagBIND_OPTS2{ - +typedef struct tagBIND_OPTS2 +{ DWORD cbStruct; DWORD grfFlags; DWORD grfMode; @@ -59,131 +59,297 @@ typedef struct tagBIND_OPTS2{ DWORD dwClassContext; LCID locale; COSERVERINFO* pServerInfo; - } BIND_OPTS2, * LPBIND_OPTS2; /***************************************************************************** * IBindCtx interface */ #define ICOM_INTERFACE IBindCtx -ICOM_BEGIN(IBindCtx,IUnknown) - ICOM_METHOD1 (HRESULT, RegisterObjectBound,IUnknown*,punk); - ICOM_METHOD1 (HRESULT, RevokeObjectBound,IUnknown*,punk); - ICOM_METHOD (HRESULT, ReleaseObjects); - ICOM_METHOD1 (HRESULT, SetBindOptions,LPBIND_OPTS2,pbindopts); - ICOM_METHOD1 (HRESULT, GetBindOptions,LPBIND_OPTS2,pbindopts); - ICOM_METHOD1 (HRESULT, GetRunningObjectTable,IRunningObjectTable**,pprot); - ICOM_METHOD2 (HRESULT, RegisterObjectParam,LPOLESTR32,pszkey,IUnknown*,punk); - ICOM_METHOD2 (HRESULT, GetObjectParam,LPOLESTR32,pszkey,IUnknown*,punk); - ICOM_METHOD1 (HRESULT, EnumObjectParam,IEnumString**,ppenum); - ICOM_METHOD1 (HRESULT, RevokeObjectParam,LPOLESTR32,pszkey); -ICOM_END(IBindCtx) - +#define IBindCtx_METHODS \ + ICOM_METHOD1 (HRESULT, RegisterObjectBound, IUnknown*,punk) \ + ICOM_METHOD1 (HRESULT, RevokeObjectBound, IUnknown*,punk) \ + ICOM_METHOD (HRESULT, ReleaseObjects) \ + ICOM_METHOD1 (HRESULT, SetBindOptions, LPBIND_OPTS2,pbindopts) \ + ICOM_METHOD1 (HRESULT, GetBindOptions, LPBIND_OPTS2,pbindopts) \ + ICOM_METHOD1 (HRESULT, GetRunningObjectTable,IRunningObjectTable**,pprot) \ + ICOM_METHOD2 (HRESULT, RegisterObjectParam, LPOLESTR32,pszkey, IUnknown*,punk) \ + ICOM_METHOD2 (HRESULT, GetObjectParam, LPOLESTR32,pszkey, IUnknown*,punk) \ + ICOM_METHOD1 (HRESULT, EnumObjectParam, IEnumString**,ppenum) \ + ICOM_METHOD1 (HRESULT, RevokeObjectParam, LPOLESTR32,pszkey) +#define IBindCtx_IMETHODS \ + IUnknown_IMETHODS \ + IBindCtx_METHODS +ICOM_DEFINE(IBindCtx,IUnknown) #undef ICOM_INTERFACE -#if !defined(__cplusplus) || defined(CINTERFACE) +#ifdef ICOM_CINTERFACE /*** IUnknown methods ***/ -#define IBindCtx_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b) -#define IBindCtxr_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p) -#define IBindCtx_Release(p) ICOM_ICALL (IUnknown,Release,p) +#define IBindCtx_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IBindCtxr_AddRef(p) ICOM_CALL (AddRef,p) +#define IBindCtx_Release(p) ICOM_CALL (Release,p) /* IBindCtx methods*/ -#define IBindCtx_RegisterObjectBound(p,a) ICOM_CALL1 (RegisterObjectBound,p,a); -#define IBindCtx_RevokeObjectBound(p,a) ICOM_CALL1 (RevokeObjectBound,p,a); -#define IBindCtx_ReleaseObjects(p) ICOM_CALL (ReleaseObjects,p); -#define IBindCtx_SetBindOptions(p,a) ICOM_CALL1 (SetBindOptions,p,a); -#define IBindCtx_GetBindOptions(p,a) ICOM_CALL1 (GetBindOptions,p,a); -#define IBindCtx_GetRunningObjectTable(p,a) ICOM_CALL1 (GetRunningObjectTable,p,a); -#define IBindCtx_RegisterObjectParam(p,a,b) ICOM_CALL2 (RegisterObjectParam,p,a,b); -#define IBindCtx_GetObjectParam(p,a,b) ICOM_CALL2 (GetObjectParam,p,a,b); -#define IBindCtx_EnumObjectParam(p,a) ICOM_CALL1 (EnumObjectParam,p,a); -#define IBindCtx_RevokeObjectParam(p,a) ICOM_CALL1 (RevokeObjectParam,p,a); - +#define IBindCtx_RegisterObjectBound(p,a) ICOM_CALL1(RegisterObjectBound,p,a) +#define IBindCtx_RevokeObjectBound(p,a) ICOM_CALL1(RevokeObjectBound,p,a) +#define IBindCtx_ReleaseObjects(p) ICOM_CALL (ReleaseObjects,p) +#define IBindCtx_SetBindOptions(p,a) ICOM_CALL1(SetBindOptions,p,a) +#define IBindCtx_GetBindOptions(p,a) ICOM_CALL1(GetBindOptions,p,a) +#define IBindCtx_GetRunningObjectTable(p,a) ICOM_CALL1(GetRunningObjectTable,p,a) +#define IBindCtx_RegisterObjectParam(p,a,b) ICOM_CALL2(RegisterObjectParam,p,a,b) +#define IBindCtx_GetObjectParam(p,a,b) ICOM_CALL2(GetObjectParam,p,a,b) +#define IBindCtx_EnumObjectParam(p,a) ICOM_CALL1(EnumObjectParam,p,a) +#define IBindCtx_RevokeObjectParam(p,a) ICOM_CALL1(RevokeObjectParam,p,a) #endif +HRESULT WINAPI CreateBindCtx16(DWORD reserved, LPBC* ppbc); +HRESULT WINAPI CreateBindCtx32(DWORD reserved, LPBC* ppbc); #define CreateBindCtx WINELIB_NAME(CreateBindCtx) + + /***************************************************************************** * IClassActivator interface */ -/* FIXME: not implemented */ +#define ICOM_INTERFACE IClassActivator +#define IClassActivator_METHODS \ + ICOM_METHOD5(HRESULT,GetClassObject, REFCLSID,rclsid, DWORD,dwClassContext, LCID,locale, REFIID,riid, void**,ppv) +#define IClassActivator_IMETHODS \ + IUnknown_IMETHODS \ + IClassActivator_METHODS +ICOM_DEFINE(IClassActivator,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IClassActivator_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IClassActivator_AddRef(p) ICOM_CALL (AddRef,p) +#define IClassActivator_Release(p) ICOM_CALL (Release,p) +/*** IClassActivator methods ***/ +#define IClassActivator_GetClassObject(p,a,b,c,d,e) ICOM_CALL5(GetClassObject,p,a,b,c,d,e) +#endif + /***************************************************************************** * IEnumMoniker interface */ -/* FIXME: not implemented */ +#define ICOM_INTERFACE IEnumMoniker +#define IEnumMoniker_METHODS \ + ICOM_METHOD3(HRESULT,Next, ULONG,celt, IMoniker***,rgelt, ULONG*,pceltFethed) \ + ICOM_METHOD1(HRESULT,Skip, ULONG,celt) \ + ICOM_METHOD (HRESULT,Reset) \ + ICOM_METHOD1(HRESULT,Clone, IEnumMoniker**,ppenum) +#define IEnumMoniker_IMETHODS \ + IUnknown_IMETHODS \ + IEnumMoniker_METHODS +ICOM_DEFINE(IEnumMoniker,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IEnumMoniker_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IEnumMoniker_AddRef(p) ICOM_CALL (AddRef,p) +#define IEnumMoniker_Release(p) ICOM_CALL (Release,p) +/*** IEnumMoniker methods ***/ +#define IEnumMoniker_Next(p,a,b,c) ICOM_CALL3(Next,p,a,b,c) +#define IEnumMoniker_Skip(p,a) ICOM_CALL1(Skip,p,a) +#define IEnumMoniker_Reset(p) ICOM_CALL (Reset,p) +#define IEnumMoniker_Clone(p,a) ICOM_CALL1(Clone,p,a) +#endif + /***************************************************************************** * IMoniker interface */ + +typedef enum tagMKSYS +{ + MKSYS_NONE = 0, + MKSYS_GENERICCOMPOSITE = 1, + MKSYS_FILEMONIKER = 2, + MKSYS_ANTIMONIKER = 3, + MKSYS_ITEMMONIKER = 4, + MKSYS_POINTERMONIKER = 5, + MKSYS_CLASSMONIKER = 7 +} MKSYS; + +typedef enum tagMKREDUCE +{ + MKRREDUCE_ONE = 3 << 16, + MKRREDUCE_TOUSER = 2 << 16, + MKRREDUCE_THROUGHUSER = 1 << 16, + MKRREDUCE_ALL = 0 +} MKRREDUCE; + #define ICOM_INTERFACE IMoniker -ICOM_BEGIN(IMoniker,IPersistStream) - ICOM_METHOD4 (HRESULT,BindToObject,IBindCtx*,pbc,IMoniker*,pmkToLeft,REFIID,riid,VOID**,ppvResult); - ICOM_METHOD4 (HRESULT,BindToStorage,IBindCtx*,pbc,IMoniker*,pmkToLeft,REFIID,riid,VOID**,ppvResult); - ICOM_METHOD4 (HRESULT,Reduce,IBindCtx*,pbc,DWORD,dwReduceHowFar,IMoniker**,ppmkToLeft,IMoniker**,ppmkReduced); - ICOM_METHOD3 (HRESULT,ComposeWith,IMoniker*,pmkRight,BOOL32,fOnlyIfNotGeneric,IMoniker**,ppmkComposite); - ICOM_METHOD2 (HRESULT,Enum,BOOL32,fForward,IEnumMoniker**,ppenumMoniker); - ICOM_METHOD1 (HRESULT,IsEqual,IMoniker*, pmkOtherMoniker); - ICOM_METHOD1 (HRESULT,Hash,DWORD*,pdwHash); - ICOM_METHOD3 (HRESULT,IsRunning,IBindCtx*,pbc,IMoniker*,pmkToLeft,IMoniker*,pmkNewlyRunning); - ICOM_METHOD3 (HRESULT,GetTimeOfLastChange,IBindCtx*,pbc,IMoniker*,pmkToLeft,FILETIME*,pFileTime); - ICOM_METHOD1 (HRESULT,Inverse,IMoniker**,ppmk); - ICOM_METHOD2 (HRESULT,CommonPrefixWith,IMoniker*,pmkOther,IMoniker**,ppmkPrefix); - ICOM_METHOD2 (HRESULT,RelativePathTo,IMoniker*,pmOther,IMoniker**,ppmkRelPath); - ICOM_METHOD3 (HRESULT,GetDisplayName,IBindCtx*,pbc,IMoniker*,pmkToLeft,LPOLESTR32,*ppszDisplayName); - ICOM_METHOD5 (HRESULT,ParseDisplayName,IBindCtx*,pbc,IMoniker*,pmkToLeft,LPOLESTR32,pszDisplayName,ULONG*,pchEaten,IMoniker**,ppmkOut); - ICOM_METHOD1 (HRESULT,IsSystemMoniker,DWORD*,pwdMksys); -ICOM_END(IMoniker) +#define IMoniker_METHODS \ + ICOM_METHOD4(HRESULT,BindToObject, IBindCtx*,pbc, IMoniker*,pmkToLeft, REFIID,riidResult, void**,ppvResult) \ + ICOM_METHOD4(HRESULT,BindToStorage, IBindCtx*,pbc, IMoniker*,pmkToLeft, REFIID,riid, void**,ppvObj) \ + ICOM_METHOD4(HRESULT,Reduce, IBindCtx*,pbc, DWORD,dwReduceHowFar, IMoniker**,ppmkToLeft, IMoniker**,ppmkReduced) \ + ICOM_METHOD3(HRESULT,ComposeWith, IMoniker*,pmkRight, BOOL32,fOnlyIfNotGeneric, IMoniker**,ppmkComposite) \ + ICOM_METHOD2(HRESULT,Enum, BOOL32,fForward, IEnumMoniker**,ppenumMoniker) \ + ICOM_METHOD1(HRESULT,IsEqual, IMoniker*,pmkOtherMoniker) \ + ICOM_METHOD1(HRESULT,Hash, DWORD*,pdwHash) \ + ICOM_METHOD3(HRESULT,IsRunning, IBindCtx*,pbc, IMoniker*,pmkToLeft, IMoniker*,pmkNewlyRunning) \ + ICOM_METHOD3(HRESULT,GetTimeOfLastChange, IBindCtx*,pbc, IMoniker*,pmkToLeft, FILETIME*,pFileTime) \ + ICOM_METHOD1(HRESULT,Inverse, IMoniker**,ppmk) \ + ICOM_METHOD2(HRESULT,CommonPrefixWith, IMoniker*,pmkOtherMoniker, IMoniker**,ppmkPrefix) \ + ICOM_METHOD2(HRESULT,RelativePathTo, IMoniker*,pmkOther, IMoniker**,ppmkRelPath) \ + ICOM_METHOD3(HRESULT,GetDisplayName, IBindCtx*,pbc, IMoniker*,pmkToLeft, LPOLESTR32*,ppszDisplayName) \ + ICOM_METHOD5(HRESULT,ParseDisplayName, IBindCtx*,pbc, IMoniker*,pmkToLeft, LPOLESTR32,pszDisplayName, ULONG*,pchEaten, IMoniker**,ppmkOut) \ + ICOM_METHOD1(HRESULT,IsSystemMoniker, DWORD*,pdwMksys) +#define IMoniker_IMETHODS \ + IPersistStream_IMETHODS \ + IMoniker_METHODS +ICOM_DEFINE(IMoniker,IPersistStream) #undef ICOM_INTERFACE -#if !defined(__cplusplus) || defined(CINTERFACE) +#ifdef ICOM_CINTERFACE /*** IUnknown methods ***/ -#define IMoniker_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b) -#define IMoniker_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p) -#define IMoniker_Release(p) ICOM_ICALL (IUnknown,Release,p) +#define IMoniker_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IMoniker_AddRef(p) ICOM_CALL (AddRef,p) +#define IMoniker_Release(p) ICOM_CALL (Release,p) /*** IPersist methods ***/ -#define IMoniker_GetClassID(p,a) ICOM_ICALL1(IPersist,GetClassID,p,a) -/*** IPersistStream ***/ -#define IMoniker_Stream_IsDirty(p) ICOM_ICALL(IPersistStream,IsDirty,p) -#define IMoniker_Stream_Load(p,a) ICOM_ICALL1(IPersistStream,Load,p,a) -#define IMoniker_Stream_Save(p,a,b) ICOM_ICALL2(IPersistStream,Save,p,a,b) -#define IMoniker_Stream_GetSizeMax(p,a) ICOM_ICALL1(IPersistStream,GetSizeMax,p,a) -/* IMonker methods*/ -#define IMoniker_BindToObject(p,a,b,c,d) ICOM_CALL4(BindToObject,p,a,b,c,d) -#define IMoniker_BindToStorage(p,a,b,c,d) ICOM_CALL4(BindToStorage,p,a,b,c,d) -#define IMoniker_Reduce(p,a,b,c,d) ICOM_CALL4(Reduce,p,a,b,c,d) -#define IMoniker_ComposeWith(p,a,b,c) ICOM_CALL3(ComposeWith,p,a,b,c) -#define IMoniker_Enum(p,a,b) ICOM_CALL2(Enum,p,a,b) -#define IMoniker_IsEqual(p,a) ICOM_CALL1(IsEqual,p,a) -#define IMoniker_Hash(p,a) ICOM_CALL1(Hash,p,a) -#define IMoniker_IsRunning(p,a,b,c) ICOM_CALL3(IsRunning,p,a,b,c) -#define IMoniker_GetTimeOfLastChange(p,a,b,c) ICOM_CALL3(GetTimeOfLastChange,p,a,b,c) -#define IMoniker_Inverse(p,a) ICOM_CALL1(Inverse,p,a) -#define IMoniker_CommonPrefixWith(p,a,b) ICOM_CALL2(CommonPrefixWith,p,a,b) -#define IMoniker_RelativePathTo(p,a,b) ICOM_CALL2(RelativePathTo,p,a,b) -#define IMoniker_GetDisplayName(p,a,b,c) ICOM_CALL3(GetDisplayName,p,a,b,c) -#define IMoniker_ParseDisplayName(p,a,b,c,d,e) ICOM_CALL5(ParseDisplayName,p,a,b,c,d,e) -#define IMoniker_IsSystemMoniker(p,a) ICOM_CALL1(IsSystemMonker,p,a) +#define IMoniker_GetClassID(p,a) ICOM_CALL1(GetClassID,p,a) +/*** IPersistStream methods ***/ +#define IMoniker_IsDirty(p) ICOM_CALL (IsDirty,p) +#define IMoniker_Load(p,a) ICOM_CALL1(Load,p,a) +#define IMoniker_Save(p,a,b) ICOM_CALL2(Save,p,a,b) +#define IMoniker_GetSizeMax(p,a) ICOM_CALL1(GetSizeMax,p,a) +/*** IMoniker methods ***/ +#define IMoniker_BindToObject(p,a,b,c,d) ICOM_CALL(BindToObject,p,a,b,c,d) +#define IMoniker_BindToStorage(p,a,b,c,d) ICOM_CALL(BindToStorage,p,a,b,c,d) +#define IMoniker_Reduce(p,a,b,c,d) ICOM_CALL(Reduce,p,a,b,c,d) +#define IMoniker_ComposeWith(p,a,b,c) ICOM_CALL(ComposeWith,p,a,b,c) +#define IMoniker_Enum(p,a,b) ICOM_CALL(Enum,p,a,b) +#define IMoniker_IsEqual(p,a) ICOM_CALL(IsEqual,p,a) +#define IMoniker_Hash(p,a) ICOM_CALL(Hash,p,a) +#define IMoniker_IsRunning(p,a,b,c) ICOM_CALL(IsRunning,p,a,b,c) +#define IMoniker_GetTimeOfLastChange(p,a,b,c) ICOM_CALL(GetTimeOfLastChange,p,a,b,c) +#define IMoniker_Inverse(p,a) ICOM_CALL(Inverse,p,a) +#define IMoniker_CommonPrefixWith(p,a,b) ICOM_CALL(CommonPrefixWith,p,a,b) +#define IMoniker_RelativePathTo(p,a,b) ICOM_CALL(RelativePathTo,p,a,b) +#define IMoniker_GetDisplayName(p,a,b,c) ICOM_CALL(GetDisplayName,p,a,b,c) +#define IMoniker_ParseDisplayName(p,a,b,c,d,e) ICOM_CALL(ParseDisplayName,p,a,b,c,d,e) +#define IMoniker_IsSystemMoniker(p,a) ICOM_CALL(IsSystemMoniker,p,a) #endif +/* FIXME: not implemented */ +HRESULT WINAPI BindMoniker(LPMONIKER pmk, DWORD grfOpt, REFIID iidResult, LPVOID* ppvResult); + +/* FIXME: not implemented */ +HRESULT WINAPI CreateAntiMoniker(LPMONIKER* ppmk); + +/* FIXME: not implemented */ +HRESULT WINAPI CreateClassMoniker(REFCLSID rclsid, LPMONIKER* ppmk); + +HRESULT WINAPI CreateFileMoniker16(LPCOLESTR16 lpszPathName, LPMONIKER* ppmk); +HRESULT WINAPI CreateFileMoniker32(LPCOLESTR32 lpszPathName, LPMONIKER* ppmk); #define CreateFileMoniker WINELIB_NAME(CreateFileMoniker) + +HRESULT WINAPI CreateItemMoniker16(LPCOLESTR16 lpszDelim, LPCOLESTR32 lpszItem, LPMONIKER* ppmk); +HRESULT WINAPI CreateItemMoniker32(LPCOLESTR32 lpszDelim, LPCOLESTR32 lpszItem, LPMONIKER* ppmk); #define CreateItemMoniker WINELIB_NAME(CreateItemMoniker) +/* FIXME: not implemented */ +HRESULT WINAPI CreateGenericComposite(LPMONIKER pmkFirst, LPMONIKER pmkRest, LPMONIKER* ppmkComposite); + +/* FIXME: not implemented */ +HRESULT WINAPI CreatePointerMoniker(LPUNKNOWN punk, LPMONIKER* ppmk); + /***************************************************************************** * IROTData interface */ -/* FIXME: not implemented */ +#define ICOM_INTERFACE IROTData +#define IROTData_METHODS \ + ICOM_METHOD3(HRESULT,GetComparisonData, byte*,pbData, ULONG,cbMax, ULONG*,pcbData) +#define IROTData_IMETHODS \ + IUnknown_IMETHODS \ + IROTData_METHODS +ICOM_DEFINE(IROTData,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IROTData_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IROTData_AddRef(p) ICOM_CALL (AddRef,p) +#define IROTData_Release(p) ICOM_CALL (Release,p) +/*** IROTData methods ***/ +#define IROTData_GetComparisonData(p,a,b,c) ICOM_CALL3(GetComparisonData,p,a,b,c) +#endif /***************************************************************************** * IRunnableObject interface */ -/* FIXME: not implemented */ +#define ICOM_INTERFACE IRunnableObject +#define IRunnableObject_METHODS \ + ICOM_METHOD1(HRESULT,GetRunningClass, LPCLSID,lpClsid) \ + ICOM_METHOD1(HRESULT,Run, IBindCtx*,pbc) \ + ICOM_METHOD (BOOL32,IsRunning) \ + ICOM_METHOD2(HRESULT,LockRunning, BOOL32,fLock, BOOL32,fLastUnlockCloses) \ + ICOM_METHOD1(HRESULT,SetContainedObject, BOOL32,fContained) +#define IRunnableObject_IMETHODS \ + IUnknown_IMETHODS \ + IRunnableObject_METHODS +ICOM_DEFINE(IRunnableObject,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IRunnableObject_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IRunnableObject_AddRef(p) ICOM_CALL (AddRef,p) +#define IRunnableObject_Release(p) ICOM_CALL (Release,p) +/*** IRunnableObject methods ***/ +#define IRunnableObject_GetRunningClass(p,a) ICOM_CALL1(GetRunningClass,p,a) +#define IRunnableObject_Run(p,a) ICOM_CALL1(Run,p,a) +#define IRunnableObject_IsRunning(p) ICOM_CALL (IsRunning,p) +#define IRunnableObject_LockRunning(p,a,b) ICOM_CALL2(LockRunning,p,a,b) +#define IRunnableObject_SetContainedObject(p,a) ICOM_CALL1(SetContainedObject,p,a) +#endif /***************************************************************************** * IRunningObjectTable interface */ +#define ICOM_INTERFACE IRunningObjectTable +#define IRunningObjectTable_METHODS \ + ICOM_METHOD4(HRESULT,Register, DWORD,grfFlags, IUnknown*,punkObject, IMoniker*,pmkObjectName, DWORD*,pdwRegister) \ + ICOM_METHOD1(HRESULT,Revoke, DWORD,dwRegister) \ + ICOM_METHOD1(HRESULT,IsRunning, IMoniker*,pmkObjectName) \ + ICOM_METHOD2(HRESULT,GetObject, IMoniker*,pmkObjectName, IUnknown**,ppunkObject) \ + ICOM_METHOD2(HRESULT,NoteChangeTime, DWORD,dwRegister, FILETIME*,pfiletime) \ + ICOM_METHOD2(HRESULT,GetTimeOfLastChange, IMoniker*,pmkObjectName, FILETIME*,pfiletime) \ + ICOM_METHOD1(HRESULT,EnumRunning, IEnumMoniker**,ppenumMoniker) +#define IRunningObjectTable_IMETHODS \ + IUnknown_IMETHODS \ + IRunningObjectTable_METHODS +ICOM_DEFINE(IRunningObjectTable,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IRunningObjectTable_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IRunningObjectTable_AddRef(p) ICOM_CALL (AddRef,p) +#define IRunningObjectTable_Release(p) ICOM_CALL (Release,p) +/*** IRunningObjectTable methods ***/ +#define IRunningObjectTable_Register(p,a,b,c,d) ICOM_CALL4(Register,p,a,b,c,d) +#define IRunningObjectTable_Revoke(p,a) ICOM_CALL1(Revoke,p,a) +#define IRunningObjectTable_IsRunning(p,a) ICOM_CALL1(IsRunning,p,a) +#define IRunningObjectTable_GetObject(p,a,b) ICOM_CALL2(GetObject,p,a,b) +#define IRunningObjectTable_NoteChangeTime(p,a,b) ICOM_CALL2(NoteChangeTime,p,a,b) +#define IRunningObjectTable_GetTimeOfLastChange(p,a,b) ICOM_CALL2(GetTimeOfLastChange,p,a,b) +#define IRunningObjectTable_EnumRunning(p,a) ICOM_CALL1(EnumRunning,p,a) +#endif + + +/***************************************************************************** + * Additional API + */ + /* FIXME: not implemented */ +HRESULT WINAPI CoGetInstanceFromFile(COSERVERINFO* pServerInfo, CLSID* pClsid, IUnknown* punkOuter, DWORD dwClsCtx, DWORD grfMode, OLECHAR32* pwszName, DWORD dwCount, MULTI_QI* pResults); + +/* FIXME: not implemented */ +HRESULT WINAPI CoGetInstanceFromIStorage(COSERVERINFO* pServerInfo, CLSID* pClsid, IUnknown* punkOuter, DWORD dwClsCtx, IStorage32* pstg, DWORD dwCount, MULTI_QI* pResults); #endif /* __WINE_WINE_OBJ_MONIKER_H */ diff --git a/include/wine/obj_storage.h b/include/wine/obj_storage.h index 65a8361a644..a698e7ede28 100644 --- a/include/wine/obj_storage.h +++ b/include/wine/obj_storage.h @@ -140,19 +140,22 @@ struct STATSTG { * IEnumSTATSTG interface */ #define ICOM_INTERFACE IEnumSTATSTG -ICOM_BEGIN(IEnumSTATSTG,IUnknown) - ICOM_METHOD3(HRESULT, Next, ULONG, celt, STATSTG*, rgelt, ULONG*, pceltFetched); - ICOM_METHOD1(HRESULT, Skip, ULONG, celt); - ICOM_CMETHOD(HRESULT, Reset); - ICOM_METHOD1(HRESULT, Clone, IEnumSTATSTG**, ppenum); -ICOM_END(IEnumSTATSTG) +#define IEnumSTATSTG_METHODS \ + ICOM_METHOD3(HRESULT,Next, ULONG,celt, STATSTG*,rgelt, ULONG*,pceltFethed) \ + ICOM_METHOD1(HRESULT,Skip, ULONG,celt) \ + ICOM_METHOD (HRESULT,Reset) \ + ICOM_METHOD1(HRESULT,Clone, IEnumSTATSTG**,ppenum) +#define IEnumSTATSTG_IMETHODS \ + IUnknown_IMETHODS \ + IEnumSTATSTG_METHODS +ICOM_DEFINE(IEnumSTATSTG,IUnknown) #undef ICOM_INTERFACE -#if !defined(__cplusplus) || defined(CINTERFACE) +#ifdef ICOM_CINTERFACE /*** IUnknown methods ***/ -#define IEnumSTATSTG_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b) -#define IEnumSTATSTG_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p) -#define IEnumSTATSTG_Release(p) ICOM_ICALL (IUnknown,Release,p) +#define IEnumSTATSTG_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IEnumSTATSTG_AddRef(p) ICOM_CALL (AddRef,p) +#define IEnumSTATSTG_Release(p) ICOM_CALL (Release,p) /*** IEnumSTATSTG methods ***/ #define IEnumSTATSTG_Next(p,a,b,c) ICOM_CALL3(Next,p,a,b,c) #define IEnumSTATSTG_Skip(p,a) ICOM_CALL1(Skip,p,a) @@ -160,38 +163,124 @@ ICOM_END(IEnumSTATSTG) #define IEnumSTATSTG_Clone(p,a) ICOM_CALL1(Clone,p,a) #endif + /***************************************************************************** * IFillLockBytes interface */ -/* FIXME: not implemented */ +#define ICOM_INTERFACE IFillLockBytes +#define IFillLockBytes_METHODS \ + ICOM_METHOD3(HRESULT,FillAppend, const void*,pv, ULONG,cb, ULONG*,pcbWritten) \ + ICOM_METHOD4(HRESULT,FillAt, ULARGE_INTEGER,ulOffset, const void*,pv, ULONG,cb, ULONG*,pcbWritten) \ + ICOM_METHOD1(HRESULT,SetFillSize, ULARGE_INTEGER,ulSize) \ + ICOM_METHOD1(HRESULT,Terminate, BOOL32,bCanceled) +#define IFillLockBytes_IMETHODS \ + IUnknown_IMETHODS \ + IFillLockBytes_METHODS +ICOM_DEFINE(IFillLockBytes,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IFillLockBytes_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IFillLockBytes_AddRef(p) ICOM_CALL (AddRef,p) +#define IFillLockBytes_Release(p) ICOM_CALL (Release,p) +/*** IFillLockBytes methods ***/ +#define IFillLockBytes_FillAppend(p,a,b,c) ICOM_CALL3(FillAppend,p,a,b,c) +#define IFillLockBytes_FillAt(p,a,b,c,d) ICOM_CALL4(FillAt,p,a,b,c,d) +#define IFillLockBytes_SetFillSize(p,a) ICOM_CALL1(SetFillSize,p,a) +#define IFillLockBytes_Terminate(p,a) ICOM_CALL1(Terminate,p,a) +#endif /***************************************************************************** * ILayoutStorage interface */ -/* FIXME: not implemented */ +typedef struct tagStorageLayout +{ + DWORD LayoutType; + OLECHAR16* pwcsElementName; + LARGE_INTEGER cOffset; + LARGE_INTEGER cBytes; +} StorageLayout; + +#define ICOM_INTERFACE ILayoutStorage +#define ILayoutStorage_METHODS \ + ICOM_METHOD2(HRESULT,LayoutScript, DWORD,nEntries, DWORD,glfInterleavedFlag) \ + ICOM_METHOD (HRESULT,BeginMonitor) \ + ICOM_METHOD (HRESULT,EndMonitor) \ + ICOM_METHOD1(HRESULT,ReLayoutDocfile, OLECHAR16*,pwcsNewDfName) \ + ICOM_METHOD1(HRESULT,ReLayoutDocfileOnILockBytes, ILockBytes*,pILockBytes) +#define ILayoutStorage_IMETHODS \ + IUnknown_IMETHODS \ + ILayoutStorage_METHODS +ICOM_DEFINE(ILayoutStorage,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define ILayoutStorage_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define ILayoutStorage_AddRef(p) ICOM_CALL (AddRef,p) +#define ILayoutStorage_Release(p) ICOM_CALL (Release,p) +/*** ILayoutStorage methods ***/ +#define ILayoutStorage_LayoutScript(p,a,b) ICOM_CALL2(LayoutScript,p,a,b) +#define ILayoutStorage_BeginMonitor(p) ICOM_CALL (BeginMonitor,p) +#define ILayoutStorage_EndMonitor(p) ICOM_CALL (EndMonitor,p) +#define ILayoutStorage_ReLayoutDocfile(p,a) ICOM_CALL1(ReLayoutDocfile,p,a) +#define ILayoutStorage_ReLayoutDocfileOnILockBytes(p,a) ICOM_CALL1(ReLayoutDocfileOnILockBytes,p,a) +#endif /***************************************************************************** * ILockBytes interface */ -/* FIXME: not implemented */ +#define ICOM_INTERFACE ILockBytes +#define ILockBytes_METHODS \ + ICOM_METHOD4(HRESULT,ReadAt, ULARGE_INTEGER,ulOffset, void*,pv, ULONG,cb, ULONG*,pcbRead) \ + ICOM_METHOD4(HRESULT,WriteAt, ULARGE_INTEGER,ulOffset, const void*,pv, ULONG,cb, ULONG*,pcbWritten) \ + ICOM_METHOD (HRESULT,Flush); \ + ICOM_METHOD1(HRESULT,SetSize, ULARGE_INTEGER,cb) \ + ICOM_METHOD3(HRESULT,LockRegion, ULARGE_INTEGER,libOffset, ULARGE_INTEGER,cb, DWORD,dwLockType) \ + ICOM_METHOD3(HRESULT,UnlockRegion, ULARGE_INTEGER,libOffset, ULARGE_INTEGER,cb, DWORD,dwLockType) \ + ICOM_METHOD2(HRESULT,Stat, STATSTG*,pstatstg, DWORD,grfStatFlag) +#define ILockBytes_IMETHODS \ + IUnknown_IMETHODS \ + ILockBytes_METHODS +ICOM_DEFINE(ILockBytes,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define ILockBytes_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define ILockBytes_AddRef(p) ICOM_CALL (AddRef,p) +#define ILockBytes_Release(p) ICOM_CALL (Release,p) +/*** ILockBytes methods ***/ +#define ILockBytes_ReadAt(p,a,b,c,d) ICOM_CALL4(ReadAt,p,a,b,c,d) +#define ILockBytes_WriteAt(p,a,b,c,d) ICOM_CALL4(WriteAt,p,a,b,c,d) +#define ILockBytes_Flush(p) ICOM_CALL (Flush,p) +#define ILockBytes_SetSize(p,a) ICOM_CALL1(SetSize,p,a) +#define ILockBytes_LockRegion(p,a,b,c) ICOM_CALL3(LockRegion,p,a,b,c) +#define ILockBytes_UnlockRegion(p,a,b,c) ICOM_CALL3(UnlockRegion,p,a,b,c) +#define ILockBytes_Stat(p,a,b) ICOM_CALL2(Stat,p,a,b) +#endif /***************************************************************************** * IPersist interface */ #define ICOM_INTERFACE IPersist -ICOM_BEGIN(IPersist,IUnknown) - ICOM_CMETHOD1(HRESULT,GetClassID, CLSID*,pClassID); -ICOM_END(IPersist) +#define IPersist_METHODS \ + ICOM_CMETHOD1(HRESULT,GetClassID, CLSID*,pClassID) +#define IPersist_IMETHODS \ + IUnknown_IMETHODS \ + IPersist_METHODS +ICOM_DEFINE(IPersist,IUnknown) #undef ICOM_INTERFACE -#if !defined(__cplusplus) || defined(CINTERFACE) +#ifdef ICOM_CINTERFACE /*** IUnknown methods ***/ -#define IPersist_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b) -#define IPersist_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p) -#define IPersist_Release(p) ICOM_ICALL (IUnknown,Release,p) +#define IPersist_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IPersist_AddRef(p) ICOM_CALL (AddRef,p) +#define IPersist_Release(p) ICOM_CALL (Release,p) /*** IPersist methods ***/ #define IPersist_GetClassID(p,a) ICOM_CALL1(GetClassID,p,a) #endif @@ -201,22 +290,25 @@ ICOM_END(IPersist) * IPersistFile interface */ #define ICOM_INTERFACE IPersistFile -ICOM_BEGIN(IPersistFile,IPersist) - ICOM_CMETHOD (HRESULT,IsDirty); - ICOM_METHOD2 (HRESULT,Load, LPCOLESTR32,pszFileName, DWORD,dwMode); - ICOM_METHOD2 (HRESULT,Save, LPCOLESTR32,pszFileName, BOOL32,fRemember); - ICOM_METHOD1 (HRESULT,SaveCompleted, LPCOLESTR32,pszFileName); - ICOM_CMETHOD1(HRESULT,GetCurFile, LPOLESTR32*,ppszFileName); -ICOM_END(IPersistFile) +#define IPersistFile_METHODS \ + ICOM_CMETHOD (HRESULT,IsDirty) \ + ICOM_METHOD2 (HRESULT,Load, LPCOLESTR32,pszFileName, DWORD,dwMode) \ + ICOM_METHOD2 (HRESULT,Save, LPCOLESTR32,pszFileName, BOOL32,fRemember) \ + ICOM_METHOD1 (HRESULT,SaveCompleted, LPCOLESTR32,pszFileName) \ + ICOM_CMETHOD1(HRESULT,GetCurFile, LPOLESTR32*,ppszFileName) +#define IPersistFile_IMETHODS \ + IPersist_IMETHODS \ + IPersistFile_METHODS +ICOM_DEFINE(IPersistFile,IPersist) #undef ICOM_INTERFACE -#if !defined(__cplusplus) || defined(CINTERFACE) +#ifdef ICOM_CINTERFACE /*** IUnknown methods ***/ -#define IPersistFile_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b) -#define IPersistFile_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p) -#define IPersistFile_Release(p) ICOM_ICALL (IUnknown,Release,p) +#define IPersistFile_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IPersistFile_AddRef(p) ICOM_CALL (AddRef,p) +#define IPersistFile_Release(p) ICOM_CALL (Release,p) /*** IPersist methods ***/ -#define IPersistFile_GetClassID(p,a) ICOM_ICALL1(IPersist,GetClassID,p,a) +#define IPersistFile_GetClassID(p,a) ICOM_CALL1(GetClassID,p,a) /*** IPersistFile methods ***/ #define IPersistFile_IsDirty(p) ICOM_CALL(IsDirty,p) #define IPersistFile_Load(p,a,b) ICOM_CALL2(Load,p,a,b) @@ -230,24 +322,27 @@ ICOM_END(IPersistFile) * IPersistStorage interface */ #define ICOM_INTERFACE IPersistStorage -ICOM_BEGIN(IPersistStorage, IPersist) - ICOM_METHOD (HRESULT,IsDirty) - ICOM_METHOD1(HRESULT,InitNew, IStorage32*,pStg) - ICOM_METHOD1(HRESULT,Load, IStorage32*,pStg) - ICOM_METHOD2(HRESULT,Save, IStorage32*,pStgSave, BOOL32,fSameAsLoad) - ICOM_METHOD1(HRESULT,SaveCompleted, IStorage32*,pStgNew); +#define IPersistStorage_METHODS \ + ICOM_METHOD (HRESULT,IsDirty) \ + ICOM_METHOD1(HRESULT,InitNew, IStorage32*,pStg) \ + ICOM_METHOD1(HRESULT,Load, IStorage32*,pStg) \ + ICOM_METHOD2(HRESULT,Save, IStorage32*,pStg, BOOL32,fSameAsLoad) \ + ICOM_METHOD1(HRESULT,SaveCompleted, IStorage32*,pStgNew) \ ICOM_METHOD (HRESULT,HandsOffStorage) -ICOM_END(IPersistStorage) +#define IPersistStorage_IMETHODS \ + IPersist_IMETHODS \ + IPersistStorage_METHODS +ICOM_DEFINE(IPersistStorage,IPersist) #undef ICOM_INTERFACE -#if !defined(__cplusplus) || defined(CINTERFACE) +#ifdef ICOM_CINTERFACE /*** IUnknown methods ***/ -#define IPersistStorage_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b) -#define IPersistStorage_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p) -#define IPersistStorage_Release(p) ICOM_ICALL (IUnknown,Release,p) +#define IPersistStorage_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IPersistStorage_AddRef(p) ICOM_CALL (AddRef,p) +#define IPersistStorage_Release(p) ICOM_CALL (Release,p) /*** IPersist methods ***/ -#define IPersistStorage_GetClassID(p,a) ICOM_ICALL1(IPersist,GetClassID,p,a) -/*** IPersistFile methods ***/ +#define IPersistStorage_GetClassID(p,a) ICOM_CALL1(GetClassID,p,a) +/*** IPersistStorage methods ***/ #define IPersistStorage_IsDirty(p) ICOM_CALL (IsDirty,p) #define IPersistStorage_InitNew(p,a) ICOM_CALL1(InitNew,p,a) #define IPersistStorage_Load(p,a) ICOM_CALL1(Load,p,a) @@ -261,56 +356,94 @@ ICOM_END(IPersistStorage) * IPersistStream interface */ #define ICOM_INTERFACE IPersistStream -ICOM_BEGIN(IPersistStream,IPersist); - ICOM_METHOD(HRESULT, IsDirty); - ICOM_METHOD1(HRESULT, Load, IStream32*, pStm); - ICOM_METHOD2(HRESULT, Save, IStream32*, pStm, BOOL32, fClearDirty); - ICOM_METHOD1(HRESULT, GetSizeMax, ULARGE_INTEGER*, pcbSize); -ICOM_END(IPersistStream) +#define IPersistStream_METHODS \ + ICOM_METHOD (HRESULT,IsDirty) \ + ICOM_METHOD1(HRESULT,Load, IStream32*,pStm) \ + ICOM_METHOD2(HRESULT,Save, IStream32*,pStm, BOOL32,fClearDirty) \ + ICOM_METHOD1(HRESULT,GetSizeMax, ULARGE_INTEGER*,pcbSize) +#define IPersistStream_IMETHODS \ + IPersist_IMETHODS \ + IPersistStream_METHODS +ICOM_DEFINE(IPersistStream,IPersist) #undef ICOM_INTERFACE -#if !defined(__cplusplus) || defined(CINTERFACE) +#ifdef ICOM_CINTERFACE /*** IUnknown methods ***/ -#define IPersistStream_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b) -#define IPersistStream_AddRef(p) ICOM_ICALL(IUnknown,AddRef,p) -#define IPersistStream_Release(p) ICOM_ICALL(IUnknown,Release,p) +#define IPersistStream_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IPersistStream_AddRef(p) ICOM_CALL (AddRef,p) +#define IPersistStream_Release(p) ICOM_CALL (Release,p) /*** IPersist methods ***/ -#define IPersistStream_GetClassID(p,a) ICOM_ICALL1(IPersist,GetClassID,p,a) -/*** IPersistStream ***/ -#define IPersist_Stream_IsDirty(p) ICOM_CALL(IsDirty,p) -#define IPersist_Stream_Load(p,a) ICOM_CALL1(Load,p,a) -#define IPersist_Stream_Save(p,a,b) ICOM_CALL2(Save,p,a,b) -#define IPersist_Stream_GetSizeMax(p,a) ICOM_CALL(GetSizeMax,p) +#define IPersistStream_GetClassID(p,a) ICOM_CALL1(GetClassID,p,a) +/*** IPersistStream methods ***/ +#define IPersistStream_IsDirty(p) ICOM_CALL (IsDirty,p) +#define IPersistStream_Load(p,a) ICOM_CALL1(Load,p,a) +#define IPersistStream_Save(p,a,b) ICOM_CALL2(Save,p,a,b) +#define IPersistStream_GetSizeMax(p,a) ICOM_CALL1(GetSizeMax,p,a) #endif /***************************************************************************** * IProgressNotify interface */ -/* FIXME: not implemented */ +#define ICOM_INTERFACE IProgressNotify +#define IProgressNotify_METHODS \ + ICOM_METHOD4(HRESULT,OnProgress, DWORD,dwProgressCurrent, DWORD,dwProgressMaximum, BOOL32,fAccurate, BOOL32,fOwner) +#define IProgressNotify_IMETHODS \ + IUnknown_IMETHODS \ + IProgressNotify_METHODS +ICOM_DEFINE(IProgressNotify,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IProgressNotify_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IProgressNotify_AddRef(p) ICOM_CALL (AddRef,p) +#define IProgressNotify_Release(p) ICOM_CALL (Release,p) +/*** IProgressNotify methods ***/ +#define IProgressNotify_OnProgress(p,a,b,c,d) ICOM_CALL4(OnProgress,p,a,b,c,d) +#endif /***************************************************************************** * IRootStorage interface */ -/* FIXME: not implemented */ +#define ICOM_INTERFACE IRootStorage +#define IRootStorage_METHODS \ + ICOM_METHOD1(HRESULT,SwitchToFile, LPOLESTR32,pszFile) +#define IRootStorage_IMETHODS \ + IUnknown_IMETHODS \ + IRootStorage_METHODS +ICOM_DEFINE(IRootStorage,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IRootStorage_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IRootStorage_AddRef(p) ICOM_CALL (AddRef,p) +#define IRootStorage_Release(p) ICOM_CALL (Release,p) +/*** IRootStorage methods ***/ +#define IRootStorage_SwitchToFile(p,a) ICOM_CALLSwitchToFile(,p,a) +#endif /***************************************************************************** * ISequentialStream interface */ #define ICOM_INTERFACE ISequentialStream -ICOM_BEGIN(ISequentialStream,IUnknown) - ICOM_METHOD3(HRESULT,Read, void*,pv, ULONG,cb, ULONG*,pcbRead); - ICOM_METHOD3(HRESULT,Write, const void*,pv, ULONG,cb, ULONG*,pcbWritten); -ICOM_END(ISequentialStream) +#define ISequentialStream_METHODS \ + ICOM_METHOD3(HRESULT,Read, void*,pv, ULONG,cb, ULONG*,pcbRead) \ + ICOM_METHOD3(HRESULT,Write, const void*,pv, ULONG,cb, ULONG*,pcbWritten) +#define ISequentialStream_IMETHODS \ + IUnknown_IMETHODS \ + ISequentialStream_METHODS +ICOM_DEFINE(ISequentialStream,IUnknown) #undef ICOM_INTERFACE -#if !defined(__cplusplus) || defined(CINTERFACE) +#ifdef ICOM_CINTERFACE /*** IUnknown methods ***/ -#define ISequentialStream_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b) -#define ISequentialStream_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p) -#define ISequentialStream_Release(p) ICOM_ICALL (IUnknown,Release,p) +#define ISequentialStream_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define ISequentialStream_AddRef(p) ICOM_CALL (AddRef,p) +#define ISequentialStream_Release(p) ICOM_CALL (Release,p) /*** ISequentialStream methods ***/ #define ISequentialStream_Read(p,a,b,c) ICOM_CALL3(Read,p,a,b,c) #define ISequentialStream_Write(p,a,b,c) ICOM_CALL3(Write,p,a,b,c) @@ -321,30 +454,33 @@ ICOM_END(ISequentialStream) * IStorage interface */ #define ICOM_INTERFACE IStorage16 -ICOM_BEGIN(IStorage16,IUnknown) - ICOM_METHOD5(HRESULT,CreateStream, LPCOLESTR16,pwcsName, DWORD,grfMode, DWORD,reserved1, DWORD,reserved2, IStream16**,ppstm) - ICOM_METHOD5(HRESULT,OpenStream, LPCOLESTR16,pwcsName, void*,reserved1, DWORD,grfMode, DWORD,reserved2, IStream16**,ppstm) - ICOM_METHOD5(HRESULT,CreateStorage, LPCOLESTR16,pwcsName, DWORD,grfMode, DWORD,dwStgFmt, DWORD,reserved2, IStorage16**,ppstg) - ICOM_METHOD6(HRESULT,OpenStorage, LPCOLESTR16,pwcsName, IStorage16*,pstgPriority, DWORD,grfMode, SNB16,snb16Exclude, DWORD,reserved, IStorage16**,ppstg) - ICOM_METHOD4(HRESULT,CopyTo, DWORD,ciidExclude, const IID*,rgiidExclude, SNB16,snb16Exclude, IStorage16*,pstgDest) - ICOM_METHOD4(HRESULT,MoveElementTo, LPCOLESTR16,pwcsName, IStorage16*,pstgDest, LPCOLESTR16,pwcsNewName, DWORD,grfFlags) - ICOM_METHOD1(HRESULT,Commit, DWORD,grfCommitFlags) - ICOM_METHOD (HRESULT,Revert) - ICOM_METHOD4(HRESULT,EnumElements, DWORD,reserved1, void*,reserved2, DWORD,reserved3, IEnumSTATSTG**,ppenum) - ICOM_METHOD1(HRESULT,DestroyElement, LPCOLESTR16,pwcsName) - ICOM_METHOD2(HRESULT,RenameElement, LPCOLESTR16,pwcsOldName, LPCOLESTR16,pwcsNewName) - ICOM_METHOD4(HRESULT,SetElementTimes,LPCOLESTR16,pwcsName, const FILETIME*,pctime, const FILETIME*,patime, const FILETIME*,pmtime) - ICOM_METHOD1(HRESULT,SetClass, REFCLSID,clsid) - ICOM_METHOD2(HRESULT,SetStateBits, DWORD,grfStateBits, DWORD,grfMask) +#define IStorage16_METHODS \ + ICOM_METHOD5(HRESULT,CreateStream, LPCOLESTR16,pwcsName, DWORD,grfMode, DWORD,reserved1, DWORD,reserved2, IStream16**,ppstm) \ + ICOM_METHOD5(HRESULT,OpenStream, LPCOLESTR16,pwcsName, void*,reserved1, DWORD,grfMode, DWORD,reserved2, IStream16**,ppstm) \ + ICOM_METHOD5(HRESULT,CreateStorage, LPCOLESTR16,pwcsName, DWORD,grfMode, DWORD,dwStgFmt, DWORD,reserved2, IStorage16**,ppstg) \ + ICOM_METHOD6(HRESULT,OpenStorage, LPCOLESTR16,pwcsName, IStorage16*,pstgPriority, DWORD,grfMode, SNB16,snb16Exclude, DWORD,reserved, IStorage16**,ppstg) \ + ICOM_METHOD4(HRESULT,CopyTo, DWORD,ciidExclude, const IID*,rgiidExclude, SNB16,snb16Exclude, IStorage16*,pstgDest) \ + ICOM_METHOD4(HRESULT,MoveElementTo, LPCOLESTR16,pwcsName, IStorage16*,pstgDest, LPCOLESTR16,pwcsNewName, DWORD,grfFlags) \ + ICOM_METHOD1(HRESULT,Commit, DWORD,grfCommitFlags) \ + ICOM_METHOD (HRESULT,Revert) \ + ICOM_METHOD4(HRESULT,EnumElements, DWORD,reserved1, void*,reserved2, DWORD,reserved3, IEnumSTATSTG**,ppenum) \ + ICOM_METHOD1(HRESULT,DestroyElement, LPCOLESTR16,pwcsName) \ + ICOM_METHOD2(HRESULT,RenameElement, LPCOLESTR16,pwcsOldName, LPCOLESTR16,pwcsNewName) \ + ICOM_METHOD4(HRESULT,SetElementTimes,LPCOLESTR16,pwcsName, const FILETIME*,pctime, const FILETIME*,patime, const FILETIME*,pmtime) \ + ICOM_METHOD1(HRESULT,SetClass, REFCLSID,clsid) \ + ICOM_METHOD2(HRESULT,SetStateBits, DWORD,grfStateBits, DWORD,grfMask) \ ICOM_METHOD2(HRESULT,Stat, STATSTG*,pstatstg, DWORD,grfStatFlag) -ICOM_END(IStorage16) +#define IStorage16_IMETHODS \ + IUnknown_IMETHODS \ + IStorage16_METHODS +ICOM_DEFINE(IStorage16,IUnknown) #undef ICOM_INTERFACE -#if !defined(__cplusplus) || defined(CINTERFACE) +#ifdef ICOM_CINTERFACE /*** IUnknown methods ***/ -#define IStorage16_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b) -#define IStorage16_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p) -#define IStorage16_Release(p) ICOM_ICALL (IUnknown,Release,p) +#define IStorage16_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IStorage16_AddRef(p) ICOM_CALL (AddRef,p) +#define IStorage16_Release(p) ICOM_CALL (Release,p) /*** IStorage16 methods ***/ #define IStorage16_CreateStream(p,a,b,c,d,e) ICOM_CALL5(CreateStream,p,a,b,c,d,e) #define IStorage16_OpenStream(p,a,b,c,d,e) ICOM_CALL5(OpenStream,p,a,b,c,d,e) @@ -365,30 +501,33 @@ ICOM_END(IStorage16) #define ICOM_INTERFACE IStorage32 -ICOM_BEGIN(IStorage32,IUnknown) - ICOM_METHOD5(HRESULT,CreateStream, LPCOLESTR32,pwcsName, DWORD,grfMode, DWORD,reserved1, DWORD,reserved2, IStream32**,ppstm); - ICOM_METHOD5(HRESULT,OpenStream, LPCOLESTR32,pwcsName, void*,reserved1, DWORD,grfMode, DWORD,reserved2, IStream32**,ppstm); - ICOM_METHOD5(HRESULT,CreateStorage, LPCOLESTR32,pwcsName, DWORD,grfMode, DWORD,dwStgFmt, DWORD,reserved2, IStorage32**,ppstg); - ICOM_METHOD6(HRESULT,OpenStorage, LPCOLESTR32,pwcsName, IStorage32*,pstgPriority, DWORD,grfMode, SNB32,snb16Exclude, DWORD,reserved, IStorage32**,ppstg); - ICOM_METHOD4(HRESULT,CopyTo, DWORD,ciidExclude, const IID*,rgiidExclude, SNB32,snb16Exclude, IStorage32*,pstgDest); - ICOM_METHOD4(HRESULT,MoveElementTo, LPCOLESTR32,pwcsName, IStorage32*,pstgDest, LPCOLESTR32,pwcsNewName, DWORD,grfFlags); - ICOM_METHOD1(HRESULT,Commit, DWORD,grfCommitFlags); - ICOM_METHOD (HRESULT,Revert); - ICOM_METHOD4(HRESULT,EnumElements, DWORD,reserved1, void*,reserved2, DWORD,reserved3, IEnumSTATSTG**,ppenum); - ICOM_METHOD1(HRESULT,DestroyElement, LPCOLESTR32,pwcsName); - ICOM_METHOD2(HRESULT,RenameElement, LPCOLESTR32,pwcsOldName, LPCOLESTR32,pwcsNewName); - ICOM_METHOD4(HRESULT,SetElementTimes,LPCOLESTR32,pwcsName, const FILETIME*,pctime, const FILETIME*,patime, const FILETIME*,pmtime); - ICOM_METHOD1(HRESULT,SetClass, REFCLSID,clsid); - ICOM_METHOD2(HRESULT,SetStateBits, DWORD,grfStateBits, DWORD,grfMask); - ICOM_METHOD2(HRESULT,Stat, STATSTG*,pstatstg, DWORD,grfStatFlag); -ICOM_END(IStorage32) +#define IStorage32_METHODS \ + ICOM_METHOD5(HRESULT,CreateStream, LPCOLESTR32,pwcsName, DWORD,grfMode, DWORD,reserved1, DWORD,reserved2, IStream32**,ppstm) \ + ICOM_METHOD5(HRESULT,OpenStream, LPCOLESTR32,pwcsName, void*,reserved1, DWORD,grfMode, DWORD,reserved2, IStream32**,ppstm) \ + ICOM_METHOD5(HRESULT,CreateStorage, LPCOLESTR32,pwcsName, DWORD,grfMode, DWORD,dwStgFmt, DWORD,reserved2, IStorage32**,ppstg) \ + ICOM_METHOD6(HRESULT,OpenStorage, LPCOLESTR32,pwcsName, IStorage32*,pstgPriority, DWORD,grfMode, SNB32,snb16Exclude, DWORD,reserved, IStorage32**,ppstg) \ + ICOM_METHOD4(HRESULT,CopyTo, DWORD,ciidExclude, const IID*,rgiidExclude, SNB32,snb16Exclude, IStorage32*,pstgDest) \ + ICOM_METHOD4(HRESULT,MoveElementTo, LPCOLESTR32,pwcsName, IStorage32*,pstgDest, LPCOLESTR32,pwcsNewName, DWORD,grfFlags) \ + ICOM_METHOD1(HRESULT,Commit, DWORD,grfCommitFlags) \ + ICOM_METHOD (HRESULT,Revert) \ + ICOM_METHOD4(HRESULT,EnumElements, DWORD,reserved1, void*,reserved2, DWORD,reserved3, IEnumSTATSTG**,ppenum) \ + ICOM_METHOD1(HRESULT,DestroyElement, LPCOLESTR32,pwcsName) \ + ICOM_METHOD2(HRESULT,RenameElement, LPCOLESTR32,pwcsOldName, LPCOLESTR32,pwcsNewName) \ + ICOM_METHOD4(HRESULT,SetElementTimes,LPCOLESTR32,pwcsName, const FILETIME*,pctime, const FILETIME*,patime, const FILETIME*,pmtime) \ + ICOM_METHOD1(HRESULT,SetClass, REFCLSID,clsid) \ + ICOM_METHOD2(HRESULT,SetStateBits, DWORD,grfStateBits, DWORD,grfMask) \ + ICOM_METHOD2(HRESULT,Stat, STATSTG*,pstatstg, DWORD,grfStatFlag) +#define IStorage32_IMETHODS \ + IUnknown_IMETHODS \ + IStorage32_METHODS +ICOM_DEFINE(IStorage32,IUnknown) #undef ICOM_INTERFACE -#if !defined(__cplusplus) || defined(CINTERFACE) +#ifdef ICOM_CINTERFACE /*** IUnknown methods ***/ -#define IStorage32_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b) -#define IStorage32_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p) -#define IStorage32_Release(p) ICOM_ICALL (IUnknown,Release,p) +#define IStorage32_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IStorage32_AddRef(p) ICOM_CALL (AddRef,p) +#define IStorage32_Release(p) ICOM_CALL (Release,p) /*** IStorage32 methods ***/ #define IStorage32_CreateStream(p,a,b,c,d,e) ICOM_CALL5(CreateStream,p,a,b,c,d,e) #define IStorage32_OpenStream(p,a,b,c,d,e) ICOM_CALL5(OpenStream,p,a,b,c,d,e) @@ -409,9 +548,9 @@ ICOM_END(IStorage32) #ifndef __WINE__ /* Duplicated for WINELIB */ /*** IUnknown methods ***/ -#define IStorage_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b) -#define IStorage_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p) -#define IStorage_Release(p) ICOM_ICALL (IUnknown,Release,p) +#define IStorage_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IStorage_AddRef(p) ICOM_CALL (AddRef,p) +#define IStorage_Release(p) ICOM_CALL (Release,p) /*** IStorage methods ***/ #define IStorage_CreateStream(p,a,b,c,d,e) ICOM_CALL5(CreateStream,p,a,b,c,d,e) #define IStorage_OpenStream(p,a,b,c,d,e) ICOM_CALL5(OpenStream,p,a,b,c,d,e) @@ -436,27 +575,30 @@ ICOM_END(IStorage32) * IStream interface */ #define ICOM_INTERFACE IStream16 -ICOM_BEGIN(IStream16,ISequentialStream) - ICOM_METHOD3(HRESULT,Seek, LARGE_INTEGER,dlibMove, DWORD,dwOrigin, ULARGE_INTEGER*,plibNewPosition); - ICOM_METHOD1(HRESULT,SetSize, ULARGE_INTEGER,libNewSize); - ICOM_METHOD4(HRESULT,CopyTo, IStream16*,pstm, ULARGE_INTEGER,cb, ULARGE_INTEGER*,pcbRead, ULARGE_INTEGER*,pcbWritten); - ICOM_METHOD1(HRESULT,Commit, DWORD,grfCommitFlags); - ICOM_METHOD (HRESULT,Revert); - ICOM_METHOD3(HRESULT,LockRegion, ULARGE_INTEGER,libOffset, ULARGE_INTEGER,cb, DWORD,dwLockType); - ICOM_METHOD3(HRESULT,UnlockRegion,ULARGE_INTEGER,libOffset, ULARGE_INTEGER,cb, DWORD,dwLockType); - ICOM_METHOD2(HRESULT,Stat, STATSTG*,pstatstg, DWORD,grfStatFlag); - ICOM_METHOD1(HRESULT,Clone, IStream16**,ppstm); -ICOM_END(IStream16) +#define IStream16_METHODS \ + ICOM_METHOD3(HRESULT,Seek, LARGE_INTEGER,dlibMove, DWORD,dwOrigin, ULARGE_INTEGER*,plibNewPosition) \ + ICOM_METHOD1(HRESULT,SetSize, ULARGE_INTEGER,libNewSize) \ + ICOM_METHOD4(HRESULT,CopyTo, IStream16*,pstm, ULARGE_INTEGER,cb, ULARGE_INTEGER*,pcbRead, ULARGE_INTEGER*,pcbWritten) \ + ICOM_METHOD1(HRESULT,Commit, DWORD,grfCommitFlags) \ + ICOM_METHOD (HRESULT,Revert) \ + ICOM_METHOD3(HRESULT,LockRegion, ULARGE_INTEGER,libOffset, ULARGE_INTEGER,cb, DWORD,dwLockType) \ + ICOM_METHOD3(HRESULT,UnlockRegion,ULARGE_INTEGER,libOffset, ULARGE_INTEGER,cb, DWORD,dwLockType) \ + ICOM_METHOD2(HRESULT,Stat, STATSTG*,pstatstg, DWORD,grfStatFlag) \ + ICOM_METHOD1(HRESULT,Clone, IStream16**,ppstm) +#define IStream16_IMETHODS \ + ISequentialStream_IMETHODS \ + IStream16_METHODS +ICOM_DEFINE(IStream16,ISequentialStream) #undef ICOM_INTERFACE -#if !defined(__cplusplus) || defined(CINTERFACE) +#ifdef ICOM_CINTERFACE /*** IUnknown methods ***/ -#define IStream16_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b) -#define IStream16_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p) -#define IStream16_Release(p) ICOM_ICALL (IUnknown,Release,p) +#define IStream16_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IStream16_AddRef(p) ICOM_CALL (AddRef,p) +#define IStream16_Release(p) ICOM_CALL (Release,p) /*** ISequentialStream methods ***/ -#define IStream16_Read(p,a,b,c) ICOM_ICALL3(ISequentialStream,Read,p,a,b,c) -#define IStream16_Write(p,a,b,c) ICOM_ICALL3(ISequentialStream,Write,p,a,b,c) +#define IStream16_Read(p,a,b,c) ICOM_CALL3(Read,p,a,b,c) +#define IStream16_Write(p,a,b,c) ICOM_CALL3(Write,p,a,b,c) /*** IStream16 methods ***/ #define IStream16_Seek(p) ICOM_CALL3(Seek,p) #define IStream16_SetSize(p,a,b) ICOM_CALL1(SetSize,p,a,b) @@ -471,27 +613,30 @@ ICOM_END(IStream16) #define ICOM_INTERFACE IStream32 -ICOM_BEGIN(IStream32,ISequentialStream) - ICOM_METHOD3(HRESULT,Seek, LARGE_INTEGER,dlibMove, DWORD,dwOrigin, ULARGE_INTEGER*,plibNewPosition); - ICOM_METHOD1(HRESULT,SetSize, ULARGE_INTEGER,libNewSize); - ICOM_METHOD4(HRESULT,CopyTo, IStream32*,pstm, ULARGE_INTEGER,cb, ULARGE_INTEGER*,pcbRead, ULARGE_INTEGER*,pcbWritten); - ICOM_METHOD1(HRESULT,Commit, DWORD,grfCommitFlags); - ICOM_METHOD (HRESULT,Revert); - ICOM_METHOD3(HRESULT,LockRegion, ULARGE_INTEGER,libOffset, ULARGE_INTEGER,cb, DWORD,dwLockType); - ICOM_METHOD3(HRESULT,UnlockRegion,ULARGE_INTEGER,libOffset, ULARGE_INTEGER,cb, DWORD,dwLockType); - ICOM_METHOD2(HRESULT,Stat, STATSTG*,pstatstg, DWORD,grfStatFlag); - ICOM_METHOD1(HRESULT,Clone, IStream32**,ppstm); -ICOM_END(IStream32) +#define IStream32_METHODS \ + ICOM_METHOD3(HRESULT,Seek, LARGE_INTEGER,dlibMove, DWORD,dwOrigin, ULARGE_INTEGER*,plibNewPosition) \ + ICOM_METHOD1(HRESULT,SetSize, ULARGE_INTEGER,libNewSize) \ + ICOM_METHOD4(HRESULT,CopyTo, IStream32*,pstm, ULARGE_INTEGER,cb, ULARGE_INTEGER*,pcbRead, ULARGE_INTEGER*,pcbWritten) \ + ICOM_METHOD1(HRESULT,Commit, DWORD,grfCommitFlags) \ + ICOM_METHOD (HRESULT,Revert) \ + ICOM_METHOD3(HRESULT,LockRegion, ULARGE_INTEGER,libOffset, ULARGE_INTEGER,cb, DWORD,dwLockType) \ + ICOM_METHOD3(HRESULT,UnlockRegion,ULARGE_INTEGER,libOffset, ULARGE_INTEGER,cb, DWORD,dwLockType) \ + ICOM_METHOD2(HRESULT,Stat, STATSTG*,pstatstg, DWORD,grfStatFlag) \ + ICOM_METHOD1(HRESULT,Clone, IStream32**,ppstm) +#define IStream32_IMETHODS \ + ISequentialStream_IMETHODS \ + IStream32_METHODS +ICOM_DEFINE(IStream32,ISequentialStream) #undef ICOM_INTERFACE -#if !defined(__cplusplus) || defined(CINTERFACE) +#ifdef ICOM_CINTERFACE /*** IUnknown methods ***/ -#define IStream32_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b) -#define IStream32_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p) -#define IStream32_Release(p) ICOM_ICALL (IUnknown,Release,p) +#define IStream32_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IStream32_AddRef(p) ICOM_CALL (AddRef,p) +#define IStream32_Release(p) ICOM_CALL (Release,p) /*** ISequentialStream methods ***/ -#define IStream32_Read(p,a,b,c) ICOM_ICALL3(ISequentialStream,Read,p,a,b,c) -#define IStream32_Write(p,a,b,c) ICOM_ICALL3(ISequentialStream,Write,p,a,b,c) +#define IStream32_Read(p,a,b,c) ICOM_CALL3(Read,p,a,b,c) +#define IStream32_Write(p,a,b,c) ICOM_CALL3(Write,p,a,b,c) /*** IStream32 methods ***/ #define IStream32_Seek(p,a,b,c) ICOM_CALL3(Seek,p,a,b,c) #define IStream32_SetSize(p,a) ICOM_CALL1(SetSize,p,a) @@ -506,12 +651,12 @@ ICOM_END(IStream32) #ifndef __WINE__ /* Duplicated for WINELIB */ /*** IUnknown methods ***/ -#define IStream_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b) -#define IStream_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p) -#define IStream_Release(p) ICOM_ICALL (IUnknown,Release,p) +#define IStream_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IStream_AddRef(p) ICOM_CALL (AddRef,p) +#define IStream_Release(p) ICOM_CALL (Release,p) /*** ISequentialStream methods ***/ -#define IStream_Read(p,a,b,c) ICOM_ICALL3(ISequentialStream,Read,p,a,b,c) -#define IStream_Write(p,a,b,c) ICOM_ICALL3(ISequentialStream,Write,p,a,b,c) +#define IStream_Read(p,a,b,c) ICOM_CALL3(Read,p,a,b,c) +#define IStream_Write(p,a,b,c) ICOM_CALL3(Write,p,a,b,c) /*** IStream methods ***/ #define IStream_Seek(p,a,b,c) ICOM_CALL3(Seek,p,a,b,c) #define IStream_SetSize(p,a) ICOM_CALL1(SetSize,p,a) @@ -545,4 +690,16 @@ HRESULT WINAPI StgOpenStorage32(const OLECHAR32* pwcsName,IStorage32* pstgPriori HRESULT WINAPI WriteClassStg32(IStorage32* pStg, REFCLSID rclsid); #define WriteClassStg WINELIB_NAME(WriteClassStg) + +/***************************************************************************** + * Other storage API + */ + +/* FIXME: not implemented */ +BOOL32 WINAPI CoDosDateTimeToFileTime(WORD nDosDate, WORD nDosTime, FILETIME* lpFileTime); + +/* FIXME: not implemented */ +BOOL32 WINAPI CoFileTimeToDosDateTime(FILETIME* lpFileTime, WORD* lpDosDate, WORD* lpDosTime); + + #endif /* __WINE_WINE_OBJ_STORAGE_H */ diff --git a/ole/storage.c b/ole/storage.c index 2fd87dd64b1..ce177ed3558 100644 --- a/ole/storage.c +++ b/ole/storage.c @@ -681,7 +681,7 @@ typedef struct * IStream16_QueryInterface [STORAGE.518] */ HRESULT WINAPI IStream16_fnQueryInterface( - LPUNKNOWN iface,REFIID refiid,LPVOID *obj + IStream16* iface,REFIID refiid,LPVOID *obj ) { ICOM_THIS(IStream16Impl,iface); char xrefiid[50]; @@ -698,7 +698,7 @@ HRESULT WINAPI IStream16_fnQueryInterface( /****************************************************************************** * IStream16_AddRef [STORAGE.519] */ -ULONG WINAPI IStream16_fnAddRef(LPUNKNOWN iface) { +ULONG WINAPI IStream16_fnAddRef(IStream16* iface) { ICOM_THIS(IStream16Impl,iface); return ++(This->ref); } @@ -706,7 +706,7 @@ ULONG WINAPI IStream16_fnAddRef(LPUNKNOWN iface) { /****************************************************************************** * IStream16_Release [STORAGE.520] */ -ULONG WINAPI IStream16_fnRelease(LPUNKNOWN iface) { +ULONG WINAPI IStream16_fnRelease(IStream16* iface) { ICOM_THIS(IStream16Impl,iface); FlushFileBuffers(This->hf); This->ref--; @@ -769,7 +769,7 @@ HRESULT WINAPI IStream16_fnSeek( * IStream16_Read [STORAGE.521] */ HRESULT WINAPI IStream16_fnRead( - LPSEQUENTIALSTREAM iface,void *pv,ULONG cb,ULONG *pcbRead + IStream16* iface,void *pv,ULONG cb,ULONG *pcbRead ) { ICOM_THIS(IStream16Impl,iface); BYTE block[BIGSIZE]; @@ -830,7 +830,7 @@ HRESULT WINAPI IStream16_fnRead( * IStream16_Write [STORAGE.522] */ HRESULT WINAPI IStream16_fnWrite( - LPSEQUENTIALSTREAM iface,const void *pv,ULONG cb,ULONG *pcbWrite + IStream16* iface,const void *pv,ULONG cb,ULONG *pcbWrite ) { ICOM_THIS(IStream16Impl,iface); BYTE block[BIGSIZE]; @@ -1094,20 +1094,16 @@ HRESULT WINAPI IStream16_fnWrite( static void _create_istream16(LPSTREAM16 *str) { IStream16Impl* lpst; - if (!strvt16.bvt.bvt.fnQueryInterface) { + if (!strvt16.fnQueryInterface) { HMODULE16 wp = GetModuleHandle16("STORAGE"); if (wp>=32) { - /* FIXME: what is this WIN32_GetProcAddress16. Should the name be IStream16_QueryInterface of IStream16_fnQueryInterface */ -#define VTENT(xfn) strvt16.bvt.bvt.fn##xfn = (void*)WIN32_GetProcAddress16(wp,"IStream16_"#xfn);assert(strvt16.bvt.bvt.fn##xfn) + /* FIXME: what is This WIN32_GetProcAddress16. Should the name be IStream16_QueryInterface of IStream16_fnQueryInterface */ +#define VTENT(xfn) strvt16.fn##xfn = (void*)WIN32_GetProcAddress16(wp,"IStream16_"#xfn);assert(strvt16.fn##xfn) VTENT(QueryInterface); VTENT(AddRef); VTENT(Release); -#undef VTENT -#define VTENT(xfn) strvt16.bvt.fn##xfn = (void*)WIN32_GetProcAddress16(wp,"IStream16_"#xfn);assert(strvt16.bvt.fn##xfn) VTENT(Read); VTENT(Write); -#undef VTENT -#define VTENT(xfn) strvt16.fn##xfn = (void*)WIN32_GetProcAddress16(wp,"IStream16_"#xfn);assert(strvt16.fn##xfn) VTENT(Seek); VTENT(SetSize); VTENT(CopyTo); @@ -1122,16 +1118,12 @@ static void _create_istream16(LPSTREAM16 *str) { memcpy(segstrvt16,&strvt16,sizeof(strvt16)); segstrvt16 = (ICOM_VTABLE(IStream16)*)SEGPTR_GET(segstrvt16); } else { -#define VTENT(xfn) strvt16.bvt.bvt.fn##xfn = IStream16_fn##xfn; +#define VTENT(xfn) strvt16.fn##xfn = IStream16_fn##xfn; VTENT(QueryInterface); VTENT(AddRef); VTENT(Release); -#undef VTENT -#define VTENT(xfn) strvt16.bvt.fn##xfn = IStream16_fn##xfn; VTENT(Read); VTENT(Write); -#undef VTENT -#define VTENT(xfn) strvt16.fn##xfn = IStream16_fn##xfn; VTENT(Seek); /* VTENT(CopyTo); @@ -1173,7 +1165,7 @@ typedef struct * IStream32_QueryInterface [VTABLE] */ HRESULT WINAPI IStream32_fnQueryInterface( - LPUNKNOWN iface,REFIID refiid,LPVOID *obj + IStream32* iface,REFIID refiid,LPVOID *obj ) { ICOM_THIS(IStream32Impl,iface); char xrefiid[50]; @@ -1191,7 +1183,7 @@ HRESULT WINAPI IStream32_fnQueryInterface( /****************************************************************************** * IStream32_AddRef [VTABLE] */ -ULONG WINAPI IStream32_fnAddRef(LPUNKNOWN iface) { +ULONG WINAPI IStream32_fnAddRef(IStream32* iface) { ICOM_THIS(IStream32Impl,iface); return ++(This->ref); } @@ -1199,7 +1191,7 @@ ULONG WINAPI IStream32_fnAddRef(LPUNKNOWN iface) { /****************************************************************************** * IStream32_Release [VTABLE] */ -ULONG WINAPI IStream32_fnRelease(LPUNKNOWN iface) { +ULONG WINAPI IStream32_fnRelease(IStream32* iface) { ICOM_THIS(IStream32Impl,iface); FlushFileBuffers(This->hf); This->ref--; @@ -1229,7 +1221,7 @@ typedef struct * IStorage16_QueryInterface [STORAGE.500] */ HRESULT WINAPI IStorage16_fnQueryInterface( - LPUNKNOWN iface,REFIID refiid,LPVOID *obj + IStorage16* iface,REFIID refiid,LPVOID *obj ) { ICOM_THIS(IStorage16Impl,iface); char xrefiid[50]; @@ -1247,7 +1239,7 @@ HRESULT WINAPI IStorage16_fnQueryInterface( /****************************************************************************** * IStorage16_AddRef [STORAGE.501] */ -ULONG WINAPI IStorage16_fnAddRef(LPUNKNOWN iface) { +ULONG WINAPI IStorage16_fnAddRef(IStorage16* iface) { ICOM_THIS(IStorage16Impl,iface); return ++(This->ref); } @@ -1255,7 +1247,7 @@ ULONG WINAPI IStorage16_fnAddRef(LPUNKNOWN iface) { /****************************************************************************** * IStorage16_Release [STORAGE.502] */ -ULONG WINAPI IStorage16_fnRelease(LPUNKNOWN iface) { +ULONG WINAPI IStorage16_fnRelease(IStorage16* iface) { ICOM_THIS(IStorage16Impl,iface); This->ref--; if (This->ref) @@ -1455,12 +1447,12 @@ HRESULT WINAPI IStorage16_fnOpenStorage( lstrcpyAtoW(name,pwcsName); newpps = STORAGE_look_for_named_pps(lpstg->hf,This->stde.pps_dir,name); if (newpps==-1) { - IStream16_fnRelease((IUnknown*)lpstg); + IStream16_fnRelease((IStream16*)lpstg); return E_FAIL; } if (1!=STORAGE_get_pps_entry(lpstg->hf,newpps,&(lpstg->stde))) { - IStream16_fnRelease((IUnknown*)lpstg); + IStream16_fnRelease((IStream16*)lpstg); return E_FAIL; } lpstg->ppsent = newpps; @@ -1490,12 +1482,12 @@ HRESULT WINAPI IStorage16_fnOpenStream( lstrcpyAtoW(name,pwcsName); newpps = STORAGE_look_for_named_pps(lpstr->hf,This->stde.pps_dir,name); if (newpps==-1) { - IStream16_fnRelease((IUnknown*)lpstr); + IStream16_fnRelease((IStream16*)lpstr); return E_FAIL; } if (1!=STORAGE_get_pps_entry(lpstr->hf,newpps,&(lpstr->stde))) { - IStream16_fnRelease((IUnknown*)lpstr); + IStream16_fnRelease((IStream16*)lpstr); return E_FAIL; } lpstr->offset.LowPart = 0; @@ -1510,15 +1502,13 @@ HRESULT WINAPI IStorage16_fnOpenStream( static void _create_istorage16(LPSTORAGE16 *stg) { IStorage16Impl* lpst; - if (!stvt16.bvt.fnQueryInterface) { + if (!stvt16.fnQueryInterface) { HMODULE16 wp = GetModuleHandle16("STORAGE"); if (wp>=32) { -#define VTENT(xfn) stvt16.bvt.fn##xfn = (void*)WIN32_GetProcAddress16(wp,"IStorage16_"#xfn); +#define VTENT(xfn) stvt16.fn##xfn = (void*)WIN32_GetProcAddress16(wp,"IStorage16_"#xfn); VTENT(QueryInterface) VTENT(AddRef) VTENT(Release) -#undef VTENT -#define VTENT(xfn) stvt16.fn##xfn = (void*)WIN32_GetProcAddress16(wp,"IStorage16_"#xfn); VTENT(CreateStream) VTENT(OpenStream) VTENT(CreateStorage) @@ -1539,12 +1529,10 @@ static void _create_istorage16(LPSTORAGE16 *stg) { memcpy(segstvt16,&stvt16,sizeof(stvt16)); segstvt16 = (ICOM_VTABLE(IStorage16)*)SEGPTR_GET(segstvt16); } else { -#define VTENT(xfn) stvt16.bvt.fn##xfn = IStorage16_fn##xfn; +#define VTENT(xfn) stvt16.fn##xfn = IStorage16_fn##xfn; VTENT(QueryInterface) VTENT(AddRef) VTENT(Release) -#undef VTENT -#define VTENT(xfn) stvt16.fn##xfn = IStorage16_fn##xfn; VTENT(CreateStream) VTENT(OpenStream) VTENT(CreateStorage) @@ -1615,7 +1603,7 @@ HRESULT WINAPI StgCreateDocFile16( i++; } if (ret!=1) { - IStorage16_fnRelease((IUnknown*)lpstg); /* will remove it */ + IStorage16_fnRelease((IStorage16*)lpstg); /* will remove it */ return E_FAIL; } @@ -1707,7 +1695,7 @@ HRESULT WINAPI StgOpenStorage16( i++; } if (ret!=1) { - IStorage16_fnRelease((IUnknown*)lpstg); /* will remove it */ + IStorage16_fnRelease((IStorage16*)lpstg); /* will remove it */ return E_FAIL; } return S_OK;