dxgi: Implement IDXGIAdapter::GetParent().

Henri Verbeet hverbeet at codeweavers.com
Thu Nov 20 06:32:00 CST 2008


---
 dlls/dxgi/adapter.c      |    6 ++++--
 dlls/dxgi/dxgi_main.c    |    1 +
 dlls/dxgi/dxgi_private.h |    1 +
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/dlls/dxgi/adapter.c b/dlls/dxgi/adapter.c
index 54e5143..d2c64ad 100644
--- a/dlls/dxgi/adapter.c
+++ b/dlls/dxgi/adapter.c
@@ -99,9 +99,11 @@ static HRESULT STDMETHODCALLTYPE dxgi_adapter_GetPrivateData(IWineDXGIAdapter *i
 
 static HRESULT STDMETHODCALLTYPE dxgi_adapter_GetParent(IWineDXGIAdapter *iface, REFIID riid, void **parent)
 {
-    FIXME("iface %p, riid %s, parent %p stub!\n", iface, debugstr_guid(riid), parent);
+    struct dxgi_adapter *This = (struct dxgi_adapter *)iface;
 
-    return E_NOTIMPL;
+    TRACE("iface %p, riid %s, parent %p\n", iface, debugstr_guid(riid), parent);
+
+    return IDXGIFactory_QueryInterface(This->parent, riid, parent);
 }
 
 /* IDXGIAdapter methods */
diff --git a/dlls/dxgi/dxgi_main.c b/dlls/dxgi/dxgi_main.c
index a6dc5e6..370fcdd 100644
--- a/dlls/dxgi/dxgi_main.c
+++ b/dlls/dxgi/dxgi_main.c
@@ -126,6 +126,7 @@ HRESULT WINAPI CreateDXGIFactory(REFIID riid, void **factory)
         adapter->vtbl = &dxgi_adapter_vtbl;
         adapter->refcount = 1;
         adapter->ordinal = i;
+        adapter->parent = (IDXGIFactory *)object;
         object->adapters[i] = (IDXGIAdapter *)adapter;
     }
 
diff --git a/dlls/dxgi/dxgi_private.h b/dlls/dxgi/dxgi_private.h
index 25c54cb..95cfe58 100644
--- a/dlls/dxgi/dxgi_private.h
+++ b/dlls/dxgi/dxgi_private.h
@@ -66,6 +66,7 @@ extern const struct IWineDXGIAdapterVtbl dxgi_adapter_vtbl;
 struct dxgi_adapter
 {
     const struct IWineDXGIAdapterVtbl *vtbl;
+    IDXGIFactory *parent;
     LONG refcount;
     UINT ordinal;
 };
-- 
1.5.6.4



--------------030902000104070605060201--



More information about the wine-patches mailing list