/****************************************************************************** * * dimap.h * * Copyright (c) 1999, 2000 Microsoft Corporation. All Rights Reserved. * * Abstract: * * Contents: * *****************************************************************************/ #ifdef __cplusplus extern "C" { #endif #ifndef _DIMAP_H #define _DIMAP_H #include "dinput.h" //temporary error codes //If codes are changed or more are added, //change exception handling dump as well. #define E_SYNTAX_ERROR \ MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x00000600L) #define E_DEFINITION_NOT_FOUND \ MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x00000601L) #define E_LINE_TO_LONG \ MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x00000602L) #define E_ACTION_NOT_DEFINED \ MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x00000603L) #define E_DEVICE_NOT_DEFINED \ MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x00000604L) #define E_VENDORID_NOT_FOUND \ MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x00000605L) #define E_PRODUCTID_NOT_FOUND \ MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x00000606L) #define E_USAGE_NOT_FOUND \ MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x00000607L) #define E_USAGEPAGE_NOT_FOUND \ MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x00000608L) #define E_DEVICE_NOT_FOUND \ MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x00000609L) #define E_BAD_VERSION \ MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0000060aL) #define E_DEVICE_MISSING_CONTROL \ MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0000060bL) #define E_DEV_OBJ_NOT_FOUND \ MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0000060cL) #define E_CTRL_W_OFFSET_NOTFOUND \ MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0000060dL) #define E_FILENAME_TO_LONG \ MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0000060eL) #define E_WRONG_ALIGN_DATA \ MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0000060fL) #define E_CORRUPT_IMAGE_DATA \ MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x00000610L) #define S_NOMAP ((HRESULT)0x00000002L) #undef INTERFACE #define INTERFACE IDirectInputMapperW DECLARE_INTERFACE_(IDirectInputMapperW, IUnknown) { /*** IUnknown methods ***/ STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; /*** IDirectInputMapperW methods ***/ // STDMETHOD(Unacquire)(THIS) PURE; // STDMETHOD(GetDeviceState)(THIS_ DWORD,LPVOID) PURE; STDMETHOD(Initialize)(THIS_ LPCGUID,LPCWSTR,DWORD) PURE; STDMETHOD(GetActionMap)(THIS_ LPDIACTIONFORMATW,LPCWSTR,LPFILETIME,DWORD) PURE; STDMETHOD(SaveActionMap)(THIS_ LPDIACTIONFORMATW,LPCWSTR,DWORD) PURE; STDMETHOD(GetImageInfo)(THIS_ LPDIDEVICEIMAGEINFOHEADERW) PURE; }; typedef struct IDirectInputMapperW *LPDIRECTINPUTMAPPERW; #undef INTERFACE #define INTERFACE IDirectInputMapperA DECLARE_INTERFACE_(IDirectInputMapperA, IUnknown) { /*** IUnknown methods ***/ STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; /*** IDirectInputMapperA methods ***/ // STDMETHOD(Unacquire)(THIS) PURE; // STDMETHOD(GetDeviceState)(THIS_ DWORD,LPVOID) PURE; STDMETHOD(Initialize)(THIS_ LPCGUID,LPCSTR,DWORD) PURE; STDMETHOD(GetActionMap)(THIS_ LPDIACTIONFORMATA,LPCSTR,LPFILETIME,DWORD) PURE; STDMETHOD(SaveActionMap)(THIS_ LPDIACTIONFORMATA,LPCSTR,DWORD) PURE; STDMETHOD(GetImageInfo)(THIS_ LPDIDEVICEIMAGEINFOHEADERA) PURE; }; typedef struct IDirectInputMapperA *LPDIRECTINPUTMAPPERA; #undef INTERFACE #define INTERFACE IDirectInputMapperVendorW DECLARE_INTERFACE_(IDirectInputMapperVendorW, IUnknown) { /*** IUnknown methods ***/ STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; /*** IDirectInputMapperVendorW methods ***/ STDMETHOD(Initialize)(THIS_ LPCGUID,LPCWSTR,DWORD) PURE; STDMETHOD(WriteVendorFile)(THIS_ LPDIACTIONFORMATW,LPDIDEVICEIMAGEINFOHEADERW,DWORD) PURE; }; typedef struct IDirectInputMapperVendorW *LPDIRECTINPUTMAPPERVENDORW; #undef INTERFACE #define INTERFACE IDirectInputMapperVendorA DECLARE_INTERFACE_(IDirectInputMapperVendorA, IUnknown) { /*** IUnknown methods ***/ STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; /*** IDirectInputMapperVendorA methods ***/ STDMETHOD(Initialize)(THIS_ LPCGUID,LPCSTR,DWORD) PURE; STDMETHOD(WriteVendorFile)(THIS_ LPDIACTIONFORMATA,LPDIDEVICEIMAGEINFOHEADERA,DWORD) PURE; }; typedef struct IDirectInputMapperVendorA *LPDIRECTINPUTMAPPERVENDORA; #ifdef UNICODE #define IID_IDirectInputMapI IID_IDirectInputMapIW #define IDirectInputMapper IDirectInputMapperW #define IDirectInputMapperVtbl IDirectInputMapperWVtbl #define IID_IDirectInputMapperVendor IID_IDirectInputMapperVendorW #define IDirectInputMapperVendor IDirectInputMapperVendorW #define IDirectInputMapperVendorVtbl IDirectInputMapperVendorWVtbl #else #define IID_IDirectInputMapI IID_IDirectInputMapIA #define IDirectInputMapper IDirectInputMapperA #define IDirectInputMapperVtbl IDirectInputMapperAVtbl #define IID_IDirectInputMapperVendor IID_IDirectInputMapperVendorA #define IDirectInputMapperVendor IDirectInputMapperVendorA #define IDirectInputMapperVendorVtbl IDirectInputMapperVendorAVtbl #endif typedef struct IDirectInputMapper *LPDIRECTINPUTMAPPER; typedef struct IDirectInputMapperVendor *LPDIRECTINPUTMAPPERVENDOR; #if !defined(__cplusplus) || defined(CINTERFACE) #define IDirectInputMapper_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IDirectInputMapper_AddRef(p) (p)->lpVtbl->AddRef(p) #define IDirectInputMapper_Release(p) (p)->lpVtbl->Release(p) //#define IDirectInputDevice_Unacquire(p) (p)->lpVtbl->Unacquire(p) //#define IDirectInputDevice_GetDeviceState(p,a,b) (p)->lpVtbl->GetDeviceState(p,a,b) #define IDirectInputMapper_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c) #define IDirectInputMapper_GetActionMap(p,a,b,c,d) (p)->lpVtbl->GetActionMap(p,a,b,c,d) #define IDirectInputMapper_SaveActionMap(p,a,b,c) (p)->lpVtbl->SaveActionMap(p,a,b,c) #define IDirectInputMapper_GetImageInfo(p,a) (p)->lpVtbl->GetImageInfo(p,a) #define IDirectInputMapperVendor_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IDirectInputMapperVendor_AddRef(p) (p)->lpVtbl->AddRef(p) #define IDirectInputMapperVendor_Release(p) (p)->lpVtbl->Release(p) #define IDirectInputMapperVendor_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c) #define IDirectInputMapperVendor_WriteVendorFile(p,a,b,c) (p)->lpVtbl->WriteVendorFile(p,a,b,c) #else #define IDirectInputMapper_QueryInterface(p,a,b) (p)->QueryInterface(a,b) #define IDirectInputMapper_AddRef(p) (p)->AddRef() #define IDirectInputMapper_Release(p) (p)->Release() //#define IDirectInputDevice_Unacquire(p) (p)->Unacquire() //#define IDirectInputDevice_GetDeviceState(p,a,b) (p)->GetDeviceState(a,b) #define IDirectInputMapper_Initialize(p,a,b,c) (p)->Initialize(p,a,b,c) #define IDirectInputMapper_GetActionMap(p,a,b,c,d) (p)->GetActionMap(p,a,b,c,d) #define IDirectInputMapper_SaveActionMap(p,a,b,c) (p)->SaveActionMap(p,a,b,c) #define IDirectInputMapper_GetImageInfo(p,a) (p)->GetImageInfo(p,a) #define IDirectInputMapperVendor_QueryInterface(p,a,b) (p)->QueryInterface(p,a,b) #define IDirectInputMapperVendor_AddRef(p) (p)->AddRef(p) #define IDirectInputMapperVendor_Release(p) (p)->Release(p) #define IDirectInputMapperVendor_Initialize(p,a,b,c) (p)->Initialize(p,a,b,c) #define IDirectInputMapperVendor_WriteVendorFile(p,a,b,c) (p)->WriteVendorFile(p,a,b,c) #endif //{E364F0AE-60F7-4550-ABF1-BABBE085D68E} DEFINE_GUID(IID_IDirectInputMapIA,0xe364f0ae,0x60f7,0x4550,0xab,0xf1,0xba,0xbb,0xe0,0x85,0xd6,0x8e); //{01E8A5B8-7A8E-4565-9FF0-36FCD8E33B79} DEFINE_GUID(IID_IDirectInputMapIW,0x01e8a5b8,0x7a8e,0x4565,0x9f,0xf0,0x36,0xfc,0xd8,0xe3,0x3b,0x79); //{EE3DBC5D-9EFE-4c09-B044-7D9BBB32FC4E} DEFINE_GUID(IID_IDirectInputMapClsFact,0xee3dbc5d,0x9efe,0x4c09,0xb0,0x44,0x7d,0x9b,0xbb,0x32,0xfc,0x4e); // {44C5D19C-49F3-4fba-92A7-00E3A69CD595} DEFINE_GUID(IID_IDirectInputMapVendorIA,0x44c5d19c,0x49f3,0x4fba,0x92,0xa7,0x00,0xe3,0xa6,0x9c,0xd5,0x95); // {9FB90FFB-F9A2-4e9b-949E-1617F08EB549} DEFINE_GUID(IID_IDirectInputMapVendorIW,0x9fb90ffb,0xf9a2,0x4e9b,0x94,0x9e,0x16,0x17,0xf0,0x8e,0xb5,0x49); #endif #ifdef __cplusplus } /* ... extern "C" */ #endif