208 lines
8.6 KiB
C
208 lines
8.6 KiB
C
/******************************************************************************
|
|
*
|
|
* 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
|