i have similar problem, everything is ok unless i create OIS::Mouse/Keyboard. i find out the OIS need high level window handle, i get handle like that:
IOleInPlaceActiveObjectImpl<CHelloWorldCtl>::GetWindow( &myHwnd )
is that correct?
this is my input init function:
void initInput(unsigned int windowHnd)
{
OIS::ParamList paramList;
std::ostringstream ss;
ss << windowHnd;
paramList.insert(std::make_pair(std::string("WINDOW"), ss.str()));
#if defined(OIS_WIN32_PLATFORM)
paramList.insert(std::make_pair(std::string("w32_mouse"), std::string("DISCL_FOREGROUND" )));
paramList.insert(std::make_pair(std::string("w32_mouse"), std::string("DISCL_NONEXCLUSIVE")));
paramList.insert(std::make_pair(std::string("w32_keyboard"), std::string("DISCL_FOREGROUND")));
paramList.insert(std::make_pair(std::string("w32_keyboard"), std::string("DISCL_NONEXCLUSIVE")));
#elif defined(OIS_LINUX_PLATFORM)
paramList.insert(std::make_pair(std::string("x11_mouse_grab"), std::string("false")));
paramList.insert(std::make_pair(std::string("x11_mouse_hide"), std::string("false")));
paramList.insert(std::make_pair(std::string("x11_keyboard_grab"), std::string("false")));
paramList.insert(std::make_pair(std::string("XAutoRepeatOn"), std::string("true")));
#endif
_inputMgr = OIS::InputManager::createInputSystem(paramList);
try
{
_mouse = static_cast<OIS::Mouse*>(_inputMgr->createInputObject(OIS::OISMouse, true));
}
catch (const OIS::Exception &e)
{
MessageBox(0, e.eText, "Error", MB_OK);
throw Exception(42, e.eText, "Application::setupInputSystem");
}
}