Re: [PATCH 1/4] dx8vb: Add stubs for D3DX8 interface
On Tue, Oct 31, 2017 at 2:31 AM, Fabian Maurer <dark.shadow4(a)web.de> wrote:
main.c
IDL_SRCS = dx8vb.idl diff --git a/dlls/dx8vb/d3dx8.c b/dlls/dx8vb/d3dx8.c new file mode 100644 index 0000000000..2959849547 --- /dev/null +++ b/dlls/dx8vb/d3dx8.c @@ -0,0 +1,861 @@ + /* + * Copyright 2017 Fabian Maurer + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#define COBJMACROS + +#include "config.h" + +#include "dx8vb_private.h" +#include "ocidl.h" + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(dx8vb); + +typedef struct +{ + ID3DX8 ID3DX8_iface; + LONG ref; +} d3dx8; + +static inline d3dx8 *impl_from_ID3DX8(ID3DX8 *iface) +{ + return CONTAINING_RECORD(iface, d3dx8, ID3DX8_iface); +} + +/*** d3dx8 - IUnknown methods ***/ +
Comment seems a bit useless, you're not going to use this file for anything else.
+static HRESULT WINAPI d3dx8_QueryInterface(ID3DX8 *iface, REFIID riid, void **ppv) +{ + d3dx8 *This = impl_from_ID3DX8(iface); + + TRACE("(%p/%p)->(%s,%p)\n", iface, This, debugstr_guid(riid), ppv); + + *ppv = NULL; + + if (IsEqualGUID(riid, &IID_IUnknown)) + *ppv = &This->ID3DX8_iface; + else if(IsEqualGUID(riid, &IID_ID3DX8)) + *ppv = &This->ID3DX8_iface; + else if(IsEqualGUID(riid, &IID_IPersistPropertyBag)) + FIXME("No interface for IID_IPersistPropertyBag\n"); + else if(IsEqualGUID(riid, &IID_IPersistStreamInit)) + FIXME("No interface for IID_IPersistStreamInit\n"); + else
Where does this come from?
+ +/*** d3dx8 - IUnknown methods ***/ +
Comment seems a bit useless, you're not going to use this file for anything else.
What makes you think that? There are more interfaces that could be implemented.
+ if (IsEqualGUID(riid, &IID_IUnknown)) + *ppv = &This->ID3DX8_iface; + else if(IsEqualGUID(riid, &IID_ID3DX8)) + *ppv = &This->ID3DX8_iface; + else if(IsEqualGUID(riid, &IID_IPersistPropertyBag)) + FIXME("No interface for IID_IPersistPropertyBag\n"); + else if(IsEqualGUID(riid, &IID_IPersistStreamInit)) + FIXME("No interface for IID_IPersistStreamInit\n"); + else
Where does this come from?
The else part with
FIXME("No interface for %s\n", debugstr_guid(riid));
outputted this GUID, so I added a specific FIXME for that interface. It seemed reasonable to output a name instead of a GUID. Regards, Fabian Maurer
participants (2)
-
Fabian Maurer -
Nikolay Sivov