668:
Is it possible to change the caption from a column without to remove the column and add it with the new caption
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"ColumnName")))->PutCaption(L"NewName");
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"ColumnName")))->PutHTMLCaption(L"<b>New</b>Name");

667:
FilterBarCaption ALL Keyword ( sample 2, result )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void OnAddItemTree1(long   Item)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'
		#import <ExTree.dll>
		using namespace EXTREELib;
	*/
	EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
	_variant_t i = spTree1->FormatABC(L"value + 1",spTree1->GetItems()->GetItemToIndex(Item),vtMissing,vtMissing);
	spTree1->GetItems()->PutCellImage(Item,long(3),i);
}

EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->Images(_bstr_t("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTq") +
"lVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m" +
"0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/y" +
"NAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=");
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Col-1")));
	var_Column->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowExclude | EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox | EXTREELib::exSortItemsAsc));
EXTREELib::IColumnPtr var_Column1 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Col-2")));
	var_Column1->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column1->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowExclude | EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox | EXTREELib::exSortItemsAsc));
EXTREELib::IColumnPtr var_Column2 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Check")));
	var_Column2->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
	var_Column2->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column2->PutDisplayFilterPattern(VARIANT_FALSE);
	var_Column2->PutFilterType(EXTREELib::exCheck);
EXTREELib::IColumnPtr var_Column3 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Image")));
	var_Column3->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column3->PutFilterType(EXTREELib::exImage);
	var_Column3->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowExclude | EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox));
EXTREELib::IColumnPtr var_Column4 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column4->PutAllowSizing(VARIANT_FALSE);
	var_Column4->PutAllowSort(VARIANT_FALSE);
	var_Column4->PutWidth(32);
	var_Column4->PutFormatColumn(L"1 apos ``");
	var_Column4->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->PutCellCaption(var_Items->AddItem("Item A"),long(1),"Sub-Item A");
	long h = var_Items->AddItem("Item B");
	var_Items->PutCellCaption(h,long(1),"Sub-Item B");
	var_Items->PutCellState(h,long(2),1);
	var_Items->PutCellCaption(var_Items->AddItem("Item C"),long(1),"Sub-Item C");
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'stdole' for the library: 'OLE Automation'

	#import <stdole2.tlb>
*/
spTree1->PutFilterBarFont(IFontDispPtr(((stdole::FontPtr)(spTree1->GetFont()))));
spTree1->PutDescription(EXTREELib::exFilterBarAnd,_bstr_t(spTree1->FormatABC(L"`<fgcolor=808080> ` + value + ` </fgcolor>`",spTree1->GetDescription(EXTREELib::exFilterBarAnd),vtMissing,vtMissing)));
spTree1->PutFilterBarCaption(_bstr_t("(( ( all replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `[") +
"<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( matchi" +
"temcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount" +
" + ` item(s)`) )))");
spTree1->PutFilterBarPromptVisible(EXTREELib::FilterBarVisibleEnum(EXTREELib::exFilterBarVisible | EXTREELib::exFilterBarPromptVisible));
EXTREELib::IColumnPtr var_Column5 = spTree1->GetColumns()->GetItem(long(0));
	var_Column5->PutFilterType(EXTREELib::exFilter);
	var_Column5->PutFilter(L"Item A|Item B");
spTree1->GetColumns()->GetItem(long(2))->PutFilter(L"1");
spTree1->ApplyFilter();
spTree1->EndUpdate();

666:
FilterBarCaption ALL Keyword ( sample 1 )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void OnAddItemTree1(long   Item)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'
		#import <ExTree.dll>
		using namespace EXTREELib;
	*/
	EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
	_variant_t i = spTree1->FormatABC(L"value + 1",spTree1->GetItems()->GetItemToIndex(Item),vtMissing,vtMissing);
	spTree1->GetItems()->PutCellImage(Item,long(3),i);
}

EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->Images(_bstr_t("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTq") +
"lVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m" +
"0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/y" +
"NAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=");
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Col-1")));
	var_Column->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowExclude | EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox | EXTREELib::exSortItemsAsc));
EXTREELib::IColumnPtr var_Column1 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Col-2")));
	var_Column1->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column1->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowExclude | EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox | EXTREELib::exSortItemsAsc));
EXTREELib::IColumnPtr var_Column2 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Check")));
	var_Column2->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
	var_Column2->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column2->PutDisplayFilterPattern(VARIANT_FALSE);
	var_Column2->PutFilterType(EXTREELib::exCheck);
EXTREELib::IColumnPtr var_Column3 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Image")));
	var_Column3->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column3->PutFilterType(EXTREELib::exImage);
	var_Column3->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowExclude | EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox));
EXTREELib::IColumnPtr var_Column4 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column4->PutAllowSizing(VARIANT_FALSE);
	var_Column4->PutAllowSort(VARIANT_FALSE);
	var_Column4->PutWidth(32);
	var_Column4->PutFormatColumn(L"1 apos ``");
	var_Column4->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->PutCellCaption(var_Items->AddItem("Item A"),long(1),"Sub-Item A");
	long h = var_Items->AddItem("Item B");
	var_Items->PutCellCaption(h,long(1),"Sub-Item B");
	var_Items->PutCellState(h,long(2),1);
	var_Items->PutCellCaption(var_Items->AddItem("Item C"),long(1),"Sub-Item C");
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'stdole' for the library: 'OLE Automation'

	#import <stdole2.tlb>
*/
spTree1->PutFilterBarFont(IFontDispPtr(((stdole::FontPtr)(spTree1->GetFont()))));
spTree1->PutDescription(EXTREELib::exFilterBarAnd,_bstr_t(spTree1->FormatABC(L"`<fgcolor=808080> ` + value + ` </fgcolor>`",spTree1->GetDescription(EXTREELib::exFilterBarAnd),vtMissing,vtMissing)));
spTree1->PutFilterBarCaption(L"all");
spTree1->PutFilterBarPromptVisible(EXTREELib::FilterBarVisibleEnum(EXTREELib::exFilterBarVisible | EXTREELib::exFilterBarPromptVisible));
EXTREELib::IColumnPtr var_Column5 = spTree1->GetColumns()->GetItem(long(0));
	var_Column5->PutFilterType(EXTREELib::exFilter);
	var_Column5->PutFilter(L"Item A|Item B");
spTree1->GetColumns()->GetItem(long(2))->PutFilter(L"1");
spTree1->ApplyFilter();
spTree1->EndUpdate();

665:
FilterBarCaption ALLUI Keyword ( sample 2, result )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void OnAddItemTree1(long   Item)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'
		#import <ExTree.dll>
		using namespace EXTREELib;
	*/
	EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
	_variant_t i = spTree1->FormatABC(L"value + 1",spTree1->GetItems()->GetItemToIndex(Item),vtMissing,vtMissing);
	spTree1->GetItems()->PutCellImage(Item,long(3),i);
}

EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->Images(_bstr_t("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTq") +
"lVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m" +
"0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/y" +
"NAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=");
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Col-1")));
	var_Column->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowExclude | EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox | EXTREELib::exSortItemsAsc));
EXTREELib::IColumnPtr var_Column1 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Col-2")));
	var_Column1->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column1->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowExclude | EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox | EXTREELib::exSortItemsAsc));
EXTREELib::IColumnPtr var_Column2 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Check")));
	var_Column2->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
	var_Column2->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column2->PutDisplayFilterPattern(VARIANT_FALSE);
	var_Column2->PutFilterType(EXTREELib::exCheck);
EXTREELib::IColumnPtr var_Column3 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Image")));
	var_Column3->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column3->PutFilterType(EXTREELib::exImage);
	var_Column3->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowExclude | EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox));
EXTREELib::IColumnPtr var_Column4 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column4->PutAllowSizing(VARIANT_FALSE);
	var_Column4->PutAllowSort(VARIANT_FALSE);
	var_Column4->PutWidth(32);
	var_Column4->PutFormatColumn(L"1 apos ``");
	var_Column4->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->PutCellCaption(var_Items->AddItem("Item A"),long(1),"Sub-Item A");
	long h = var_Items->AddItem("Item B");
	var_Items->PutCellCaption(h,long(1),"Sub-Item B");
	var_Items->PutCellState(h,long(2),1);
	var_Items->PutCellCaption(var_Items->AddItem("Item C"),long(1),"Sub-Item C");
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'stdole' for the library: 'OLE Automation'

	#import <stdole2.tlb>
*/
spTree1->PutFilterBarFont(IFontDispPtr(((stdole::FontPtr)(spTree1->GetFont()))));
spTree1->PutDescription(EXTREELib::exFilterBarAnd,_bstr_t(spTree1->FormatABC(L"`<fgcolor=808080> ` + value + ` </fgcolor>`",spTree1->GetDescription(EXTREELib::exFilterBarAnd),vtMissing,vtMissing)));
spTree1->PutFilterBarCaption(_bstr_t("(( ( allui replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace ") +
"`[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( matc" +
"hitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcou" +
"nt + ` item(s)`) )))");
spTree1->PutFilterBarPromptVisible(EXTREELib::FilterBarVisibleEnum(EXTREELib::exFilterBarVisible | EXTREELib::exFilterBarPromptVisible));
EXTREELib::IColumnPtr var_Column5 = spTree1->GetColumns()->GetItem(long(0));
	var_Column5->PutFilterType(EXTREELib::exFilter);
	var_Column5->PutFilter(L"Item A|Item B");
spTree1->GetColumns()->GetItem(long(2))->PutFilter(L"1");
spTree1->ApplyFilter();
spTree1->EndUpdate();

664:
FilterBarCaption ALLUI Keyword ( sample 1 )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void OnAddItemTree1(long   Item)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'
		#import <ExTree.dll>
		using namespace EXTREELib;
	*/
	EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
	_variant_t i = spTree1->FormatABC(L"value + 1",spTree1->GetItems()->GetItemToIndex(Item),vtMissing,vtMissing);
	spTree1->GetItems()->PutCellImage(Item,long(3),i);
}

EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->Images(_bstr_t("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTq") +
"lVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m" +
"0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/y" +
"NAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=");
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Col-1")));
	var_Column->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowExclude | EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox | EXTREELib::exSortItemsAsc));
EXTREELib::IColumnPtr var_Column1 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Col-2")));
	var_Column1->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column1->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowExclude | EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox | EXTREELib::exSortItemsAsc));
EXTREELib::IColumnPtr var_Column2 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Check")));
	var_Column2->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
	var_Column2->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column2->PutDisplayFilterPattern(VARIANT_FALSE);
	var_Column2->PutFilterType(EXTREELib::exCheck);
EXTREELib::IColumnPtr var_Column3 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Image")));
	var_Column3->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column3->PutFilterType(EXTREELib::exImage);
	var_Column3->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowExclude | EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox));
EXTREELib::IColumnPtr var_Column4 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column4->PutAllowSizing(VARIANT_FALSE);
	var_Column4->PutAllowSort(VARIANT_FALSE);
	var_Column4->PutWidth(32);
	var_Column4->PutFormatColumn(L"1 apos ``");
	var_Column4->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->PutCellCaption(var_Items->AddItem("Item A"),long(1),"Sub-Item A");
	long h = var_Items->AddItem("Item B");
	var_Items->PutCellCaption(h,long(1),"Sub-Item B");
	var_Items->PutCellState(h,long(2),1);
	var_Items->PutCellCaption(var_Items->AddItem("Item C"),long(1),"Sub-Item C");
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'stdole' for the library: 'OLE Automation'

	#import <stdole2.tlb>
*/
spTree1->PutFilterBarFont(IFontDispPtr(((stdole::FontPtr)(spTree1->GetFont()))));
spTree1->PutDescription(EXTREELib::exFilterBarAnd,_bstr_t(spTree1->FormatABC(L"`<fgcolor=808080> ` + value + ` </fgcolor>`",spTree1->GetDescription(EXTREELib::exFilterBarAnd),vtMissing,vtMissing)));
spTree1->PutFilterBarCaption(L"allui");
spTree1->PutFilterBarPromptVisible(EXTREELib::FilterBarVisibleEnum(EXTREELib::exFilterBarVisible | EXTREELib::exFilterBarPromptVisible));
EXTREELib::IColumnPtr var_Column5 = spTree1->GetColumns()->GetItem(long(0));
	var_Column5->PutFilterType(EXTREELib::exFilter);
	var_Column5->PutFilter(L"Item A|Item B");
spTree1->GetColumns()->GetItem(long(2))->PutFilter(L"1");
spTree1->ApplyFilter();
spTree1->EndUpdate();

663:
FilterBarCaption AVAILABLE Keyword ( sample 2, result )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void OnAddItemTree1(long   Item)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'
		#import <ExTree.dll>
		using namespace EXTREELib;
	*/
	EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
	_variant_t i = spTree1->FormatABC(L"value + 1",spTree1->GetItems()->GetItemToIndex(Item),vtMissing,vtMissing);
	spTree1->GetItems()->PutCellImage(Item,long(3),i);
}

EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->Images(_bstr_t("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTq") +
"lVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m" +
"0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/y" +
"NAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=");
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Col-1")));
	var_Column->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowExclude | EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox | EXTREELib::exSortItemsAsc));
EXTREELib::IColumnPtr var_Column1 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Col-2")));
	var_Column1->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column1->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowExclude | EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox | EXTREELib::exSortItemsAsc));
EXTREELib::IColumnPtr var_Column2 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Check")));
	var_Column2->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
	var_Column2->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column2->PutDisplayFilterPattern(VARIANT_FALSE);
	var_Column2->PutFilterType(EXTREELib::exCheck);
EXTREELib::IColumnPtr var_Column3 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Image")));
	var_Column3->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column3->PutFilterType(EXTREELib::exImage);
	var_Column3->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowExclude | EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox));
EXTREELib::IColumnPtr var_Column4 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column4->PutAllowSizing(VARIANT_FALSE);
	var_Column4->PutAllowSort(VARIANT_FALSE);
	var_Column4->PutWidth(32);
	var_Column4->PutFormatColumn(L"1 apos ``");
	var_Column4->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->PutCellCaption(var_Items->AddItem("Item A"),long(1),"Sub-Item A");
	long h = var_Items->AddItem("Item B");
	var_Items->PutCellCaption(h,long(1),"Sub-Item B");
	var_Items->PutCellState(h,long(2),1);
	var_Items->PutCellCaption(var_Items->AddItem("Item C"),long(1),"Sub-Item C");
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'stdole' for the library: 'OLE Automation'

	#import <stdole2.tlb>
*/
spTree1->PutFilterBarFont(IFontDispPtr(((stdole::FontPtr)(spTree1->GetFont()))));
spTree1->PutDescription(EXTREELib::exFilterBarAnd,_bstr_t(spTree1->FormatABC(L"`<fgcolor=808080> ` + value + ` </fgcolor>`",spTree1->GetDescription(EXTREELib::exFilterBarAnd),vtMissing,vtMissing)));
spTree1->PutFilterBarCaption(_bstr_t("(( ( value replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>` ) + ` ` + ( ava") +
"ilable replace `[` with `<bgcolor=C0C0C0><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>` replace `<s>` with `" +
"` replace `</s>` with `` ) + `<fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount" +
" + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount + ` item(s)`) )))");
spTree1->PutFilterBarPromptVisible(EXTREELib::FilterBarVisibleEnum(EXTREELib::exFilterBarVisible | EXTREELib::exFilterBarPromptVisible));
EXTREELib::IColumnPtr var_Column5 = spTree1->GetColumns()->GetItem(long(0));
	var_Column5->PutFilterType(EXTREELib::exFilter);
	var_Column5->PutFilter(L"Item A|Item B");
spTree1->GetColumns()->GetItem(long(2))->PutFilter(L"1");
spTree1->ApplyFilter();
spTree1->EndUpdate();

662:
FilterBarCaption AVAILABLE Keyword ( sample 1 )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void OnAddItemTree1(long   Item)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'
		#import <ExTree.dll>
		using namespace EXTREELib;
	*/
	EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
	_variant_t i = spTree1->FormatABC(L"value + 1",spTree1->GetItems()->GetItemToIndex(Item),vtMissing,vtMissing);
	spTree1->GetItems()->PutCellImage(Item,long(3),i);
}

EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->Images(_bstr_t("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTq") +
"lVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m" +
"0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/y" +
"NAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=");
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Col-1")));
	var_Column->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowExclude | EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox | EXTREELib::exSortItemsAsc));
EXTREELib::IColumnPtr var_Column1 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Col-2")));
	var_Column1->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column1->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowExclude | EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox | EXTREELib::exSortItemsAsc));
EXTREELib::IColumnPtr var_Column2 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Check")));
	var_Column2->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
	var_Column2->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column2->PutDisplayFilterPattern(VARIANT_FALSE);
	var_Column2->PutFilterType(EXTREELib::exCheck);
EXTREELib::IColumnPtr var_Column3 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Image")));
	var_Column3->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column3->PutFilterType(EXTREELib::exImage);
	var_Column3->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowExclude | EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox));
EXTREELib::IColumnPtr var_Column4 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column4->PutAllowSizing(VARIANT_FALSE);
	var_Column4->PutAllowSort(VARIANT_FALSE);
	var_Column4->PutWidth(32);
	var_Column4->PutFormatColumn(L"1 apos ``");
	var_Column4->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->PutCellCaption(var_Items->AddItem("Item A"),long(1),"Sub-Item A");
	long h = var_Items->AddItem("Item B");
	var_Items->PutCellCaption(h,long(1),"Sub-Item B");
	var_Items->PutCellState(h,long(2),1);
	var_Items->PutCellCaption(var_Items->AddItem("Item C"),long(1),"Sub-Item C");
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'stdole' for the library: 'OLE Automation'

	#import <stdole2.tlb>
*/
spTree1->PutFilterBarFont(IFontDispPtr(((stdole::FontPtr)(spTree1->GetFont()))));
spTree1->PutDescription(EXTREELib::exFilterBarAnd,_bstr_t(spTree1->FormatABC(L"`<fgcolor=808080> ` + value + ` </fgcolor>`",spTree1->GetDescription(EXTREELib::exFilterBarAnd),vtMissing,vtMissing)));
spTree1->PutFilterBarCaption(L"value + ` ` + available");
spTree1->PutFilterBarPromptVisible(EXTREELib::FilterBarVisibleEnum(EXTREELib::exFilterBarVisible | EXTREELib::exFilterBarPromptVisible));
EXTREELib::IColumnPtr var_Column5 = spTree1->GetColumns()->GetItem(long(0));
	var_Column5->PutFilterType(EXTREELib::exFilter);
	var_Column5->PutFilter(L"Item A|Item B");
spTree1->GetColumns()->GetItem(long(2))->PutFilter(L"1");
spTree1->ApplyFilter();
spTree1->EndUpdate();

661:
Is it possible to somehow highlight the column's name different than its filter value in the control's filter bar ( sample 3, results )

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Col-1")));
	var_Column->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowExclude | EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox | EXTREELib::exSortItemsAsc));
EXTREELib::IColumnPtr var_Column1 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Col-2")));
	var_Column1->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column1->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowExclude | EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox | EXTREELib::exSortItemsAsc));
EXTREELib::IColumnPtr var_Column2 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column2->PutAllowSizing(VARIANT_FALSE);
	var_Column2->PutAllowSort(VARIANT_FALSE);
	var_Column2->PutWidth(32);
	var_Column2->PutFormatColumn(L"1 apos ``");
	var_Column2->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->PutCellCaption(var_Items->AddItem("Item A"),long(1),"Sub-Item A");
	var_Items->PutCellCaption(var_Items->AddItem("Item B"),long(1),"Sub-Item B");
	var_Items->PutCellCaption(var_Items->AddItem("Item C"),long(1),"Sub-Item C");
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'stdole' for the library: 'OLE Automation'

	#import <stdole2.tlb>
*/
spTree1->PutFilterBarFont(IFontDispPtr(((stdole::FontPtr)(spTree1->GetFont()))));
spTree1->PutDescription(EXTREELib::exFilterBarAnd,_bstr_t(spTree1->FormatABC(L"`<fgcolor=808080>` + value + `</fgcolor>`",spTree1->GetDescription(EXTREELib::exFilterBarAnd),vtMissing,vtMissing)));
spTree1->PutFilterBarCaption(_bstr_t("(`<b>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) +") +
" ` result(s)` ) : (`<fgcolor=808080>`+ itemcount + ` item(s)`) )) replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replac" +
"e `]` with ` </b></bgcolor></fgcolor>`");
spTree1->PutFilterBarPromptVisible(EXTREELib::exFilterBarToggle);
EXTREELib::IColumnPtr var_Column3 = spTree1->GetColumns()->GetItem(long(0));
	var_Column3->PutFilterType(EXTREELib::exFilter);
	var_Column3->PutFilter(L"Item A|Item B");
EXTREELib::IColumnPtr var_Column4 = spTree1->GetColumns()->GetItem(long(1));
	var_Column4->PutFilterType(EXTREELib::exPattern);
	var_Column4->PutFilter(L"*B");
spTree1->ApplyFilter();
spTree1->EndUpdate();

660:
Is it possible to somehow highlight the column's name different than its filter value in the control's filter bar ( sample 2 )

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Col-1")));
	var_Column->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowExclude | EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox | EXTREELib::exSortItemsAsc));
EXTREELib::IColumnPtr var_Column1 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Col-2")));
	var_Column1->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column1->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowExclude | EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox | EXTREELib::exSortItemsAsc));
EXTREELib::IColumnPtr var_Column2 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column2->PutAllowSizing(VARIANT_FALSE);
	var_Column2->PutAllowSort(VARIANT_FALSE);
	var_Column2->PutWidth(32);
	var_Column2->PutFormatColumn(L"1 apos ``");
	var_Column2->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->PutCellCaption(var_Items->AddItem("Item A"),long(1),"Sub-Item A");
	var_Items->PutCellCaption(var_Items->AddItem("Item B"),long(1),"Sub-Item B");
	var_Items->PutCellCaption(var_Items->AddItem("Item C"),long(1),"Sub-Item C");
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'stdole' for the library: 'OLE Automation'

	#import <stdole2.tlb>
*/
spTree1->PutFilterBarFont(IFontDispPtr(((stdole::FontPtr)(spTree1->GetFont()))));
spTree1->PutDescription(EXTREELib::exFilterBarAnd,_bstr_t(spTree1->FormatABC(L"`<fgcolor=808080>` + value + `</fgcolor>`",spTree1->GetDescription(EXTREELib::exFilterBarAnd),vtMissing,vtMissing)));
spTree1->PutFilterBarCaption(L"value replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>`");
spTree1->PutFilterBarPromptVisible(EXTREELib::exFilterBarToggle);
EXTREELib::IColumnPtr var_Column3 = spTree1->GetColumns()->GetItem(long(0));
	var_Column3->PutFilterType(EXTREELib::exFilter);
	var_Column3->PutFilter(L"Item A|Item B");
EXTREELib::IColumnPtr var_Column4 = spTree1->GetColumns()->GetItem(long(1));
	var_Column4->PutFilterType(EXTREELib::exPattern);
	var_Column4->PutFilter(L"*B");
spTree1->ApplyFilter();
spTree1->EndUpdate();

659:
Is it possible to somehow highlight the column's name different than its filter value in the control's filter bar ( sample 1 )

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Col-1")));
	var_Column->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowExclude | EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox | EXTREELib::exSortItemsAsc));
EXTREELib::IColumnPtr var_Column1 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Col-2")));
	var_Column1->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column1->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowExclude | EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox | EXTREELib::exSortItemsAsc));
EXTREELib::IColumnPtr var_Column2 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column2->PutAllowSizing(VARIANT_FALSE);
	var_Column2->PutAllowSort(VARIANT_FALSE);
	var_Column2->PutWidth(32);
	var_Column2->PutFormatColumn(L"1 apos ``");
	var_Column2->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->PutCellCaption(var_Items->AddItem("Item A"),long(1),"Sub-Item A");
	var_Items->PutCellCaption(var_Items->AddItem("Item B"),long(1),"Sub-Item B");
	var_Items->PutCellCaption(var_Items->AddItem("Item C"),long(1),"Sub-Item C");
spTree1->PutDescription(EXTREELib::exFilterBarAnd,_bstr_t(spTree1->FormatABC(L"`<fgcolor=808080>` + value + `</fgcolor>`",spTree1->GetDescription(EXTREELib::exFilterBarAnd),vtMissing,vtMissing)));
spTree1->PutFilterBarCaption(L"value replace `[` with `<fgcolor=808080>[` replace `]` with `]</fgcolor>`");
spTree1->PutFilterBarPromptVisible(EXTREELib::exFilterBarToggle);
EXTREELib::IColumnPtr var_Column3 = spTree1->GetColumns()->GetItem(long(0));
	var_Column3->PutFilterType(EXTREELib::exFilter);
	var_Column3->PutFilter(L"Item A|Item B");
EXTREELib::IColumnPtr var_Column4 = spTree1->GetColumns()->GetItem(long(1));
	var_Column4->PutFilterType(EXTREELib::exPattern);
	var_Column4->PutFilter(L"*B");
spTree1->ApplyFilter();
spTree1->EndUpdate();

658:
Is it possible to automatically displays the control's filter label to the right

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Item")));
	var_Column->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowExclude | EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox | EXTREELib::exSortItemsAsc));
EXTREELib::IColumnPtr var_Column1 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column1->PutAllowSizing(VARIANT_FALSE);
	var_Column1->PutAllowSort(VARIANT_FALSE);
	var_Column1->PutWidth(32);
	var_Column1->PutFormatColumn(L"1 apos ``");
	var_Column1->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("Item A");
	var_Items->AddItem("Item B");
	var_Items->AddItem("Item C");
spTree1->PutFilterBarCaption(L"`<r>` + value");
spTree1->PutFilterBarPromptVisible(EXTREELib::FilterBarVisibleEnum(EXTREELib::exFilterBarShowCloseOnRight | EXTREELib::exFilterBarToggle));
EXTREELib::IColumnPtr var_Column2 = spTree1->GetColumns()->GetItem(long(0));
	var_Column2->PutFilterType(EXTREELib::exFilter);
	var_Column2->PutFilter(L"Item B");
spTree1->ApplyFilter();
spTree1->EndUpdate();

657:
How can I get the number of results/items being shown in the control's filter bar (sample 4)

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Item")));
	var_Column->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowExclude | EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox | EXTREELib::exSortItemsAsc));
EXTREELib::IColumnPtr var_Column1 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column1->PutAllowSizing(VARIANT_FALSE);
	var_Column1->PutAllowSort(VARIANT_FALSE);
	var_Column1->PutWidth(32);
	var_Column1->PutFormatColumn(L"1 apos ``");
	var_Column1->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("Item A");
	var_Items->AddItem("Item B");
	var_Items->AddItem("Item C");
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'stdole' for the library: 'OLE Automation'

	#import <stdole2.tlb>
*/
spTree1->PutFilterBarFont(IFontDispPtr(((stdole::FontPtr)(spTree1->GetFont()))));
spTree1->PutFilterBarPrompt(_bstr_t(spTree1->FormatABC(L"`<b>` + value",spTree1->GetFilterBarPrompt(),vtMissing,vtMissing)));
spTree1->PutFilterBarCaption(_bstr_t("`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount ") +
"+ 1) + ` result(s)` ) : (`<fgcolor=808080>`+ itemcount + ` item(s)`) )");
spTree1->PutFilterBarPromptVisible(EXTREELib::FilterBarVisibleEnum(EXTREELib::exFilterBarCompact | EXTREELib::exFilterBarShowCloseOnRight | EXTREELib::exFilterBarShowCloseIfRequired | EXTREELib::exFilterBarCaptionVisible | EXTREELib::exFilterBarVisible | EXTREELib::exFilterBarPromptVisible));
spTree1->EndUpdate();

656:
How can I get the number of results being shown in the control's filter bar (sample 3)

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Item")))->PutDisplayFilterButton(VARIANT_TRUE);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column->PutAllowSizing(VARIANT_FALSE);
	var_Column->PutAllowSort(VARIANT_FALSE);
	var_Column->PutWidth(32);
	var_Column->PutFormatColumn(L"1 apos ``");
	var_Column->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("Item A");
	var_Items->AddItem("Item B");
	var_Items->AddItem("Item C");
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'stdole' for the library: 'OLE Automation'

	#import <stdole2.tlb>
*/
spTree1->PutFilterBarFont(IFontDispPtr(((stdole::FontPtr)(spTree1->GetFont()))));
spTree1->PutFilterBarCaption(_bstr_t("`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount ") +
"+ 1) + ` result(s)` ) : ``)");
spTree1->PutFilterBarPromptVisible(EXTREELib::FilterBarVisibleEnum(EXTREELib::exFilterBarCompact | EXTREELib::exFilterBarCaptionVisible | EXTREELib::exFilterBarVisible | EXTREELib::exFilterBarPromptVisible));
EXTREELib::IColumnPtr var_Column1 = spTree1->GetColumns()->GetItem(long(0));
	var_Column1->PutFilterType(EXTREELib::exFilter);
	var_Column1->PutFilter(L"Item A|Item B");
spTree1->ApplyFilter();
spTree1->EndUpdate();

655:
How can I get the number of results being shown in the control's filter bar (sample 2, compact)

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Item")))->PutDisplayFilterButton(VARIANT_TRUE);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column->PutAllowSizing(VARIANT_FALSE);
	var_Column->PutAllowSort(VARIANT_FALSE);
	var_Column->PutWidth(32);
	var_Column->PutFormatColumn(L"1 apos ``");
	var_Column->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("Item A");
	var_Items->AddItem("Item B");
	var_Items->AddItem("Item C");
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'stdole' for the library: 'OLE Automation'

	#import <stdole2.tlb>
*/
spTree1->PutFilterBarFont(IFontDispPtr(((stdole::FontPtr)(spTree1->GetFont()))));
spTree1->PutFilterBarCaption(L"`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? `<off -4> ` + abs(matchitemcount + 1) + ` result(s)` : ``)");
spTree1->PutFilterBarPromptVisible(EXTREELib::FilterBarVisibleEnum(EXTREELib::exFilterBarCompact | EXTREELib::exFilterBarSingleLine | EXTREELib::exFilterBarCaptionVisible | EXTREELib::exFilterBarVisible | EXTREELib::exFilterBarPromptVisible));
EXTREELib::IColumnPtr var_Column1 = spTree1->GetColumns()->GetItem(long(0));
	var_Column1->PutFilterType(EXTREELib::exFilter);
	var_Column1->PutFilter(L"Item A|Item B");
spTree1->ApplyFilter();
spTree1->EndUpdate();

654:
How can I get the number of results being shown in the control's filter bar (sample 1)

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Item")))->PutDisplayFilterButton(VARIANT_TRUE);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column->PutAllowSizing(VARIANT_FALSE);
	var_Column->PutAllowSort(VARIANT_FALSE);
	var_Column->PutWidth(32);
	var_Column->PutFormatColumn(L"1 apos ``");
	var_Column->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("Item A");
	var_Items->AddItem("Item B");
	var_Items->AddItem("Item C");
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'stdole' for the library: 'OLE Automation'

	#import <stdole2.tlb>
*/
spTree1->PutFilterBarFont(IFontDispPtr(((stdole::FontPtr)(spTree1->GetFont()))));
spTree1->PutFilterBarCaption(L"`<b>` + value + `</b><r><fgcolor=808080>` + ( matchitemcount < 0 ? abs(matchitemcount + 1) + ` result(s)` : ``)");
spTree1->PutFilterBarPromptVisible(EXTREELib::FilterBarVisibleEnum(EXTREELib::exFilterBarCaptionVisible | EXTREELib::exFilterBarVisible | EXTREELib::exFilterBarPromptVisible));
EXTREELib::IColumnPtr var_Column1 = spTree1->GetColumns()->GetItem(long(0));
	var_Column1->PutFilterType(EXTREELib::exFilter);
	var_Column1->PutFilter(L"Item A|Item B");
spTree1->ApplyFilter();
spTree1->EndUpdate();

653:
FilterBarCaption Predefined Keywords

// AfterExpandItem event - Fired after an item is expanded (collapsed).
void OnAfterExpandItemTree1(long   Item)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'
		#import <ExTree.dll>
		using namespace EXTREELib;
	*/
	EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
	spTree1->Refresh();
}

EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->PutLinesAtRoot(EXTREELib::exLinesAtRoot);
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Item")))->PutDisplayFilterButton(VARIANT_TRUE);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Check")));
	var_Column->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
	var_Column->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column->PutDisplayFilterPattern(VARIANT_FALSE);
	var_Column->PutFilterType(EXTREELib::exCheck);
EXTREELib::IColumnPtr var_Column1 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column1->PutAllowSizing(VARIANT_FALSE);
	var_Column1->PutAllowSort(VARIANT_FALSE);
	var_Column1->PutWidth(32);
	var_Column1->PutFormatColumn(L"1 apos ``");
	var_Column1->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("Item A");
	long h = var_Items->AddItem("Item B");
	var_Items->PutCellState(var_Items->InsertItem(h,vtMissing,"Sub-Item B1"),long(1),1);
	var_Items->InsertItem(h,vtMissing,"Sub-Item B2");
	var_Items->PutExpandItem(h,VARIANT_TRUE);
	var_Items->AddItem("Item C");
spTree1->PutFilterInclude(EXTREELib::exItemsWithChilds);
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'stdole' for the library: 'OLE Automation'

	#import <stdole2.tlb>
*/
spTree1->PutFilterBarFont(IFontDispPtr(((stdole::FontPtr)(spTree1->GetFont()))));
spTree1->PutFilterBarCaption(_bstr_t("`<fgcolor=0000FF><i>value/current</i></fgcolor>: <fgcolor=808080>` + value + `</fgcolor>` + `<br><fgcolor=0000FF><i>available</") +
"i></fgcolor>: ` + available + `<br><fgcolor=0000FF><i>allui</i></fgcolor>: ` + allui + `<br><fgcolor=0000FF><i>all</i></fgcolor>" +
": ` + all + `<br><fgcolor=0000FF><i>itemcount</i></fgcolor>: <fgcolor=808080>` + itemcount + `</fgcolor>`+ `<br><fgcolor=0000FF>" +
"<i>visibleitemcount</i></fgcolor>: <fgcolor=808080>` + visibleitemcount + `</fgcolor>`+ `<br><fgcolor=0000FF><i>matchitemcount</" +
"i></fgcolor>: <fgcolor=808080>` + matchitemcount + `</fgcolor>`+ `<br><fgcolor=0000FF><i>promptpattern</i></fgcolor>: <fgcolor=8" +
"08080>` + promptpattern + `</fgcolor>`");
spTree1->PutFilterBarPromptPattern(L"B");
spTree1->PutFilterBarPromptVisible(EXTREELib::FilterBarVisibleEnum(EXTREELib::exFilterBarCaptionVisible | EXTREELib::exFilterBarVisible | EXTREELib::exFilterBarPromptVisible));
EXTREELib::IColumnPtr var_Column2 = spTree1->GetColumns()->GetItem(long(0));
	var_Column2->PutFilterType(EXTREELib::exFilter);
	var_Column2->PutFilter(L"Item A|Item B");
spTree1->ApplyFilter();
spTree1->EndUpdate();

652:
I am using filter prompt feature, and also column's filter, just wondering if possible to compact displaying the filter bar so it won't show on multiple lines

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Item")))->PutDisplayFilterButton(VARIANT_TRUE);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column->PutAllowSizing(VARIANT_FALSE);
	var_Column->PutAllowSort(VARIANT_FALSE);
	var_Column->PutWidth(32);
	var_Column->PutFormatColumn(L"1 apos ``");
	var_Column->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("Item A");
	var_Items->AddItem("Item B");
	var_Items->AddItem("Item C");
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'stdole' for the library: 'OLE Automation'

	#import <stdole2.tlb>
*/
spTree1->PutFilterBarFont(IFontDispPtr(((stdole::FontPtr)(spTree1->GetFont()))));
spTree1->PutFilterBarCaption(L"`<r><i><fgcolor=808080><upline><solidline><sha ;;0>` + value");
spTree1->PutFilterBarPromptPattern(L"B");
spTree1->PutFilterBarPromptVisible(EXTREELib::FilterBarVisibleEnum(EXTREELib::exFilterBarCompact | EXTREELib::exFilterBarSingleLine | EXTREELib::exFilterBarVisible | EXTREELib::exFilterBarPromptVisible));
EXTREELib::IColumnPtr var_Column1 = spTree1->GetColumns()->GetItem(long(0));
	var_Column1->PutFilterType(EXTREELib::exFilter);
	var_Column1->PutFilter(L"Item A|Item B");
spTree1->ApplyFilter();
spTree1->EndUpdate();

651:
Just wondering if it is possible to show the filter bar's close button on the right ( sample 2 )

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Item")))->PutDisplayFilterButton(VARIANT_TRUE);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column->PutAllowSizing(VARIANT_FALSE);
	var_Column->PutAllowSort(VARIANT_FALSE);
	var_Column->PutWidth(32);
	var_Column->PutFormatColumn(L"1 apos ``");
	var_Column->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("Item A");
	var_Items->AddItem("Item B");
	var_Items->AddItem("Item C");
spTree1->PutFilterBarPromptVisible(EXTREELib::FilterBarVisibleEnum(EXTREELib::exFilterBarShowCloseOnRight | EXTREELib::exFilterBarToggle | EXTREELib::exFilterBarPromptVisible));
spTree1->PutFilterBarPrompt(_bstr_t(spTree1->FormatABC(L"`<r>` + value",spTree1->GetFilterBarPrompt(),vtMissing,vtMissing)));
spTree1->EndUpdate();

650:
Just wondering if it is possible to show the filter bar's close button on the right ( sample 1 )

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->PutRightToLeft(VARIANT_TRUE);
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Item")))->PutDisplayFilterButton(VARIANT_TRUE);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column->PutAllowSizing(VARIANT_FALSE);
	var_Column->PutAllowSort(VARIANT_FALSE);
	var_Column->PutWidth(32);
	var_Column->PutFormatColumn(L"1 apos ``");
	var_Column->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("Item A");
	var_Items->AddItem("Item B");
	var_Items->AddItem("Item C");
spTree1->PutFilterBarPromptVisible(EXTREELib::FilterBarVisibleEnum(EXTREELib::exFilterBarToggle | EXTREELib::exFilterBarPromptVisible));
spTree1->EndUpdate();

649:
How can I change the visual appearance of the filter bar's close button (EBN)

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
EXTREELib::IAppearancePtr var_Appearance = spTree1->GetVisualAppearance();
	var_Appearance->Add(1,_bstr_t("gBFLBCJwBAEHhEJAAEhABHQDg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLOg7IJ") +
"jyI4/SJAYCydKAWhxIaZKJHCZoEDaTAADCNVAQp6MEIJVbVEI0e79OgBLp/Z7kECIJJAaRjHQdJxGLA8EhtCQhCZteK6SgMKJYXhWQYRXI1JwvMBrWrdQjiOYELQtMKm" +
"SZNLYGG4dR5SVJbcYhSYsRRFMoyDIOXYDLKsdYqSpXIThObEGgaPqJYjsUjCMKnR7HVIURrBPC9TBPE69ZgmC6ucKPX51ShKFaBWDZcwFAS+UBuYCAILiEAQGZ1XT8OR" +
"OicbgJgSTJRlCaZeDsHY7QGR4xkSYp3CaExZAQMgalQYAwjCAAfBANxcA2TgKAUOpDCGFhKg0RpXCwCwDHQHQHEyAIkCkOhbFOGA8A8DohBgRg9AccZcn8EpEjMLI2C2" +
"DYxAgQgvAIUIVkoAAPBQDJlECTZ3CCYwDACQwUA8A5MCAWAWDiQi4l8aQOEgLJuBgBgDmYFAzEoIoIl0WALgKYJbBABADAAHgHg8VAMmqCQQDMXABAATYwTmNwBDATJX" +
"AiAgjHmNQ5lgQ5QEQEQMmcWg/GwD5ylyNw2gMcJcjsBgBgOQQDDhRpVAMMwnDBFw1B0Ax8D0DxOmmJJIGQTY5hGMAwkwM4CAYLZAmAOJnAqAojiIGg6iieYkmeAYOHaK" +
"JDCyCwjH6AoggsQpQliAJLhgaJ0CESBTnyDwjk+cg4g4P5IHIHJ+BWRRzlYWAxiOUxihsY4KjKLJRGqC44FCegkkkM58iAKAPnIWIWD8SRSFSfQnkmewUhYP4GiGKJ7G" +
"0TIbCSUoggqUo0lAQ4LnEcBcD8Coiiif4nE+eAAn2HpOkcFJqi4T5SkyMw/kqQown8IBIBOdA+A+DJrBqVxXEqYo4lCApLhGHBnD8S4ymyfxmg+cwQkQP5egOUZIWoEA" +
"kjIeIPBMBJBD+TBjBifwvkuc58hQJQPmFrYykkchclSApKjGOBuD+TRDFCfw3mmIxNi8FxFlOXhVC4aYDFyPgvg2YBcBcLZGCGCJ0DSLRzGSWQ/lmY5+mEP5gmMDBZRS" +
"MRsFsOxMhMJJ/DsTpTnwaQaE+N5ojuNhdEYNI5C4TZJO1GRDmCaxnA2Yx4n8IpIjOTBQBQC5TgyYw7gUYRYikC0BYRwsDQBoB8eA6Q2hsE0BUXgywZtYCyHMKwnxSAhA" +
"QHkIQhRrBaDsCwA4ERiB2EWAIYIXhhiVEgAEUYwwYjyASLge4FhHgRDkM8OQih0jWPkGgBBAQ");
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Item")))->PutDisplayFilterButton(VARIANT_TRUE);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column->PutAllowSizing(VARIANT_FALSE);
	var_Column->PutAllowSort(VARIANT_FALSE);
	var_Column->PutWidth(32);
	var_Column->PutFormatColumn(L"1 apos ``");
	var_Column->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("Item A");
	var_Items->AddItem("Item B");
	var_Items->AddItem("Item C");
spTree1->PutFilterBarPromptVisible(EXTREELib::FilterBarVisibleEnum(EXTREELib::exFilterBarToggle | EXTREELib::exFilterBarPromptVisible));
spTree1->PutBackground(EXTREELib::exFooterFilterBarButton,0x1000000);
spTree1->EndUpdate();

648:
How can I change the visual appearance of the filter bar's close button (solid)

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Item")))->PutDisplayFilterButton(VARIANT_TRUE);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column->PutAllowSizing(VARIANT_FALSE);
	var_Column->PutAllowSort(VARIANT_FALSE);
	var_Column->PutWidth(32);
	var_Column->PutFormatColumn(L"1 apos ``");
	var_Column->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("Item A");
	var_Items->AddItem("Item B");
	var_Items->AddItem("Item C");
spTree1->PutFilterBarPromptVisible(EXTREELib::exFilterBarPromptVisible);
spTree1->PutBackground(EXTREELib::exFooterFilterBarButton,RGB(255,0,0));
spTree1->EndUpdate();

647:
Is it possible to prevent definitely showing the filter bar's close button

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Item")))->PutDisplayFilterButton(VARIANT_TRUE);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column->PutAllowSizing(VARIANT_FALSE);
	var_Column->PutAllowSort(VARIANT_FALSE);
	var_Column->PutWidth(32);
	var_Column->PutFormatColumn(L"1 apos ``");
	var_Column->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("Item A");
	var_Items->AddItem("Item B");
	var_Items->AddItem("Item C");
spTree1->PutFilterBarPromptVisible(EXTREELib::exFilterBarPromptVisible);
spTree1->PutBackground(EXTREELib::exFooterFilterBarButton,-1);
spTree1->EndUpdate();

646:
Is it possible to show the close button only if there is a filter applied

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Item")))->PutDisplayFilterButton(VARIANT_TRUE);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column->PutAllowSizing(VARIANT_FALSE);
	var_Column->PutAllowSort(VARIANT_FALSE);
	var_Column->PutWidth(32);
	var_Column->PutFormatColumn(L"1 apos ``");
	var_Column->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("Item A");
	var_Items->AddItem("Item B");
	var_Items->AddItem("Item C");
spTree1->PutFilterBarPromptVisible(EXTREELib::FilterBarVisibleEnum(EXTREELib::exFilterBarShowCloseIfRequired | EXTREELib::exFilterBarPromptVisible));
spTree1->EndUpdate();

645:
The control's filter bar is not closed once I click the close button (toggle)

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Item")))->PutDisplayFilterButton(VARIANT_TRUE);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column->PutAllowSizing(VARIANT_FALSE);
	var_Column->PutAllowSort(VARIANT_FALSE);
	var_Column->PutWidth(32);
	var_Column->PutFormatColumn(L"1 apos ``");
	var_Column->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("Item A");
	var_Items->AddItem("Item B");
	var_Items->AddItem("Item C");
	var_Items->PutLockedItemCount(EXTREELib::BottomAlignment,1);
	long h = var_Items->GetLockedItem(EXTREELib::BottomAlignment,0);
	var_Items->PutItemDivider(h,0);
	var_Items->PutCellCaption(h,long(0),"<c><fgcolor=808080>Press the CTRL + F to turn on/off the control's filter bar. ALT + Up/Down moves the focus.");
	var_Items->PutCellCaptionFormat(h,long(0),EXTREELib::exHTML);
spTree1->PutFilterBarCaption(L"`<r><fgcolor=808080>` + value");
spTree1->PutFilterBarPromptPattern(L"B");
spTree1->PutFilterBarPromptVisible(EXTREELib::FilterBarVisibleEnum(EXTREELib::exFilterBarCompact | EXTREELib::exFilterBarToggle | EXTREELib::exFilterBarSingleLine | EXTREELib::exFilterBarVisible | EXTREELib::exFilterBarPromptVisible));
EXTREELib::IColumnPtr var_Column1 = spTree1->GetColumns()->GetItem(long(0));
	var_Column1->PutFilterType(EXTREELib::exFilter);
	var_Column1->PutFilter(L"Item B");
spTree1->ApplyFilter();
spTree1->EndUpdate();

644:
How can I display the control's filter on a single line

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Item")))->PutDisplayFilterButton(VARIANT_TRUE);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column->PutAllowSizing(VARIANT_FALSE);
	var_Column->PutAllowSort(VARIANT_FALSE);
	var_Column->PutWidth(32);
	var_Column->PutFormatColumn(L"1 apos ``");
	var_Column->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("Item A");
	var_Items->AddItem("Item B");
	var_Items->AddItem("Item C");
spTree1->PutFilterBarCaption(L"len(value) ? `filter for: <fgcolor 808080>` + value  : `<fgcolor 808080>no filter`");
spTree1->PutFilterBarPromptVisible(EXTREELib::FilterBarVisibleEnum(EXTREELib::exFilterBarSingleLine | EXTREELib::exFilterBarVisible));
EXTREELib::IColumnPtr var_Column1 = spTree1->GetColumns()->GetItem(long(0));
	var_Column1->PutFilterType(EXTREELib::exFilter);
	var_Column1->PutFilter(L"Item A|Item B");
spTree1->ApplyFilter();
spTree1->EndUpdate();

643:
How can I display the control's filter on a single line (prompt-combined)

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Item")))->PutDisplayFilterButton(VARIANT_TRUE);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column->PutAllowSizing(VARIANT_FALSE);
	var_Column->PutAllowSort(VARIANT_FALSE);
	var_Column->PutWidth(32);
	var_Column->PutFormatColumn(L"1 apos ``");
	var_Column->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("Item A");
	var_Items->AddItem("Item B");
	var_Items->AddItem("Item C");
spTree1->PutFilterBarCaption(L"`<r>` + value");
spTree1->PutFilterBarPromptVisible(EXTREELib::FilterBarVisibleEnum(EXTREELib::exFilterBarCompact | EXTREELib::exFilterBarSingleLine | EXTREELib::exFilterBarVisible | EXTREELib::exFilterBarPromptVisible));
EXTREELib::IColumnPtr var_Column1 = spTree1->GetColumns()->GetItem(long(0));
	var_Column1->PutFilterType(EXTREELib::exFilter);
	var_Column1->PutFilter(L"Item A|Item B");
spTree1->ApplyFilter();
spTree1->EndUpdate();

642:
How can I get the number of results after a filter is applied

// Click event - Occurs when the user presses and then releases the left mouse button over the tree control.
void OnClickTree1()
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'
		#import <ExTree.dll>
		using namespace EXTREELib;
	*/
	EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
	spTree1->ClearFilter();
}

// FilterChange event - Notifies your application that the filter is changed.
void OnFilterChangeTree1()
{
	EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
	OutputDebugStringW( L"Items.MatchItemCount" );
	OutputDebugStringW( _bstr_t(spTree1->GetItems()->GetMatchItemCount()) );
	OutputDebugStringW( _bstr_t(spTree1->FormatABC(L"value < 0 ? `filter applied: ` + abs(value + 1) + ` result(s)` : `no filter`",spTree1->GetItems()->GetMatchItemCount(),vtMissing,vtMissing)) );
}

EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Item")))->PutDisplayFilterButton(VARIANT_TRUE);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column->PutAllowSizing(VARIANT_FALSE);
	var_Column->PutAllowSort(VARIANT_FALSE);
	var_Column->PutWidth(32);
	var_Column->PutFormatColumn(L"1 apos ``");
	var_Column->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("Item A");
	var_Items->AddItem("Item B");
	var_Items->AddItem("Item C");
spTree1->PutFilterBarPromptVisible(EXTREELib::exFilterBarPromptVisible);
spTree1->PutFilterBarPromptPattern(L"Item");
spTree1->EndUpdate();

641:
How can I programmatically clear the control's filter

// Click event - Occurs when the user presses and then releases the left mouse button over the tree control.
void OnClickTree1()
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'
		#import <ExTree.dll>
		using namespace EXTREELib;
	*/
	EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
	spTree1->ClearFilter();
}

EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Item")))->PutDisplayFilterButton(VARIANT_TRUE);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column->PutAllowSizing(VARIANT_FALSE);
	var_Column->PutAllowSort(VARIANT_FALSE);
	var_Column->PutWidth(32);
	var_Column->PutFormatColumn(L"1 apos ``");
	var_Column->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("Item A");
	var_Items->AddItem("Item B");
	var_Items->AddItem("Item C");
spTree1->PutFilterBarPromptVisible(EXTREELib::exFilterBarPromptVisible);
spTree1->PutFilterBarPromptPattern(L"B");
spTree1->EndUpdate();

640:
Is it possible to prevent closing the control's filter bar, so it is always shown (prompt-combined)

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Item")))->PutDisplayFilterButton(VARIANT_TRUE);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column->PutAllowSizing(VARIANT_FALSE);
	var_Column->PutAllowSort(VARIANT_FALSE);
	var_Column->PutWidth(32);
	var_Column->PutFormatColumn(L"1 apos ``");
	var_Column->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("Item A");
	var_Items->AddItem("Item B");
	var_Items->AddItem("Item C");
spTree1->PutFilterBarPromptPattern(L"B");
spTree1->PutFilterBarPromptVisible(EXTREELib::FilterBarVisibleEnum(EXTREELib::exFilterBarVisible | EXTREELib::exFilterBarPromptVisible));
EXTREELib::IColumnPtr var_Column1 = spTree1->GetColumns()->GetItem(long(0));
	var_Column1->PutFilterType(EXTREELib::exFilter);
	var_Column1->PutFilter(L"Item B");
spTree1->ApplyFilter();
spTree1->EndUpdate();

639:
Is it possible to prevent closing the control's filter bar, so it is always shown (prompt)

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Item")))->PutDisplayFilterButton(VARIANT_TRUE);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column->PutAllowSizing(VARIANT_FALSE);
	var_Column->PutAllowSort(VARIANT_FALSE);
	var_Column->PutWidth(32);
	var_Column->PutFormatColumn(L"1 apos ``");
	var_Column->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("Item A");
	var_Items->AddItem("Item B");
	var_Items->AddItem("Item C");
spTree1->PutFilterBarPromptVisible(EXTREELib::exFilterBarPromptVisible);
spTree1->PutFilterBarPromptPattern(L"B");
spTree1->EndUpdate();

638:
Is it possible to prevent closing the control's filter bar, so it is always shown

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Item")))->PutDisplayFilterButton(VARIANT_TRUE);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Pos")));
	var_Column->PutAllowSizing(VARIANT_FALSE);
	var_Column->PutAllowSort(VARIANT_FALSE);
	var_Column->PutWidth(32);
	var_Column->PutFormatColumn(L"1 apos ``");
	var_Column->PutPosition(0);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("Item A");
	var_Items->AddItem("Item B");
	var_Items->AddItem("Item C");
spTree1->PutFilterBarCaption(L"len(value) = 0 ? `<fgcolor=808080>no filter` : value");
spTree1->PutFilterBarPromptVisible(EXTREELib::exFilterBarVisible);
EXTREELib::IColumnPtr var_Column1 = spTree1->GetColumns()->GetItem(long(0));
	var_Column1->PutFilterType(EXTREELib::exFilter);
	var_Column1->PutFilter(L"Item B");
spTree1->ApplyFilter();
spTree1->EndUpdate();

637:
How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 4)

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->PutLinesAtRoot(EXTREELib::exLinesAtRoot);
spTree1->PutVisualDesign(_bstr_t("gBFLBWIgBAEHhEJAEGg6VAkHeLpgwChAOhULB8XAUUg8MAAREEHGMcgRCJ0ei8dhABDEcQAAYAQGKIYBkAKBQAGaAoDDMOQwQwAAxjGKEEwsACEIrjKCRShyCYZRhGc") +
"TSBCIZBqEqSZLiEZRQiiCYsS5GQBRWAkEwiBiEQTjea5CgOIAFS7LIqjRQEBxhIaZYIGaiQADENo9TxIMZAfBIHShK6NJABCCSQKkYx0HScRijDIEFwGIQmbKiej4DCi" +
"CQQW7OYYRVCNMQSfa8HivJyrcamfp/YBgOBYHb1eLVPR5LwfPCGUw1P6PLxkORZHimK4tSLHV7xVpMIwZFafIQhCCoHomS5NU7UNR0TQUFx9FaGX7rDDsGwLAJ6XRgF4" +
"bg2VpnHePpenAN4bH2GwHFmApSjEGBLnWOpRGOTBZHOegrE6BxPiWVJqCweQrn0LgJAWJBjwgaw1gKO5HmWch5h+fovF+G5bmich4BgfZkB8dynRUVYqiUR5rnmex/F6" +
"N4tn2AJfnebZ3DEXw3HWXgzAyIwgicKJKBKEIhCeCgiHyHYFEmSAFmqBghFIdgSCeIJygYDAyAgJx6AoIINAMOJNCgCZCGoGoLmMCI+CwJoihMNglCCIhzFCUg0EmMhg" +
"hWDBkAiQg9CUY4jEYN4Jk2IxklYJoJHIUg+CSZJSESFwkkkGI+FOFIJEIRhPhMCRJCSVoRrSBhiDgTZjHYT4PEkYhwhgJYm0SaIaiaSYuE+GQNlmCIBGCJxjhiZQ5AkM" +
"hAg6ExJCkPhPguaAiFYUAlAkKZ0g6HoOEmWR/GHcA4m0OwIlIJIHCRgQshGJhpjoaocieaZiC6GAimkUgehIOwnGYGYIGkah6jaE4rg6SpCjKK5rEOMYlGIGIihKOggl" +
"oFoqj6L5aGaBo6CkGIkAQjiPpCAAaJILCTJQlKPACDaXJgmSaJsnCdJ4nygKEoijKQpSmKcqCpKoqysK0rivLAsSyLMtC1LYty4Lkui7LwvS+L8wDBMIwzEMUxjHMgyT" +
"KMszDNM4zzQNE0jTNQ1TWNc2DZNo2zcN03jfOA4TiOM5DlOY5zoOk6jrOw7TuO88DxPI8z0PU9j3Pg+T6Ps/D9P4/0AQFAkDQRBUGQdCEJQpC0MQ1DkPRBEUSRNFEVBh" +
"FkXRhGQ9D6Dxfh+W5gGGd4QH2XQjCmDpFFaKoVB+D5Xmed5+H8YAHnIAh9EwV5Fl0d4MkMKJICmSgygSJAoEmMUCIPgnDCCIOQFYCxJjwFoCcA4kxoF+AIJkAgExegDE" +
"gEYQInAzCUAIOEGgfxiiRDYF1Q4EQ2BSCaEQYwbAiKREMpRSymFNDIAkAxT6oVRgSA2qdVKq1WqvVirMZQUhSCnBUMoIgoQRgnGSIQUgkg1hIHYAkAYMROAmHiLsE4xx" +
"SCxBwEwCQ0wmDdBsE0GYXBtg2CSPMFIuwYiQBYBQeAcwOCnBCCZgw0g0glBONAQgqQThCGgPQGoBQfiRGmOEZIPAXjsBoPAO4HRThhA0EQSA5BAgaCKJIGg3QdhOCmNU" +
"BoQAijTCIF0FwQxpCHDIPAYYMQGgtCmFcaQtRAjZCyFYSojQ2B2BoKwIYFApBXEIBsIQ1QsAWAWEwaA1xCgjAoIAQBAQ=");
spTree1->GetColumns()->Add(L"Column");
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	long h = var_Items->AddItem("Root 1");
	var_Items->InsertItem(h,vtMissing,"Child 1");
	var_Items->InsertItem(h,vtMissing,"Child 2");
	var_Items->PutExpandItem(h,VARIANT_TRUE);
	h = var_Items->AddItem("Root 2");
	var_Items->InsertItem(h,vtMissing,"Child");
spTree1->EndUpdate();

636:
How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 3)

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
EXTREELib::IAppearancePtr var_Appearance = spTree1->GetVisualAppearance();
	var_Appearance->Add(3,_bstr_t("gBFLBCJwBAEHhEJAAEhABDwCg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQS") +
"BcQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+Opf" +
"DxXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4" +
"llWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJegef4zluaJ3nqPJeCYH4BAeX5TDLBpVGqKRRnwf4flefZtHsX54BYAR/F+EwVnUd5eAMMJKDIChygyIQpAoEh4iIJ5Jlg" +
"XIcgCXpIGoFwnGEQh6BEKBgmMIICHgIJCAiUAzgyUoAhwJohkiRgygwYpiGoKwzGIcgKCkNQNCMRIbCYCRYk4QoMiOchWDwNBjhiJJaDYTRiGiFwlCQAhOE8JBJHITIR" +
"gwZRZFCFCZBkOIUhKTRpCWAwgGYQ4El4NxlBifIWCcCYCFoaoMGaKYyG6GxlBmGJdhkCAWBIeA5g4U4QhMJAImkPIShRVxGgQJRlCIUISh+SJpnCZIeBgFgiHgO4OlOM" +
"INCISByECDQikkGhuh2JwpmqBogCKaYiC6FwhmkQ4yHgYgYiaHopiuaRakCbIsisSpGjYOwaHYKYMCkK5CA2IxrCwCwFigaJrkLTI6lcdANAEgIA=");
	var_Appearance->Add(1,"CP:3 -2 -2 2 2");
	var_Appearance->Add(4,_bstr_t("gBFLBCJwBAEHhEJAAEhABEICg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQS") +
"BcQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+Opf" +
"DxXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4" +
"llWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJeg8X4rluaZ3niGB+AQHx/EyShjjEVYqiUR5rnmex/GAB5+AIf4gEeXJFHyXZ3gCTAygyAociMKBKEKBIeCiCZyHYFAnCE" +
"eBkh+BghFgRIegOCgYCySAgh4CAkgINAMmMNIgCcCYjn4LoLmMCJGDKC5ijIagoDMYhCAoJg1A0IxEhsJgJFiThChCY5yFYPA0GOGIYloNhNGIaIXCUJACE4TwkEkchO" +
"FSFYlFkXhUCUCQZEYTglCSMxaEkYJIBmFJhDeDZZEYPwlgmQhghaGqVDoa4bGaeY6FGGZNlmFIBGEJ4jhiZQ5AkMhAg6E5JCkRoGCUSQ6B6CYiSCBIOh+DhJmmARiWQO" +
"JtDsCJSCSBwkXSLIRicaZ6HqIIomoIguhwIpphIHoWDsJ4mCGChpmqOpGheLIOkqUo2iya4DjGJxihiQoSj4IJaDaMpCjCWoGg6PgpBiQ4tHcQJQBAgI=");
	var_Appearance->Add(2,"CP:4 -2 -2 2 2");
spTree1->PutLinesAtRoot(EXTREELib::exGroupLinesAtRoot);
spTree1->PutHasButtons(EXTREELib::exCustom);
spTree1->PutHasButtonsCustom(VARIANT_FALSE,16777216);
spTree1->PutHasButtonsCustom(VARIANT_TRUE,33554432);
spTree1->GetColumns()->Add(L"Column");
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	long h = var_Items->AddItem("Root 1");
	var_Items->InsertItem(h,vtMissing,"Child 1");
	var_Items->InsertItem(h,vtMissing,"Child 2");
	var_Items->PutExpandItem(h,VARIANT_TRUE);
	h = var_Items->AddItem("Root 2");
	var_Items->InsertItem(h,vtMissing,"Child");
spTree1->EndUpdate();

635:
How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 2)

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
EXTREELib::IAppearancePtr var_Appearance = spTree1->GetVisualAppearance();
	var_Appearance->Add(1,"XP:TREEVIEW 2 1");
	var_Appearance->Add(2,"XP:TREEVIEW 2 2");
spTree1->PutBackground(EXTREELib::exTreeGlyphOpen,0x1000000);
spTree1->PutBackground(EXTREELib::exTreeGlyphClose,0x2000000);
spTree1->PutLinesAtRoot(EXTREELib::exLinesAtRoot);
spTree1->GetColumns()->Add(L"Column");
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	long h = var_Items->AddItem("Root 1");
	var_Items->InsertItem(h,vtMissing,"Child 1");
	var_Items->InsertItem(h,vtMissing,"Child 2");
	var_Items->PutExpandItem(h,VARIANT_TRUE);
	h = var_Items->AddItem("Root 2");
	var_Items->InsertItem(h,vtMissing,"Child");
spTree1->EndUpdate();

634:
How can I find if the control is running in DPI mode
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
OutputDebugStringW( _bstr_t(spTree1->FormatABC(L"dpi = 1 ? `normal/stretch mode` : `dpi mode`",vtMissing,vtMissing,vtMissing)) );

633:
How can I change the visual appearance of the +/- buttons (method 1)

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
EXTREELib::IAppearancePtr var_Appearance = spTree1->GetVisualAppearance();
	var_Appearance->Add(1,_bstr_t("gBFLBCJwBAEHhEJAAEhABDwCg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQS") +
"BcQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+Opf" +
"DxXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4" +
"llWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJegef4zluaJ3nqPJeCYH4BAeX5TDLBpVGqKRRnwf4flefZtHsX54BYAR/F+EwVnUd5eAMMJKDIChygyIQpAoEh4iIJ5Jlg" +
"XIcgCXpIGoFwnGEQh6BEKBgmMIICHgIJCAiUAzgyUoAhwJohkiRgygwYpiGoKwzGIcgKCkNQNCMRIbCYCRYk4QoMiOchWDwNBjhiJJaDYTRiGiFwlCQAhOE8JBJHITIR" +
"gwZRZFCFCZBkOIUhKTRpCWAwgGYQ4El4NxlBifIWCcCYCFoaoMGaKYyG6GxlBmGJdhkCAWBIeA5g4U4QhMJAImkPIShRVxGgQJRlCIUISh+SJpnCZIeBgFgiHgO4OlOM" +
"INCISByECDQikkGhuh2JwpmqBogCKaYiC6FwhmkQ4yHgYgYiaHopiuaRakCbIsisSpGjYOwaHYKYMCkK5CA2IxrCwCwFigaJrkLTI6lcdANAEgIA=");
	var_Appearance->Add(2,_bstr_t("gBFLBCJwBAEHhEJAAEhABEICg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQS") +
"BcQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+Opf" +
"DxXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4" +
"llWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJeg8X4rluaZ3niGB+AQHx/EyShjjEVYqiUR5rnmex/GAB5+AIf4gEeXJFHyXZ3gCTAygyAociMKBKEKBIeCiCZyHYFAnCE" +
"eBkh+BghFgRIegOCgYCySAgh4CAkgINAMmMNIgCcCYjn4LoLmMCJGDKC5ijIagoDMYhCAoJg1A0IxEhsJgJFiThChCY5yFYPA0GOGIYloNhNGIaIXCUJACE4TwkEkchO" +
"FSFYlFkXhUCUCQZEYTglCSMxaEkYJIBmFJhDeDZZEYPwlgmQhghaGqVDoa4bGaeY6FGGZNlmFIBGEJ4jhiZQ5AkMhAg6E5JCkRoGCUSQ6B6CYiSCBIOh+DhJmmARiWQO" +
"JtDsCJSCSBwkXSLIRicaZ6HqIIomoIguhwIpphIHoWDsJ4mCGChpmqOpGheLIOkqUo2iya4DjGJxihiQoSj4IJaDaMpCjCWoGg6PgpBiQ4tHcQJQBAgI=");
spTree1->PutLinesAtRoot(EXTREELib::exLinesAtRoot);
spTree1->PutBackground(EXTREELib::exTreeGlyphOpen,0x1000000);
spTree1->PutBackground(EXTREELib::exTreeGlyphClose,0x2000000);
spTree1->GetColumns()->Add(L"Column");
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	long h = var_Items->AddItem("Root 1");
	var_Items->InsertItem(h,vtMissing,"Child 1");
	var_Items->InsertItem(h,vtMissing,"Child 2");
	var_Items->PutExpandItem(h,VARIANT_TRUE);
	h = var_Items->AddItem("Root 2");
	var_Items->InsertItem(h,vtMissing,"Child");
spTree1->EndUpdate();

632:
I am using single selection, the question is if possible to select an item only when the user releases the mouse, as currently it selects the item as soon as the user clicks it
// SelectionChanged event - Fired after a new item has been selected.
void OnSelectionChangedTree1()
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'
		#import <ExTree.dll>
		using namespace EXTREELib;
	*/
	EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
	OutputDebugStringW( L"SelectionChanged" );
}

EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->FreezeEvents(VARIANT_TRUE);
spTree1->PutSingleSel(VARIANT_TRUE);
spTree1->PutSelectOnRelease(VARIANT_TRUE);
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Column")))->PutFormatColumn(L"1 apos `A-Z`");
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("");
	var_Items->PutSelectItem(var_Items->AddItem(""),VARIANT_TRUE);
	var_Items->AddItem("");
spTree1->FreezeEvents(VARIANT_FALSE);
spTree1->EndUpdate();

631:
Is it possible to select nothing
// SelectionChanged event - Fired after a new item has been selected.
void OnSelectionChangedTree1()
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'
		#import <ExTree.dll>
		using namespace EXTREELib;
	*/
	EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
	OutputDebugStringW( L"SelectionChanged" );
}

EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->FreezeEvents(VARIANT_TRUE);
spTree1->PutAllowSelectNothing(VARIANT_TRUE);
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Column")))->PutFormatColumn(L"1 apos `A-Z`");
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("");
	var_Items->PutSelectItem(var_Items->AddItem(""),VARIANT_TRUE);
	var_Items->AddItem("");
spTree1->FreezeEvents(VARIANT_FALSE);
spTree1->EndUpdate();

630:
How can I specify the color for control's selection when it loses the focus

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"")));
	var_Column->PutAllowSizing(VARIANT_FALSE);
	var_Column->PutAllowDragging(VARIANT_FALSE);
	var_Column->PutAllowSort(VARIANT_FALSE);
	var_Column->PutWidth(24);
	var_Column->PutDef(EXTREELib::exCellHasButton,VARIANT_TRUE);
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Column")))->PutFormatColumn(L"1 apos `A-Z`");
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("");
	var_Items->PutSelectItem(var_Items->AddItem(""),VARIANT_TRUE);
	var_Items->AddItem("");
spTree1->PutBackground(EXTREELib::exSelBackColorHide,RGB(196,196,196));
spTree1->PutBackground(EXTREELib::exSelForeColorHide,RGB(0,0,1));
spTree1->EndUpdate();

629:
How can I change the background color for checked items (EBN color, frame)

// CellStateChanged event - Fired after cell's state has been changed.
void OnCellStateChangedTree1(long   Item,long   ColIndex)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'
		#import <ExTree.dll>
		using namespace EXTREELib;
	*/
	EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
	spTree1->Refresh();
}

EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->PutLinesAtRoot(EXTREELib::exLinesAtRoot);
spTree1->PutSelBackMode(EXTREELib::exTransparent);
spTree1->PutDefaultItemHeight(22);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Tasks")));
	var_Column->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
	var_Column->PutPartialCheck(VARIANT_TRUE);
EXTREELib::IAppearancePtr var_Appearance = spTree1->GetVisualAppearance();
	var_Appearance->Add(2,_bstr_t("gBFLBCJwBAEHhEJAAEhABUkIQAAYAQGKIcBiAKBQAGYBIJDEMQ3DjAUBjMK4ZwTC4AIQjCK4JDKHYJRpHEZgLBMJAAGIZYhhUYRUiYMkiJBGGDIDiGGI2SJAcbTVIEc") +
"x9EyUJSgSTJOjCMokTTIU4TTLYASbJafJJhWSaAiyMouDIOMg1BDNIw/Hika6jOgKUisNJXRzWIBTbDlOQ3JqnbCjOQRSrQBoNDAMAiiaKlbwJPK9RoieQXfwUAJrXJc" +
"FqXFSLVxNBKAQEBA=");
	var_Appearance->Add(1,"CP:2 1 1 -1 -1");
EXTREELib::IConditionalFormatPtr var_ConditionalFormat = spTree1->GetConditionalFormats()->Add(L"%CS0 = 1",vtMissing);
	var_ConditionalFormat->PutBackColor(0x1000000);
spTree1->PutHeaderVisible(VARIANT_TRUE);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	long h = var_Items->AddItem("Project");
	long hChild = var_Items->InsertItem(h,vtMissing,"Task 1");
	var_Items->PutSelectItem(hChild,VARIANT_TRUE);
	hChild = var_Items->InsertItem(h,vtMissing,"Task 2");
	var_Items->PutCellState(hChild,vtMissing,1);
	hChild = var_Items->InsertItem(h,vtMissing,"Task 3");
	var_Items->PutCellState(hChild,vtMissing,1);
	var_Items->PutExpandItem(h,VARIANT_TRUE);
spTree1->EndUpdate();

628:
How can I change the caption of the checked items (sample 2)

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->PutLinesAtRoot(EXTREELib::exLinesAtRoot);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Tasks")));
	var_Column->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
	var_Column->PutPartialCheck(VARIANT_TRUE);
	var_Column->PutDef(EXTREELib::exCellCaptionFormat,long(1));
	var_Column->PutFormatColumn(L"%CS0 = 1 ? `<bgcolor=000000><fgcolor=FFFFFF> ` + value + ` </fgcolor></bgcolor>` : value");
spTree1->PutHeaderVisible(VARIANT_TRUE);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	long h = var_Items->AddItem("Project");
	long hChild = var_Items->InsertItem(h,vtMissing,"Task 1");
	var_Items->PutSelectItem(hChild,VARIANT_TRUE);
	hChild = var_Items->InsertItem(h,vtMissing,"Task 2");
	var_Items->PutCellState(hChild,vtMissing,1);
	hChild = var_Items->InsertItem(h,vtMissing,"Task 3");
	var_Items->PutCellState(hChild,vtMissing,1);
	var_Items->PutExpandItem(h,VARIANT_TRUE);
spTree1->EndUpdate();

627:
How can I change the caption of the checked items (sample 1)

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->PutLinesAtRoot(EXTREELib::exLinesAtRoot);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Tasks")));
	var_Column->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
	var_Column->PutPartialCheck(VARIANT_TRUE);
	var_Column->PutDef(EXTREELib::exCellCaptionFormat,long(1));
	var_Column->PutFormatColumn(L"value + (%CS0 = 1 ? `<r><fgcolor=808080>(checked)` : ``)");
spTree1->PutHeaderVisible(VARIANT_TRUE);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	long h = var_Items->AddItem("Project");
	long hChild = var_Items->InsertItem(h,vtMissing,"Task 1");
	var_Items->PutSelectItem(hChild,VARIANT_TRUE);
	hChild = var_Items->InsertItem(h,vtMissing,"Task 2");
	var_Items->PutCellState(hChild,vtMissing,1);
	hChild = var_Items->InsertItem(h,vtMissing,"Task 3");
	var_Items->PutCellState(hChild,vtMissing,1);
	var_Items->PutExpandItem(h,VARIANT_TRUE);
spTree1->EndUpdate();

626:
How can I change the font for the checked items

// CellStateChanged event - Fired after cell's state has been changed.
void OnCellStateChangedTree1(long   Item,long   ColIndex)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'
		#import <ExTree.dll>
		using namespace EXTREELib;
	*/
	EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
	spTree1->Refresh();
}

EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->PutLinesAtRoot(EXTREELib::exLinesAtRoot);
spTree1->PutDefaultItemHeight(22);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Tasks")));
	var_Column->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
	var_Column->PutPartialCheck(VARIANT_TRUE);
EXTREELib::IConditionalFormatPtr var_ConditionalFormat = spTree1->GetConditionalFormats()->Add(L"%CS0 = 1",vtMissing);
	/*
	Includes the definition for CreateObject function like follows:

	#include <comdef.h>
	IUnknownPtr CreateObject( BSTR Object )
	{
		IUnknownPtr spResult;
		spResult.CreateInstance( Object );
		return spResult;
	};

*/
	/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'stdole' for the library: 'OLE Automation'

	#import <stdole2.tlb>
*/
	stdole::FontPtr f = ::CreateObject(L"StdFont");
		f->PutName(spTree1->GetFont()->GetName());
		f->PutSize(_variant_t(long(12)));
	var_ConditionalFormat->PutFont(IFontDispPtr(((stdole::FontPtr)(f))));
spTree1->PutHeaderVisible(VARIANT_TRUE);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	long h = var_Items->AddItem("Project");
	long hChild = var_Items->InsertItem(h,vtMissing,"Task 1");
	var_Items->PutSelectItem(hChild,VARIANT_TRUE);
	hChild = var_Items->InsertItem(h,vtMissing,"Task 2");
	var_Items->PutCellState(hChild,vtMissing,1);
	hChild = var_Items->InsertItem(h,vtMissing,"Task 3");
	var_Items->PutCellState(hChild,vtMissing,1);
	var_Items->PutExpandItem(h,VARIANT_TRUE);
spTree1->EndUpdate();

625:
How can I bold the checked items

// CellStateChanged event - Fired after cell's state has been changed.
void OnCellStateChangedTree1(long   Item,long   ColIndex)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'
		#import <ExTree.dll>
		using namespace EXTREELib;
	*/
	EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
	spTree1->Refresh();
}

EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->PutLinesAtRoot(EXTREELib::exLinesAtRoot);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Tasks")));
	var_Column->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
	var_Column->PutPartialCheck(VARIANT_TRUE);
EXTREELib::IConditionalFormatPtr var_ConditionalFormat = spTree1->GetConditionalFormats()->Add(L"%CS0 = 1",vtMissing);
	var_ConditionalFormat->PutBold(VARIANT_TRUE);
spTree1->PutHeaderVisible(VARIANT_TRUE);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	long h = var_Items->AddItem("Project");
	long hChild = var_Items->InsertItem(h,vtMissing,"Task 1");
	var_Items->PutSelectItem(hChild,VARIANT_TRUE);
	hChild = var_Items->InsertItem(h,vtMissing,"Task 2");
	var_Items->PutCellState(hChild,vtMissing,1);
	hChild = var_Items->InsertItem(h,vtMissing,"Task 3");
	var_Items->PutCellState(hChild,vtMissing,1);
	var_Items->PutExpandItem(h,VARIANT_TRUE);
spTree1->EndUpdate();

624:
How can I change the foreground color for checked items

// CellStateChanged event - Fired after cell's state has been changed.
void OnCellStateChangedTree1(long   Item,long   ColIndex)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'
		#import <ExTree.dll>
		using namespace EXTREELib;
	*/
	EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
	spTree1->Refresh();
}

EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->PutLinesAtRoot(EXTREELib::exLinesAtRoot);
spTree1->PutSelBackMode(EXTREELib::exTransparent);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Tasks")));
	var_Column->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
	var_Column->PutPartialCheck(VARIANT_TRUE);
EXTREELib::IConditionalFormatPtr var_ConditionalFormat = spTree1->GetConditionalFormats()->Add(L"%CS0 = 1",vtMissing);
	var_ConditionalFormat->PutForeColor(RGB(255,128,128));
spTree1->PutHeaderVisible(VARIANT_TRUE);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	long h = var_Items->AddItem("Project");
	long hChild = var_Items->InsertItem(h,vtMissing,"Task 1");
	var_Items->PutSelectItem(hChild,VARIANT_TRUE);
	hChild = var_Items->InsertItem(h,vtMissing,"Task 2");
	var_Items->PutCellState(hChild,vtMissing,1);
	hChild = var_Items->InsertItem(h,vtMissing,"Task 3");
	var_Items->PutCellState(hChild,vtMissing,1);
	var_Items->PutExpandItem(h,VARIANT_TRUE);
spTree1->EndUpdate();

623:
How can I change the background color for checked items (solid color)

// CellStateChanged event - Fired after cell's state has been changed.
void OnCellStateChangedTree1(long   Item,long   ColIndex)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'
		#import <ExTree.dll>
		using namespace EXTREELib;
	*/
	EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
	spTree1->Refresh();
}

EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->PutLinesAtRoot(EXTREELib::exLinesAtRoot);
spTree1->PutSelBackMode(EXTREELib::exTransparent);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Tasks")));
	var_Column->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
	var_Column->PutPartialCheck(VARIANT_TRUE);
EXTREELib::IConditionalFormatPtr var_ConditionalFormat = spTree1->GetConditionalFormats()->Add(L"%CS0 = 1",vtMissing);
	var_ConditionalFormat->PutBackColor(RGB(255,128,128));
spTree1->PutHeaderVisible(VARIANT_TRUE);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	long h = var_Items->AddItem("Project");
	long hChild = var_Items->InsertItem(h,vtMissing,"Task 1");
	var_Items->PutSelectItem(hChild,VARIANT_TRUE);
	hChild = var_Items->InsertItem(h,vtMissing,"Task 2");
	var_Items->PutCellState(hChild,vtMissing,1);
	hChild = var_Items->InsertItem(h,vtMissing,"Task 3");
	var_Items->PutCellState(hChild,vtMissing,1);
	var_Items->PutExpandItem(h,VARIANT_TRUE);
spTree1->EndUpdate();

622:
How can I export the cell's state as well

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
EXTREELib::IColumnsPtr var_Columns = spTree1->GetColumns();
	((EXTREELib::IColumnPtr)(var_Columns->Add(L"C1")))->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
	((EXTREELib::IColumnPtr)(var_Columns->Add(L"C2")))->PutFormatColumn(L"1 index `A-Z`");
	((EXTREELib::IColumnPtr)(var_Columns->Add(L"C3")))->PutFormatColumn(L"100 index ``");
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("Item 1");
	var_Items->PutCellState(var_Items->AddItem("Item 2"),vtMissing,1);
	var_Items->PutCellState(var_Items->AddItem("Item 3"),vtMissing,1);
spTree1->EndUpdate();
OutputDebugStringW( L"Export CSV Items including Check-State:" );
spTree1->BeginUpdate();
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Check")));
	var_Column->PutPosition(0);
	var_Column->PutFormatColumn(L"%CS0");
OutputDebugStringW( _bstr_t(spTree1->Export("",vtMissing)) );
spTree1->GetColumns()->Remove("Check");
spTree1->EndUpdate();

621:
The BeforeExpandItem event is fired when clicking the drop down filter button. What we can do to prevent that (method 2)
// BeforeExpandItem event - Fired before an item is about to be expanded (collapsed).
void OnBeforeExpandItemTree1(long   Item,VARIANT FAR*   Cancel)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'
		#import <ExTree.dll>
		using namespace EXTREELib;
	*/
	EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
	OutputDebugStringW( L"BeforeExpandItem" );
	OutputDebugStringW( L"Item" );
	OutputDebugStringW( L"ColumnFromPoint" );
	OutputDebugStringW( _bstr_t(spTree1->GetColumnFromPoint(-1,-1)) );
	OutputDebugStringW( L"ColumnFromPoint return -1, if the user clicks the +/- glitch, else it returns the index of the column where the click occurs." );
	spTree1->GetItems()->InsertItem(Item,vtMissing,"new child");
}

EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->PutLinesAtRoot(EXTREELib::exLinesAtRoot);
EXTREELib::IColumnsPtr var_Columns = spTree1->GetColumns();
	((EXTREELib::IColumnPtr)(var_Columns->Add(L"Items")))->PutDisplayFilterButton(VARIANT_TRUE);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->PutItemHasChildren(var_Items->InsertItem(vtMissing,vtMissing,"Group 1"),VARIANT_TRUE);
	var_Items->PutItemHasChildren(var_Items->InsertItem(vtMissing,vtMissing,"Group 2"),VARIANT_TRUE);
spTree1->EndUpdate();

620:
The BeforeExpandItem event is fired when clicking the drop down filter button. What we can do to prevent that (method 1)
// BeforeExpandItem event - Fired before an item is about to be expanded (collapsed).
void OnBeforeExpandItemTree1(long   Item,VARIANT FAR*   Cancel)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'
		#import <ExTree.dll>
		using namespace EXTREELib;
	*/
	EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
	OutputDebugStringW( L"BeforeExpandItem" );
	OutputDebugStringW( L"Item" );
	spTree1->GetItems()->InsertItem(Item,vtMissing,"new child");
}

EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->PutLinesAtRoot(EXTREELib::exLinesAtRoot);
EXTREELib::IColumnsPtr var_Columns = spTree1->GetColumns();
	EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(var_Columns->Add(L"Items")));
		var_Column->PutDisplayFilterButton(VARIANT_TRUE);
		var_Column->PutFilterList(EXTREELib::exRootItems);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->PutItemHasChildren(var_Items->InsertItem(vtMissing,vtMissing,"Group 1"),VARIANT_TRUE);
	var_Items->PutItemHasChildren(var_Items->InsertItem(vtMissing,vtMissing,"Group 2"),VARIANT_TRUE);
spTree1->EndUpdate();

619:
How do I change the drop down filter icon/button (black)

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
EXTREELib::IAppearancePtr var_Appearance = spTree1->GetVisualAppearance();
	var_Appearance->Add(1,_bstr_t("gBFLBCJwBAEHhEJAAEhABXUIQAAYAQGKIcBiAKBQAGYBIJDEMgzDDAUBjKKocQTC4AIQjCK4JDKHYJRpHEZyCA8EhqGASRAFUQBYiWE4oSpLABQaK0ZwIGyRIrkGQgQ") +
"gmPYDSDNU4zVIEEglBI0TDNczhNDENgtGYaJqHIYpZBcM40TKkEZoSIITZcRrOEBiRL1S0RBhGcRUHZlWzdN64LhuK47UrWdD/XhdVzXRbjfz1Oq+bxve48Br7A5yYTh" +
"dr4LhOFQ3RjIL4xbIcUwGe6VZhjOLZXjmO49T69HTtOCYBEBA");
spTree1->PutBackground(EXTREELib::exHeaderFilterBarButton,0x1000000);
spTree1->PutBackground(EXTREELib::exCursorHoverColumn,-1);
spTree1->PutHeaderAppearance(EXTREELib::None2);
spTree1->PutBackColorHeader(RGB(0,0,0));
spTree1->PutForeColorHeader(RGB(255,255,255));
spTree1->PutHeaderVisible(VARIANT_TRUE);
spTree1->PutBackColorLevelHeader(spTree1->GetBackColor());
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Filter")));
	var_Column->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column->PutAllowSort(VARIANT_FALSE);
	var_Column->PutAllowDragging(VARIANT_FALSE);
spTree1->EndUpdate();

618:
How do I change the drop down filter icon/button (white)

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
EXTREELib::IAppearancePtr var_Appearance = spTree1->GetVisualAppearance();
	var_Appearance->Add(2,_bstr_t("gBFLBCJwBAEHhEJAAEhABX8GACAADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACkGKwYgmNYiTLAcgAN") +
"J0WBaGIZJ4gOT5fDKMoEDRRYADFCscwxJybQAqGQKKb+VgAVY/cTyBIAEQSKA0TDOQ5TSKWB4JPZQRBEbZMNBtBIUJquKaqShdQJCU5FdY3Xblez9P7AMBwLFEC4NQ8Y" +
"NYuPhjR4dRTIMhvVAsUArFh8Zg9GZZFjmDIDT4ydBLTQwcyVIKnP5qOa6XbmPoCQDYKxZHYxPzVDa3axuL76dqCAT7XrXNy1TbNRrzQKfcJqfCbdw2YaDZLOOT3fjuI4" +
"hhKaRzFAHJ+jYQ4xHuY4gHuGIXGeExqC8Tp6C+PoEm+G5ImycRgh0XwvDGa5rgOeoejyXwnFeQp2mkf5ClgBB9gCWIYAwfYAEKV58mkdwOggNArgOXY2EWLoDkKOA0mg" +
"bhOGgZApgaSBIHWSYHSmbApgYThmESZYJkIeIkgeCpfliLIHgpMIcmUYYYmODAlg2SI4mWfRfGOEguDcCRjFYAJihCQhJBSDoRmONgKEcI4kFCEJhhOVYTmYnAlEAQhW" +
"BMJYJGYWoWmWSR2F6F5lnkWAQhUAgpEieRWEuSYkjWGpmkmNhuhuZwJkYcocmaaYkjyEhngnUA6lEFAlAEgI=");
	var_Appearance->Add(1,"CP:2 -14 -4 -2 4");
spTree1->PutBackground(EXTREELib::exHeaderFilterBarButton,0x1000000);
spTree1->PutBackground(EXTREELib::exCursorHoverColumn,spTree1->GetBackColor());
spTree1->PutHeaderAppearance(EXTREELib::None2);
spTree1->PutBackColorHeader(RGB(255,255,255));
spTree1->PutHeaderVisible(VARIANT_TRUE);
spTree1->PutHeaderHeight(24);
spTree1->PutBackColorLevelHeader(spTree1->GetBackColor());
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Filter")));
	var_Column->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column->PutAllowSort(VARIANT_FALSE);
	var_Column->PutAllowDragging(VARIANT_FALSE);
spTree1->EndUpdate();

617:
Do you have any Fit-To-Page options when printing the control (W x T, Fit-To )

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->PutColumnAutoResize(VARIANT_FALSE);
spTree1->PutContinueColumnScroll(VARIANT_FALSE);
/*
	Includes the definition for CreateObject function like follows:

	#include <comdef.h>
	IUnknownPtr CreateObject( BSTR Object )
	{
		IUnknownPtr spResult;
		spResult.CreateInstance( Object );
		return spResult;
	};

*/
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'ADODB' for the library: 'Microsoft ActiveX Data Objects 6.1 Library'

	#import <msado15.dll> rename("EOF","REOF")
*/
ADODB::_RecordsetPtr rs = ::CreateObject(L"ADOR.Recordset");
	rs->Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExTree\\Sample\\Access2007\\sample.accdb",ADODB::adOpenStatic,ADODB::adLockOptimistic,0);
spTree1->PutDataSource(((ADODB::_RecordsetPtr)(rs)));
spTree1->EndUpdate();
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRINTLib' for the library: 'ExPrint 1.0 Control Library'

	#import <ExPrint.dll>
	using namespace EXPRINTLib;
*/
EXPRINTLib::IExPrintPtr var_Print = ::CreateObject(L"Exontrol.Print");
	var_Print->PutOptions("FitToPage =2 x 1");
	var_Print->PutPrintExt(((EXTREELib::ITreePtr)(spTree1)));
	var_Print->Preview();

616:
Do you have any Fit-To-Page options when printing the control ( x T, Fit-To Tall )

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->PutColumnAutoResize(VARIANT_FALSE);
spTree1->PutContinueColumnScroll(VARIANT_FALSE);
/*
	Includes the definition for CreateObject function like follows:

	#include <comdef.h>
	IUnknownPtr CreateObject( BSTR Object )
	{
		IUnknownPtr spResult;
		spResult.CreateInstance( Object );
		return spResult;
	};

*/
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'ADODB' for the library: 'Microsoft ActiveX Data Objects 6.1 Library'

	#import <msado15.dll> rename("EOF","REOF")
*/
ADODB::_RecordsetPtr rs = ::CreateObject(L"ADOR.Recordset");
	rs->Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExTree\\Sample\\Access2007\\sample.accdb",ADODB::adOpenStatic,ADODB::adLockOptimistic,0);
spTree1->PutDataSource(((ADODB::_RecordsetPtr)(rs)));
spTree1->EndUpdate();
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRINTLib' for the library: 'ExPrint 1.0 Control Library'

	#import <ExPrint.dll>
	using namespace EXPRINTLib;
*/
EXPRINTLib::IExPrintPtr var_Print = ::CreateObject(L"Exontrol.Print");
	var_Print->PutOptions("FitToPage = x 2");
	var_Print->PutPrintExt(((EXTREELib::ITreePtr)(spTree1)));
	var_Print->Preview();

615:
Do you have any Fit-To-Page options when printing the control ( W x, Fit-To Wide )

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->PutColumnAutoResize(VARIANT_FALSE);
spTree1->PutContinueColumnScroll(VARIANT_FALSE);
/*
	Includes the definition for CreateObject function like follows:

	#include <comdef.h>
	IUnknownPtr CreateObject( BSTR Object )
	{
		IUnknownPtr spResult;
		spResult.CreateInstance( Object );
		return spResult;
	};

*/
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'ADODB' for the library: 'Microsoft ActiveX Data Objects 6.1 Library'

	#import <msado15.dll> rename("EOF","REOF")
*/
ADODB::_RecordsetPtr rs = ::CreateObject(L"ADOR.Recordset");
	rs->Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExTree\\Sample\\Access2007\\sample.accdb",ADODB::adOpenStatic,ADODB::adLockOptimistic,0);
spTree1->PutDataSource(((ADODB::_RecordsetPtr)(rs)));
spTree1->EndUpdate();
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRINTLib' for the library: 'ExPrint 1.0 Control Library'

	#import <ExPrint.dll>
	using namespace EXPRINTLib;
*/
EXPRINTLib::IExPrintPtr var_Print = ::CreateObject(L"Exontrol.Print");
	var_Print->PutOptions("FitToPage = 2 x");
	var_Print->PutPrintExt(((EXTREELib::ITreePtr)(spTree1)));
	var_Print->Preview();

614:
Do you have any Fit-To-Page options when printing the control ( percent view, Adjust-To )

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->PutColumnAutoResize(VARIANT_FALSE);
spTree1->PutContinueColumnScroll(VARIANT_FALSE);
/*
	Includes the definition for CreateObject function like follows:

	#include <comdef.h>
	IUnknownPtr CreateObject( BSTR Object )
	{
		IUnknownPtr spResult;
		spResult.CreateInstance( Object );
		return spResult;
	};

*/
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'ADODB' for the library: 'Microsoft ActiveX Data Objects 6.1 Library'

	#import <msado15.dll> rename("EOF","REOF")
*/
ADODB::_RecordsetPtr rs = ::CreateObject(L"ADOR.Recordset");
	rs->Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExTree\\Sample\\Access2007\\sample.accdb",ADODB::adOpenStatic,ADODB::adLockOptimistic,0);
spTree1->PutDataSource(((ADODB::_RecordsetPtr)(rs)));
spTree1->EndUpdate();
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRINTLib' for the library: 'ExPrint 1.0 Control Library'

	#import <ExPrint.dll>
	using namespace EXPRINTLib;
*/
EXPRINTLib::IExPrintPtr var_Print = ::CreateObject(L"Exontrol.Print");
	var_Print->PutOptions("FitToPage = 50%");
	var_Print->PutPrintExt(((EXTREELib::ITreePtr)(spTree1)));
	var_Print->Preview();

613:
How do I prevent changing the cell's state ( check-box state )
// CellStateChanging event - Fired before cell's state is about to be changed.
void OnCellStateChangingTree1(long   Item,long   ColIndex,long FAR*   NewState)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'
		#import <ExTree.dll>
		using namespace EXTREELib;
	*/
	EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
	EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
		NewState = var_Items->GetCellState(Item,ColIndex);
}

EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->PutLinesAtRoot(EXTREELib::exLinesAtRoot);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"P1")));
	var_Column->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
	var_Column->PutPartialCheck(VARIANT_TRUE);
EXTREELib::IColumnPtr var_Column1 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"P2")));
	var_Column1->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
	var_Column1->PutPartialCheck(VARIANT_TRUE);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	long h = var_Items->AddItem("Root");
	var_Items->InsertItem(h,vtMissing,"Child 1");
	var_Items->InsertItem(h,vtMissing,"Child 2");
	var_Items->PutExpandItem(h,VARIANT_TRUE);
spTree1->EndUpdate();

612:
How can I use the CellState with ConditionalFormat/ComputedField/FormatColumn

// CellStateChanged event - Fired after cell's state has been changed.
void OnCellStateChangedTree1(long   Item,long   ColIndex)
{
}

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->PutLinesAtRoot(EXTREELib::exGroupLinesInsideLeaf);
spTree1->PutSelBackMode(EXTREELib::exTransparent);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Items")));
	var_Column->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
	var_Column->PutPartialCheck(VARIANT_TRUE);
EXTREELib::IColumnPtr var_Column1 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Format")));
	var_Column1->PutFormatColumn(L"%CS0");
	var_Column1->PutCaption(var_Column1->GetFormatColumn());
	var_Column1->PutDef(EXTREELib::exCellForeColor,long(8421504));
	var_Column1->PutDef(EXTREELib::exHeaderForeColor,var_Column1->GetDef(EXTREELib::exCellForeColor));
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	long h = var_Items->AddItem("Root");
	var_Items->InsertItem(h,vtMissing,"Item 1");
	var_Items->PutCellState(var_Items->InsertItem(h,vtMissing,"Item 2"),long(0),1);
	var_Items->PutCellState(var_Items->InsertItem(h,vtMissing,"Item 3"),long(0),1);
	var_Items->PutExpandItem(h,VARIANT_TRUE);
spTree1->EndUpdate();

611:
How can I use the CellData with ConditionalFormat/ComputedField/FormatColumn

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->GetColumns()->Add(L"Items");
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Format")));
	var_Column->PutFormatColumn(L"%CD0");
	var_Column->PutCaption(var_Column->GetFormatColumn());
	var_Column->PutDef(EXTREELib::exCellForeColor,long(8421504));
	var_Column->PutDef(EXTREELib::exHeaderForeColor,var_Column->GetDef(EXTREELib::exCellForeColor));
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->PutCellData(var_Items->AddItem("Item 1"),long(0),long(1234));
	var_Items->PutCellData(var_Items->AddItem("Item 2"),long(0),"this is just an user data");
	var_Items->PutCellData(var_Items->AddItem("Item 3"),long(0),COleDateTime(2001,1,1,0,00,00).operator DATE());
spTree1->EndUpdate();

610:
How can I use the CellCaption with ConditionalFormat/ComputedField/FormatColumn

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->GetColumns()->Add(L"Items");
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Format")));
	var_Column->PutFormatColumn(L"%0");
	var_Column->PutCaption(var_Column->GetFormatColumn());
	var_Column->PutDef(EXTREELib::exCellForeColor,long(8421504));
	var_Column->PutDef(EXTREELib::exHeaderForeColor,var_Column->GetDef(EXTREELib::exCellForeColor));
	var_Column->PutWidth(96);
	var_Column->PutAllowSizing(VARIANT_FALSE);
EXTREELib::IColumnPtr var_Column1 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Format")));
	var_Column1->PutFormatColumn(L"%C0");
	var_Column1->PutCaption(var_Column1->GetFormatColumn());
	var_Column1->PutDef(EXTREELib::exCellForeColor,long(8421504));
	var_Column1->PutDef(EXTREELib::exHeaderForeColor,var_Column1->GetDef(EXTREELib::exCellForeColor));
	var_Column1->PutWidth(96);
	var_Column1->PutAllowSizing(VARIANT_FALSE);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem(long(1));
	long h = var_Items->AddItem(long(0));
	var_Items->PutCellCaption(h,long(0),"<b>HTML</b> Text");
	var_Items->PutCellCaptionFormat(h,long(0),EXTREELib::exHTML);
	var_Items->AddItem(long(2));
spTree1->EndUpdate();

609:
Can I display the radio-button with a solid color

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->PutRadioImage(VARIANT_FALSE,32699122);
spTree1->PutRadioImage(VARIANT_TRUE,16777216);
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Check")))->PutDef(EXTREELib::exCellHasRadioButton,VARIANT_TRUE);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("Radio 1");
	var_Items->PutCellState(var_Items->AddItem("Radio 2"),long(0),1);
	var_Items->AddItem("Radio 1");
spTree1->EndUpdate();

608:
Can I display the check-box with a solid color

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->PutCheckImage(EXTREELib::Unchecked,32699122);
spTree1->PutCheckImage(EXTREELib::Checked,16777216);
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Check")))->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("Check 1");
	var_Items->PutCellState(var_Items->AddItem("Check 2"),long(0),1);
	var_Items->AddItem("Check 3");
spTree1->EndUpdate();

607:
Can I display the column's multiple-lines caption vertically oriented (method 2)

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->PutHeaderHeight(48);
spTree1->PutColumnAutoResize(VARIANT_TRUE);
EXTREELib::IColumnsPtr var_Columns = spTree1->GetColumns();
	var_Columns->Add(L"And others ...");
	EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(var_Columns->Add(L"")));
		var_Column->PutHTMLCaption(L"First Column");
		var_Column->PutHeaderVertical(VARIANT_TRUE);
		var_Column->PutWidth(36);
		var_Column->PutAllowSizing(VARIANT_FALSE);
		var_Column->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
		var_Column->PutDef(EXTREELib::exCellPaddingLeft,long(8));
		var_Column->PutPosition(0);
	EXTREELib::IColumnPtr var_Column1 = ((EXTREELib::IColumnPtr)(var_Columns->Add(L"")));
		var_Column1->PutHTMLCaption(L"<c><b>Second Column");
		var_Column1->PutHeaderVertical(VARIANT_TRUE);
		var_Column1->PutWidth(36);
		var_Column1->PutAllowSizing(VARIANT_FALSE);
		var_Column1->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
		var_Column1->PutDef(EXTREELib::exCellPaddingLeft,long(8));
		var_Column1->PutPosition(1);
	EXTREELib::IColumnPtr var_Column2 = ((EXTREELib::IColumnPtr)(var_Columns->Add(L"")));
		var_Column2->PutHTMLCaption(L"<r>Third Column");
		var_Column2->PutHeaderVertical(VARIANT_TRUE);
		var_Column2->PutWidth(36);
		var_Column2->PutAllowSizing(VARIANT_FALSE);
		var_Column2->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
		var_Column2->PutDef(EXTREELib::exCellPaddingLeft,long(8));
		var_Column2->PutPosition(2);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->PutCellState(var_Items->AddItem("Item 1"),long(3),1);
	var_Items->PutCellState(var_Items->AddItem("Item 2"),long(2),1);
	var_Items->PutCellState(var_Items->AddItem("Item 3"),long(1),1);
spTree1->EndUpdate();

606:
Can I display the column's multiple-lines caption vertically oriented (method 1)

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->PutHeaderHeight(48);
spTree1->PutHeaderSingleLine(VARIANT_FALSE);
spTree1->PutColumnAutoResize(VARIANT_TRUE);
EXTREELib::IColumnsPtr var_Columns = spTree1->GetColumns();
	var_Columns->Add(L"And others ...");
	EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(var_Columns->Add(L"First Column")));
		var_Column->PutHeaderVertical(VARIANT_TRUE);
		var_Column->PutWidth(36);
		var_Column->PutAllowSizing(VARIANT_FALSE);
		var_Column->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
		var_Column->PutDef(EXTREELib::exCellPaddingLeft,long(8));
		var_Column->PutPosition(0);
	EXTREELib::IColumnPtr var_Column1 = ((EXTREELib::IColumnPtr)(var_Columns->Add(L"Second Column")));
		var_Column1->PutHeaderBold(VARIANT_TRUE);
		var_Column1->PutHeaderVertical(VARIANT_TRUE);
		var_Column1->PutWidth(36);
		var_Column1->PutAllowSizing(VARIANT_FALSE);
		var_Column1->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
		var_Column1->PutDef(EXTREELib::exCellPaddingLeft,long(8));
		var_Column1->PutPosition(1);
	EXTREELib::IColumnPtr var_Column2 = ((EXTREELib::IColumnPtr)(var_Columns->Add(L"Third Column")));
		var_Column2->PutHeaderVertical(VARIANT_TRUE);
		var_Column2->PutWidth(36);
		var_Column2->PutAllowSizing(VARIANT_FALSE);
		var_Column2->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
		var_Column2->PutDef(EXTREELib::exCellPaddingLeft,long(8));
		var_Column2->PutPosition(2);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->PutCellState(var_Items->AddItem("Item 1"),long(3),1);
	var_Items->PutCellState(var_Items->AddItem("Item 2"),long(2),1);
	var_Items->PutCellState(var_Items->AddItem("Item 3"),long(1),1);
spTree1->EndUpdate();

605:
Can I display the column's caption vertically oriented (method 2)

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->PutHeaderHeight(48);
spTree1->PutColumnAutoResize(VARIANT_TRUE);
EXTREELib::IColumnsPtr var_Columns = spTree1->GetColumns();
	var_Columns->Add(L"And others ...");
	EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(var_Columns->Add(L"")));
		var_Column->PutHTMLCaption(L"First");
		var_Column->PutHeaderVertical(VARIANT_TRUE);
		var_Column->PutWidth(20);
		var_Column->PutAllowSizing(VARIANT_FALSE);
		var_Column->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
		var_Column->PutPosition(0);
	EXTREELib::IColumnPtr var_Column1 = ((EXTREELib::IColumnPtr)(var_Columns->Add(L"")));
		var_Column1->PutHTMLCaption(L"<c><b>Second");
		var_Column1->PutHeaderVertical(VARIANT_TRUE);
		var_Column1->PutWidth(20);
		var_Column1->PutAllowSizing(VARIANT_FALSE);
		var_Column1->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
		var_Column1->PutPosition(1);
	EXTREELib::IColumnPtr var_Column2 = ((EXTREELib::IColumnPtr)(var_Columns->Add(L"")));
		var_Column2->PutHTMLCaption(L"<r>Third");
		var_Column2->PutHeaderVertical(VARIANT_TRUE);
		var_Column2->PutWidth(20);
		var_Column2->PutAllowSizing(VARIANT_FALSE);
		var_Column2->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
		var_Column2->PutPosition(2);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->PutCellState(var_Items->AddItem("Item 1"),long(3),1);
	var_Items->PutCellState(var_Items->AddItem("Item 2"),long(2),1);
	var_Items->PutCellState(var_Items->AddItem("Item 3"),long(1),1);
spTree1->EndUpdate();

604:
Can I display the column's caption vertically oriented (method 1)

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->PutHeaderHeight(48);
spTree1->PutColumnAutoResize(VARIANT_TRUE);
EXTREELib::IColumnsPtr var_Columns = spTree1->GetColumns();
	var_Columns->Add(L"And others ...");
	EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(var_Columns->Add(L"First")));
		var_Column->PutHeaderVertical(VARIANT_TRUE);
		var_Column->PutWidth(20);
		var_Column->PutAllowSizing(VARIANT_FALSE);
		var_Column->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
		var_Column->PutPosition(0);
	EXTREELib::IColumnPtr var_Column1 = ((EXTREELib::IColumnPtr)(var_Columns->Add(L"Second")));
		var_Column1->PutHeaderBold(VARIANT_TRUE);
		var_Column1->PutHeaderVertical(VARIANT_TRUE);
		var_Column1->PutWidth(20);
		var_Column1->PutAllowSizing(VARIANT_FALSE);
		var_Column1->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
		var_Column1->PutPosition(1);
	EXTREELib::IColumnPtr var_Column2 = ((EXTREELib::IColumnPtr)(var_Columns->Add(L"Third")));
		var_Column2->PutHeaderVertical(VARIANT_TRUE);
		var_Column2->PutWidth(20);
		var_Column2->PutAllowSizing(VARIANT_FALSE);
		var_Column2->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
		var_Column2->PutPosition(2);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->PutCellState(var_Items->AddItem("Item 1"),long(3),1);
	var_Items->PutCellState(var_Items->AddItem("Item 2"),long(2),1);
	var_Items->PutCellState(var_Items->AddItem("Item 3"),long(1),1);
spTree1->EndUpdate();

603:
How do I automatically bold items being checked

// CellStateChanged event - Fired after cell's state has been changed.
void OnCellStateChangedTree1(long   Item,long   ColIndex)
{
}

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->PutSelBackMode(EXTREELib::exTransparent);
EXTREELib::IConditionalFormatPtr var_ConditionalFormat = spTree1->GetConditionalFormats()->Add(L"%CS0","check");
	var_ConditionalFormat->PutBold(VARIANT_TRUE);
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Items")))->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(spTree1->GetConditionalFormats()->GetItem("check")->GetExpression())))->PutFormatColumn(spTree1->GetConditionalFormats()->GetItem("check")->GetExpression());
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	var_Items->AddItem("Item 1");
	var_Items->PutCellState(var_Items->AddItem("Item 2"),long(0),1);
	var_Items->AddItem("Item 3");
spTree1->EndUpdate();

602:
How can I include the child items, when a filter is applied

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
spTree1->PutColumnAutoResize(VARIANT_TRUE);
spTree1->PutContinueColumnScroll(VARIANT_FALSE);
spTree1->PutMarkSearchColumn(VARIANT_FALSE);
spTree1->PutSearchColumnIndex(1);
spTree1->PutIndent(16);
spTree1->PutLinesAtRoot(EXTREELib::exLinesAtRoot);
spTree1->PutFilterBarPromptVisible(VARIANT_TRUE);
spTree1->PutFilterBarPromptPattern(L"Nancy");
spTree1->PutFilterInclude(EXTREELib::exItemsWithChilds);
EXTREELib::IColumnsPtr var_Columns = spTree1->GetColumns();
	((EXTREELib::IColumnPtr)(var_Columns->Add(L"Name")))->PutWidth(96);
	((EXTREELib::IColumnPtr)(var_Columns->Add(L"Title")))->PutWidth(96);
	var_Columns->Add(L"City");
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	long h0 = var_Items->AddItem("Nancy Davolio");
	var_Items->PutCellCaption(h0,long(1),"Sales Representative");
	var_Items->PutCellCaption(h0,long(2),"Seattle");
	h0 = var_Items->InsertItem(h0,vtMissing,"Andrew Fuller");
	var_Items->PutCellCaption(h0,long(1),"Vice President, Sales");
	var_Items->PutCellCaption(h0,long(2),"Tacoma");
	h0 = var_Items->InsertItem(h0,vtMissing,"Michael Suyama");
	var_Items->PutCellCaption(h0,long(1),"Sales Representative");
	var_Items->PutCellCaption(h0,long(2),"London");
	h0 = var_Items->AddItem("Janet Leverling");
	var_Items->PutCellCaption(h0,long(1),"Sales Representative");
	var_Items->PutCellCaption(h0,long(2),"Kirkland");
	h0 = var_Items->InsertItem(h0,vtMissing,"Margaret Peacock");
	var_Items->PutCellCaption(h0,long(1),"Sales Representative");
	var_Items->PutCellCaption(h0,long(2),"Redmond");
spTree1->ApplyFilter();
spTree1->EndUpdate();

601:
How do I get sorted the column as string, numeric, date, date and time. Also how can it be applied to drop down filter panel

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'

	#import <ExTree.dll>
	using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->BeginUpdate();
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Date")));
	var_Column->PutSortType(EXTREELib::SortDate);
	var_Column->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column->PutDisplayFilterPattern(VARIANT_FALSE);
	var_Column->PutDisplayFilterDate(VARIANT_TRUE);
	var_Column->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox | EXTREELib::exSortItemsDesc));
EXTREELib::IColumnPtr var_Column1 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"DateTime")));
	var_Column1->PutSortType(EXTREELib::SortDateTime);
	var_Column1->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column1->PutDisplayFilterPattern(VARIANT_FALSE);
	var_Column1->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox | EXTREELib::exSortItemsDesc));
EXTREELib::IColumnPtr var_Column2 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Time")));
	var_Column2->PutSortType(EXTREELib::SortTime);
	var_Column2->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column2->PutDisplayFilterPattern(VARIANT_FALSE);
	var_Column2->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox | EXTREELib::exSortItemsDesc));
	var_Column2->PutFormatColumn(L"time(value)");
EXTREELib::IColumnPtr var_Column3 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"Numeric")));
	var_Column3->PutSortType(EXTREELib::SortNumeric);
	var_Column3->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column3->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox | EXTREELib::exSortItemsDesc));
EXTREELib::IColumnPtr var_Column4 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"String")));
	var_Column4->PutDisplayFilterButton(VARIANT_TRUE);
	var_Column4->PutFilterList(EXTREELib::FilterListEnum(EXTREELib::exShowFocusItem | EXTREELib::exShowCheckBox | EXTREELib::exSortItemsDesc));
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
	long h = var_Items->AddItem(COleDateTime(2010,1,27,0,00,00).operator DATE());
	var_Items->PutCellCaption(h,long(1),COleDateTime(2010,1,27,10,00,00).operator DATE());
	var_Items->PutCellCaption(h,long(2),var_Items->GetCellCaption(h,long(1)));
	var_Items->PutCellCaption(h,long(3),long(1));
	var_Items->PutCellCaption(h,long(4),var_Items->GetCellCaption(h,long(3)));
	h = var_Items->AddItem(COleDateTime(2011,1,27,0,00,00).operator DATE());
	var_Items->PutCellCaption(h,long(1),COleDateTime(2011,1,27,9,00,00).operator DATE());
	var_Items->PutCellCaption(h,long(2),var_Items->GetCellCaption(h,long(1)));
	var_Items->PutCellCaption(h,long(3),long(11));
	var_Items->PutCellCaption(h,long(4),var_Items->GetCellCaption(h,long(3)));
	h = var_Items->AddItem(COleDateTime(2010,11,2,0,00,00).operator DATE());
	var_Items->PutCellCaption(h,long(1),COleDateTime(2010,11,2,9,00,00).operator DATE());
	var_Items->PutCellCaption(h,long(2),var_Items->GetCellCaption(h,long(1)));
	var_Items->PutCellCaption(h,long(3),long(2));
	var_Items->PutCellCaption(h,long(4),var_Items->GetCellCaption(h,long(3)));
spTree1->GetColumns()->GetItem("DateTime")->PutDisplayFilterDate(VARIANT_FALSE);
spTree1->EndUpdate();