Module: wine Branch: refs/heads/master Commit: 9ed9398ebea814812ee4a706bf6cb176d10ae7ef URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=9ed9398ebea814812ee4a706...
Author: Francois Gouget fgouget@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),