windows-nt/Source/XPSP1/NT/multimedia/directx/dxvb/dx8vb/dinputdeviceobj.h
2020-09-26 16:20:57 +08:00

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;