/** * Function: Mouse::Init() * Description: initialisation of the mouse, setting up the mouse and creation a new mouse-object * (including aquiring) */ bool Mouse::Init() { //DirectInput8Create should be done only once in manager HRESULT result = DirectInput8Create(GetModuleHandle(NULL), DIRECTINPUT_VERSION, IID_IDirectInput8, (VOID**)&_dInput, NULL); if (FAILED(result)) { return false; } result = _dInput->CreateDevice(GUID_SysMouse, &_dDevice, NULL); if (FAILED(result)) { SaveReleaseDevice(); return false; } result = _dDevice->SetDataFormat(&c_dfDIMouse); if (FAILED(result)) { SaveReleaseDevice(); return false; } result = _dDevice->SetProperty(DIPROP_BUFFERSIZE, &_dipdw.diph); if (FAILED(result)) { SaveReleaseDevice(); return false; } return true; }
bool Mouse::InitializeMouse() { //creates the DirectInput Object. HRESULT result = DirectInput8Create(GetModuleHandle(NULL), DIRECTINPUT_VERSION, IID_IDirectInput8, (void**)&p_dx_MouseObject, NULL); if( FAILED( result ) ) { return false; } //You need to pass a handle to the current application, the DirectX version, an interface ID, the pointer to the stucture we want to be initialised, and a pointer that can be used for more advanced stuff. //Now your IDE has been set up to use DirectInput, let’s create the keyboard device. This must be done by the CreateDevice method of your keyboard Object: result = p_dx_MouseObject->CreateDevice(GUID_SysMouse, &p_dx_MouseDevice, NULL); if( FAILED( result ) ) { SaveReleaseDevice(); return false; } result = p_dx_MouseDevice->SetDataFormat(&c_dfDIMouse2); if( FAILED( result ) ) { SaveReleaseDevice(); return false; } result = p_dx_MouseDevice->SetCooperativeLevel(hwnd, DISCL_NONEXCLUSIVE | DISCL_FOREGROUND); if( FAILED( result ) ) { SaveReleaseDevice(); return false; } GoAcquire(); return true; }
bool Mouse::SetCoopLevel(HWND hWnd) { HRESULT result = _dDevice->SetCooperativeLevel(hWnd, DISCL_EXCLUSIVE | DISCL_FOREGROUND); if (FAILED(result)) { SaveReleaseDevice(); return false; } ClearBuffer(); return true; }
/** * Function: InputKeyboard::InitKeyboard() * Description: initializing the keyboard (creating the device and setting the coopertive level) */ bool InputKeyboard::InitKeyboard() { //DirectInput8Create should be done only once in manager HRESULT hr = DirectInput8Create( GetModuleHandle(NULL), DIRECTINPUT_VERSION, IID_IDirectInput8, (void**)&dInput, NULL ); if FAILED( hr ) { LogManager::Instance()->Log(LogLevel::WARNING, "%s - %s", __FUNCTION__, "Unable to create keyboard DirectInput8"); return false; } //Creates the right DirectInput device and logs this if failed hr = dInput->CreateDevice( GUID_SysKeyboard, &dDevice, NULL ); if FAILED( hr ) { SaveReleaseDevice(); LogManager::Instance()->Log(LogLevel::WARNING, "%s - %s", __FUNCTION__, "Unable to create keyboard DirectInput device."); return false; } //Sets the right DataFormat and logs this if failed hr = dDevice->SetDataFormat( &c_dfDIKeyboard ); if FAILED( hr ) { SaveReleaseDevice(); LogManager::Instance()->Log(LogLevel::WARNING, "%s - %s", __FUNCTION__, "Unable to set keyboard DataFormat."); return false; } //Sets the right cooperativeLevel and lots this if failed hr = dDevice->SetCooperativeLevel( hwnd, DISCL_NONEXCLUSIVE | DISCL_BACKGROUND ); if FAILED( hr ) { SaveReleaseDevice(); LogManager::Instance()->Log(LogLevel::WARNING, "%s - %s", __FUNCTION__, "Unable to set keyboard CooperativeLevel"); return false; } //Logs the succesfully registered keyboard LogManager::Instance()->Log(LogLevel::INFO, "%s - %s", __FUNCTION__, "Succesfully registered keyboard input device"); return true; }
/** * Function: Mouse::~Mouse() * Description: destructor of the mouse */ Mouse::~Mouse() { SaveReleaseDevice(); }