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.
 
 
 
 
 
 

221 lines
6.8 KiB

/******************************************************************************
Copyright (c) 1999 Microsoft Corporation
Module Name:
HPCQueryResult.cpp
Abstract:
This file contains the implementation of the CHPCQueryResult class,
the descriptor of all the query results.
Revision History:
Davide Massarenti (Dmassare) 07/26/99
created
******************************************************************************/
#include "stdafx.h"
CPCHQueryResult::Payload::Payload()
{
// CComBSTR m_bstrCategory;
// CComBSTR m_bstrEntry;
// CComBSTR m_bstrTopicURL;
// CComBSTR m_bstrIconURL;
// CComBSTR m_bstrTitle;
// CComBSTR m_bstrDescription;
m_lType = 0; // long m_lType;
m_lPos = 0; // long m_lPos;
m_fVisible = true; // bool m_fVisible;
m_fSubsite = true; // bool m_fSubsite;
m_lNavModel = QR_DEFAULT; // long m_lNavModel;
m_lPriority = 0; // long m_lPriority;
}
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
CPCHQueryResult::CPCHQueryResult()
{
// Payload m_data;
}
/////////////////////////////////////////////////////////////////////////////
HRESULT CPCHQueryResult::Load( /*[in]*/ MPC::Serializer& streamIn )
{
__HCP_FUNC_ENTRY( "CPCHQueryResult::Load" );
HRESULT hr;
__MPC_EXIT_IF_METHOD_FAILS(hr, streamIn >> m_data.m_bstrCategory );
__MPC_EXIT_IF_METHOD_FAILS(hr, streamIn >> m_data.m_bstrEntry );
__MPC_EXIT_IF_METHOD_FAILS(hr, streamIn >> m_data.m_bstrTopicURL );
__MPC_EXIT_IF_METHOD_FAILS(hr, streamIn >> m_data.m_bstrIconURL );
__MPC_EXIT_IF_METHOD_FAILS(hr, streamIn >> m_data.m_bstrTitle );
__MPC_EXIT_IF_METHOD_FAILS(hr, streamIn >> m_data.m_bstrDescription);
__MPC_EXIT_IF_METHOD_FAILS(hr, streamIn >> m_data.m_lType );
__MPC_EXIT_IF_METHOD_FAILS(hr, streamIn >> m_data.m_lPos );
__MPC_EXIT_IF_METHOD_FAILS(hr, streamIn >> m_data.m_fVisible );
__MPC_EXIT_IF_METHOD_FAILS(hr, streamIn >> m_data.m_fSubsite );
__MPC_EXIT_IF_METHOD_FAILS(hr, streamIn >> m_data.m_lNavModel );
__MPC_EXIT_IF_METHOD_FAILS(hr, streamIn >> m_data.m_lPriority );
hr = S_OK;
__HCP_FUNC_CLEANUP;
__HCP_FUNC_EXIT(hr);
}
HRESULT CPCHQueryResult::Save( /*[in]*/ MPC::Serializer& streamOut ) const
{
__HCP_FUNC_ENTRY( "CPCHQueryResult::Save" );
HRESULT hr;
__MPC_EXIT_IF_METHOD_FAILS(hr, streamOut << m_data.m_bstrCategory );
__MPC_EXIT_IF_METHOD_FAILS(hr, streamOut << m_data.m_bstrEntry );
__MPC_EXIT_IF_METHOD_FAILS(hr, streamOut << m_data.m_bstrTopicURL );
__MPC_EXIT_IF_METHOD_FAILS(hr, streamOut << m_data.m_bstrIconURL );
__MPC_EXIT_IF_METHOD_FAILS(hr, streamOut << m_data.m_bstrTitle );
__MPC_EXIT_IF_METHOD_FAILS(hr, streamOut << m_data.m_bstrDescription);
__MPC_EXIT_IF_METHOD_FAILS(hr, streamOut << m_data.m_lType );
__MPC_EXIT_IF_METHOD_FAILS(hr, streamOut << m_data.m_lPos );
__MPC_EXIT_IF_METHOD_FAILS(hr, streamOut << m_data.m_fVisible );
__MPC_EXIT_IF_METHOD_FAILS(hr, streamOut << m_data.m_fSubsite );
__MPC_EXIT_IF_METHOD_FAILS(hr, streamOut << m_data.m_lNavModel );
__MPC_EXIT_IF_METHOD_FAILS(hr, streamOut << m_data.m_lPriority );
hr = S_OK;
__HCP_FUNC_CLEANUP;
__HCP_FUNC_EXIT(hr);
}
void CPCHQueryResult::Initialize( /*[in]*/ Payload& data )
{
m_data = data;
}
/////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CPCHQueryResult::get_Category( /*[out]*/ BSTR *pVal )
{
MPC::SmartLock<_ThreadModel> lock( this );
return MPC::GetBSTR( m_data.m_bstrCategory, pVal );
}
STDMETHODIMP CPCHQueryResult::get_Entry( /*[out]*/ BSTR *pVal )
{
MPC::SmartLock<_ThreadModel> lock( this );
return MPC::GetBSTR( m_data.m_bstrEntry, pVal );
}
STDMETHODIMP CPCHQueryResult::get_TopicURL( /*[out]*/ BSTR *pVal )
{
MPC::SmartLock<_ThreadModel> lock( this );
return MPC::GetBSTR( m_data.m_bstrTopicURL, pVal );
}
STDMETHODIMP CPCHQueryResult::get_IconURL( /*[out]*/ BSTR *pVal )
{
MPC::SmartLock<_ThreadModel> lock( this );
return MPC::GetBSTR( m_data.m_bstrIconURL, pVal );
}
STDMETHODIMP CPCHQueryResult::get_Title( /*[out]*/ BSTR *pVal )
{
MPC::SmartLock<_ThreadModel> lock( this );
return MPC::GetBSTR( m_data.m_bstrTitle, pVal );
}
STDMETHODIMP CPCHQueryResult::get_Description( /*[out]*/ BSTR *pVal )
{
MPC::SmartLock<_ThreadModel> lock( this );
return MPC::GetBSTR( m_data.m_bstrDescription, pVal );
}
STDMETHODIMP CPCHQueryResult::get_Type( /*[out]*/ long *pVal )
{
__HCP_BEGIN_PROPERTY_GET2("CPCHQueryResult::get_Type",hr,pVal,m_data.m_lType);
__HCP_END_PROPERTY(hr);
}
STDMETHODIMP CPCHQueryResult::get_Pos( /*[out]*/ long *pVal )
{
__HCP_BEGIN_PROPERTY_GET2("CPCHQueryResult::get_Pos",hr,pVal,m_data.m_lPos);
__HCP_END_PROPERTY(hr);
}
STDMETHODIMP CPCHQueryResult::get_Visible( /*[out]*/ VARIANT_BOOL *pVal )
{
__HCP_BEGIN_PROPERTY_GET2("CPCHQueryResult::get_Visible",hr,pVal,(m_data.m_fVisible ? VARIANT_TRUE : VARIANT_FALSE));
__HCP_END_PROPERTY(hr);
}
STDMETHODIMP CPCHQueryResult::get_Subsite( /*[out]*/ VARIANT_BOOL *pVal )
{
__HCP_BEGIN_PROPERTY_GET2("CPCHQueryResult::get_Subsite",hr,pVal,(m_data.m_fSubsite ? VARIANT_TRUE : VARIANT_FALSE));
__HCP_END_PROPERTY(hr);
}
STDMETHODIMP CPCHQueryResult::get_NavigationModel( /*[out]*/ QR_NAVMODEL *pVal )
{
__HCP_BEGIN_PROPERTY_GET2("CPCHQueryResult::get_NavigationModel",hr,pVal,(QR_NAVMODEL)m_data.m_lNavModel);
__HCP_END_PROPERTY(hr);
}
STDMETHODIMP CPCHQueryResult::get_Priority( /*[out]*/ long *pVal )
{
__HCP_BEGIN_PROPERTY_GET2("CPCHQueryResult::get_Priority",hr,pVal,m_data.m_lPriority);
__HCP_END_PROPERTY(hr);
}
STDMETHODIMP CPCHQueryResult::get_FullPath( /*[out]*/ BSTR *pVal )
{
MPC::SmartLock<_ThreadModel> lock( this );
MPC::wstring strFullPath; strFullPath.reserve( 512 );
if(STRINGISPRESENT(m_data.m_bstrCategory))
{
strFullPath += m_data.m_bstrCategory;
if(STRINGISPRESENT(m_data.m_bstrEntry))
{
strFullPath += L"/";
strFullPath += m_data.m_bstrEntry;
}
}
else if(STRINGISPRESENT(m_data.m_bstrEntry))
{
strFullPath += m_data.m_bstrEntry;
}
return MPC::GetBSTR( strFullPath.c_str(), pVal );
}