From 95470685fda5c2e5e74c88d2d689159c3af478e8 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 14 Mar 2015 17:00:08 +0100
Subject: d3dx9_36: Allow to query for d3dx9_26 specific ID3DXEffect interface.

---
 dlls/d3dx9_36/effect.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/dlls/d3dx9_36/effect.c b/dlls/d3dx9_36/effect.c
index 8f82784..384af3f 100644
--- a/dlls/d3dx9_36/effect.c
+++ b/dlls/d3dx9_36/effect.c
@@ -22,6 +22,11 @@
 
 #include "d3dx9_private.h"
 #include "d3dcompiler.h"
+#include "initguid.h"
+
+/* d3dx9_26 provides an ID3DXEffect interface where the last function SetRawValue
+ * is missing. Since its otherwise identical, we just use the same vtable. */
+DEFINE_GUID(IID_ID3DXEffect26, 0xc7b17651, 0x5420, 0x490e, 0x8a, 0x7f, 0x92, 0x36, 0x75, 0xa2, 0xd6, 0x87);
 
 /* Constants for special INT/FLOAT conversation */
 #define INT_FLOAT_MULTI 255.0f
@@ -2862,7 +2867,8 @@ static HRESULT WINAPI ID3DXEffectImpl_QueryInterface(ID3DXEffect *iface, REFIID
     TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), object);
 
     if (IsEqualGUID(riid, &IID_IUnknown) ||
-        IsEqualGUID(riid, &IID_ID3DXEffect))
+        IsEqualGUID(riid, &IID_ID3DXEffect) ||
+        IsEqualGUID(riid, &IID_ID3DXEffect26))
     {
         iface->lpVtbl->AddRef(iface);
         *object = iface;
-- 
2.7.1

