dswave: DirectSoundWave doesn't support COM aggregation.
This commit is contained in:
parent
9a5375989d
commit
2fe9605373
|
@ -723,7 +723,8 @@ static const IPersistStreamVtbl DirectMusicWave_PersistStream_Vtbl = {
|
|||
|
||||
|
||||
/* for ClassFactory */
|
||||
HRESULT WINAPI DMUSIC_CreateDirectMusicWaveImpl (LPCGUID lpcGUID, LPVOID* ppobj, LPUNKNOWN pUnkOuter) {
|
||||
HRESULT WINAPI create_dswave(REFIID lpcGUID, void **ppobj)
|
||||
{
|
||||
IDirectMusicWaveImpl* obj;
|
||||
|
||||
obj = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectMusicWaveImpl));
|
||||
|
|
|
@ -71,12 +71,17 @@ static ULONG WINAPI WaveCF_Release(IClassFactory * iface)
|
|||
return 1; /* non-heap based object */
|
||||
}
|
||||
|
||||
static HRESULT WINAPI WaveCF_CreateInstance(IClassFactory * iface, IUnknown *pOuter, REFIID riid,
|
||||
void **ppobj)
|
||||
static HRESULT WINAPI WaveCF_CreateInstance(IClassFactory * iface, IUnknown *outer_unk, REFIID riid,
|
||||
void **ret_iface)
|
||||
{
|
||||
TRACE ("(%p, %s, %p)\n", pOuter, debugstr_dmguid(riid), ppobj);
|
||||
TRACE ("(%p, %s, %p)\n", outer_unk, debugstr_dmguid(riid), ret_iface);
|
||||
|
||||
return DMUSIC_CreateDirectMusicWaveImpl (riid, ppobj, pOuter);
|
||||
if (outer_unk) {
|
||||
*ret_iface = NULL;
|
||||
return CLASS_E_NOAGGREGATION;
|
||||
}
|
||||
|
||||
return create_dswave(riid, ret_iface);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI WaveCF_LockServer(IClassFactory * iface, BOOL dolock)
|
||||
|
|
|
@ -48,7 +48,7 @@ typedef struct IDirectMusicWaveImpl IDirectMusicWaveImpl;
|
|||
/*****************************************************************************
|
||||
* ClassFactory
|
||||
*/
|
||||
extern HRESULT WINAPI DMUSIC_CreateDirectMusicWaveImpl (LPCGUID lpcGUID, LPVOID* ppobj, LPUNKNOWN pUnkOuter) DECLSPEC_HIDDEN;
|
||||
extern HRESULT WINAPI create_dswave(REFIID lpcGUID, void **ret_iface) DECLSPEC_HIDDEN;
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
|
|
Loading…
Reference in New Issue