Example #1
0
BOOL CALLBACK EnumDevicesBySemanticsCallback(
		LPCDIDEVICEINSTANCE lpddi, LPDIRECTINPUTDEVICE8  lpdid, 
		DWORD  dwFlags, DWORD  dwRemaining, LPVOID pvRef)
{
	HRESULT hr;
	hr = lpdid->BuildActionMap(&g_DIActionFormat, NULL,  DIDBAM_INITIALIZE );
	if (FAILED(hr)){
		return DIENUM_CONTINUE;
	}
	hr = lpdid->SetActionMap(&g_DIActionFormat, NULL, DIDSAM_DEFAULT);
	if (FAILED(hr)){
		return DIENUM_CONTINUE;
	}
	hr = lpdid->SetCooperativeLevel(sysInf.hWnd,DISCL_NONEXCLUSIVE | DISCL_FOREGROUND);
	lpdid->AddRef();
	g_pDIDevice[g_iDIDeviceNum++] = lpdid;

	if (MAX_DEV <= g_iDIDeviceNum)
		DIENUM_STOP;

	return DIENUM_CONTINUE;
} // EnumDevicesBySemanticsCallback
 HRESULT _stdcall SetActionMap(LPDIACTIONFORMATW a,LPCWSTR b,DWORD c) {
     return RealDevice->SetActionMap(a,b,c);
 }