dinput: Stub IDirectInputJoyConfig8 interface. (try 2)
Jacek Caban
jacek at codeweavers.com
Fri Nov 25 05:14:50 CST 2011
Hi Vitaliy,
On 11/25/11 04:17, Vitaliy Margolen wrote:
> Fix QueryInterface, simplify use of AddRef, and replace "LPDIRECTINPUTJOYCONFIG8"
> with "IDirectInputJoyConfig8 *".
> ---
> dlls/dinput/dinput_main.c | 7 ++
> dlls/dinput/dinput_private.h | 2 +
> dlls/dinput/joystick.c | 196 ++++++++++++++++++++++++++++++++++
> include/dinputd.h | 243 ++++++++++++++++++++++++++++++++++++++++++
> 4 files changed, 448 insertions(+), 0 deletions(-)
> create mode 100644 include/dinputd.h
>
+ if (IsEqualGUID(&IID_IDirectInputJoyConfig8, riid ))
+ {
+ return create_joy_config( riid, ppobj );
+ }
This has the same problem as we discussed about msxml3 lately:
http://www.winehq.org/pipermail/wine-devel/2011-November/093279.html
Are you sure native is broken the same way?
+static const IDirectInputJoyConfig8Vtbl JoyConfig8vt;
+
+HRESULT create_joy_config(REFIID riid, LPVOID *object)
+{
+ IDirectInputJoyConfig8Impl *new_joy_config;
+
+ TRACE("(%s, %p)\n", debugstr_guid(riid), object);
+
+ new_joy_config = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*new_joy_config));
+ if (!new_joy_config) return DIERR_OUTOFMEMORY;
+
+ new_joy_config->IDirectInputJoyConfig8_iface.lpVtbl =&JoyConfig8vt;
+ *object = new_joy_config;
+
+ return DI_OK;
+}
If you moved create_joy_config to the bottom of the file, you wouldn't need JoyConfig8vt forward declaration.
+static HRESULT WINAPI JoyConfig8Impl_QueryInterface(IDirectInputJoyConfig8 *iface, REFIID riid, void** object)
+{
+ IDirectInputJoyConfig8Impl *This = impl_from_IDirectInputJoyConfig8(iface);
+
+ TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), object);
+
+ if (IsEqualGUID(&IID_IUnknown, riid) ||
+ IsEqualGUID(&IID_IDirectInput8W, riid))
Here is a typo, it should be IID_IDirectInputJoyConfig8.
Jacek
More information about the wine-devel
mailing list