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
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 );
|
|
}
|