Beispiel #1
0
/**
* 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;
}
Beispiel #2
0
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;
 }
Beispiel #3
0
bool Mouse::SetCoopLevel(HWND hWnd)
{
	HRESULT result = _dDevice->SetCooperativeLevel(hWnd, DISCL_EXCLUSIVE | DISCL_FOREGROUND);
	if (FAILED(result))
	{
		SaveReleaseDevice();
		return false;
	}
	ClearBuffer();
	return true;
}
Beispiel #4
0
/**
 * 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; 
}
Beispiel #5
0
/**
* Function:	Mouse::~Mouse()
* Description:	destructor of the mouse
*/
Mouse::~Mouse()
{
	SaveReleaseDevice();
}