Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

177 lines
3.7 KiB

/******************************************************************************
Copyright (c) 2000 Microsoft Corporation
Module Name:
Column.cpp
Abstract:
This file contains the implementation of the JetBlueCOM::Column class.
Revision History:
Davide Massarenti (Dmassare) 05/20/2000
created
******************************************************************************/
#include <stdafx.h>
#ifndef NOJETBLUECOM
////////////////////////////////////////////////////////////////////////////////
JetBlueCOM::Column::Column()
{
m_col = NULL; // JetBlue::Column* m_col;
}
JetBlueCOM::Column::~Column()
{
Passivate();
}
////////////////////////////////////////
HRESULT JetBlueCOM::Column::Initialize( /*[in]*/ JetBlue::Column& col )
{
m_col = &col;
return S_OK;
}
void JetBlueCOM::Column::Passivate()
{
MPC::SmartLock<_ThreadModel> lock( this );
m_col = NULL;
}
////////////////////////////////////////
STDMETHODIMP JetBlueCOM::Column::get_Name( /*[out, retval]*/ BSTR *pVal )
{
__HCP_FUNC_ENTRY( "JetBlueCOM::Column::get_Name" );
USES_CONVERSION;
HRESULT hr;
MPC::SmartLock<_ThreadModel> lock( this );
__MPC_PARAMCHECK_BEGIN(hr)
__MPC_PARAMCHECK_POINTER_AND_SET(pVal,NULL);
__MPC_PARAMCHECK_END();
__MPC_JET_CHECKHANDLE(hr,m_col,NULL);
{
const MPC::string& str = *m_col;
hr = MPC::GetBSTR( A2W( str.c_str() ), pVal );
}
__HCP_FUNC_CLEANUP;
__HCP_FUNC_EXIT(hr);
}
STDMETHODIMP JetBlueCOM::Column::get_Type( /*[out, retval]*/ long *pVal )
{
__HCP_FUNC_ENTRY( "JetBlueCOM::Column::get_Type" );
HRESULT hr;
MPC::SmartLock<_ThreadModel> lock( this );
__MPC_PARAMCHECK_BEGIN(hr)
__MPC_PARAMCHECK_POINTER_AND_SET(pVal,NULL);
__MPC_PARAMCHECK_END();
__MPC_JET_CHECKHANDLE(hr,m_col,NULL);
{
const JET_COLUMNDEF& coldef = *m_col;
*pVal = coldef.coltyp;
}
hr = S_OK;
__HCP_FUNC_CLEANUP;
__HCP_FUNC_EXIT(hr);
}
STDMETHODIMP JetBlueCOM::Column::get_Bits( /*[out, retval]*/ long *pVal )
{
__HCP_FUNC_ENTRY( "JetBlueCOM::Column::get_Bits" );
HRESULT hr;
MPC::SmartLock<_ThreadModel> lock( this );
__MPC_PARAMCHECK_BEGIN(hr)
__MPC_PARAMCHECK_POINTER_AND_SET(pVal,NULL);
__MPC_PARAMCHECK_END();
__MPC_JET_CHECKHANDLE(hr,m_col,NULL);
{
const JET_COLUMNDEF& coldef = *m_col;
*pVal = coldef.grbit;
}
hr = S_OK;
__HCP_FUNC_CLEANUP;
__HCP_FUNC_EXIT(hr);
}
STDMETHODIMP JetBlueCOM::Column::get_Value( /*[out, retval]*/ VARIANT *pVal )
{
__HCP_FUNC_ENTRY( "JetBlueCOM::Column::get_Value" );
HRESULT hr;
CComVariant vValue;
MPC::SmartLock<_ThreadModel> lock( this );
__MPC_PARAMCHECK_BEGIN(hr)
__MPC_PARAMCHECK_NOTNULL(pVal);
__MPC_PARAMCHECK_END();
__MPC_JET_CHECKHANDLE(hr,m_col,NULL);
__MPC_EXIT_IF_METHOD_FAILS(hr, m_col->Get( vValue ));
hr = vValue.Detach( pVal );
__HCP_FUNC_CLEANUP;
__HCP_FUNC_EXIT(hr);
}
STDMETHODIMP JetBlueCOM::Column::put_Value( /*[in]*/ VARIANT newVal )
{
__HCP_FUNC_ENTRY( "JetBlueCOM::Column::put_Value" );
HRESULT hr;
CComVariant vValue;
MPC::SmartLock<_ThreadModel> lock( this );
__MPC_JET_CHECKHANDLE(hr,m_col,NULL);
__MPC_EXIT_IF_METHOD_FAILS(hr, vValue.Attach( &newVal ));
hr = m_col->Put( vValue );
__HCP_FUNC_CLEANUP;
__HCP_FUNC_EXIT(hr);
}
#endif