Index: intern/ghost/GHOST_Types.h =================================================================== --- intern/ghost/GHOST_Types.h (revision 11024) +++ intern/ghost/GHOST_Types.h (working copy) @@ -39,6 +39,10 @@ typedef int GHOST_TInt32; typedef unsigned int GHOST_TUns32; +#ifdef WIN32 +#define WM_BLND_3DX WM_USER + 1 +#endif + #if defined(WIN32) && !defined(FREE_WINDOWS) typedef __int64 GHOST_TInt64; typedef unsigned __int64 GHOST_TUns64; Index: intern/ghost/intern/GHOST_SystemWin32.cpp =================================================================== --- intern/ghost/intern/GHOST_SystemWin32.cpp (revision 11024) +++ intern/ghost/intern/GHOST_SystemWin32.cpp (working copy) @@ -64,10 +64,12 @@ #include "GHOST_EventCursor.h" #include "GHOST_EventKey.h" #include "GHOST_EventWheel.h" +#include "GHOST_EventNDOF.h" #include "GHOST_TimerTask.h" #include "GHOST_TimerManager.h" #include "GHOST_WindowManager.h" #include "GHOST_WindowWin32.h" +#include "GHOST_NDOFManager.h" // Key code values not found in winuser.h #ifndef VK_MINUS @@ -841,6 +843,17 @@ * In GHOST, we let DefWindowProc call the timer callback. */ break; + case WM_BLND_3DX: + { + GHOST_TEventNDOFData ndofdata; + system->m_ndofManager->GHOST_NDOFGetDatas(ndofdata); + system->m_eventManager-> + pushEvent(new GHOST_EventNDOF( + system->getMilliSeconds(), + GHOST_kEventNDOFMotion, + window, ndofdata)); + } + break; } } else { Index: intern/ghost/make/msvc_7_0/ghost.vcproj =================================================================== --- intern/ghost/make/msvc_7_0/ghost.vcproj (revision 11024) +++ intern/ghost/make/msvc_7_0/ghost.vcproj (working copy) @@ -281,6 +281,9 @@ RelativePath="..\..\intern\GHOST_EventManager.h"> + + + + + +