368 lines
6.7 KiB
C++
368 lines
6.7 KiB
C++
/*
|
|
** CPQDIF_E_Scalar class. Implements the PQDIF scalar element.
|
|
** --------------------------------------------------------------------------
|
|
**
|
|
** File name: $Workfile: el_scal.cpp $
|
|
** Last modified: $Modtime: 12/22/00 10:30a $
|
|
** Last modified by: $Author: Bill $
|
|
**
|
|
** VCS archive path: $Archive: /PQDIF/PQDcom/PQDcom4/pqdiflib/el_scal.cpp $
|
|
** VCS revision: $Revision: 12 $
|
|
*/
|
|
#include "PQDIF_classes.h"
|
|
|
|
|
|
// Construction
|
|
// ============
|
|
|
|
CPQDIF_E_Scalar::CPQDIF_E_Scalar()
|
|
{
|
|
memset( &m_value, 0, sizeof( m_value ) );
|
|
}
|
|
|
|
CPQDIF_E_Scalar::~CPQDIF_E_Scalar()
|
|
{
|
|
}
|
|
|
|
#ifdef PQDIF_USE_COM
|
|
bool CPQDIF_E_Scalar::SetValue( long typePhysical, VARIANT & value )
|
|
{
|
|
bool status = false;
|
|
|
|
m_typePhysical = typePhysical;
|
|
if( m_pRecord )
|
|
m_pRecord->SetChanged( true );
|
|
|
|
status = convertFromVariant( value, m_value );
|
|
|
|
return status;
|
|
}
|
|
|
|
bool CPQDIF_E_Scalar::GetValue( VARIANT& value )
|
|
{
|
|
bool status = true;
|
|
|
|
status = convertToVariant( m_value, value );
|
|
|
|
return status;
|
|
}
|
|
#endif
|
|
|
|
bool CPQDIF_E_Scalar::SetValue( long typePhysical, PQDIFValue& value )
|
|
{
|
|
bool status = false;
|
|
|
|
int iSize = theInfo.GetNumBytesOfType( typePhysical );
|
|
if( iSize > 0 )
|
|
{
|
|
m_typePhysical = typePhysical;
|
|
memcpy( (void *)&m_value, (void *)&value, iSize );
|
|
status = true;
|
|
|
|
if( m_pRecord )
|
|
m_pRecord->SetChanged( true );
|
|
}
|
|
|
|
return status;
|
|
}
|
|
|
|
bool CPQDIF_E_Scalar::GetValue( long& typePhysical, PQDIFValue& value ) const
|
|
{
|
|
bool status = false;
|
|
|
|
if( m_typePhysical != 0 )
|
|
{
|
|
typePhysical = m_typePhysical;
|
|
value = m_value;
|
|
status = true;
|
|
}
|
|
|
|
return status;
|
|
}
|
|
|
|
|
|
bool CPQDIF_E_Scalar::SetValueUINT2( UINT2 value )
|
|
{
|
|
bool status = false;
|
|
|
|
m_typePhysical = ID_PHYS_TYPE_UNS_INTEGER2;
|
|
m_value.uint2 = value;
|
|
status = true;
|
|
|
|
return status;
|
|
}
|
|
|
|
|
|
bool CPQDIF_E_Scalar::GetValueUINT2( UINT2& value ) const
|
|
{
|
|
bool status = false;
|
|
|
|
if( m_typePhysical == ID_PHYS_TYPE_UNS_INTEGER2 )
|
|
{
|
|
value = m_value.uint2;
|
|
status = true;
|
|
}
|
|
|
|
return status;
|
|
}
|
|
|
|
|
|
bool CPQDIF_E_Scalar::SetValueINT2( INT2 value )
|
|
{
|
|
bool status = false;
|
|
|
|
m_typePhysical = ID_PHYS_TYPE_INTEGER2;
|
|
m_value.int2 = value;
|
|
status = true;
|
|
|
|
return status;
|
|
}
|
|
|
|
|
|
bool CPQDIF_E_Scalar::GetValueINT2( INT2& value ) const
|
|
{
|
|
bool status = false;
|
|
|
|
if( m_typePhysical == ID_PHYS_TYPE_INTEGER2 )
|
|
{
|
|
value = m_value.int2;
|
|
status = true;
|
|
}
|
|
|
|
return status;
|
|
}
|
|
|
|
|
|
bool CPQDIF_E_Scalar::SetValueUINT4( UINT4 value )
|
|
{
|
|
bool status = false;
|
|
|
|
m_typePhysical = ID_PHYS_TYPE_UNS_INTEGER4;
|
|
m_value.uint4 = value;
|
|
status = true;
|
|
|
|
return status;
|
|
}
|
|
|
|
|
|
bool CPQDIF_E_Scalar::GetValueUINT4( UINT4& value ) const
|
|
{
|
|
bool status = false;
|
|
|
|
if( m_typePhysical == ID_PHYS_TYPE_UNS_INTEGER4 )
|
|
{
|
|
value = m_value.uint4;
|
|
status = true;
|
|
}
|
|
|
|
return status;
|
|
}
|
|
|
|
|
|
bool CPQDIF_E_Scalar::SetValueINT4( INT4 value )
|
|
{
|
|
bool status = false;
|
|
|
|
m_typePhysical = ID_PHYS_TYPE_INTEGER4;
|
|
m_value.int4 = value;
|
|
status = true;
|
|
|
|
return status;
|
|
}
|
|
|
|
|
|
bool CPQDIF_E_Scalar::GetValueINT4( INT4& value ) const
|
|
{
|
|
bool status = false;
|
|
|
|
if( m_typePhysical == ID_PHYS_TYPE_INTEGER4 )
|
|
{
|
|
value = m_value.int4;
|
|
status = true;
|
|
}
|
|
|
|
return status;
|
|
}
|
|
|
|
|
|
bool CPQDIF_E_Scalar::SetValueBOOL4( bool value )
|
|
{
|
|
bool status = false;
|
|
|
|
m_typePhysical = ID_PHYS_TYPE_BOOLEAN4;
|
|
m_value.bool4 = value ? (BOOL4) 1 : (BOOL4) 0;
|
|
status = true;
|
|
|
|
return status;
|
|
}
|
|
|
|
|
|
bool CPQDIF_E_Scalar::GetValueBOOL4( bool& value ) const
|
|
{
|
|
bool status = false;
|
|
|
|
if( m_typePhysical == ID_PHYS_TYPE_BOOLEAN4 )
|
|
{
|
|
value = ( m_value.bool4 != 0 ) ? true : false;
|
|
status = true;
|
|
}
|
|
|
|
return status;
|
|
}
|
|
|
|
|
|
bool CPQDIF_E_Scalar::SetValueREAL4( REAL4 value )
|
|
{
|
|
bool status = false;
|
|
|
|
m_typePhysical = ID_PHYS_TYPE_REAL4;
|
|
m_value.real4 = value;
|
|
status = true;
|
|
|
|
return status;
|
|
}
|
|
|
|
|
|
bool CPQDIF_E_Scalar::GetValueREAL4( REAL4& value ) const
|
|
{
|
|
bool status = false;
|
|
|
|
if( m_typePhysical == ID_PHYS_TYPE_REAL4 )
|
|
{
|
|
value = m_value.real4;
|
|
status = true;
|
|
}
|
|
|
|
return status;
|
|
}
|
|
|
|
|
|
bool CPQDIF_E_Scalar::SetValueREAL8( REAL8 value )
|
|
{
|
|
bool status = false;
|
|
|
|
m_typePhysical = ID_PHYS_TYPE_REAL8;
|
|
m_value.real8 = value;
|
|
status = true;
|
|
|
|
return status;
|
|
}
|
|
|
|
|
|
bool CPQDIF_E_Scalar::GetValueREAL8( REAL8& value ) const
|
|
{
|
|
bool status = false;
|
|
|
|
if( m_typePhysical == ID_PHYS_TYPE_REAL8 )
|
|
{
|
|
value = m_value.real8;
|
|
status = true;
|
|
}
|
|
|
|
return status;
|
|
}
|
|
|
|
|
|
bool CPQDIF_E_Scalar::SetValueCOMPLEX8( COMPLEX8 value )
|
|
{
|
|
bool status = false;
|
|
|
|
m_typePhysical = ID_PHYS_TYPE_COMPLEX8;
|
|
m_value.complex8 = value;
|
|
status = true;
|
|
|
|
return status;
|
|
}
|
|
|
|
|
|
bool CPQDIF_E_Scalar::GetValueCOMPLEX8( COMPLEX8& value ) const
|
|
{
|
|
bool status = false;
|
|
|
|
if( m_typePhysical == ID_PHYS_TYPE_COMPLEX8 )
|
|
{
|
|
value = m_value.complex8;
|
|
status = true;
|
|
}
|
|
|
|
return status;
|
|
}
|
|
|
|
|
|
bool CPQDIF_E_Scalar::SetValueCOMPLEX16( COMPLEX16 value )
|
|
{
|
|
bool status = false;
|
|
|
|
m_typePhysical = ID_PHYS_TYPE_COMPLEX16;
|
|
m_value.complex16 = value;
|
|
status = true;
|
|
|
|
return status;
|
|
}
|
|
|
|
|
|
bool CPQDIF_E_Scalar::GetValueCOMPLEX16( COMPLEX16& value ) const
|
|
{
|
|
bool status = false;
|
|
|
|
if( m_typePhysical == ID_PHYS_TYPE_COMPLEX16 )
|
|
{
|
|
value = m_value.complex16;
|
|
status = true;
|
|
}
|
|
|
|
return status;
|
|
}
|
|
|
|
|
|
bool CPQDIF_E_Scalar::SetValueGUID( GUID value )
|
|
{
|
|
bool status = false;
|
|
|
|
m_typePhysical = ID_PHYS_TYPE_GUID;
|
|
m_value.guid = value;
|
|
status = true;
|
|
|
|
return status;
|
|
}
|
|
|
|
|
|
bool CPQDIF_E_Scalar::GetValueGUID( GUID& value ) const
|
|
{
|
|
bool status = false;
|
|
|
|
if( m_typePhysical == ID_PHYS_TYPE_GUID )
|
|
{
|
|
value = m_value.guid;
|
|
status = true;
|
|
}
|
|
|
|
return status;
|
|
}
|
|
|
|
|
|
bool CPQDIF_E_Scalar::SetValueTimeStamp( TIMESTAMPPQDIF value )
|
|
{
|
|
bool status = false;
|
|
|
|
m_typePhysical = ID_PHYS_TYPE_TIMESTAMPPQDIF;
|
|
m_value.ts = value;
|
|
status = true;
|
|
|
|
return status;
|
|
}
|
|
|
|
|
|
bool CPQDIF_E_Scalar::GetValueTimeStamp( TIMESTAMPPQDIF& value ) const
|
|
{
|
|
bool status = false;
|
|
|
|
if( m_typePhysical == ID_PHYS_TYPE_TIMESTAMPPQDIF )
|
|
{
|
|
value = m_value.ts;
|
|
status = true;
|
|
}
|
|
|
|
return status;
|
|
}
|