207 lines
7.5 KiB
C
207 lines
7.5 KiB
C
|
//+-------------------------------------------------------------------------
|
||
|
//
|
||
|
// Microsoft Windows
|
||
|
//
|
||
|
// Copyright (C) Microsoft Corporation, 1998 - 1999
|
||
|
//
|
||
|
// File: dinputdeviceobj.h
|
||
|
//
|
||
|
//--------------------------------------------------------------------------
|
||
|
|
||
|
// ddPaletteObj.h : Declaration of the C_dxj_DirectDrawColorControlObject
|
||
|
#include "direct.h"
|
||
|
|
||
|
#include "resource.h" // main symbols
|
||
|
|
||
|
#define typedef__dxj_DirectInputDevice8 LPDIRECTINPUTDEVICE8W
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// Direct
|
||
|
|
||
|
|
||
|
class C_dxj_DirectInputDevice8Object :
|
||
|
public I_dxj_DirectInputDevice8,
|
||
|
public CComObjectRoot
|
||
|
{
|
||
|
public:
|
||
|
C_dxj_DirectInputDevice8Object() ;
|
||
|
~C_dxj_DirectInputDevice8Object();
|
||
|
|
||
|
BEGIN_COM_MAP(C_dxj_DirectInputDevice8Object)
|
||
|
COM_INTERFACE_ENTRY(I_dxj_DirectInputDevice8)
|
||
|
END_COM_MAP()
|
||
|
|
||
|
DECLARE_AGGREGATABLE(C_dxj_DirectInputDevice8Object)
|
||
|
|
||
|
|
||
|
public:
|
||
|
/* [hidden] */ HRESULT STDMETHODCALLTYPE InternalSetObject(
|
||
|
/* [in] */ IUnknown __RPC_FAR *lpdd);
|
||
|
|
||
|
/* [hidden] */ HRESULT STDMETHODCALLTYPE InternalGetObject(
|
||
|
/* [retval][out] */ IUnknown __RPC_FAR *__RPC_FAR *lpdd);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE acquire( void);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE getDeviceObjectsEnum(
|
||
|
/* [in] */ long flags,
|
||
|
/* [retval][out] */ I_dxj_DIEnumDeviceObjects __RPC_FAR *__RPC_FAR *ppret);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE getCapabilities(
|
||
|
/* [out][in] */ DIDEVCAPS_CDESC __RPC_FAR *caps);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE getDeviceData(
|
||
|
/* [out][in] */ SAFEARRAY __RPC_FAR * __RPC_FAR *deviceObjectDataArray,
|
||
|
/* [in] */ long flags,
|
||
|
/* [retval][out] */ long __RPC_FAR *c);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE getDeviceInfo(
|
||
|
/* [retval][out] */ I_dxj_DirectInputDeviceInstance8 __RPC_FAR *__RPC_FAR *deviceInstance);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE getDeviceStateKeyboard(
|
||
|
/* [out][in] */ DIKEYBOARDSTATE_CDESC __RPC_FAR *state);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE getDeviceStateMouse(
|
||
|
/* [out][in] */ DIMOUSESTATE_CDESC __RPC_FAR *state);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE getDeviceStateMouse2(
|
||
|
/* [out][in] */ DIMOUSESTATE2_CDESC __RPC_FAR *state);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE getDeviceStateJoystick(
|
||
|
/* [out][in] */ DIJOYSTATE_CDESC __RPC_FAR *state);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE getDeviceStateJoystick2(
|
||
|
/* [out][in] */ DIJOYSTATE2_CDESC __RPC_FAR *state);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE getDeviceState(
|
||
|
/* [in] */ long cb,
|
||
|
/* [in] */ void __RPC_FAR *state);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE getObjectInfo(
|
||
|
/* [in] */ long obj,
|
||
|
/* [in] */ long how,
|
||
|
/* [retval][out] */ I_dxj_DirectInputDeviceObjectInstance __RPC_FAR *__RPC_FAR *ret);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE getProperty(
|
||
|
/* [in] */ BSTR guid,
|
||
|
/* [out] */ void __RPC_FAR *propertyInfo);
|
||
|
|
||
|
#ifdef _WIN64
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE runControlPanel(
|
||
|
/* [in] */ HWND hwnd);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE setCooperativeLevel(
|
||
|
/* [in] */ HWND hwnd,
|
||
|
/* [in] */ long flags);
|
||
|
#else
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE runControlPanel(
|
||
|
/* [in] */ long hwnd);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE setCooperativeLevel(
|
||
|
/* [in] */ long hwnd,
|
||
|
/* [in] */ long flags);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE setCommonDataFormat(
|
||
|
/* [in] */ long format);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE setDataFormat(
|
||
|
/* [in] */ DIDATAFORMAT_CDESC __RPC_FAR *format,
|
||
|
SAFEARRAY __RPC_FAR * __RPC_FAR *formatArray);
|
||
|
|
||
|
#ifdef _WIN64
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE setEventNotification(
|
||
|
/* [in] */ HANDLE hEvent);
|
||
|
#else
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE setEventNotification(
|
||
|
/* [in] */ long hEvent);
|
||
|
#endif
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE setProperty(
|
||
|
/* [in] */ BSTR guid,
|
||
|
/* [in] */ void __RPC_FAR *propertyInfo);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE unacquire( void);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE poll( void);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE createEffect(
|
||
|
/* [in] */ BSTR effectGuid,
|
||
|
/* [in] */ DIEFFECT_CDESC __RPC_FAR *effectinfo,
|
||
|
/* [retval][out] */ I_dxj_DirectInputEffect __RPC_FAR *__RPC_FAR *ret);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE createCustomEffect(
|
||
|
/* [in] */ DIEFFECT_CDESC __RPC_FAR *effectinfo,
|
||
|
/* [in] */ long channels,
|
||
|
/* [in] */ long samplePeriod,
|
||
|
/* [in] */ long nSamples,
|
||
|
/* [in] */ SAFEARRAY __RPC_FAR * __RPC_FAR *sampledata,
|
||
|
/* [retval][out] */ I_dxj_DirectInputEffect __RPC_FAR *__RPC_FAR *ret);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE sendDeviceData(
|
||
|
/* [in] */ long count,
|
||
|
/* [in] */ SAFEARRAY __RPC_FAR * __RPC_FAR *data,
|
||
|
/* [in] */ long flags,
|
||
|
/* [retval][out] */ long __RPC_FAR *retcount);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE sendForceFeedbackCommand(
|
||
|
/* [in] */ long flags);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE getForceFeedbackState(
|
||
|
/* [retval][out] */ long __RPC_FAR *state);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE getEffectsEnum(
|
||
|
/* [in] */ long effType,
|
||
|
/* [retval][out] */ I_dxj_DirectInputEnumEffects __RPC_FAR *__RPC_FAR *ret);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE BuildActionMap(
|
||
|
/* [out][in] */ DIACTIONFORMAT_CDESC __RPC_FAR *format,
|
||
|
/* [in] */ BSTR username,
|
||
|
/* [in] */ long flags);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE SetActionMap(
|
||
|
/* [out][in] */ DIACTIONFORMAT_CDESC __RPC_FAR *format,
|
||
|
/* [in] */ BSTR username,
|
||
|
/* [in] */ long flags);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE GetImageInfo(
|
||
|
/* [out] */ DIDEVICEIMAGEINFOHEADER_CDESC __RPC_FAR *info);
|
||
|
|
||
|
/* [helpcontext] */ HRESULT STDMETHODCALLTYPE GetImageInfoCount(
|
||
|
long *count);
|
||
|
|
||
|
|
||
|
HRESULT STDMETHODCALLTYPE WriteEffectToFile(
|
||
|
/*[in]*/ BSTR filename,
|
||
|
/*[in]*/ long flags,
|
||
|
/*[in]*/ BSTR guid,
|
||
|
/*[in]*/ BSTR name,
|
||
|
/*[in]*/ DIEFFECT_CDESC *CoverEffect);
|
||
|
|
||
|
HRESULT STDMETHODCALLTYPE CreateEffectFromFile(
|
||
|
/*[in]*/ BSTR filename,
|
||
|
/*[in]*/ long flags,
|
||
|
/*[in]*/ BSTR effectName,
|
||
|
/*[out,retval]*/ I_dxj_DirectInputEffect **ret);
|
||
|
|
||
|
|
||
|
private:
|
||
|
DECL_VARIABLE(_dxj_DirectInputDevice8);
|
||
|
//IDirectInputDevice8 *m__dxj_DirectInputDevice8;
|
||
|
HRESULT cleanup();
|
||
|
HRESULT init();
|
||
|
public:
|
||
|
DX3J_GLOBAL_LINKS(_dxj_DirectInputDevice8)
|
||
|
DWORD nFormat;
|
||
|
};
|
||
|
|
||
|
typedef struct EFFECTSINFILE
|
||
|
{
|
||
|
char szEffect[MAX_PATH];
|
||
|
IDirectInputDevice8W *pDev;
|
||
|
IDirectInputEffect *pEff;
|
||
|
HRESULT hr;
|
||
|
} EFFECTSINFILE;
|
||
|
|
||
|
|