/******************************************************************************
 *                                                                         
 *               Copyright 2004-2006 Agilent Technologies
 *               All rights reserved.
 *
 *****************************************************************************/
 
#include "stdafx.h"
#include "CoAgilent34980A.h"

/// <summary>
/// Selects a personality to be active and returns a pointer to that personality.
/// </summary>
/// <remarks>
/// Module-specific functionality is accessed via this method. Currently, the functionality
/// of the 34945A, 34950A, the 34951A, the 34952A, and the 34959A is exposed via
/// this function. The allowed values for the personalityName parameter are: 'Agilent34945A',
/// 'Agilent34950A', 'Agilent34951A', and 'Agilent34952A' and 'Agilent34959A'.
/// </remarks>
/// <returns>
///	Pointer to the personality root interface.
/// </returns>
/// <param name="personalityName">
///	Personality to select. Must be a valid personality name returned by GetPersonalityNames.
/// </param>
HRESULT Agilent34980A::IAgilent34980APersonality_Select(BSTR PersonalityName, IUnknown** Val)
{
	HRESULT hr = S_OK;

	hr = DriverBase::SelectPersonality(PersonalityName, Val);

	return hr;
}

/// <summary>
/// Gets the names of all of the available personalities.  
/// </summary>
/// <remarks>
///	For the 34980A mainframe, the functionality of the following modules is exposed via personalities:
///		34950A, 34951A, 34952A
/// The names returned here may be passed to the IAgilent34980APersonality::Select function to
///	access specialized functionality.
// </remarks>

/// <summary>
/// Gets the names of all the personalities available.
/// </summary>
/// <remarks>
/// 
/// </remarks>
/// <returns>
///	
/// </returns>
HRESULT Agilent34980A::IAgilent34980APersonality_GetPersonalityNames(SAFEARRAY** Val)
{
	HRESULT hr = S_OK;

	hr = DriverBase::GetPersonalityNames( Val );

	return hr;
}


