308 lines
8.5 KiB
C
308 lines
8.5 KiB
C
#include "dinput/device_dinput8.h"
|
|
|
|
static ULONG REF_COUNT = 0;
|
|
|
|
static HRESULT STDMETHODCALLTYPE IDirectInputDevice8W_QueryInterface(
|
|
IDirectInputDevice8W FAR *This, REFIID riid, void **ppvObj)
|
|
{
|
|
if (ppvObj == NULL) {
|
|
return E_POINTER;
|
|
}
|
|
|
|
if (IsEqualGUID(riid, &IID_IUnknown) ||
|
|
IsEqualGUID(riid, &IID_IDirectInputDeviceA) ||
|
|
IsEqualGUID(riid, &IID_IDirectInputDeviceW) ||
|
|
IsEqualGUID(riid, &IID_IDirectInputDevice2A) ||
|
|
IsEqualGUID(riid, &IID_IDirectInputDevice2W) ||
|
|
IsEqualGUID(riid, &IID_IDirectInputDevice7A) ||
|
|
IsEqualGUID(riid, &IID_IDirectInputDevice7W) ||
|
|
IsEqualGUID(riid, &IID_IDirectInputDevice8A) ||
|
|
IsEqualGUID(riid, &IID_IDirectInputDevice8W)) {
|
|
This->lpVtbl->AddRef(This);
|
|
*ppvObj = This;
|
|
|
|
return S_OK;
|
|
}
|
|
|
|
return E_NOINTERFACE;
|
|
}
|
|
|
|
static ULONG STDMETHODCALLTYPE
|
|
IDirectInputDevice8W_AddRef(IDirectInputDevice8W FAR *This)
|
|
{
|
|
return ++REF_COUNT;
|
|
}
|
|
|
|
static ULONG STDMETHODCALLTYPE
|
|
IDirectInputDevice8W_Release(IDirectInputDevice8W FAR *This)
|
|
{
|
|
return --REF_COUNT;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE IDirectInputDevice8W_GetCapabilities(
|
|
IDirectInputDevice8W FAR *This, LPDIDEVCAPS lpDIDevCaps)
|
|
{
|
|
return DIERR_INVALIDPARAM;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE IDirectInputDevice8W_EnumObjects(
|
|
IDirectInputDevice8W FAR *This,
|
|
LPDIENUMDEVICEOBJECTSCALLBACKW lpCallback,
|
|
LPVOID pvRef,
|
|
DWORD dwFlags)
|
|
{
|
|
return DIERR_INVALIDPARAM;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE IDirectInputDevice8W_GetProperty(
|
|
IDirectInputDevice8W FAR *This, REFGUID rguidProp, LPDIPROPHEADER pdiph)
|
|
{
|
|
return DIERR_INVALIDPARAM;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE IDirectInputDevice8W_SetProperty(
|
|
IDirectInputDevice8W FAR *This, REFGUID rguidProp, LPCDIPROPHEADER pdiph)
|
|
{
|
|
return DI_OK;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE
|
|
IDirectInputDevice8W_Acquire(IDirectInputDevice8W FAR *This)
|
|
{
|
|
return DIERR_INVALIDPARAM;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE
|
|
IDirectInputDevice8W_Unacquire(IDirectInputDevice8W FAR *This)
|
|
{
|
|
return DIERR_INVALIDPARAM;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE IDirectInputDevice8W_GetDeviceState(
|
|
IDirectInputDevice8W FAR *This, DWORD cbData, LPVOID lpvData)
|
|
{
|
|
return DIERR_INVALIDPARAM;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE IDirectInputDevice8W_GetDeviceData(
|
|
IDirectInputDevice8W FAR *This,
|
|
DWORD cbObjectData,
|
|
LPDIDEVICEOBJECTDATA rgdod,
|
|
LPDWORD pdwInOut,
|
|
DWORD dwFlags)
|
|
{
|
|
return DIERR_INVALIDPARAM;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE IDirectInputDevice8W_SetDataFormat(
|
|
IDirectInputDevice8W FAR *This, LPCDIDATAFORMAT lpdf)
|
|
{
|
|
return DI_OK;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE IDirectInputDevice8W_SetEventNotification(
|
|
IDirectInputDevice8W FAR *This, HANDLE hEvent)
|
|
{
|
|
return DIERR_INVALIDPARAM;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE IDirectInputDevice8W_SetCooperativeLevel(
|
|
IDirectInputDevice8W FAR *This, HWND hWnd, DWORD dwFlags)
|
|
{
|
|
return DI_OK;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE IDirectInputDevice8W_GetObjectInfo(
|
|
IDirectInputDevice8W FAR *This,
|
|
LPDIDEVICEOBJECTINSTANCEW pdidoi,
|
|
DWORD dwObj,
|
|
DWORD dwHow)
|
|
{
|
|
return DIERR_INVALIDPARAM;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE IDirectInputDevice8W_GetDeviceInfo(
|
|
IDirectInputDevice8W FAR *This, LPDIDEVICEINSTANCEW pdidi)
|
|
{
|
|
return DIERR_INVALIDPARAM;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE IDirectInputDevice8W_RunControlPanel(
|
|
IDirectInputDevice8W FAR *This, HWND hwndOwner, DWORD dwFlags)
|
|
{
|
|
return DIERR_INVALIDPARAM;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE IDirectInputDevice8W_Initialize(
|
|
IDirectInputDevice8W FAR *This,
|
|
HINSTANCE hinst,
|
|
DWORD dwVersion,
|
|
REFGUID rguid)
|
|
{
|
|
return DIERR_INVALIDPARAM;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE IDirectInputDevice8W_CreateEffect(
|
|
IDirectInputDevice8W FAR *This,
|
|
REFGUID rguid,
|
|
LPCDIEFFECT lpeff,
|
|
LPDIRECTINPUTEFFECT *ppdeff,
|
|
LPUNKNOWN punkOuter)
|
|
{
|
|
return DIERR_INVALIDPARAM;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE IDirectInputDevice8W_EnumEffects(
|
|
IDirectInputDevice8W FAR *This,
|
|
LPDIENUMEFFECTSCALLBACKW lpCallback,
|
|
LPVOID pvRef,
|
|
DWORD dwEffType)
|
|
{
|
|
return DIERR_INVALIDPARAM;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE IDirectInputDevice8W_GetEffectInfo(
|
|
IDirectInputDevice8W FAR *This, LPDIEFFECTINFOW pdei, REFGUID rguid)
|
|
{
|
|
return DIERR_INVALIDPARAM;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE IDirectInputDevice8W_GetForceFeedbackState(
|
|
IDirectInputDevice8W FAR *This, LPDWORD pdwOut)
|
|
{
|
|
return DIERR_INVALIDPARAM;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE IDirectInputDevice8W_SendForceFeedbackCommand(
|
|
IDirectInputDevice8W FAR *This, DWORD dwFlags)
|
|
{
|
|
return DIERR_INVALIDPARAM;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE IDirectInputDevice8W_EnumCreatedEffectObjects(
|
|
IDirectInputDevice8W FAR *This,
|
|
LPDIENUMCREATEDEFFECTOBJECTSCALLBACK lpCallback,
|
|
LPVOID pvRef,
|
|
DWORD fl)
|
|
{
|
|
return DIERR_INVALIDPARAM;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE
|
|
IDirectInputDevice8W_Escape(IDirectInputDevice8W FAR *This, LPDIEFFESCAPE pesc)
|
|
{
|
|
return DIERR_INVALIDPARAM;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE
|
|
IDirectInputDevice8W_Poll(IDirectInputDevice8W FAR *This)
|
|
{
|
|
return DIERR_INVALIDPARAM;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE IDirectInputDevice8W_SendDeviceData(
|
|
IDirectInputDevice8W FAR *This,
|
|
DWORD cbObjectData,
|
|
LPCDIDEVICEOBJECTDATA rgdod,
|
|
LPDWORD pdwInOut,
|
|
DWORD fl)
|
|
{
|
|
return DIERR_INVALIDPARAM;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE IDirectInputDevice8W_EnumEffectsInFile(
|
|
IDirectInputDevice8W FAR *This,
|
|
LPCWSTR lpszFileName,
|
|
LPDIENUMEFFECTSINFILECALLBACK pec,
|
|
LPVOID pvRef,
|
|
DWORD dwFlags)
|
|
{
|
|
return DIERR_INVALIDPARAM;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE IDirectInputDevice8W_WriteEffectToFile(
|
|
IDirectInputDevice8W FAR *This,
|
|
LPCWSTR lpszFileName,
|
|
DWORD dwEntries,
|
|
LPDIFILEEFFECT rgDiFileEft,
|
|
DWORD dwFlags)
|
|
{
|
|
return DIERR_INVALIDPARAM;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE IDirectInputDevice8W_BuildActionMap(
|
|
IDirectInputDevice8W FAR *This,
|
|
LPDIACTIONFORMATW lpdiaf,
|
|
LPCWSTR lpszUserName,
|
|
DWORD dwFlags)
|
|
{
|
|
return DIERR_INVALIDPARAM;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE IDirectInputDevice8W_SetActionMap(
|
|
IDirectInputDevice8W FAR *This,
|
|
LPDIACTIONFORMATW lpdiaf,
|
|
LPCWSTR lpszUserName,
|
|
DWORD dwFlags)
|
|
{
|
|
return DIERR_INVALIDPARAM;
|
|
}
|
|
|
|
static HRESULT STDMETHODCALLTYPE IDirectInputDevice8W_GetImageInfo(
|
|
IDirectInputDevice8W FAR *This,
|
|
LPDIDEVICEIMAGEINFOHEADERW lpdiDevImageInfoHeader)
|
|
{
|
|
return DIERR_INVALIDPARAM;
|
|
}
|
|
|
|
static IDirectInputDevice8WVtbl stub_device_vtbl = {
|
|
|
|
// IUnknown
|
|
.QueryInterface = IDirectInputDevice8W_QueryInterface,
|
|
.AddRef = IDirectInputDevice8W_AddRef,
|
|
.Release = IDirectInputDevice8W_Release,
|
|
|
|
// IDirectInputDeviceW
|
|
.GetCapabilities = IDirectInputDevice8W_GetCapabilities,
|
|
.EnumObjects = IDirectInputDevice8W_EnumObjects,
|
|
.GetProperty = IDirectInputDevice8W_GetProperty,
|
|
.SetProperty = IDirectInputDevice8W_SetProperty,
|
|
.Acquire = IDirectInputDevice8W_Acquire,
|
|
.Unacquire = IDirectInputDevice8W_Unacquire,
|
|
.GetDeviceState = IDirectInputDevice8W_GetDeviceState,
|
|
.GetDeviceData = IDirectInputDevice8W_GetDeviceData,
|
|
.SetDataFormat = IDirectInputDevice8W_SetDataFormat,
|
|
.SetEventNotification = IDirectInputDevice8W_SetEventNotification,
|
|
.SetCooperativeLevel = IDirectInputDevice8W_SetCooperativeLevel,
|
|
.GetObjectInfo = IDirectInputDevice8W_GetObjectInfo,
|
|
.GetDeviceInfo = IDirectInputDevice8W_GetDeviceInfo,
|
|
.RunControlPanel = IDirectInputDevice8W_RunControlPanel,
|
|
.Initialize = IDirectInputDevice8W_Initialize,
|
|
|
|
// IDirectInputDevice2W
|
|
.CreateEffect = IDirectInputDevice8W_CreateEffect,
|
|
.EnumEffects = IDirectInputDevice8W_EnumEffects,
|
|
.GetEffectInfo = IDirectInputDevice8W_GetEffectInfo,
|
|
.GetForceFeedbackState = IDirectInputDevice8W_GetForceFeedbackState,
|
|
.SendForceFeedbackCommand = IDirectInputDevice8W_SendForceFeedbackCommand,
|
|
.EnumCreatedEffectObjects = IDirectInputDevice8W_EnumCreatedEffectObjects,
|
|
.Escape = IDirectInputDevice8W_Escape,
|
|
.Poll = IDirectInputDevice8W_Poll,
|
|
.SendDeviceData = IDirectInputDevice8W_SendDeviceData,
|
|
|
|
// IDirectInputDevice7W
|
|
.EnumEffectsInFile = IDirectInputDevice8W_EnumEffectsInFile,
|
|
.WriteEffectToFile = IDirectInputDevice8W_WriteEffectToFile,
|
|
|
|
// IDirectInputDevice8W
|
|
.BuildActionMap = IDirectInputDevice8W_BuildActionMap,
|
|
.SetActionMap = IDirectInputDevice8W_SetActionMap,
|
|
.GetImageInfo = IDirectInputDevice8W_GetImageInfo,
|
|
};
|
|
|
|
static IDirectInputDevice8W stub_device_object = {
|
|
.lpVtbl = &stub_device_vtbl,
|
|
};
|
|
|
|
IDirectInputDevice8W *di8_stub_device = &stub_device_object;
|