>>642
はっきり言って書き方からして理解してなさそうな感じがするんだが
自分もそのうちやるかもしれんので試してみた
↓こんな感じでちゃんと2つ取得できた
これでわからんならヘルプなりサイトなりでDirectInput自体をちゃんと理解しれ

LPDIRECTINPUT8 g_pDInput;
LPDIRECTINPUTDEVICE8 g_pDIDevice[2];
INT DeviceCount = 0;

g_pDInput->EnumDevices(DI8DEVCLASS_GAMECTRL,DIEnumDevicesCallback,&DeviceCount,DIEDFL_ALLDEVICES);

BOOL CALLBACK DIEnumDevicesCallback(LPCDIDEVICEINSTANCE lpddi,LPVOID DeviceCount)
{
g_pDInput->CreateDevice(lpddi->guidInstance,&g_pDIDevice[(*(int*)DeviceCount)],NULL);

g_pDIDevice[(*(int*)DeviceCount)]->SetDataFormat(&c_dfDIJoystick);
g_pDIDevice[(*(int*)DeviceCount)]->SetCooperativeLevel(hWnd,DISCL_FOREGROUND | DISCL_NONEXCLUSIVE);

(*(int*)DeviceCount)++;
if((*(int*)DeviceCount) == 2)
return DIENUM_STOP;

return DIENUM_CONTINUE;
}