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
ULONG _stdcall AddRef(void) { return RealDevice->AddRef(); }