Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246/* * Copyright (C) the Wine project * * 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 */
#ifndef __DINPUTD_INCLUDED__#define __DINPUTD_INCLUDED__
#define COM_NO_WINDOWS_H#include <objbase.h>
#ifndef DIRECTINPUT_VERSION#define DIRECTINPUT_VERSION 0x0800#endif
DEFINE_GUID(IID_IDirectInputJoyConfig8, 0xEB0D7DFA,0x1990,0x4F27,0xB4,0xD6,0xED,0xF2,0xEE,0xC4,0xA4,0x4C);
typedef struct IDirectInputJoyConfig8 *LPDIRECTINPUTJOYCONFIG8;
typedef BOOL (CALLBACK *LPDIJOYTYPECALLBACK)(LPCWSTR, LPVOID);
#define MAX_JOYSTRING 256#ifndef MAX_JOYSTICKOEMVXDNAME#define MAX_JOYSTICKOEMVXDNAME 260#endif
#define JOY_POV_NUMDIRS 4#define JOY_POVVAL_FORWARD 0#define JOY_POVVAL_BACKWARD 1#define JOY_POVVAL_LEFT 2#define JOY_POVVAL_RIGHT 3
#define DIERR_NOMOREITEMS MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_NO_MORE_ITEMS)
typedef struct joypos_tag{ DWORD dwX; DWORD dwY; DWORD dwZ; DWORD dwR; DWORD dwU; DWORD dwV;} JOYPOS, *LPJOYPOS;
typedef struct joyrange_tag{ JOYPOS jpMin; JOYPOS jpMax; JOYPOS jpCenter;} JOYRANGE, *LPJOYRANGE;
typedef struct joyreguservalues_tag{ DWORD dwTimeOut; JOYRANGE jrvRanges; JOYPOS jpDeadZone;} JOYREGUSERVALUES, *LPJOYREGUSERVALUES;
typedef struct joyreghwsettings_tag{ DWORD dwFlags; DWORD dwNumButtons;} JOYREGHWSETTINGS, *LPJOYHWSETTINGS;
typedef struct joyreghwvalues_tag{ JOYRANGE jrvHardware; DWORD dwPOVValues[JOY_POV_NUMDIRS]; DWORD dwCalFlags;} JOYREGHWVALUES, *LPJOYREGHWVALUES;
typedef struct joyreghwconfig_tag{ JOYREGHWSETTINGS hws; DWORD dwUsageSettings; JOYREGHWVALUES hwv; DWORD dwType; DWORD dwReserved;} JOYREGHWCONFIG, *LPJOYREGHWCONFIG;
typedef struct DIJOYTYPEINFO_DX5{ DWORD dwSize; JOYREGHWSETTINGS hws; CLSID clsidConfig; WCHAR wszDisplayName[MAX_JOYSTRING]; WCHAR wszCallout[MAX_JOYSTICKOEMVXDNAME];} DIJOYTYPEINFO_DX5, *LPDIJOYTYPEINFO_DX5;typedef const DIJOYTYPEINFO_DX5 *LPCDIJOYTYPEINFO_DX5;
typedef struct DIJOYTYPEINFO_DX6{ DWORD dwSize; JOYREGHWSETTINGS hws; CLSID clsidConfig; WCHAR wszDisplayName[MAX_JOYSTRING]; WCHAR wszCallout[MAX_JOYSTICKOEMVXDNAME]; WCHAR wszHardwareId[MAX_JOYSTRING]; DWORD dwFlags1;} DIJOYTYPEINFO_DX6, *LPDIJOYTYPEINFO_DX6;typedef const DIJOYTYPEINFO_DX6 *LPCDIJOYTYPEINFO_DX6;
typedef struct DIJOYTYPEINFO{ DWORD dwSize; JOYREGHWSETTINGS hws; CLSID clsidConfig; WCHAR wszDisplayName[MAX_JOYSTRING]; WCHAR wszCallout[MAX_JOYSTICKOEMVXDNAME]; WCHAR wszHardwareId[MAX_JOYSTRING]; DWORD dwFlags1; DWORD dwFlags2; WCHAR wszMapFile[MAX_JOYSTRING];} DIJOYTYPEINFO, *LPDIJOYTYPEINFO;typedef const DIJOYTYPEINFO *LPCDIJOYTYPEINFO;#define DIJC_GUIDINSTANCE 0x00000001#define DIJC_REGHWCONFIGTYPE 0x00000002#define DIJC_GAIN 0x00000004#define DIJC_CALLOUT 0x00000008#define DIJC_WDMGAMEPORT 0x00000010
typedef struct DIJOYCONFIG_DX5{ DWORD dwSize; GUID guidInstance; JOYREGHWCONFIG hwc; DWORD dwGain; WCHAR wszType[MAX_JOYSTRING]; WCHAR wszCallout[MAX_JOYSTRING];} DIJOYCONFIG_DX5, *LPDIJOYCONFIG_DX5;typedef const DIJOYCONFIG_DX5 *LPCDIJOYCONFIG_DX5;
typedef struct DIJOYCONFIG{ DWORD dwSize; GUID guidInstance; JOYREGHWCONFIG hwc; DWORD dwGain; WCHAR wszType[MAX_JOYSTRING]; WCHAR wszCallout[MAX_JOYSTRING]; GUID guidGameport;} DIJOYCONFIG, *LPDIJOYCONFIG;typedef const DIJOYCONFIG *LPCDIJOYCONFIG;
typedef struct DIJOYUSERVALUES{ DWORD dwSize; JOYREGUSERVALUES ruv; WCHAR wszGlobalDriver[MAX_JOYSTRING]; WCHAR wszGameportEmulator[MAX_JOYSTRING];} DIJOYUSERVALUES, *LPDIJOYUSERVALUES;typedef const DIJOYUSERVALUES *LPCDIJOYUSERVALUES;
/***************************************************************************** * IDirectInputJoyConfig8 interface */#define INTERFACE IDirectInputJoyConfig8DECLARE_INTERFACE_(IDirectInputJoyConfig8, IUnknown){ /*** IUnknown methods ***/ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; /*** IDirectInputJoyConfig8 methods ***/ STDMETHOD(Acquire)(THIS) PURE; STDMETHOD(Unacquire)(THIS) PURE; STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE; STDMETHOD(SendNotify)(THIS) PURE; STDMETHOD(EnumTypes)(THIS_ LPDIJOYTYPECALLBACK, LPVOID) PURE; STDMETHOD(GetTypeInfo)(THIS_ LPCWSTR, LPDIJOYTYPEINFO, DWORD) PURE; STDMETHOD(SetTypeInfo)(THIS_ LPCWSTR, LPCDIJOYTYPEINFO, DWORD, LPWSTR) PURE; STDMETHOD(DeleteType)(THIS_ LPCWSTR) PURE; STDMETHOD(GetConfig)(THIS_ UINT, LPDIJOYCONFIG, DWORD) PURE; STDMETHOD(SetConfig)(THIS_ UINT, LPCDIJOYCONFIG, DWORD) PURE; STDMETHOD(DeleteConfig)(THIS_ UINT) PURE; STDMETHOD(GetUserValues)(THIS_ LPDIJOYUSERVALUES, DWORD) PURE; STDMETHOD(SetUserValues)(THIS_ LPCDIJOYUSERVALUES, DWORD) PURE; STDMETHOD(AddNewHardware)(THIS_ HWND, REFGUID) PURE; STDMETHOD(OpenTypeKey)(THIS_ LPCWSTR, DWORD, PHKEY) PURE; STDMETHOD(OpenAppStatusKey)(THIS_ PHKEY) PURE;};#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)/*** IUnknown methods ***/#define IDirectInputJoyConfig8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)#define IDirectInputJoyConfig8_AddRef(p) (p)->lpVtbl->AddRef(p)#define IDirectInputJoyConfig8_Release(p) (p)->lpVtbl->Release(p)/*** IDirectInputJoyConfig8 methods ***/#define IDirectInputJoyConfig8_Acquire(p) (p)->lpVtbl->Acquire(p)#define IDirectInputJoyConfig8_Unacquire(p) (p)->lpVtbl->Unacquire(p)#define IDirectInputJoyConfig8_SetCooperativeLevel(p,a,b) (p)->lpVtbl->SetCooperativeLevel(p,a,b)#define IDirectInputJoyConfig8_SendNotify(p) (p)->lpVtbl->SendNotify(p)#define IDirectInputJoyConfig8_EnumTypes(p,a,b) (p)->lpVtbl->EnumTypes(p,a,b)#define IDirectInputJoyConfig8_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)#define IDirectInputJoyConfig8_SetTypeInfo(p,a,b,c,d) (p)->lpVtbl->SetTypeInfo(p,a,b,c,d)#define IDirectInputJoyConfig8_DeleteType(p,a) (p)->lpVtbl->DeleteType(p,a)#define IDirectInputJoyConfig8_GetConfig(p,a,b,c) (p)->lpVtbl->GetConfig(p,a,b,c)#define IDirectInputJoyConfig8_SetConfig(p,a,b,c) (p)->lpVtbl->SetConfig(p,a,b,c)#define IDirectInputJoyConfig8_DeleteConfig(p,a) (p)->lpVtbl->DeleteConfig(p,a)#define IDirectInputJoyConfig8_GetUserValues(p,a,b) (p)->lpVtbl->GetUserValues(p,a,b)#define IDirectInputJoyConfig8_SetUserValues(p,a,b) (p)->lpVtbl->SetUserValues(p,a,b)#define IDirectInputJoyConfig8_AddNewHardware(p,a,b) (p)->lpVtbl->AddNewHardware(p,a,b)#define IDirectInputJoyConfig8_OpenTypeKey(p,a,b,c) (p)->lpVtbl->OpenTypeKey(p,a,b,c)#define IDirectInputJoyConfig8_OpenAppStatusKey(p,a) (p)->lpVtbl->OpenAppStatusKey(p,a)#else/*** IUnknown methods ***/#define IDirectInputJoyConfig8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)#define IDirectInputJoyConfig8_AddRef(p) (p)->AddRef()#define IDirectInputJoyConfig8_Release(p) (p)->Release()/*** IDirectInputJoyConfig8 methods ***/#define IDirectInputJoyConfig8_Acquire(p) (p)->Acquire()#define IDirectInputJoyConfig8_Unacquire(p) (p)->Unacquire()#define IDirectInputJoyConfig8_SetCooperativeLevel(p,a,b) (p)->SetCooperativeLevel(a,b)#define IDirectInputJoyConfig8_SendNotify(p) (p)->SendNotify()#define IDirectInputJoyConfig8_EnumTypes(p,a,b) (p)->EnumTypes(a,b)#define IDirectInputJoyConfig8_GetTypeInfo(p,a,b,c) (p)->GetTypeInfo(a,b,c)#define IDirectInputJoyConfig8_SetTypeInfo(p,a,b,c,d) (p)->SetTypeInfo(a,b,c,d)#define IDirectInputJoyConfig8_DeleteType(p,a) (p)->DeleteType(a)#define IDirectInputJoyConfig8_GetConfig(p,a,b,c) (p)->GetConfig(a,b,c)#define IDirectInputJoyConfig8_SetConfig(p,a,b,c) (p)->SetConfig(a,b,c)#define IDirectInputJoyConfig8_DeleteConfig(p,a) (p)->DeleteConfig(a)#define IDirectInputJoyConfig8_GetUserValues(p,a,b) (p)->GetUserValues(a,b)#define IDirectInputJoyConfig8_SetUserValues(p,a,b) (p)->SetUserValues(a,b)#define IDirectInputJoyConfig8_AddNewHardware(p,a,b) (p)->AddNewHardware(a,b)#define IDirectInputJoyConfig8_OpenTypeKey(p,a,b,c) (p)->OpenTypeKey(a,b,c)#define IDirectInputJoyConfig8_OpenAppStatusKey(p,a) (p)->OpenAppStatusKey(a)#endif
#endif /* __DINPUTD_INCLUDED__ */