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