Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

164 lines
3.5 KiB

//////////////////////////////////////////////////////////////////////
// Query.cpp: implementation of the CQuery class.
//
// Created by JOEM 03-2000
// Copyright (C) 2000 Microsoft Corporation
// All Rights Reserved
//
/////////////////////////////////////////////////////// JOEM 3-2000 //
#include "stdafx.h"
#include "Query.h"
#include "common.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CQuery::CQuery()
{
m_fXML = NOT_XML;
m_fTTS = false;
m_fFragType = SAPI_FRAG;
m_fSpeak = true;
m_pszExpandedText = NULL;
m_pszDbName = NULL;
m_pszDbPath = NULL;
m_pszDbIdSet = NULL;
m_pszId = NULL;
m_unDbAction = 0;
m_unDbIndex = 0;
m_pTextFrag = NULL;
m_paTagList = NULL;
m_ulTextOffset = 0;
m_ulTextLen = 0;
}
CQuery::CQuery(const CQuery& old)
{
USHORT i = 0;
if ( old.m_pszExpandedText )
{
m_pszExpandedText = wcsdup(old.m_pszExpandedText);
}
else
{
m_pszExpandedText = NULL;
}
if ( old.m_pszDbName )
{
m_pszDbName = wcsdup(old.m_pszDbName);
}
else
{
m_pszDbName = NULL;
}
if ( old.m_pszDbPath )
{
m_pszDbPath = wcsdup(old.m_pszDbPath);
}
else
{
m_pszDbPath = NULL;
}
if ( old.m_pszDbIdSet )
{
m_pszDbIdSet = wcsdup(old.m_pszDbIdSet);
}
else
{
m_pszDbIdSet = NULL;
}
m_fXML = old.m_fXML;
m_fTTS = old.m_fTTS;
m_fFragType = old.m_fFragType;
m_fSpeak = old.m_fSpeak;
m_unDbAction = old.m_unDbAction;
m_unDbIndex = old.m_unDbIndex;
m_ulTextOffset = old.m_ulTextOffset;
m_ulTextLen = old.m_ulTextLen;
m_pTextFrag = new SPVTEXTFRAG(*old.m_pTextFrag);
m_pszId = wcsdup (old.m_pszId);
for (i=0; i<old.m_apEntry.GetSize(); i++)
{
m_apEntry.Add(old.m_apEntry[i]);
m_apEntry[i]->AddRef();
}
for (i=0; i<old.m_afEntryMatch.GetSize(); i++)
{
m_afEntryMatch.Add(old.m_afEntryMatch[i]);
}
if ( old.m_paTagList )
{
m_paTagList = new CSPArray<CDynStr,CDynStr>;
m_paTagList->Copy(*old.m_paTagList);
}
else
{
m_paTagList = NULL;
}
}
CQuery::~CQuery()
{
USHORT i = 0;
if ( m_pszDbName )
{
free (m_pszDbName);
m_pszDbName = NULL;
}
if ( m_pszDbPath )
{
free (m_pszDbPath);
m_pszDbPath = NULL;
}
if ( m_pszDbIdSet )
{
free (m_pszDbIdSet);
m_pszDbIdSet = NULL;
}
if ( m_pszExpandedText )
{
free ( m_pszExpandedText );
m_pszExpandedText = NULL;
}
if ( m_pszId )
{
free ( m_pszId );
m_pszId = NULL;
}
if ( m_paTagList )
{
for ( i=0; i<m_paTagList->GetSize(); i++ )
{
(*m_paTagList)[i].dstr.Clear();
}
m_paTagList->RemoveAll();
delete m_paTagList;
m_paTagList = NULL;
}
if ( m_pTextFrag )
{
delete m_pTextFrag;
m_pTextFrag = NULL;
}
for ( i=0; i<m_apEntry.GetSize(); i++ )
{
m_apEntry[i]->Release();
m_apEntry[i] = NULL;
}
m_apEntry.RemoveAll();
m_afEntryMatch.RemoveAll();
}