dmloader: None of the COM classes support aggregation.
This commit is contained in:
parent
7442abde92
commit
917d5eabe6
|
@ -909,7 +909,8 @@ static const IPersistStreamVtbl DirectMusicContainer_PersistStream_Vtbl = {
|
||||||
};
|
};
|
||||||
|
|
||||||
/* for ClassFactory */
|
/* for ClassFactory */
|
||||||
HRESULT WINAPI DMUSIC_CreateDirectMusicContainerImpl (LPCGUID lpcGUID, LPVOID* ppobj, LPUNKNOWN pUnkOuter) {
|
HRESULT WINAPI create_dmcontainer(REFIID lpcGUID, void **ppobj)
|
||||||
|
{
|
||||||
IDirectMusicContainerImpl* obj;
|
IDirectMusicContainerImpl* obj;
|
||||||
|
|
||||||
obj = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectMusicContainerImpl));
|
obj = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectMusicContainerImpl));
|
||||||
|
|
|
@ -27,7 +27,7 @@ LONG module_ref = 0;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
IClassFactory IClassFactory_iface;
|
IClassFactory IClassFactory_iface;
|
||||||
HRESULT WINAPI (*fnCreateInstance)(REFIID riid, void **ppv, IUnknown *pUnkOuter);
|
HRESULT WINAPI (*fnCreateInstance)(REFIID riid, void **ppv);
|
||||||
} IClassFactoryImpl;
|
} IClassFactoryImpl;
|
||||||
|
|
||||||
/******************************************************************
|
/******************************************************************
|
||||||
|
@ -73,13 +73,18 @@ static ULONG WINAPI ClassFactory_Release(IClassFactory *iface)
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI ClassFactory_CreateInstance(IClassFactory *iface, IUnknown *pUnkOuter,
|
static HRESULT WINAPI ClassFactory_CreateInstance(IClassFactory *iface, IUnknown *pUnkOuter,
|
||||||
REFIID riid, void **ppv)
|
REFIID riid, void **ret_iface)
|
||||||
{
|
{
|
||||||
IClassFactoryImpl *This = impl_from_IClassFactory(iface);
|
IClassFactoryImpl *This = impl_from_IClassFactory(iface);
|
||||||
|
|
||||||
TRACE ("(%p, %s, %p)\n", pUnkOuter, debugstr_dmguid(riid), ppv);
|
TRACE ("(%s, %p)\n", debugstr_dmguid(riid), ret_iface);
|
||||||
|
|
||||||
return This->fnCreateInstance(riid, ppv, pUnkOuter);
|
if (pUnkOuter) {
|
||||||
|
*ret_iface = NULL;
|
||||||
|
return CLASS_E_NOAGGREGATION;
|
||||||
|
}
|
||||||
|
|
||||||
|
return This->fnCreateInstance(riid, ret_iface);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI ClassFactory_LockServer(IClassFactory *iface, BOOL dolock)
|
static HRESULT WINAPI ClassFactory_LockServer(IClassFactory *iface, BOOL dolock)
|
||||||
|
@ -102,9 +107,8 @@ static const IClassFactoryVtbl classfactory_vtbl = {
|
||||||
ClassFactory_LockServer
|
ClassFactory_LockServer
|
||||||
};
|
};
|
||||||
|
|
||||||
static IClassFactoryImpl dm_loader_CF = {{&classfactory_vtbl}, DMUSIC_CreateDirectMusicLoaderImpl};
|
static IClassFactoryImpl dm_loader_CF = {{&classfactory_vtbl}, create_dmloader};
|
||||||
static IClassFactoryImpl dm_container_CF = {{&classfactory_vtbl},
|
static IClassFactoryImpl dm_container_CF = {{&classfactory_vtbl}, create_dmcontainer};
|
||||||
DMUSIC_CreateDirectMusicContainerImpl};
|
|
||||||
|
|
||||||
/******************************************************************
|
/******************************************************************
|
||||||
* DllMain
|
* DllMain
|
||||||
|
|
|
@ -65,8 +65,8 @@ typedef struct IDirectMusicLoaderGenericStream IDirectMusicLoaderGenericStream;
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Creation helpers
|
* Creation helpers
|
||||||
*/
|
*/
|
||||||
extern HRESULT WINAPI DMUSIC_CreateDirectMusicLoaderImpl (LPCGUID lpcGUID, LPVOID *ppobj, LPUNKNOWN pUnkOuter) DECLSPEC_HIDDEN;
|
extern HRESULT WINAPI create_dmloader(REFIID riid, void **ret_iface) DECLSPEC_HIDDEN;
|
||||||
extern HRESULT WINAPI DMUSIC_CreateDirectMusicContainerImpl (LPCGUID lpcGUID, LPVOID *ppobj, LPUNKNOWN pUnkOuter) DECLSPEC_HIDDEN;
|
extern HRESULT WINAPI create_dmcontainer(REFIID riid, void **ret_iface) DECLSPEC_HIDDEN;
|
||||||
extern HRESULT WINAPI DMUSIC_CreateDirectMusicLoaderFileStream (LPVOID *ppobj) DECLSPEC_HIDDEN;
|
extern HRESULT WINAPI DMUSIC_CreateDirectMusicLoaderFileStream (LPVOID *ppobj) DECLSPEC_HIDDEN;
|
||||||
extern HRESULT WINAPI DMUSIC_CreateDirectMusicLoaderResourceStream (LPVOID *ppobj) DECLSPEC_HIDDEN;
|
extern HRESULT WINAPI DMUSIC_CreateDirectMusicLoaderResourceStream (LPVOID *ppobj) DECLSPEC_HIDDEN;
|
||||||
extern HRESULT WINAPI DMUSIC_CreateDirectMusicLoaderGenericStream (LPVOID *ppobj) DECLSPEC_HIDDEN;
|
extern HRESULT WINAPI DMUSIC_CreateDirectMusicLoaderGenericStream (LPVOID *ppobj) DECLSPEC_HIDDEN;
|
||||||
|
|
|
@ -888,14 +888,14 @@ static HRESULT DMUSIC_GetDefaultGMPath (WCHAR wszPath[MAX_PATH]) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* for ClassFactory */
|
/* for ClassFactory */
|
||||||
HRESULT WINAPI DMUSIC_CreateDirectMusicLoaderImpl(const GUID *lpcGUID, void **ppobj, IUnknown *pUnkOuter)
|
HRESULT WINAPI create_dmloader(REFIID lpcGUID, void **ppobj)
|
||||||
{
|
{
|
||||||
IDirectMusicLoaderImpl *obj;
|
IDirectMusicLoaderImpl *obj;
|
||||||
DMUS_OBJECTDESC Desc;
|
DMUS_OBJECTDESC Desc;
|
||||||
LPWINE_LOADER_ENTRY pDefaultDLSEntry;
|
LPWINE_LOADER_ENTRY pDefaultDLSEntry;
|
||||||
struct list *pEntry;
|
struct list *pEntry;
|
||||||
|
|
||||||
TRACE("(%s, %p, %p)\n", debugstr_dmguid(lpcGUID), ppobj, pUnkOuter);
|
TRACE("(%s, %p)\n", debugstr_dmguid(lpcGUID), ppobj);
|
||||||
obj = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectMusicLoaderImpl));
|
obj = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectMusicLoaderImpl));
|
||||||
if (NULL == obj) {
|
if (NULL == obj) {
|
||||||
*ppobj = NULL;
|
*ppobj = NULL;
|
||||||
|
|
Loading…
Reference in New Issue