/// <summary>
/// Initialization
/// </summary>
/// <returns>Indicate success or failure</returns>
bool KinectWindow::Initialize()
{
    // Check Nui sensor pointer
    if (!m_pNuiSensor)
    {
        return false;
    }

    // Initialize common control for tab control
    if (!InitializeCommonControl())
    {
        return false;
    }

    if (S_OK != m_pNuiSensor->NuiStatus())
    {
        return false;
    }

    // Initialize Nui sensor
    HRESULT hr = m_pNuiSensor->NuiInitialize(
        NUI_INITIALIZE_FLAG_USES_DEPTH_AND_PLAYER_INDEX
        | NUI_INITIALIZE_FLAG_USES_SKELETON
        | NUI_INITIALIZE_FLAG_USES_COLOR
        | NUI_INITIALIZE_FLAG_USES_AUDIO);

    // Ensure infrared emitter enabled
    if (SUCCEEDED(hr))
    {
        m_pNuiSensor->NuiSetForceInfraredEmitterOff(FALSE);
    }

    return SUCCEEDED(hr) || E_NUI_DEVICE_IN_USE == hr;
}
/// <summary>
/// Initialization
/// </summary>
/// <returns>Indicate success or failure</returns>
bool KinectWindow::Initialize()
{

    // Check Nui sensor pointer
    if (!m_pNuiSensor)
    {
        return false;
    }

    // Initialize common control for tab control
    if (!InitializeCommonControl())
    {
        return false;
    }

    if (S_OK != m_pNuiSensor->NuiStatus())
    {
        return false;
    }

    // Initialize Nui sensor
    HRESULT hr = m_pNuiSensor->NuiInitialize(
        NUI_INITIALIZE_FLAG_USES_DEPTH_AND_PLAYER_INDEX
        | NUI_INITIALIZE_FLAG_USES_SKELETON
        | NUI_INITIALIZE_FLAG_USES_COLOR
        | NUI_INITIALIZE_FLAG_USES_AUDIO);

    // Ensure infrared emitter enabled
    if (SUCCEEDED(hr))
    {
        m_pNuiSensor->NuiSetForceInfraredEmitterOff(FALSE);
    }
	
	//////Face tracking and speech recognition threads start
    
	m_hFaceTrackingThread = CreateThread(NULL, 0, FaceTrackingStaticThread, (PVOID)this, 0, 0);

	//m_hFaceRecogThread = CreateThread(NULL, 0, FaceRecogStaticThread, (PVOID)this, 0, 0);

	return SUCCEEDED(hr) || E_NUI_DEVICE_IN_USE == hr;
}