Michael Stefaniuc : dmband: None of the COM classes support aggregation.
Alexandre Julliard
julliard at winehq.org
Thu Jan 30 13:25:25 CST 2014
Module: wine
Branch: master
Commit: 05d1872575765be02a3304f10cad103c9ce5e84c
URL: http://source.winehq.org/git/wine.git/?a=commit;h=05d1872575765be02a3304f10cad103c9ce5e84c
Author: Michael Stefaniuc <mstefani at redhat.de>
Date: Thu Jan 30 00:46:19 2014 +0100
dmband: None of the COM classes support aggregation.
---
dlls/dmband/band.c | 3 ++-
dlls/dmband/bandtrack.c | 3 ++-
dlls/dmband/dmband_main.c | 13 +++++++++----
dlls/dmband/dmband_private.h | 5 ++---
4 files changed, 15 insertions(+), 9 deletions(-)
diff --git a/dlls/dmband/band.c b/dlls/dmband/band.c
index e67bc8e..e72a042 100644
--- a/dlls/dmband/band.c
+++ b/dlls/dmband/band.c
@@ -687,7 +687,8 @@ static const IPersistStreamVtbl DirectMusicBand_PersistStream_Vtbl = {
};
/* for ClassFactory */
-HRESULT WINAPI DMUSIC_CreateDirectMusicBandImpl (LPCGUID lpcGUID, LPVOID* ppobj, LPUNKNOWN pUnkOuter) {
+HRESULT WINAPI create_dmband(REFIID lpcGUID, void **ppobj)
+{
IDirectMusicBandImpl* obj;
obj = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectMusicBandImpl));
diff --git a/dlls/dmband/bandtrack.c b/dlls/dmband/bandtrack.c
index 878ccc0..8be6b29 100644
--- a/dlls/dmband/bandtrack.c
+++ b/dlls/dmband/bandtrack.c
@@ -606,7 +606,8 @@ static const IPersistStreamVtbl DirectMusicBandTrack_PerststStream_Vtbl = {
};
/* for ClassFactory */
-HRESULT WINAPI DMUSIC_CreateDirectMusicBandTrack (LPCGUID lpcGUID, LPVOID *ppobj, LPUNKNOWN pUnkOuter) {
+HRESULT WINAPI create_dmbandtrack(REFIID lpcGUID, void **ppobj)
+{
IDirectMusicBandTrack* track;
track = HeapAlloc (GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectMusicBandTrack));
diff --git a/dlls/dmband/dmband_main.c b/dlls/dmband/dmband_main.c
index 414f5e4..f72b415 100644
--- a/dlls/dmband/dmband_main.c
+++ b/dlls/dmband/dmband_main.c
@@ -27,7 +27,7 @@ LONG DMBAND_refCount = 0;
typedef struct {
IClassFactory IClassFactory_iface;
- HRESULT WINAPI (*fnCreateInstance)(REFIID riid, void **ppv, IUnknown *pUnkOuter);
+ HRESULT WINAPI (*fnCreateInstance)(REFIID riid, void **ret_iface);
} IClassFactoryImpl;
/******************************************************************
@@ -79,7 +79,12 @@ static HRESULT WINAPI ClassFactory_CreateInstance(IClassFactory *iface, IUnknown
TRACE ("(%p, %s, %p)\n", pUnkOuter, debugstr_dmguid(riid), ppv);
- return This->fnCreateInstance(riid, ppv, pUnkOuter);
+ if (pUnkOuter) {
+ *ppv = NULL;
+ return CLASS_E_NOAGGREGATION;
+ }
+
+ return This->fnCreateInstance(riid, ppv);
}
static HRESULT WINAPI ClassFactory_LockServer(IClassFactory *iface, BOOL dolock)
@@ -102,8 +107,8 @@ static const IClassFactoryVtbl classfactory_vtbl = {
ClassFactory_LockServer
};
-static IClassFactoryImpl Band_CF = {{&classfactory_vtbl}, DMUSIC_CreateDirectMusicBandImpl};
-static IClassFactoryImpl BandTrack_CF = {{&classfactory_vtbl}, DMUSIC_CreateDirectMusicBandTrack};
+static IClassFactoryImpl Band_CF = {{&classfactory_vtbl}, create_dmband};
+static IClassFactoryImpl BandTrack_CF = {{&classfactory_vtbl}, create_dmbandtrack};
/******************************************************************
* DllMain
diff --git a/dlls/dmband/dmband_private.h b/dlls/dmband/dmband_private.h
index aa775df..0f5f939 100644
--- a/dlls/dmband/dmband_private.h
+++ b/dlls/dmband/dmband_private.h
@@ -52,9 +52,8 @@ typedef struct IDirectMusicBandTrack IDirectMusicBandTrack;
/*****************************************************************************
* ClassFactory
*/
-extern HRESULT WINAPI DMUSIC_CreateDirectMusicBandImpl (LPCGUID lpcGUID, LPVOID* ppobj, LPUNKNOWN pUnkOuter) DECLSPEC_HIDDEN;
-
-extern HRESULT WINAPI DMUSIC_CreateDirectMusicBandTrack (LPCGUID lpcGUID, LPVOID* ppobj, LPUNKNOWN pUnkOuter) DECLSPEC_HIDDEN;
+extern HRESULT WINAPI create_dmband(REFIID riid, void **ret_iface) DECLSPEC_HIDDEN;
+extern HRESULT WINAPI create_dmbandtrack(REFIID riid, void **ret_iface) DECLSPEC_HIDDEN;
/*****************************************************************************
More information about the wine-cvs
mailing list