Module: wine Branch: master Commit: 3ff39057d21c148dcdb56cf4ff090635fbbbce82 URL: http://source.winehq.org/git/wine.git/?a=commit;h=3ff39057d21c148dcdb56cf4ff...
Author: Michael Stefaniuc mstefani@redhat.de Date: Thu Jul 28 10:23:01 2011 +0200
dswave: Implement IClassFactory::QueryInterface.
---
dlls/dswave/dswave_main.c | 21 ++++++++++++++++----- 1 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/dlls/dswave/dswave_main.c b/dlls/dswave/dswave_main.c index 9055dfa..d9b16d6 100644 --- a/dlls/dswave/dswave_main.c +++ b/dlls/dswave/dswave_main.c @@ -37,13 +37,24 @@ typedef struct { /****************************************************************** * DirectMusicWave ClassFactory */ -static HRESULT WINAPI WaveCF_QueryInterface(IClassFactory * iface, REFIID riid, void **ppobj) +static HRESULT WINAPI WaveCF_QueryInterface(IClassFactory * iface, REFIID riid, void **ppv) { - FIXME("- no interface\n\tIID:\t%s\n", debugstr_guid(riid)); - - if (ppobj == NULL) return E_POINTER; - - return E_NOINTERFACE; + if (ppv == NULL) + return E_POINTER; + + if (IsEqualGUID(&IID_IUnknown, riid)) + TRACE("(%p)->(IID_IUnknown %p)\n", iface, ppv); + else if (IsEqualGUID(&IID_IClassFactory, riid)) + TRACE("(%p)->(IID_IClassFactory %p)\n", iface, ppv); + else { + FIXME("(%p)->(%s %p)\n", iface, debugstr_guid(riid), ppv); + *ppv = NULL; + return E_NOINTERFACE; + } + + *ppv = iface; + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; }
static ULONG WINAPI WaveCF_AddRef(IClassFactory * iface)