This application-defined sample function deallocates existing DirectInput interface pointers in preparation for program shutdown or in the event of a failure to properly initialize a device.
// LPDIRECTINPUT g_lpDI;
// LPDIRECTINPUTDEVICE g_lpDIDevice;
void WINAPI DI_Term()
{
if (g_lpDI)
{
if (g_lpDIDevice)
{
/*
Always unacquire the device before calling Release().
*/
g_lpDIDevice->Unacquire();
g_lpDIDevice->Release();
g_lpDIDevice = NULL;
}
g_lpDI->Release();
g_lpDI = NULL;
}
}