set svn:eol-style to native
[reactos.git] / reactos / lib / dinput / device_private.h
index a044af5..e7a3209 100644 (file)
-/*\r
- * Copyright 2000 Lionel Ulmer\r
- * Copyright 2000-2001 TransGaming Technologies Inc.\r
- *\r
- * This library is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU Lesser General Public\r
- * License as published by the Free Software Foundation; either\r
- * version 2.1 of the License, or (at your option) any later version.\r
- *\r
- * This library is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
- * Lesser General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU Lesser General Public\r
- * License along with this library; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
- */\r
-\r
-#ifndef __WINE_DLLS_DINPUT_DINPUTDEVICE_PRIVATE_H\r
-#define __WINE_DLLS_DINPUT_DINPUTDEVICE_PRIVATE_H\r
-\r
-#include <stdarg.h>\r
-\r
-#include "windef.h"\r
-#include "winbase.h"\r
-#include "dinput.h"\r
-\r
-/* Device implementation */\r
-typedef struct IDirectInputDevice2AImpl IDirectInputDevice2AImpl;\r
-struct IDirectInputDevice2AImpl\r
-{\r
-        IDirectInputDevice2AVtbl       *lpVtbl;\r
-        DWORD                           ref;\r
-        GUID                            guid;\r
-};\r
-\r
-/* Routines to do DataFormat / WineFormat conversions */\r
-typedef struct {\r
-  int size;\r
-  int offset_in;\r
-  int offset_out;\r
-  int value;\r
-} DataTransform;\r
-\r
-typedef struct {\r
-  int size;\r
-  int internal_format_size;\r
-  DataTransform *dt;\r
-} DataFormat;\r
-extern void fill_DataFormat(void *out, const void *in, DataFormat *df) ;\r
-extern DataFormat *create_DataFormat(const DIDATAFORMAT *wine_format, LPCDIDATAFORMAT asked_format, int *offset) ;\r
-extern void release_DataFormat(DataFormat *df) ;\r
-\r
-/* Used to fill events in the queue */\r
-#define GEN_EVENT(offset,data,xtime,seq)                                       \\r
-{                                                                              \\r
-  /* If queue_len > 0, queuing is requested -> TRACE the event queued */       \\r
-  if (This->queue_len > 0) {                                                   \\r
-    int nq;                                                                    \\r
-    TRACE(" queueing %d at offset %d (queue head %d / size %d)\n",             \\r
-         (int) (data), (int) (offset),                                         \\r
-         (int) (This->queue_head), (int) (This->queue_len));                   \\r
-                                                                               \\r
-    nq = This->queue_head+1;                                                   \\r
-    while (nq >= This->queue_len) nq -= This->queue_len;                       \\r
-    if ((offset >= 0) && (nq != This->queue_tail)) {                           \\r
-      This->data_queue[This->queue_head].dwOfs = offset;                       \\r
-      This->data_queue[This->queue_head].dwData = data;                                \\r
-      This->data_queue[This->queue_head].dwTimeStamp = xtime;                  \\r
-      This->data_queue[This->queue_head].dwSequence = seq;                     \\r
-      This->queue_head = nq;                                                   \\r
-    } else                                                                      \\r
-      This->overflow = TRUE;                                                    \\r
-  }                                                                            \\r
-}\r
-\r
-/**\r
- * Callback Data used by specific callback \r
- *  for EnumObject on 'W' interfaces\r
- */\r
-typedef struct {\r
-  LPDIENUMDEVICEOBJECTSCALLBACKW lpCallBack;\r
-  LPVOID lpvRef;\r
-} device_enumobjects_AtoWcb_data;\r
-\r
-extern BOOL DIEnumDevicesCallbackAtoW(LPCDIDEVICEOBJECTINSTANCEA, LPVOID);\r
-\r
-\r
-/* Various debug tools */\r
-extern void _dump_cooperativelevel_DI(DWORD dwFlags) ;\r
-extern void _dump_EnumObjects_flags(DWORD dwFlags) ;\r
-extern void _dump_DIPROPHEADER(LPCDIPROPHEADER diph) ;\r
-extern void _dump_OBJECTINSTANCEA(DIDEVICEOBJECTINSTANCEA *ddoi) ;\r
-extern void _dump_OBJECTINSTANCEW(DIDEVICEOBJECTINSTANCEW *ddoi) ;\r
-extern void _dump_DIDATAFORMAT(const DIDATAFORMAT *df) ;\r
-extern const char *_dump_dinput_GUID(const GUID *guid) ;\r
-\r
-/* And the stubs */\r
-extern HRESULT WINAPI IDirectInputDevice2AImpl_SetDataFormat(\r
-       LPDIRECTINPUTDEVICE8A iface,LPCDIDATAFORMAT df ) ;\r
-extern HRESULT WINAPI IDirectInputDevice2AImpl_SetCooperativeLevel(\r
-       LPDIRECTINPUTDEVICE8A iface,HWND hwnd,DWORD dwflags ) ;\r
-extern HRESULT WINAPI IDirectInputDevice2AImpl_SetEventNotification(\r
-       LPDIRECTINPUTDEVICE8A iface,HANDLE hnd ) ;\r
-extern ULONG WINAPI IDirectInputDevice2AImpl_Release(LPDIRECTINPUTDEVICE8A iface) ;\r
-extern HRESULT WINAPI IDirectInputDevice2AImpl_QueryInterface(LPDIRECTINPUTDEVICE8A iface,REFIID riid,LPVOID *ppobj);\r
-extern HRESULT WINAPI IDirectInputDevice2WImpl_QueryInterface(LPDIRECTINPUTDEVICE8W iface,REFIID riid,LPVOID *ppobj);\r
-extern ULONG WINAPI IDirectInputDevice2AImpl_AddRef(\r
-       LPDIRECTINPUTDEVICE8A iface) ;\r
-extern HRESULT WINAPI IDirectInputDevice2AImpl_EnumObjects(\r
-       LPDIRECTINPUTDEVICE8A iface,\r
-       LPDIENUMDEVICEOBJECTSCALLBACKA lpCallback,\r
-       LPVOID lpvRef,\r
-       DWORD dwFlags) ;\r
-extern HRESULT WINAPI IDirectInputDevice2WImpl_EnumObjects(\r
-       LPDIRECTINPUTDEVICE8W iface,\r
-       LPDIENUMDEVICEOBJECTSCALLBACKW lpCallback,\r
-       LPVOID lpvRef,\r
-       DWORD dwFlags) ;\r
-extern HRESULT WINAPI IDirectInputDevice2AImpl_GetProperty(\r
-       LPDIRECTINPUTDEVICE8A iface,\r
-       REFGUID rguid,\r
-       LPDIPROPHEADER pdiph) ;\r
-extern HRESULT WINAPI IDirectInputDevice2AImpl_GetObjectInfo(\r
-       LPDIRECTINPUTDEVICE8A iface,\r
-       LPDIDEVICEOBJECTINSTANCEA pdidoi,\r
-       DWORD dwObj,\r
-       DWORD dwHow) ;\r
-extern HRESULT WINAPI IDirectInputDevice2WImpl_GetObjectInfo(LPDIRECTINPUTDEVICE8W iface, \r
-                                                            LPDIDEVICEOBJECTINSTANCEW pdidoi,\r
-                                                            DWORD dwObj,\r
-                                                            DWORD dwHow);\r
-extern HRESULT WINAPI IDirectInputDevice2AImpl_GetDeviceInfo(\r
-       LPDIRECTINPUTDEVICE8A iface,\r
-       LPDIDEVICEINSTANCEA pdidi) ;\r
-extern HRESULT WINAPI IDirectInputDevice2WImpl_GetDeviceInfo(\r
-       LPDIRECTINPUTDEVICE8W iface,\r
-       LPDIDEVICEINSTANCEW pdidi) ;\r
-extern HRESULT WINAPI IDirectInputDevice2AImpl_RunControlPanel(\r
-       LPDIRECTINPUTDEVICE8A iface,\r
-       HWND hwndOwner,\r
-       DWORD dwFlags) ;\r
-extern HRESULT WINAPI IDirectInputDevice2AImpl_Initialize(\r
-       LPDIRECTINPUTDEVICE8A iface,\r
-       HINSTANCE hinst,\r
-       DWORD dwVersion,\r
-       REFGUID rguid) ;\r
-extern HRESULT WINAPI IDirectInputDevice2AImpl_CreateEffect(\r
-       LPDIRECTINPUTDEVICE8A iface,\r
-       REFGUID rguid,\r
-       LPCDIEFFECT lpeff,\r
-       LPDIRECTINPUTEFFECT *ppdef,\r
-       LPUNKNOWN pUnkOuter) ;\r
-extern HRESULT WINAPI IDirectInputDevice2AImpl_EnumEffects(\r
-       LPDIRECTINPUTDEVICE8A iface,\r
-       LPDIENUMEFFECTSCALLBACKA lpCallback,\r
-       LPVOID lpvRef,\r
-       DWORD dwFlags) ;\r
-extern HRESULT WINAPI IDirectInputDevice2WImpl_EnumEffects(\r
-       LPDIRECTINPUTDEVICE8W iface,\r
-       LPDIENUMEFFECTSCALLBACKW lpCallback,\r
-       LPVOID lpvRef,\r
-       DWORD dwFlags) ;\r
-extern HRESULT WINAPI IDirectInputDevice2AImpl_GetEffectInfo(\r
-       LPDIRECTINPUTDEVICE8A iface,\r
-       LPDIEFFECTINFOA lpdei,\r
-       REFGUID rguid) ;\r
-extern HRESULT WINAPI IDirectInputDevice2WImpl_GetEffectInfo(\r
-       LPDIRECTINPUTDEVICE8W iface,\r
-       LPDIEFFECTINFOW lpdei,\r
-       REFGUID rguid) ;\r
-extern HRESULT WINAPI IDirectInputDevice2AImpl_GetForceFeedbackState(\r
-       LPDIRECTINPUTDEVICE8A iface,\r
-       LPDWORD pdwOut) ;\r
-extern HRESULT WINAPI IDirectInputDevice2AImpl_SendForceFeedbackCommand(\r
-       LPDIRECTINPUTDEVICE8A iface,\r
-       DWORD dwFlags) ;\r
-extern HRESULT WINAPI IDirectInputDevice2AImpl_EnumCreatedEffectObjects(\r
-       LPDIRECTINPUTDEVICE8A iface,\r
-       LPDIENUMCREATEDEFFECTOBJECTSCALLBACK lpCallback,\r
-       LPVOID lpvRef,\r
-       DWORD dwFlags) ;\r
-extern HRESULT WINAPI IDirectInputDevice2AImpl_Escape(\r
-       LPDIRECTINPUTDEVICE8A iface,\r
-       LPDIEFFESCAPE lpDIEEsc) ;\r
-extern HRESULT WINAPI IDirectInputDevice2AImpl_Poll(\r
-       LPDIRECTINPUTDEVICE8A iface) ;\r
-extern HRESULT WINAPI IDirectInputDevice2AImpl_SendDeviceData(\r
-       LPDIRECTINPUTDEVICE8A iface,\r
-       DWORD cbObjectData,\r
-       LPCDIDEVICEOBJECTDATA rgdod,\r
-       LPDWORD pdwInOut,\r
-       DWORD dwFlags) ;\r
-extern HRESULT WINAPI IDirectInputDevice7AImpl_EnumEffectsInFile(LPDIRECTINPUTDEVICE8A iface,\r
-                                                                LPCSTR lpszFileName,\r
-                                                                LPDIENUMEFFECTSINFILECALLBACK pec,\r
-                                                                LPVOID pvRef,\r
-                                                                DWORD dwFlags) ;\r
-extern HRESULT WINAPI IDirectInputDevice7WImpl_EnumEffectsInFile(LPDIRECTINPUTDEVICE8W iface,\r
-                                                                LPCWSTR lpszFileName,\r
-                                                                LPDIENUMEFFECTSINFILECALLBACK pec,\r
-                                                                LPVOID pvRef,\r
-                                                                DWORD dwFlags) ;\r
-extern HRESULT WINAPI IDirectInputDevice7AImpl_WriteEffectToFile(LPDIRECTINPUTDEVICE8A iface,\r
-                                                                LPCSTR lpszFileName,\r
-                                                                DWORD dwEntries,\r
-                                                                LPDIFILEEFFECT rgDiFileEft,\r
-                                                                DWORD dwFlags) ;\r
-extern HRESULT WINAPI IDirectInputDevice7WImpl_WriteEffectToFile(LPDIRECTINPUTDEVICE8W iface,\r
-                                                                LPCWSTR lpszFileName,\r
-                                                                DWORD dwEntries,\r
-                                                                LPDIFILEEFFECT rgDiFileEft,\r
-                                                                DWORD dwFlags) ;\r
-extern HRESULT WINAPI IDirectInputDevice8AImpl_BuildActionMap(LPDIRECTINPUTDEVICE8A iface,\r
-                                                             LPDIACTIONFORMATA lpdiaf,\r
-                                                             LPCSTR lpszUserName,\r
-                                                             DWORD dwFlags);\r
-extern HRESULT WINAPI IDirectInputDevice8WImpl_BuildActionMap(LPDIRECTINPUTDEVICE8W iface,\r
-                                                             LPDIACTIONFORMATW lpdiaf,\r
-                                                             LPCWSTR lpszUserName,\r
-                                                             DWORD dwFlags);\r
-extern HRESULT WINAPI IDirectInputDevice8AImpl_SetActionMap(LPDIRECTINPUTDEVICE8A iface,\r
-                                                           LPDIACTIONFORMATA lpdiaf,\r
-                                                           LPCSTR lpszUserName,\r
-                                                           DWORD dwFlags);\r
-extern HRESULT WINAPI IDirectInputDevice8WImpl_SetActionMap(LPDIRECTINPUTDEVICE8W iface,\r
-                                                           LPDIACTIONFORMATW lpdiaf,\r
-                                                           LPCWSTR lpszUserName,\r
-                                                           DWORD dwFlags);\r
-extern HRESULT WINAPI IDirectInputDevice8AImpl_GetImageInfo(LPDIRECTINPUTDEVICE8A iface,\r
-                                                           LPDIDEVICEIMAGEINFOHEADERA lpdiDevImageInfoHeader);\r
-extern HRESULT WINAPI IDirectInputDevice8WImpl_GetImageInfo(LPDIRECTINPUTDEVICE8W iface,\r
-                                                           LPDIDEVICEIMAGEINFOHEADERW lpdiDevImageInfoHeader);\r
-\r
-#endif /* __WINE_DLLS_DINPUT_DINPUTDEVICE_PRIVATE_H */\r
+/*
+ * Copyright 2000 Lionel Ulmer
+ * Copyright 2000-2001 TransGaming Technologies Inc.
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#ifndef __WINE_DLLS_DINPUT_DINPUTDEVICE_PRIVATE_H
+#define __WINE_DLLS_DINPUT_DINPUTDEVICE_PRIVATE_H
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "dinput.h"
+
+/* Device implementation */
+typedef struct IDirectInputDevice2AImpl IDirectInputDevice2AImpl;
+struct IDirectInputDevice2AImpl
+{
+        IDirectInputDevice2AVtbl       *lpVtbl;
+        DWORD                           ref;
+        GUID                            guid;
+};
+
+/* Routines to do DataFormat / WineFormat conversions */
+typedef struct {
+  int size;
+  int offset_in;
+  int offset_out;
+  int value;
+} DataTransform;
+
+typedef struct {
+  int size;
+  int internal_format_size;
+  DataTransform *dt;
+} DataFormat;
+extern void fill_DataFormat(void *out, const void *in, DataFormat *df) ;
+extern DataFormat *create_DataFormat(const DIDATAFORMAT *wine_format, LPCDIDATAFORMAT asked_format, int *offset) ;
+extern void release_DataFormat(DataFormat *df) ;
+
+/* Used to fill events in the queue */
+#define GEN_EVENT(offset,data,xtime,seq)                                       \
+{                                                                              \
+  /* If queue_len > 0, queuing is requested -> TRACE the event queued */       \
+  if (This->queue_len > 0) {                                                   \
+    int nq;                                                                    \
+    TRACE(" queueing %d at offset %d (queue head %d / size %d)\n",             \
+         (int) (data), (int) (offset),                                         \
+         (int) (This->queue_head), (int) (This->queue_len));                   \
+                                                                               \
+    nq = This->queue_head+1;                                                   \
+    while (nq >= This->queue_len) nq -= This->queue_len;                       \
+    if ((offset >= 0) && (nq != This->queue_tail)) {                           \
+      This->data_queue[This->queue_head].dwOfs = offset;                       \
+      This->data_queue[This->queue_head].dwData = data;                                \
+      This->data_queue[This->queue_head].dwTimeStamp = xtime;                  \
+      This->data_queue[This->queue_head].dwSequence = seq;                     \
+      This->queue_head = nq;                                                   \
+    } else                                                                      \
+      This->overflow = TRUE;                                                    \
+  }                                                                            \
+}
+
+/**
+ * Callback Data used by specific callback 
+ *  for EnumObject on 'W' interfaces
+ */
+typedef struct {
+  LPDIENUMDEVICEOBJECTSCALLBACKW lpCallBack;
+  LPVOID lpvRef;
+} device_enumobjects_AtoWcb_data;
+
+extern BOOL DIEnumDevicesCallbackAtoW(LPCDIDEVICEOBJECTINSTANCEA, LPVOID);
+
+
+/* Various debug tools */
+extern void _dump_cooperativelevel_DI(DWORD dwFlags) ;
+extern void _dump_EnumObjects_flags(DWORD dwFlags) ;
+extern void _dump_DIPROPHEADER(LPCDIPROPHEADER diph) ;
+extern void _dump_OBJECTINSTANCEA(DIDEVICEOBJECTINSTANCEA *ddoi) ;
+extern void _dump_OBJECTINSTANCEW(DIDEVICEOBJECTINSTANCEW *ddoi) ;
+extern void _dump_DIDATAFORMAT(const DIDATAFORMAT *df) ;
+extern const char *_dump_dinput_GUID(const GUID *guid) ;
+
+/* And the stubs */
+extern HRESULT WINAPI IDirectInputDevice2AImpl_SetDataFormat(
+       LPDIRECTINPUTDEVICE8A iface,LPCDIDATAFORMAT df ) ;
+extern HRESULT WINAPI IDirectInputDevice2AImpl_SetCooperativeLevel(
+       LPDIRECTINPUTDEVICE8A iface,HWND hwnd,DWORD dwflags ) ;
+extern HRESULT WINAPI IDirectInputDevice2AImpl_SetEventNotification(
+       LPDIRECTINPUTDEVICE8A iface,HANDLE hnd ) ;
+extern ULONG WINAPI IDirectInputDevice2AImpl_Release(LPDIRECTINPUTDEVICE8A iface) ;
+extern HRESULT WINAPI IDirectInputDevice2AImpl_QueryInterface(LPDIRECTINPUTDEVICE8A iface,REFIID riid,LPVOID *ppobj);
+extern HRESULT WINAPI IDirectInputDevice2WImpl_QueryInterface(LPDIRECTINPUTDEVICE8W iface,REFIID riid,LPVOID *ppobj);
+extern ULONG WINAPI IDirectInputDevice2AImpl_AddRef(
+       LPDIRECTINPUTDEVICE8A iface) ;
+extern HRESULT WINAPI IDirectInputDevice2AImpl_EnumObjects(
+       LPDIRECTINPUTDEVICE8A iface,
+       LPDIENUMDEVICEOBJECTSCALLBACKA lpCallback,
+       LPVOID lpvRef,
+       DWORD dwFlags) ;
+extern HRESULT WINAPI IDirectInputDevice2WImpl_EnumObjects(
+       LPDIRECTINPUTDEVICE8W iface,
+       LPDIENUMDEVICEOBJECTSCALLBACKW lpCallback,
+       LPVOID lpvRef,
+       DWORD dwFlags) ;
+extern HRESULT WINAPI IDirectInputDevice2AImpl_GetProperty(
+       LPDIRECTINPUTDEVICE8A iface,
+       REFGUID rguid,
+       LPDIPROPHEADER pdiph) ;
+extern HRESULT WINAPI IDirectInputDevice2AImpl_GetObjectInfo(
+       LPDIRECTINPUTDEVICE8A iface,
+       LPDIDEVICEOBJECTINSTANCEA pdidoi,
+       DWORD dwObj,
+       DWORD dwHow) ;
+extern HRESULT WINAPI IDirectInputDevice2WImpl_GetObjectInfo(LPDIRECTINPUTDEVICE8W iface, 
+                                                            LPDIDEVICEOBJECTINSTANCEW pdidoi,
+                                                            DWORD dwObj,
+                                                            DWORD dwHow);
+extern HRESULT WINAPI IDirectInputDevice2AImpl_GetDeviceInfo(
+       LPDIRECTINPUTDEVICE8A iface,
+       LPDIDEVICEINSTANCEA pdidi) ;
+extern HRESULT WINAPI IDirectInputDevice2WImpl_GetDeviceInfo(
+       LPDIRECTINPUTDEVICE8W iface,
+       LPDIDEVICEINSTANCEW pdidi) ;
+extern HRESULT WINAPI IDirectInputDevice2AImpl_RunControlPanel(
+       LPDIRECTINPUTDEVICE8A iface,
+       HWND hwndOwner,
+       DWORD dwFlags) ;
+extern HRESULT WINAPI IDirectInputDevice2AImpl_Initialize(
+       LPDIRECTINPUTDEVICE8A iface,
+       HINSTANCE hinst,
+       DWORD dwVersion,
+       REFGUID rguid) ;
+extern HRESULT WINAPI IDirectInputDevice2AImpl_CreateEffect(
+       LPDIRECTINPUTDEVICE8A iface,
+       REFGUID rguid,
+       LPCDIEFFECT lpeff,
+       LPDIRECTINPUTEFFECT *ppdef,
+       LPUNKNOWN pUnkOuter) ;
+extern HRESULT WINAPI IDirectInputDevice2AImpl_EnumEffects(
+       LPDIRECTINPUTDEVICE8A iface,
+       LPDIENUMEFFECTSCALLBACKA lpCallback,
+       LPVOID lpvRef,
+       DWORD dwFlags) ;
+extern HRESULT WINAPI IDirectInputDevice2WImpl_EnumEffects(
+       LPDIRECTINPUTDEVICE8W iface,
+       LPDIENUMEFFECTSCALLBACKW lpCallback,
+       LPVOID lpvRef,
+       DWORD dwFlags) ;
+extern HRESULT WINAPI IDirectInputDevice2AImpl_GetEffectInfo(
+       LPDIRECTINPUTDEVICE8A iface,
+       LPDIEFFECTINFOA lpdei,
+       REFGUID rguid) ;
+extern HRESULT WINAPI IDirectInputDevice2WImpl_GetEffectInfo(
+       LPDIRECTINPUTDEVICE8W iface,
+       LPDIEFFECTINFOW lpdei,
+       REFGUID rguid) ;
+extern HRESULT WINAPI IDirectInputDevice2AImpl_GetForceFeedbackState(
+       LPDIRECTINPUTDEVICE8A iface,
+       LPDWORD pdwOut) ;
+extern HRESULT WINAPI IDirectInputDevice2AImpl_SendForceFeedbackCommand(
+       LPDIRECTINPUTDEVICE8A iface,
+       DWORD dwFlags) ;
+extern HRESULT WINAPI IDirectInputDevice2AImpl_EnumCreatedEffectObjects(
+       LPDIRECTINPUTDEVICE8A iface,
+       LPDIENUMCREATEDEFFECTOBJECTSCALLBACK lpCallback,
+       LPVOID lpvRef,
+       DWORD dwFlags) ;
+extern HRESULT WINAPI IDirectInputDevice2AImpl_Escape(
+       LPDIRECTINPUTDEVICE8A iface,
+       LPDIEFFESCAPE lpDIEEsc) ;
+extern HRESULT WINAPI IDirectInputDevice2AImpl_Poll(
+       LPDIRECTINPUTDEVICE8A iface) ;
+extern HRESULT WINAPI IDirectInputDevice2AImpl_SendDeviceData(
+       LPDIRECTINPUTDEVICE8A iface,
+       DWORD cbObjectData,
+       LPCDIDEVICEOBJECTDATA rgdod,
+       LPDWORD pdwInOut,
+       DWORD dwFlags) ;
+extern HRESULT WINAPI IDirectInputDevice7AImpl_EnumEffectsInFile(LPDIRECTINPUTDEVICE8A iface,
+                                                                LPCSTR lpszFileName,
+                                                                LPDIENUMEFFECTSINFILECALLBACK pec,
+                                                                LPVOID pvRef,
+                                                                DWORD dwFlags) ;
+extern HRESULT WINAPI IDirectInputDevice7WImpl_EnumEffectsInFile(LPDIRECTINPUTDEVICE8W iface,
+                                                                LPCWSTR lpszFileName,
+                                                                LPDIENUMEFFECTSINFILECALLBACK pec,
+                                                                LPVOID pvRef,
+                                                                DWORD dwFlags) ;
+extern HRESULT WINAPI IDirectInputDevice7AImpl_WriteEffectToFile(LPDIRECTINPUTDEVICE8A iface,
+                                                                LPCSTR lpszFileName,
+                                                                DWORD dwEntries,
+                                                                LPDIFILEEFFECT rgDiFileEft,
+                                                                DWORD dwFlags) ;
+extern HRESULT WINAPI IDirectInputDevice7WImpl_WriteEffectToFile(LPDIRECTINPUTDEVICE8W iface,
+                                                                LPCWSTR lpszFileName,
+                                                                DWORD dwEntries,
+                                                                LPDIFILEEFFECT rgDiFileEft,
+                                                                DWORD dwFlags) ;
+extern HRESULT WINAPI IDirectInputDevice8AImpl_BuildActionMap(LPDIRECTINPUTDEVICE8A iface,
+                                                             LPDIACTIONFORMATA lpdiaf,
+                                                             LPCSTR lpszUserName,
+                                                             DWORD dwFlags);
+extern HRESULT WINAPI IDirectInputDevice8WImpl_BuildActionMap(LPDIRECTINPUTDEVICE8W iface,
+                                                             LPDIACTIONFORMATW lpdiaf,
+                                                             LPCWSTR lpszUserName,
+                                                             DWORD dwFlags);
+extern HRESULT WINAPI IDirectInputDevice8AImpl_SetActionMap(LPDIRECTINPUTDEVICE8A iface,
+                                                           LPDIACTIONFORMATA lpdiaf,
+                                                           LPCSTR lpszUserName,
+                                                           DWORD dwFlags);
+extern HRESULT WINAPI IDirectInputDevice8WImpl_SetActionMap(LPDIRECTINPUTDEVICE8W iface,
+                                                           LPDIACTIONFORMATW lpdiaf,
+                                                           LPCWSTR lpszUserName,
+                                                           DWORD dwFlags);
+extern HRESULT WINAPI IDirectInputDevice8AImpl_GetImageInfo(LPDIRECTINPUTDEVICE8A iface,
+                                                           LPDIDEVICEIMAGEINFOHEADERA lpdiDevImageInfoHeader);
+extern HRESULT WINAPI IDirectInputDevice8WImpl_GetImageInfo(LPDIRECTINPUTDEVICE8W iface,
+                                                           LPDIDEVICEIMAGEINFOHEADERW lpdiDevImageInfoHeader);
+
+#endif /* __WINE_DLLS_DINPUT_DINPUTDEVICE_PRIVATE_H */