Click here to Skip to main content
15,881,873 members
Articles / Programming Languages / Visual Basic

EfTidy: The Tidy Library Wrapper

Rate me:
Please Sign up or sign in to vote.
4.91/5 (36 votes)
6 Sep 2013GPL310 min read 184.6K   5K   88  
A free component for HTML parsing and cleaning
// tidyOption.cpp : Implementation of CtidyOption
#include "stdafx.h"
#include "EfTidy.h"
#include "tidyOption.h"


/////////////////////////////////////////////////////////////////////////////
// CtidyOption

STDMETHODIMP CtidyOption::InterfaceSupportsErrorInfo(REFIID riid)
{
	if(IID_ItidyOption==riid)
			return S_OK;
	
	return S_FALSE;
}
/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::LoadConfigFile(BSTR ConfigFile)
{
	USES_CONVERSION;
	//Check For Empty String
	if(::SysStringLen(ConfigFile)==0)
		return S_FALSE;

	EfTidyString String(ConfigFile);
	//char *pFileName=NULL;



	if(!tidyFileExists(*m_ptidyDocument,(ctmbstr)String))
	{
		Error(_T("Config File Doesnot Exist at specified Path"));
		return S_FALSE;
	}

	tidyLoadConfig(*m_ptidyDocument,(ctmbstr)String);

#ifdef UNICODE
	/*if(pFileName)
	{
		delete pFileName;
		pFileName=NULL;
	}*/
#endif

	return S_OK;
}
/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::ResetToDefaultValue()
{
	tidyOptResetAllToDefault(*m_ptidyDocument);
	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_OutputType(OutputType *pVal)
{
	if(tidyOptGetBool(*m_ptidyDocument, TidyXmlOut))
	{
		*pVal=XmlOut;
	}
	
	if(tidyOptGetBool(*m_ptidyDocument,TidyXhtmlOut))
	{
		*pVal=XhtmlOut;
	}
	
	if(tidyOptGetBool(*m_ptidyDocument,TidyHtmlOut))
	{
		*pVal=HtmlOut;
	}

  
	return S_OK;
}


STDMETHODIMP CtidyOption::put_OutputType(OutputType newVal)
{
	
	if(newVal==XmlOut)
		tidyOptSetBool(*m_ptidyDocument, TidyXmlOut, yes );
	
	if(newVal==XhtmlOut)
		tidyOptSetBool( *m_ptidyDocument, TidyXhtmlOut, yes );
	
	if(newVal==HtmlOut)
		tidyOptSetBool(*m_ptidyDocument, TidyHtmlOut, yes );
  
	 

	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_Doctype(BSTR *pVal)
{
	ctmbstr string;

	string=tidyOptGetValue(*m_ptidyDocument,TidyDoctype);
	
	*pVal=CComBSTR(string).Detach();

	return S_OK;

    
}


STDMETHODIMP CtidyOption::put_Doctype(BSTR newVal)
{

	USES_CONVERSION;
	//Check For Empty String
	if(::SysStringLen(newVal)==0)
		return S_FALSE;

    EfTidyString newStrVal(newVal);
	
	TCHAR *TidyString=new TCHAR[newStrVal.GetLength()+10];
	wsprintf (TidyString,_T("\"%s\""),newStrVal);
	
//	MessageBox(NULL,TidyString,"",MB_OK);
	
	Bool bOK=tidyOptSetValue(*m_ptidyDocument, TidyDoctype,(ctmbstr)TidyString);

	if(TidyString)
	{
		delete [] TidyString;
		TidyString=NULL;
	}
    
	if(bOK) 
		return S_OK;
	else
		return S_FALSE;
 
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_DefaultAltText(BSTR *pVal)
{
//	Bool ok;
	ctmbstr string;

	string=tidyOptGetValue(*m_ptidyDocument, TidyAltText);

	
	*pVal=CComBSTR(string).Detach();

	return S_OK;
}


STDMETHODIMP CtidyOption::put_DefaultAltText(BSTR newVal)
{
	if(::SysStringLen(newVal)==0)
		return S_FALSE;
	
	Bool ok;
	EfTidyString string(newVal);
	
	ok=tidyOptSetValue(*m_ptidyDocument, TidyAltText,(ctmbstr)string);

	if(ok)
		return S_OK;
	else
		return S_FALSE;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/


STDMETHODIMP CtidyOption::get_InputAsXML(VARIANT_BOOL *pVal)
{
		*pVal = tidyOptGetBool( *m_ptidyDocument, TidyXmlTags ) ? VARIANT_TRUE : VARIANT_FALSE;
 

	return S_OK;
}


STDMETHODIMP CtidyOption::put_InputAsXML(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument, TidyXmlTags,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument, TidyXmlTags,no);  

	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/


STDMETHODIMP CtidyOption::get_OutputTagInUpperCase(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,  TidyUpperCaseTags ) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}


STDMETHODIMP CtidyOption::put_OutputTagInUpperCase(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,  TidyUpperCaseTags,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,  TidyUpperCaseTags,no);  
	
	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_OutputAttrInUpperCase(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,TidyUpperCaseAttrs) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_OutputAttrInUpperCase(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyUpperCaseAttrs,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyUpperCaseAttrs,no); 

	return S_OK;
}
/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_LogicalEmphasis(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument, TidyLogicalEmphasis) ? VARIANT_TRUE : VARIANT_FALSE;
	// TODO: Add your implementation code here

	return S_OK;
}

STDMETHODIMP CtidyOption::put_LogicalEmphasis(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument, TidyLogicalEmphasis,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument, TidyLogicalEmphasis,no); 
	return S_OK;
}
/*
  TidyWrapAttVals,     /**< Wrap within attribute values 
  TidyWrapScriptlets,  /**< Wrap within JavaScript string literals 
  TidyWrapSection,     /**< Wrap within <![ ... ]> section tags *
  TidyWrapAsp,         /**< Wrap within ASP pseudo elements *
  TidyWrapJste,        /**< Wrap within JSTE pseudo elements *
  TidyWrapPhp,  */
/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_WrapScriptlets(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument, TidyWrapScriptlets) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_WrapScriptlets(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyWrapScriptlets,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyWrapScriptlets,no); 
	

	return S_OK;
}
/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_WrapAttVals(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,TidyWrapAttVals) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_WrapAttVals(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyWrapAttVals,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument, TidyWrapAttVals,no); 
	
	return S_OK;
}
/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_WrapSection(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,TidyWrapSection) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_WrapSection(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyWrapSection,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyWrapSection,no); 
	
	return S_OK;
}
/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_WrapAsp(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument, TidyWrapAsp) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_WrapAsp(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument, TidyWrapAsp,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,  TidyWrapAsp,no); 
	
	return S_OK;
}
/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_WrapJste(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument, TidyWrapJste) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_WrapJste(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument, TidyWrapJste,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument, TidyWrapJste,no); 
	
	return S_OK;
}
/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_WrapPhp(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,TidyWrapPhp) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_WrapPhp(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyWrapPhp,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyWrapPhp,no); 
		return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/


STDMETHODIMP CtidyOption::get_TidyMark (VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,TidyMark) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_TidyMark(VARIANT_BOOL newVal)
{
		if(newVal==VARIANT_TRUE)
			tidyOptSetBool( *m_ptidyDocument,TidyMark,yes); 
		else
			tidyOptSetBool( *m_ptidyDocument,TidyMark,no);

	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_HideEndTag(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,TidyHideEndTags) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_HideEndTag(VARIANT_BOOL newVal)
{
		if(newVal==VARIANT_TRUE)
			tidyOptSetBool( *m_ptidyDocument,TidyHideEndTags,yes); 
		else
			tidyOptSetBool( *m_ptidyDocument,TidyHideEndTags,no);


	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_EncloseText(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,TidyEncloseBodyText) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_EncloseText(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyEncloseBodyText,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyEncloseBodyText,no);


	return S_OK;
}
/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_EncloseBlockText(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,TidyEncloseBlockText) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_EncloseBlockText(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyEncloseBlockText,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyEncloseBlockText,no);

	return S_OK;
}
/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/


STDMETHODIMP CtidyOption::get_NewEmptyTags(BSTR *pVal)
{
	USES_CONVERSION;

	EfTidyString TagString;
	this->ReturnTagsString(EMPTYTAGS,TagString);
	*pVal=CComBSTR(TagString).Detach();
	return S_OK;
}

STDMETHODIMP CtidyOption::put_NewEmptyTags(BSTR newVal)
{
	if(::SysStringLen(newVal)==0)
		return S_FALSE;

//	_bstr_t tagString(newVal);

	this->ParseTags(EMPTYTAGS,EfTidyString(newVal));

	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_NewInlineTags(BSTR *pVal)
{
	USES_CONVERSION;
	EfTidyString TagString;
	this->ReturnTagsString(INLINETAGS,TagString);
	*pVal=CComBSTR(TagString).Detach();
	return S_OK;
}

STDMETHODIMP CtidyOption::put_NewInlineTags(BSTR newVal)
{
	if(::SysStringLen(newVal)==0)
		return S_FALSE;
	//_bstr_t tagString(newVal);	
	this->ParseTags(INLINETAGS,EfTidyString(newVal));
	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_NewBlockLevelTags(BSTR *pVal)
{
	USES_CONVERSION;
	EfTidyString TagString;
	this->ReturnTagsString(BLOCKTAGS,TagString);
	*pVal=CComBSTR(TagString).Detach();
	return S_OK;
}

STDMETHODIMP CtidyOption::put_NewBlockLevelTags(BSTR newVal)
{
	if(::SysStringLen(newVal)==0)
		return S_FALSE;

//	_bstr_t tagString(newVal);
	//MessageBox(NULL,tagString,"String For parsing",MB_OK);
	this->ParseTags(BLOCKTAGS,EfTidyString(newVal));

	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_NewPreTags(BSTR *pVal)
{
	USES_CONVERSION;

	EfTidyString TagString;
	this->ReturnTagsString(PRETAGS,TagString);

	//MessageBox(NULL,TagString,"",MB_OK);

	*pVal=CComBSTR(TagString).Detach();


	return S_OK;
}

STDMETHODIMP CtidyOption::put_NewPreTags(BSTR newVal)
{
	if(::SysStringLen(newVal)==0)
		return S_FALSE;
	//_bstr_t tagString(newVal);
	this->ParseTags(PRETAGS,EfTidyString(newVal));

	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_Clean(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,TidyMakeClean) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_Clean(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyMakeClean,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyMakeClean,no);

	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_Bare(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,TidyMakeBare) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_Bare(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyMakeBare,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyMakeBare,no);

	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_DropFontTags(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,TidyDropFontTags) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_DropFontTags(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyDropFontTags,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyDropFontTags,no);

	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_DropEmptyParas(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,TidyDropEmptyParas) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_DropEmptyParas(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyDropEmptyParas,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyDropEmptyParas,no);

	return S_OK;
}
/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_Word2000(VARIANT_BOOL *pVal)
{
		*pVal = tidyOptGetBool( *m_ptidyDocument,TidyWord2000) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_Word2000(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyWord2000,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyWord2000,no);
	
	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_FixBadComment(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,TidyFixComments) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_FixBadComment(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyFixComments,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyFixComments,no);

	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_FixBackslash(VARIANT_BOOL *pVal)
{ 
	*pVal = tidyOptGetBool( *m_ptidyDocument,TidyFixBackslash) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_FixBackslash(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyFixBackslash,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyFixBackslash,no);

	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/


STDMETHODIMP CtidyOption::get_DropPropAttr(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,TidyDropPropAttrs) ? VARIANT_TRUE : VARIANT_FALSE;
	return S_OK;
}

STDMETHODIMP CtidyOption::put_DropPropAttr(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyDropPropAttrs,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyDropPropAttrs,no);
	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_ADDXmlDecl(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument, TidyXmlDecl) ? VARIANT_TRUE : VARIANT_FALSE;
	return S_OK;
}

STDMETHODIMP CtidyOption::put_ADDXmlDecl(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument, TidyXmlDecl,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument, TidyXmlDecl,no);
	
	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_AddXmlSpace(VARIANT_BOOL *pVal)
{
 *pVal = tidyOptGetBool( *m_ptidyDocument, TidyXmlSpace) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_AddXmlSpace(VARIANT_BOOL newVal)
{
if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument, TidyXmlSpace,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument, TidyXmlSpace,no);
	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_AssumeXmlProcins(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,TidyXmlPIs) ? VARIANT_TRUE : VARIANT_FALSE;


	return S_OK;
}

STDMETHODIMP CtidyOption::put_AssumeXmlProcins(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyXmlPIs,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyXmlPIs,no);

	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/


STDMETHODIMP CtidyOption::get_CharEncoding(CharEncodingType *pVal)
{
	
	
	

	ctmbstr CharString;
	CharString=tidyOptGetEncName(*m_ptidyDocument,TidyCharEncoding);
	EfTidyString Encoded(((char*)CharString));
    
	Encoded.MakeUpper();

	if(Encoded.Find(_T("ASCII"))!=-1)
	{
		*pVal=ASCII; 
		return S_OK;
	}


	if(Encoded==_T("LATIN1"))
	{
		*pVal=LATIN1; 
		return S_OK;
	}
	
	if(Encoded==_T("RAW"))
	{
		*pVal=RAW; 
		return S_OK;
	}
	
	if(Encoded==_T("UTF8"))
	{
		*pVal=UTF8; 
		return S_OK;
	}
	

	if(Encoded==_T("ISO2022"))
	{
		*pVal=ISO2022; 
		return S_OK;
	}

	if(Encoded==_T("MAC"))
	{
		*pVal=MAC; 
		return S_OK;
	}
	
	if(Encoded==_T("WIN1252"))
	{
		*pVal=WIN1252; 
		return S_OK;
	}

	if(Encoded==_T("UTF16LE"))
	{
		*pVal=UTF16LE; 
		return S_OK;
	}

	if(Encoded==_T("UTF16BE"))
	{
		*pVal=UTF16BE; 
		return S_OK;
	}
	
	if(Encoded==_T("UTF16"))
	{
		*pVal=UTF16; 
		return S_OK;
	}
	
	if(Encoded==_T("BIG5"))
	{
		*pVal=BIG5; 
		return S_OK;
	}
	
	if(Encoded==_T("SHIFTJIS"))
	{
		*pVal=SHIFTJIS; 
		return S_OK;
	}
	

	

	return S_OK;
}

STDMETHODIMP CtidyOption::put_CharEncoding(CharEncodingType newVal)
{

	//Setting new character Encoding
	EfTidyString CharEncode;

	switch(newVal)
	{
	case ASCII: CharEncode=_T("ASCII"); break;
	case LATIN1:CharEncode=_T("LATIN1"); break;
	case RAW: CharEncode=_T("RAW"); break;
	case UTF8:CharEncode=_T("UTF8"); break;
	case ISO2022:CharEncode=_T("ISO2022"); break;
	case MAC:CharEncode=_T("MAC"); break;
	case WIN1252:CharEncode=_T("WIN1252"); break;
	case UTF16LE:CharEncode=_T("UTF16LE"); break;
	case UTF16BE:CharEncode=_T("UTF16BE"); break;
	case UTF16:CharEncode=_T("UTF16"); break;
	case BIG5:CharEncode=_T("BIG5"); break;
	case SHIFTJIS:CharEncode=_T("SHIFTJIS"); break;

	}

	if(tidySetCharEncoding(*m_ptidyDocument,(ctmbstr)CharEncode))
		return S_OK;
	else
		return S_FALSE;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/


STDMETHODIMP CtidyOption::get_InCharEncoding(CharEncodingType *pVal)
{
	
	

	ctmbstr CharString;
	CharString=tidyOptGetEncName(*m_ptidyDocument,TidyInCharEncoding);
	EfTidyString Encoded((char*)CharString);

	
	if(Encoded.Find(_T("ASCII"))!=-1)
	{
		*pVal=ASCII; 
		return S_OK;
	}


	if(Encoded==_T("LATIN1"))
	{
		*pVal=LATIN1; 
		return S_OK;
	}
	
	if(Encoded==_T("RAW"))
	{
		*pVal=RAW; 
		return S_OK;
	}
	
	if(Encoded==_T("UTF8"))
	{
		*pVal=UTF8; 
		return S_OK;
	}
	

	if(Encoded==_T("ISO2022"))
	{
		*pVal=ISO2022; 
		return S_OK;
	}

	if(Encoded==_T("MAC"))
	{
		*pVal=MAC; 
		return S_OK;
	}
	
	if(Encoded==_T("WIN1252"))
	{
		*pVal=WIN1252; 
		return S_OK;
	}

	if(Encoded==_T("UTF16LE"))
	{
		*pVal=UTF16LE; 
		return S_OK;
	}

	if(Encoded==_T("UTF16BE"))
	{
		*pVal=UTF16BE; 
		return S_OK;
	}
	
	if(Encoded==_T("UTF16"))
	{
		*pVal=UTF16; 
		return S_OK;
	}
	
	if(Encoded==_T("BIG5"))
	{
		*pVal=BIG5; 
		return S_OK;
	}
	
	if(Encoded==_T("SHIFTJIS"))
	{
		*pVal=SHIFTJIS; 
		return S_OK;
	}
	

	
	return S_OK;
}

STDMETHODIMP CtidyOption::put_InCharEncoding(CharEncodingType newVal)
{
	
	//Setting new character Encoding
	EfTidyString CharEncode;

	switch(newVal)
	{
	case ASCII: CharEncode=_T("ASCII"); break;
	case LATIN1:CharEncode=_T("LATIN1"); break;
	case RAW: CharEncode=_T("RAW"); break;
	case UTF8:CharEncode=_T("UTF8"); break;
	case ISO2022:CharEncode=_T("ISO2022"); break;
	case MAC:CharEncode=_T("MAC"); break;
	case WIN1252:CharEncode=_T("WIN1252"); break;
	case UTF16LE:CharEncode=_T("UTF16LE"); break;
	case UTF16BE:CharEncode=_T("UTF16BE"); break;
	case UTF16:CharEncode=_T("UTF16"); break;
	case BIG5:CharEncode=_T("BIG5"); break;
	case SHIFTJIS:CharEncode=_T("SHIFTJIS"); break;

	}

	if(tidySetInCharEncoding(*m_ptidyDocument,(ctmbstr)CharEncode))
		return S_OK;
	else
		return S_FALSE;

}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/



STDMETHODIMP CtidyOption::get_OutCharEncoding(CharEncodingType *pVal)
{
	//EfTidyString Encoded;
	ctmbstr CharString;
	CharString=tidyOptGetEncName(*m_ptidyDocument, TidyOutCharEncoding);
	
	EfTidyString Encoded(((char*)CharString));    
	Encoded.MakeUpper();
    

	if(Encoded.Find(_T("ASCII"))!=-1)
	{
		*pVal=ASCII; 
		return S_OK;
	}


	if(Encoded==_T("LATIN1"))
	{
		*pVal=LATIN1; 
		return S_OK;
	}
	
	if(Encoded==_T("RAW"))
	{
		*pVal=RAW; 
		return S_OK;
	}
	
	if(Encoded==_T("UTF8"))
	{
		*pVal=UTF8; 
		return S_OK;
	}
	

	if(Encoded==_T("ISO2022"))
	{
		*pVal=ISO2022; 
		return S_OK;
	}

	if(Encoded==_T("MAC"))
	{
		*pVal=MAC; 
		return S_OK;
	}
	
	if(Encoded==_T("WIN1252"))
	{
		*pVal=WIN1252; 
		return S_OK;
	}

	if(Encoded==_T("UTF16LE"))
	{
		*pVal=UTF16LE; 
		return S_OK;
	}

	if(Encoded==_T("UTF16BE"))
	{
		*pVal=UTF16BE; 
		return S_OK;
	}
	
	if(Encoded==_T("UTF16"))
	{
		*pVal=UTF16; 
		return S_OK;
	}
	
	if(Encoded==_T("BIG5"))
	{
		*pVal=BIG5; 
		return S_OK;
	}
	
	if(Encoded==_T("SHIFTJIS"))
	{
		*pVal=SHIFTJIS; 
		return S_OK;
	}
	

	

	return S_OK;
}

STDMETHODIMP CtidyOption::put_OutCharEncoding(CharEncodingType newVal)
{
	
	//Setting new character Encoding
	EfTidyString CharEncode;

	switch(newVal)
	{
	case ASCII: CharEncode=_T("ASCII"); break;
	case LATIN1:CharEncode=_T("LATIN1"); break;
	case RAW: CharEncode=_T("RAW"); break;
	case UTF8:CharEncode=_T("UTF8"); break;
	case ISO2022:CharEncode=_T("ISO2022"); break;
	case MAC:CharEncode=_T("MAC"); break;
	case WIN1252:CharEncode=_T("WIN1252"); break;
	case UTF16LE:CharEncode=_T("UTF16LE"); break;
	case UTF16BE:CharEncode=_T("UTF16BE"); break;
	case UTF16:CharEncode=_T("UTF16"); break;
	case BIG5:CharEncode=_T("BIG5"); break;
	case SHIFTJIS:CharEncode=_T("SHIFTJIS"); break;

	}

	if(tidySetOutCharEncoding(*m_ptidyDocument,(ctmbstr)CharEncode))
		return S_OK;
	else
		return S_FALSE;

}
/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/


STDMETHODIMP CtidyOption::get_NumericsEntities(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,  TidyNumEntities) ? VARIANT_TRUE : VARIANT_FALSE;
	return S_OK;
}


STDMETHODIMP CtidyOption::put_NumericsEntities(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,  TidyNumEntities,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,  TidyNumEntities,no);

	return S_OK;
}
/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/


STDMETHODIMP CtidyOption::get_QuoteMarks(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,  TidyQuoteMarks) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_QuoteMarks(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,  TidyQuoteMarks,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,  TidyQuoteMarks,no);
	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/


STDMETHODIMP CtidyOption::get_QuoteNBSP(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,  TidyQuoteNbsp) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_QuoteNBSP(VARIANT_BOOL newVal)
{

	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,  TidyQuoteNbsp,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,  TidyQuoteNbsp,no);

	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/


STDMETHODIMP CtidyOption::get_QuoteAmpersand(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,TidyQuoteAmpersand) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_QuoteAmpersand(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyQuoteAmpersand,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyQuoteAmpersand,no);

	return S_OK;
}
/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_Indent(IndentScheme *pVal)
{
	int iIndent=tidyOptGetInt( *m_ptidyDocument, TidyIndentContent);//, TidyAutoState );
       
	switch(iIndent)
	{
	case 0:*pVal=NOINDENT;break;
	case 1:*pVal=INDENTBLOCKS;break;
	case 2:*pVal=AUTOINDENT;break;
	}

	return S_OK;
}

STDMETHODIMP CtidyOption::put_Indent(IndentScheme newVal)
{
	
       
	switch(newVal)
	{
	case NOINDENT:tidyOptSetInt( *m_ptidyDocument, TidyIndentContent,TidyNoState);//, TidyAutoState );break;
	case INDENTBLOCKS:tidyOptSetInt( *m_ptidyDocument, TidyIndentContent,TidyYesState);//, TidyAutoState );break;
	case AUTOINDENT:tidyOptSetInt(*m_ptidyDocument, TidyIndentContent,TidyAutoState);//, TidyAutoState );break;
	}

	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_IndentSpace(long *pVal)
{
	int iIndent=tidyOptGetInt(*m_ptidyDocument, TidyIndentSpaces);//, TidyAutoState );
	*pVal=iIndent;
	return S_OK;
}

STDMETHODIMP CtidyOption::put_IndentSpace(long newVal)
{
	
	if(tidyOptSetInt(*m_ptidyDocument, TidyIndentSpaces,newVal))
		return S_OK;
	else
		return S_FALSE;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_WrapLen(long *pVal)
{
	int iIndent=tidyOptGetInt(*m_ptidyDocument,TidyWrapLen);//, TidyAutoState );
	*pVal=iIndent;


	return S_OK;
}

STDMETHODIMP CtidyOption::put_WrapLen(long newVal)
{
	if(tidyOptSetInt(*m_ptidyDocument,TidyWrapLen,newVal))
		return S_OK;
	else
		return S_FALSE;

}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_TabSize(long *pVal)
{
	int iIndent=tidyOptGetInt(*m_ptidyDocument,TidyTabSize);//, TidyAutoState );
	*pVal=iIndent;


	return S_OK;
}

STDMETHODIMP CtidyOption::put_TabSize(long newVal)
{
	if(tidyOptSetInt(*m_ptidyDocument,TidyTabSize,newVal))
		return S_OK;
	else
		return S_FALSE;

}
/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_IndentAttributes(VARIANT_BOOL *pVal)
{
		*pVal = tidyOptGetBool( *m_ptidyDocument,TidyIndentAttributes) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_IndentAttributes(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyIndentAttributes,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyIndentAttributes,no);

	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_BreakBeforeBR(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,TidyBreakBeforeBR) ? VARIANT_TRUE : VARIANT_FALSE;


	return S_OK;
}

STDMETHODIMP CtidyOption::put_BreakBeforeBR(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyBreakBeforeBR,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyBreakBeforeBR,no);


	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_LiteralAttribs(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,TidyLiteralAttribs) ? VARIANT_TRUE : VARIANT_FALSE;
	return S_OK;
}

STDMETHODIMP CtidyOption::put_LiteralAttribs(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyLiteralAttribs,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyLiteralAttribs,no);
	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_MarkUp(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,TidyLiteralAttribs) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_MarkUp(VARIANT_BOOL newVal)
{
		if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyLiteralAttribs,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyLiteralAttribs,no);

	return S_OK;
}
/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_ShowWarnings(VARIANT_BOOL *pVal)
{

	*pVal = tidyOptGetBool( *m_ptidyDocument,TidyShowWarnings) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_ShowWarnings(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyShowWarnings,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyShowWarnings,no);

	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_Quiet(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,TidyQuiet) ? VARIANT_TRUE : VARIANT_FALSE;


	return S_OK;
}

STDMETHODIMP CtidyOption::put_Quiet(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyQuiet,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyQuiet,no);

	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_KeepTime(VARIANT_BOOL *pVal)
{

	*pVal = tidyOptGetBool( *m_ptidyDocument,TidyKeepFileTimes) ? VARIANT_TRUE : VARIANT_FALSE;


	return S_OK;
}

STDMETHODIMP CtidyOption::put_KeepTime(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyKeepFileTimes,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyKeepFileTimes,no);

	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_ErrorFile(BSTR *pVal)
{

	ctmbstr post;
	post = tidyOptGetValue(*m_ptidyDocument, TidyErrFile );
   
	*pVal=CComBSTR(post).Detach();                   

	return S_OK;
}

STDMETHODIMP CtidyOption::put_ErrorFile(BSTR newVal)
{
	
	if(::SysStringLen(newVal)==0)
		return S_FALSE;

	EfTidyString str(newVal);

	if(tidySetErrorFile( *m_ptidyDocument,(ctmbstr)str))
		   return S_OK;
	   else
		   return S_FALSE;

}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_GnuEmacs(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,TidyEmacs) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_GnuEmacs(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyEmacs,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyEmacs,no);


	return S_OK;
}
/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004
  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_FixUrl(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,TidyFixUri) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_FixUrl(VARIANT_BOOL newVal)
{
		if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyFixUri,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyFixUri,no);
	return S_OK;
}
/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004

  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_BodyOnly(VARIANT_BOOL *pVal)
{
	*pVal = tidyOptGetBool( *m_ptidyDocument,TidyBodyOnly) ? VARIANT_TRUE : VARIANT_FALSE;
	return S_OK;
}

STDMETHODIMP CtidyOption::put_BodyOnly(VARIANT_BOOL newVal)
{	
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyBodyOnly,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyBodyOnly,no);

	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004

  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_HideComments(VARIANT_BOOL *pVal)
{
		*pVal = tidyOptGetBool( *m_ptidyDocument,TidyHideComments) ? VARIANT_TRUE : VARIANT_FALSE;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_HideComments(VARIANT_BOOL newVal)
{
	if(newVal==VARIANT_TRUE)
		tidyOptSetBool( *m_ptidyDocument,TidyHideComments,yes); 
	else
		tidyOptSetBool( *m_ptidyDocument,TidyHideComments,no);

	return S_OK;
}
/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004

  Function Descrption: return total message count
  Interafce Support =YES
 *********************************************************************/

STDMETHODIMP CtidyOption::get_DoctypeMode(DoctypeModes *pVal)
{
	
	int nDoc=tidyOptGetInt(*m_ptidyDocument,TidyDoctypeMode);

	*pVal=(DoctypeModes)nDoc;

	return S_OK;
}

STDMETHODIMP CtidyOption::put_DoctypeMode(DoctypeModes newVal)
{
	tidyOptSetInt(*m_ptidyDocument,TidyDoctypeMode ,newVal);

	return S_OK;
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004

  Function Descrption: return total message count
  Interface Support =NO
 *********************************************************************/

void CtidyOption::AddNewTags(TagsType Tags_Type, const EfTidyString& a_csTag)
{

	/*
	TidyInlineTags
	TidyBlockTags, 
	TidyEmptyTags,
	TidyPreTags,
	*/
	switch(Tags_Type)
	{
	case EMPTYTAGS: 
		tidyOptSetValue(*m_ptidyDocument,TidyEmptyTags,(ctmbstr)a_csTag);
		break;
	
	case INLINETAGS:
		tidyOptSetValue(*m_ptidyDocument,TidyInlineTags,(ctmbstr)a_csTag);
		break;
	
	case PRETAGS:
		tidyOptSetValue(*m_ptidyDocument,TidyPreTags,(ctmbstr)a_csTag);
		break;
	
	case BLOCKTAGS:
		tidyOptSetValue(*m_ptidyDocument,TidyBlockTags,(ctmbstr)a_csTag);
		break;
	}
	

}

/*********************************************************************
  Property Name:ParseTags(short *pVal)
  Last Modified:28- DEC 2011

  Function Descrption: return total message count
  Interafce Support =NO
 *********************************************************************/

void CtidyOption::ParseTags(TagsType Tags_Type,  const EfTidyString& a_csTag)
{
//	TCHAR TempStr[100];
	int iStart = 0;
	
	EfTidyString resToken = a_csTag.Tokenize(_T(","),iStart);

	while(!resToken.IsEmpty())
	{

		switch(Tags_Type)
		{
		case EMPTYTAGS: 
			this->m_vecEmptyTags.push_back(resToken); 
			break;
		case INLINETAGS:
			this->m_vecInlineTags.push_back(resToken); 
			break;
		case PRETAGS:
			this->m_vecPreTags.push_back(resToken); 
			break;
		case BLOCKTAGS:
			this->m_vecBlockTags.push_back(resToken); 
			break;
		}
		resToken = a_csTag.Tokenize(_T(","),iStart);
	}

	//for(unsigned int i=0,j=0;i<a_csTag.GetLength();i++)
	//{
	//	if((a_csTag.GetAt(i)==_T(',')))
	//	{
	//		TempStr[j]=NULL;
	//		j=0;

	//		switch(Tags_Type)
	//		{
	//		case EMPTYTAGS: 
	//			this->m_vecEmptyTags.push_back(TempStr); 
	//			break;
	//		case INLINETAGS:
	//			this->m_vecInlineTags.push_back(TempStr); 
	//			break;
	//		case PRETAGS:
	//			this->m_vecPreTags.push_back(TempStr); 
	//			break;
	//		case BLOCKTAGS:
	//			this->m_vecBlockTags.push_back(TempStr); 
	//			break;
	//		}
	//		//add new Tags
	//		this->AddNewTags(Tags_Type,TempStr);
	//	
	//		
	//	}else
	//	{
	//		TempStr[j++]=a_csTag.at(i);
	//	}
		
}

/*********************************************************************
  Property Name:get_Messages(short *pVal)
  Last Modified:19 oct 2004

  Function Descrption: return total message count
  Interafce Support =NO
 *********************************************************************/

void CtidyOption::ReturnTagsString(TagsType tags_Type,EfTidyString &TagString)
{
	
	
	std::vector<EfTidyString> TmpVect;
	
	switch(tags_Type)
	{
	case EMPTYTAGS: 
		TmpVect=this->m_vecEmptyTags;
		break;
	case INLINETAGS:
		TmpVect=this->m_vecInlineTags;
		break;
	case PRETAGS:
		TmpVect=this->m_vecPreTags;
		break;
	case BLOCKTAGS:
		TmpVect=this->m_vecBlockTags;
				
	}

	EfTidyString tmpStr;
	// do nothing, since you have nothing
	if(TmpVect.size()==0) return;

	std::vector<EfTidyString>::iterator it;
	//EfTidyString str;

	for(it=TmpVect.begin();it<TmpVect.end();it++)
	{
		tmpStr.AppendFormat(_T(",%s"),*it);
	}

	//copy data to return string
	tmpStr.TrimLeft(',');
	TagString=tmpStr;
	////MessageBox(NULL,tmpStr.c_str(),_T(""),MB_OK);
	
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The GNU General Public License (GPLv3)


Written By
Software Developer (Senior)
India India
He used to have biography here Smile | :) , but now he will hire someone (for free offcourse Big Grin | :-D ), Who writes his biography on his behalf Smile | :)

He is Great Fan of Mr. Johan Rosengren (his idol),Lim Bio Liong, Nishant S and DavidCrow and Believes that, he will EXCEL in his life by following there steps!!!

He started with Visual C++ then moved to C# then he become language agnostic, you give him task,tell him the language or platform, he we start immediately, if he knows the language otherwise he quickly learn it and start contributing productively

Last but not the least, For good 8 years he was Visual CPP MSMVP!

Comments and Discussions