   DirectInput8: Direct Input Action Mapping is breaking C++
  I am following a Tutorial on MSDN on Action Mapping which requires the use of DIACTIONFORMAT.  I have linked the appropriate files and included the headers, when I ask it to show the definition, it finds it easily in "dinput.h" but if I try to use it...Update:I moved everything to a new file (see below) and something is seriously wrong.  If I include this file in the project, all the DirectX types beyond a certain line-number are unrecognised.  The exact line-number depends on the size of the file.Any ideas?#include "GS.h"#include "stdafx.h"#include "Projectile.h"#include "Ship.h"#include "Resource.h"#include "SoundPlayer.h"#define INPUT_LEFTRIGHT_AXIS   1L#define INPUT_UPDOWN_AXIS 2L#define INPUT_TURNLEFT    3L#define INPUT_TURNRIGHT   4L#define INPUT_FORWARDTHRUST    5L#define INPUT_REVERSETHRUST    6L#define INPUT_FIREWEAPONS 7L#define INPUT_ENABLESHIELD8L#define INPUT_DISPLAYGAMEMENU  9L#define INPUT_QUITGAME   10L#define NUMBER_OF_ACTIONS 18DIACTION g_rgGameAction[NUMBER_OF_ACTIONS] ={    // Device input pre-defined by DirectInput, according to genre    {INPUT_LEFTRIGHT_AXIS, DIAXIS_SPACESIM_LATERAL, 0, "Turn",},    {INPUT_UPDOWN_AXIS, DIAXIS_SPACESIM_MOVE, 0, "Move",},    {INPUT_FIREWEAPONS, DIBUTTON_SPACESIM_FIRE, 0, "Shoot",},    {INPUT_ENABLESHIELD, DIBUTTON_SPACESIM_GEAR, 0, "Shield",},    {INPUT_DISPLAYGAMEMENU, DIBUTTON_SPACESIM_DISPLAY, 0, "Display",},    {INPUT_QUITGAME, DIBUTTON_SPACESIM_MENU, 0, "Quit Game",},    // Keyboard input mappings    {INPUT_TURNLEFT, DIKEYBOARD_LEFT, 0, "Turn left", },    {INPUT_TURNRIGHT, DIKEYBOARD_RIGHT, 0, "Turn right", },    {INPUT_FORWARDTHRUST, DIKEYBOARD_UP, 0, "Forward thrust", },    {INPUT_REVERSETHRUST, DIKEYBOARD_DOWN, 0, "Reverse thrust", },    {INPUT_FIREWEAPONS, DIKEYBOARD_F, 0, "Fire weapons", },    {INPUT_ENABLESHIELD, DIKEYBOARD_S, 0, "Enable shields", },    {INPUT_DISPLAYGAMEMENU, DIKEYBOARD_D, DIA_APPFIXED, "Display game menu", },    {INPUT_QUITGAME, DIKEYBOARD_ESCAPE, DIA_APPFIXED, "Quit game", },    // Mouse input mappings    {INPUT_LEFTRIGHT_AXIS, DIMOUSE_XAXIS, 0, "Turn", },    {INPUT_UPDOWN_AXIS, DIMOUSE_YAXIS, 0, "Move", },    {INPUT_FIREWEAPONS, DIMOUSE_BUTTON0, 0, "Fire weapons", },    {INPUT_ENABLESHIELD, DIMOUSE_BUTTON1, 0, "Enable shields", },};DIACTIONFORMAT diaf;diaf.dwSize   = sizeof(DIACTIONFORMAT);diaf.dwActionSize  = sizeof(DIACTION);diaf.dwDataSize    = NUMBER_OF_ACTIONS * sizeof(DWORD);diaf.dwNumActions  = NUMBER_OF_ACTIONS;diaf.guidActionMap = g_AppGuid;diaf.dwGenre  = DIVIRTUAL_SPACESIM;diaf.rgoAction= g_rgGameAction;diaf.dwBufferSize  = 16;diaf.lAxisMin = -100;diaf.lAxisMax = 100;diaf.tszActionMap  = "DI Test";[Edited by - Prince of Cats on June 15, 2006 1:45:26 PM]