Francois Gouget : ole32: Add a BaseInterface where needed.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Aug 8 07:37:29 CDT 2006
Module: wine
Branch: refs/heads/master
Commit: 9ed9398ebea814812ee4a706bf6cb176d10ae7ef
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=9ed9398ebea814812ee4a706bf6cb176d10ae7ef
Author: Francois Gouget <fgouget at codeweavers.com>
Date: Mon Aug 7 21:54:38 2006 +0200
ole32: Add a BaseInterface where needed.
---
dlls/ole32/regsvr.c | 27 ++++++++++++++-------------
1 files changed, 14 insertions(+), 13 deletions(-)
diff --git a/dlls/ole32/regsvr.c b/dlls/ole32/regsvr.c
index 1b141ca..21474d6 100644
--- a/dlls/ole32/regsvr.c
+++ b/dlls/ole32/regsvr.c
@@ -499,6 +499,7 @@ static struct regsvr_coclass const cocla
*/
#define INTERFACE_ENTRY(interface, base, clsid32, clsid16) { &IID_##interface, #interface, base, sizeof(interface##Vtbl)/sizeof(void*), clsid16, clsid32 }
+#define BAS_INTERFACE_ENTRY(interface, base) INTERFACE_ENTRY(interface, &IID_##base, &CLSID_PSFactoryBuffer, NULL)
#define STD_INTERFACE_ENTRY(interface) INTERFACE_ENTRY(interface, NULL, &CLSID_PSFactoryBuffer, NULL)
#define LCL_INTERFACE_ENTRY(interface) INTERFACE_ENTRY(interface, NULL, NULL, NULL)
@@ -512,7 +513,7 @@ static const struct regsvr_interface int
STD_INTERFACE_ENTRY(IStream),
STD_INTERFACE_ENTRY(IEnumSTATSTG),
STD_INTERFACE_ENTRY(IBindCtx),
- STD_INTERFACE_ENTRY(IMoniker),
+ BAS_INTERFACE_ENTRY(IMoniker, IPersistStream),
STD_INTERFACE_ENTRY(IRunningObjectTable),
STD_INTERFACE_ENTRY(IRootStorage),
LCL_INTERFACE_ENTRY(IMessageFilter),
@@ -526,9 +527,9 @@ static const struct regsvr_interface int
STD_INTERFACE_ENTRY(IEnumFORMATETC),
STD_INTERFACE_ENTRY(IEnumOLEVERB),
STD_INTERFACE_ENTRY(IEnumSTATDATA),
- STD_INTERFACE_ENTRY(IPersistStream),
- STD_INTERFACE_ENTRY(IPersistStorage),
- STD_INTERFACE_ENTRY(IPersistFile),
+ BAS_INTERFACE_ENTRY(IPersistStream, IPersist),
+ BAS_INTERFACE_ENTRY(IPersistStorage, IPersist),
+ BAS_INTERFACE_ENTRY(IPersistFile, IPersist),
STD_INTERFACE_ENTRY(IPersist),
STD_INTERFACE_ENTRY(IViewObject),
STD_INTERFACE_ENTRY(IDataObject),
@@ -536,24 +537,24 @@ static const struct regsvr_interface int
LCL_INTERFACE_ENTRY(IDataAdviseHolder),
LCL_INTERFACE_ENTRY(IOleAdviseHolder),
STD_INTERFACE_ENTRY(IOleObject),
- STD_INTERFACE_ENTRY(IOleInPlaceObject),
+ BAS_INTERFACE_ENTRY(IOleInPlaceObject, IOleWindow),
STD_INTERFACE_ENTRY(IOleWindow),
- STD_INTERFACE_ENTRY(IOleInPlaceUIWindow),
+ BAS_INTERFACE_ENTRY(IOleInPlaceUIWindow, IOleWindow),
STD_INTERFACE_ENTRY(IOleInPlaceFrame),
- STD_INTERFACE_ENTRY(IOleInPlaceActiveObject),
+ BAS_INTERFACE_ENTRY(IOleInPlaceActiveObject, IOleWindow),
STD_INTERFACE_ENTRY(IOleClientSite),
- STD_INTERFACE_ENTRY(IOleInPlaceSite),
+ BAS_INTERFACE_ENTRY(IOleInPlaceSite, IOleWindow),
STD_INTERFACE_ENTRY(IParseDisplayName),
- STD_INTERFACE_ENTRY(IOleContainer),
- STD_INTERFACE_ENTRY(IOleItemContainer),
+ BAS_INTERFACE_ENTRY(IOleContainer, IParseDisplayName),
+ BAS_INTERFACE_ENTRY(IOleItemContainer, IOleContainer),
STD_INTERFACE_ENTRY(IOleLink),
STD_INTERFACE_ENTRY(IOleCache),
LCL_INTERFACE_ENTRY(IDropSource),
STD_INTERFACE_ENTRY(IDropTarget),
- STD_INTERFACE_ENTRY(IAdviseSink2),
+ BAS_INTERFACE_ENTRY(IAdviseSink2, IAdviseSink),
STD_INTERFACE_ENTRY(IRunnableObject),
- STD_INTERFACE_ENTRY(IViewObject2),
- STD_INTERFACE_ENTRY(IOleCache2),
+ BAS_INTERFACE_ENTRY(IViewObject2, IViewObject),
+ BAS_INTERFACE_ENTRY(IOleCache2, IOleCache),
STD_INTERFACE_ENTRY(IOleCacheControl),
STD_INTERFACE_ENTRY(IRemUnknown),
LCL_INTERFACE_ENTRY(IClientSecurity),
More information about the wine-cvs
mailing list