Michael Stefaniuc : dmcompos: None of the COM classes support aggregation.
Alexandre Julliard
julliard at winehq.org
Thu Jan 16 14:52:27 CST 2014
Module: wine
Branch: master
Commit: 434842e13d716debf712a6f97bfc1aef8bf3fdcd
URL: http://source.winehq.org/git/wine.git/?a=commit;h=434842e13d716debf712a6f97bfc1aef8bf3fdcd
Author: Michael Stefaniuc <mstefani at redhat.de>
Date: Thu Jan 16 00:45:17 2014 +0100
dmcompos: None of the COM classes support aggregation.
---
dlls/dmcompos/chordmap.c | 3 ++-
dlls/dmcompos/chordmaptrack.c | 3 ++-
dlls/dmcompos/composer.c | 3 ++-
dlls/dmcompos/dmcompos_main.c | 23 +++++++++++++----------
dlls/dmcompos/dmcompos_private.h | 8 ++++----
dlls/dmcompos/signposttrack.c | 3 ++-
6 files changed, 25 insertions(+), 18 deletions(-)
diff --git a/dlls/dmcompos/chordmap.c b/dlls/dmcompos/chordmap.c
index ea751af..21849b8 100644
--- a/dlls/dmcompos/chordmap.c
+++ b/dlls/dmcompos/chordmap.c
@@ -524,7 +524,8 @@ static const IPersistStreamVtbl DirectMusicChordMap_PersistStream_Vtbl = {
};
/* for ClassFactory */
-HRESULT WINAPI DMUSIC_CreateDirectMusicChordMapImpl (LPCGUID lpcGUID, LPVOID* ppobj, LPUNKNOWN pUnkOuter) {
+HRESULT WINAPI create_dmchordmap(REFIID lpcGUID, void **ppobj)
+{
IDirectMusicChordMapImpl* obj;
obj = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectMusicChordMapImpl));
diff --git a/dlls/dmcompos/chordmaptrack.c b/dlls/dmcompos/chordmaptrack.c
index 6d8f326..cac652c 100644
--- a/dlls/dmcompos/chordmaptrack.c
+++ b/dlls/dmcompos/chordmaptrack.c
@@ -269,7 +269,8 @@ static const IPersistStreamVtbl DirectMusicChordMapTrack_PersistStream_Vtbl = {
};
/* for ClassFactory */
-HRESULT WINAPI DMUSIC_CreateDirectMusicChordMapTrack (LPCGUID lpcGUID, LPVOID *ppobj, LPUNKNOWN pUnkOuter) {
+HRESULT WINAPI create_dmchordmaptrack(REFIID lpcGUID, void **ppobj)
+{
IDirectMusicChordMapTrack* track;
track = HeapAlloc (GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectMusicChordMapTrack));
diff --git a/dlls/dmcompos/composer.c b/dlls/dmcompos/composer.c
index d122e97..2d91f5e 100644
--- a/dlls/dmcompos/composer.c
+++ b/dlls/dmcompos/composer.c
@@ -112,7 +112,8 @@ static const IDirectMusicComposerVtbl DirectMusicComposer_Vtbl = {
};
/* for ClassFactory */
-HRESULT WINAPI DMUSIC_CreateDirectMusicComposerImpl (LPCGUID lpcGUID, LPVOID* ppobj, LPUNKNOWN pUnkOuter) {
+HRESULT WINAPI create_dmcomposer(REFIID lpcGUID, void **ppobj)
+{
IDirectMusicComposerImpl* obj;
obj = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectMusicComposerImpl));
diff --git a/dlls/dmcompos/dmcompos_main.c b/dlls/dmcompos/dmcompos_main.c
index e40c6ea..240cc9d 100644
--- a/dlls/dmcompos/dmcompos_main.c
+++ b/dlls/dmcompos/dmcompos_main.c
@@ -30,12 +30,12 @@ LONG DMCOMPOS_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;
-static HRESULT WINAPI create_direct_music_template(REFIID riid, void **ppv, IUnknown *pUnkOuter)
+static HRESULT WINAPI create_direct_music_template(REFIID riid, void **ret_iface)
{
- FIXME("(%p, %s, %p) stub\n", pUnkOuter, debugstr_dmguid(riid), ppv);
+ FIXME("(%s, %p) stub\n", debugstr_dmguid(riid), ret_iface);
return CLASS_E_CLASSNOTAVAILABLE;
}
@@ -89,7 +89,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)
@@ -112,13 +117,11 @@ static const IClassFactoryVtbl classfactory_vtbl = {
ClassFactory_LockServer
};
-static IClassFactoryImpl ChordMap_CF = {{&classfactory_vtbl}, DMUSIC_CreateDirectMusicChordMapImpl};
-static IClassFactoryImpl Composer_CF = {{&classfactory_vtbl}, DMUSIC_CreateDirectMusicComposerImpl};
-static IClassFactoryImpl ChordMapTrack_CF = {{&classfactory_vtbl},
- DMUSIC_CreateDirectMusicChordMapTrack};
+static IClassFactoryImpl ChordMap_CF = {{&classfactory_vtbl}, create_dmchordmap};
+static IClassFactoryImpl Composer_CF = {{&classfactory_vtbl}, create_dmcomposer};
+static IClassFactoryImpl ChordMapTrack_CF = {{&classfactory_vtbl}, create_dmchordmaptrack};
static IClassFactoryImpl Template_CF = {{&classfactory_vtbl}, create_direct_music_template};
-static IClassFactoryImpl SignPostTrack_CF = {{&classfactory_vtbl},
- DMUSIC_CreateDirectMusicSignPostTrack};
+static IClassFactoryImpl SignPostTrack_CF = {{&classfactory_vtbl}, create_dmsignposttrack};
/******************************************************************
* DllMain
diff --git a/dlls/dmcompos/dmcompos_private.h b/dlls/dmcompos/dmcompos_private.h
index 5e9a9f1..d6d252c 100644
--- a/dlls/dmcompos/dmcompos_private.h
+++ b/dlls/dmcompos/dmcompos_private.h
@@ -53,10 +53,10 @@ typedef struct IDirectMusicSignPostTrack IDirectMusicSignPostTrack;
/*****************************************************************************
* ClassFactory
*/
-extern HRESULT WINAPI DMUSIC_CreateDirectMusicChordMapImpl (LPCGUID lpcGUID, LPVOID* ppobj, LPUNKNOWN pUnkOuter) DECLSPEC_HIDDEN;
-extern HRESULT WINAPI DMUSIC_CreateDirectMusicComposerImpl (LPCGUID lpcGUID, LPVOID* ppobj, LPUNKNOWN pUnkOuter) DECLSPEC_HIDDEN;
-extern HRESULT WINAPI DMUSIC_CreateDirectMusicChordMapTrack (LPCGUID lpcGUID, LPVOID* ppobj, LPUNKNOWN pUnkOuter) DECLSPEC_HIDDEN;
-extern HRESULT WINAPI DMUSIC_CreateDirectMusicSignPostTrack (LPCGUID lpcGUID, LPVOID* ppobj, LPUNKNOWN pUnkOuter) DECLSPEC_HIDDEN;
+extern HRESULT WINAPI create_dmchordmap(REFIID riid, void **ret_iface) DECLSPEC_HIDDEN;
+extern HRESULT WINAPI create_dmcomposer(REFIID riid, void **ret_iface) DECLSPEC_HIDDEN;
+extern HRESULT WINAPI create_dmchordmaptrack(REFIID riid, void **ret_iface) DECLSPEC_HIDDEN;
+extern HRESULT WINAPI create_dmsignposttrack(REFIID riid, void **ret_iface) DECLSPEC_HIDDEN;
/*****************************************************************************
* IDirectMusicChordMapImpl implementation structure
diff --git a/dlls/dmcompos/signposttrack.c b/dlls/dmcompos/signposttrack.c
index 15ff599..586c085 100644
--- a/dlls/dmcompos/signposttrack.c
+++ b/dlls/dmcompos/signposttrack.c
@@ -267,7 +267,8 @@ static const IPersistStreamVtbl DirectMusicSignPostTrack_PersistStream_Vtbl =
};
/* for ClassFactory */
-HRESULT WINAPI DMUSIC_CreateDirectMusicSignPostTrack (LPCGUID lpcGUID, LPVOID *ppobj, LPUNKNOWN pUnkOuter) {
+HRESULT WINAPI create_dmsignposttrack(REFIID lpcGUID, void **ppobj)
+{
IDirectMusicSignPostTrack* track;
track = HeapAlloc (GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectMusicSignPostTrack));
More information about the wine-cvs
mailing list