#ifndef _COM_SUN_STAR_SETUP_INSTALLENVIRONMENT_HPP_
#define _COM_SUN_STAR_SETUP_INSTALLENVIRONMENT_HPP_

#ifndef _COM_SUN_STAR_SETUP_INSTALLENVIRONMENT_HDL_
#include <com/sun/star/setup/InstallEnvironment.hdl>
#endif

#ifndef _OSL_MUTEX_HXX_
#include <osl/mutex.hxx>
#endif

#ifndef _COM_SUN_STAR_UNO_TYPE_HXX_
#include <com/sun/star/uno/Type.hxx>
#endif

#ifndef _COM_SUN_STAR_UNO_SEQUENCE_HXX_
#include <com/sun/star/uno/Sequence.hxx>
#endif
#ifndef _COM_SUN_STAR_SETUP_MODULESTATE_HPP_
#include <com/sun/star/setup/ModuleState.hpp>
#endif
#ifndef _COM_SUN_STAR_SETUP_INSTALLTYPE_HPP_
#include <com/sun/star/setup/InstallType.hpp>
#endif
#ifndef _COM_SUN_STAR_SETUP_OSTYPE_HPP_
#include <com/sun/star/setup/OSType.hpp>
#endif

namespace com
{
namespace sun
{
namespace star
{
namespace setup
{

inline InstallEnvironment::InstallEnvironment() SAL_THROW( () )
    : eOSType(::com::sun::star::setup::OSType_INVALID)
    , eInstallType(::com::sun::star::setup::InstallType_INVALID)
    , strDestinationPath()
    , nClusterSize((sal_Int32)0)
    , nDriveSize((sal_Int32)0)
    , seqLanguages()
    , seqSwitchLanguages()
    , seqModuleIDList()
    , strUserName()
    , strUserFirstName()
    , strUserId()
    , strCompanyname()
    , strStreet()
    , strCountry()
    , strZip()
    , strCity()
    , strTitle()
    , strPosition()
    , strPhonePriv()
    , strPhoneCompany()
    , strPhoneFax()
    , strEmail()
    , strState()
    , strFatherName()
    , strApartmentNr()
{
}

inline InstallEnvironment::InstallEnvironment(const ::com::sun::star::setup::OSType& __eOSType, const ::com::sun::star::setup::InstallType& __eInstallType, const ::rtl::OUString& __strDestinationPath, const sal_Int32& __nClusterSize, const sal_Int32& __nDriveSize, const ::com::sun::star::uno::Sequence< sal_Int16 >& __seqLanguages, const ::com::sun::star::uno::Sequence< sal_Int16 >& __seqSwitchLanguages, const ::com::sun::star::uno::Sequence< ::com::sun::star::setup::ModuleState >& __seqModuleIDList, const ::rtl::OUString& __strUserName, const ::rtl::OUString& __strUserFirstName, const ::rtl::OUString& __strUserId, const ::rtl::OUString& __strCompanyname, const ::rtl::OUString& __strStreet, const ::rtl::OUString& __strCountry, const ::rtl::OUString& __strZip, const ::rtl::OUString& __strCity, const ::rtl::OUString& __strTitle, const ::rtl::OUString& __strPosition, const ::rtl::OUString& __strPhonePriv, const ::rtl::OUString& __strPhoneCompany, const ::rtl::OUString& __strPhoneFax, const ::rtl::OUString& __strEmail, const ::rtl::OUString& __strState, const ::rtl::OUString& __strFatherName, const ::rtl::OUString& __strApartmentNr) SAL_THROW( () )
    : eOSType(__eOSType)
    , eInstallType(__eInstallType)
    , strDestinationPath(__strDestinationPath)
    , nClusterSize(__nClusterSize)
    , nDriveSize(__nDriveSize)
    , seqLanguages(__seqLanguages)
    , seqSwitchLanguages(__seqSwitchLanguages)
    , seqModuleIDList(__seqModuleIDList)
    , strUserName(__strUserName)
    , strUserFirstName(__strUserFirstName)
    , strUserId(__strUserId)
    , strCompanyname(__strCompanyname)
    , strStreet(__strStreet)
    , strCountry(__strCountry)
    , strZip(__strZip)
    , strCity(__strCity)
    , strTitle(__strTitle)
    , strPosition(__strPosition)
    , strPhonePriv(__strPhonePriv)
    , strPhoneCompany(__strPhoneCompany)
    , strPhoneFax(__strPhoneFax)
    , strEmail(__strEmail)
    , strState(__strState)
    , strFatherName(__strFatherName)
    , strApartmentNr(__strApartmentNr)
{
}

} // setup
} // star
} // sun
} // com

#if (defined(__SUNPRO_CC) && (__SUNPRO_CC == 0x500))
static typelib_TypeDescriptionReference * s_pType_com_sun_star_setup_InstallEnvironment = 0;
#endif

inline const ::com::sun::star::uno::Type& SAL_CALL getCppuType( const ::com::sun::star::setup::InstallEnvironment* ) SAL_THROW( () )
{
    #if ! (defined(__SUNPRO_CC) && (__SUNPRO_CC == 0x500))
    static typelib_TypeDescriptionReference * s_pType_com_sun_star_setup_InstallEnvironment = 0;
    #endif

    if ( !s_pType_com_sun_star_setup_InstallEnvironment )
    {
        typelib_static_type_init( &s_pType_com_sun_star_setup_InstallEnvironment, typelib_TypeClass_STRUCT, "com.sun.star.setup.InstallEnvironment" );
    }
    return * reinterpret_cast< ::com::sun::star::uno::Type * >( &s_pType_com_sun_star_setup_InstallEnvironment );
}

#endif // _COM_SUN_STAR_SETUP_INSTALLENVIRONMENT_HPP_
