21:
How do I get the caption of the cell/item from the point

PROCEDURE OnMouseMove(oExplorerTree,Button,Shift,X,Y)
	LOCAL oObject
	oObject := oExplorerTree:GroupListFromPoint(-1,-1)
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oExplorerTree
	LOCAL oGroup,oGroup1
	LOCAL oItems,oItems1

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oExplorerTree := XbpActiveXControl():new( oForm:drawingArea )
	oExplorerTree:CLSID  := "Exontrol.ExplorerTree.1" /*{1036744E-4103-4987-BA7A-BB6C35BD5852}*/
	oExplorerTree:create(,, {10,60},{610,370} )

		oExplorerTree:MouseMove := {|Button,Shift,X,Y| OnMouseMove(oExplorerTree,Button,Shift,X,Y)} /*Occurs when the user moves the mouse.*/

		oExplorerTree:BeginUpdate()
		oGroup := oExplorerTree:Groups():Add("Group 1")
			oGroup:HeaderVisible := .T.
			oGroup:Columns():Clear()
			oGroup:Columns():Add("Number")
			oGroup:Columns():Add("Round"):ComputedField := "round(%0)"
			oItems := oGroup:Items()
				oItems:AddItem("-1.98")
				oItems:AddItem("0.99")
				oItems:AddItem("1.23")
				oItems:AddItem("2.34")
			oGroup:Expanded := .T.
		oGroup1 := oExplorerTree:Groups():Add("Group 2")
			oGroup1:HeaderVisible := .T.
			oGroup1:Columns():Clear()
			oGroup1:Columns():Add("Number")
			oGroup1:Columns():Add("Round"):ComputedField := "round(%0)"
			oItems1 := oGroup1:Items()
				oItems1:AddItem("-1.98")
				oItems1:AddItem("0.99")
				oItems1:AddItem("1.23")
				oItems1:AddItem("2.34")
			oGroup1:Expanded := .T.
		oExplorerTree:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
20:
How can I ensure that a specified item is visible

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oExplorerTree
	LOCAL oGroup
	LOCAL oGroups
	LOCAL oItems,oItems1
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oExplorerTree := XbpActiveXControl():new( oForm:drawingArea )
	oExplorerTree:CLSID  := "Exontrol.ExplorerTree.1" /*{1036744E-4103-4987-BA7A-BB6C35BD5852}*/
	oExplorerTree:create(,, {10,60},{610,370} )

		oExplorerTree:BeginUpdate()
		oGroups := oExplorerTree:Groups()
			oGroup := oGroups:Add("Group")
				oGroup:Expanded := .T.
				oItems := oGroup:Items()
					oItems:AddItem("Item")
					oItems:AddItem("Item")
					oItems:AddItem("Item")
					oItems:AddItem("Item")
				oGroup:PutItems(oGroup:GetItems(0),0)
				oGroup:PutItems(oGroup:GetItems(0),0)
				oGroup:Items():AddItem("Ensure")
		oItems1 := oExplorerTree:Groups:Item(0):Items()
			h := oItems1:ItemByIndex(16)
			oItems1:SetProperty("ItemBackColor",h,AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,0 } )  , .F. ))
			oItems1:EnsureVisibleItem(h)
		oExplorerTree:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
19:
is it possible to display icons in the control's shortcut bar

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oExplorerTree
	LOCAL oGroups

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oExplorerTree := XbpActiveXControl():new( oForm:drawingArea )
	oExplorerTree:CLSID  := "Exontrol.ExplorerTree.1" /*{1036744E-4103-4987-BA7A-BB6C35BD5852}*/
	oExplorerTree:create(,, {10,60},{610,370} )

		oExplorerTree:BeginUpdate()
		oExplorerTree:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oExplorerTree:ShowShortcutBar := .T.
		oGroups := oExplorerTree:Groups()
			oGroups:Add("Group A.1"):Shortcut := "<img>1</img> First Group"
			oGroups:Add("Group A.2"):Shortcut := "<img>1</img> First Group"
			oGroups:Add("Group B.1"):Shortcut := "<img>2</img> Second Group"
			oGroups:Add("Group B.2"):Shortcut := "<img>2</img> Second Group"
			oGroups:Add("Group B.3"):Shortcut := "<img>2</img> Second Group"
		oExplorerTree:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
18:
How can I display the control's shortcut bar

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oExplorerTree
	LOCAL oGroups

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oExplorerTree := XbpActiveXControl():new( oForm:drawingArea )
	oExplorerTree:CLSID  := "Exontrol.ExplorerTree.1" /*{1036744E-4103-4987-BA7A-BB6C35BD5852}*/
	oExplorerTree:create(,, {10,60},{610,370} )

		oExplorerTree:BeginUpdate()
		oExplorerTree:ShowShortcutBar := .T.
		oGroups := oExplorerTree:Groups()
			oGroups:Add("Group A.1"):Shortcut := "A"
			oGroups:Add("Group A.2"):Shortcut := "A"
			oGroups:Add("Group B.1"):Shortcut := "B"
			oGroups:Add("Group B.2"):Shortcut := "B"
			oGroups:Add("Group B.3"):Shortcut := "B"
		oExplorerTree:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
17:
Can I display the cell's check box after the text

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oExplorerTree
	LOCAL oColumn
	LOCAL oGroup
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oExplorerTree := XbpActiveXControl():new( oForm:drawingArea )
	oExplorerTree:CLSID  := "Exontrol.ExplorerTree.1" /*{1036744E-4103-4987-BA7A-BB6C35BD5852}*/
	oExplorerTree:create(,, {10,60},{610,370} )

		oExplorerTree:BeginUpdate()
		oGroup := oExplorerTree:Groups():Add("Default")
			oGroup:Expanded := .T.
			oColumn := oGroup:Columns:Item(0)
				oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
				oColumn:SetProperty("Def",34/*exCellDrawPartsOrder*/,"caption,check")
			oItems := oGroup:Items()
				oItems:SetProperty("CellHasCheckBox",oItems:AddItem("Caption 1"),0,.T.)
				oItems:SetProperty("CellHasCheckBox",oItems:AddItem("Caption 2"),0,.T.)
		oExplorerTree:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
16:
Can I change the order of the parts in the cell, as checkbox after the text, and so on

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oExplorerTree
	LOCAL oGroup
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oExplorerTree := XbpActiveXControl():new( oForm:drawingArea )
	oExplorerTree:CLSID  := "Exontrol.ExplorerTree.1" /*{1036744E-4103-4987-BA7A-BB6C35BD5852}*/
	oExplorerTree:create(,, {10,60},{610,370} )

		oExplorerTree:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oExplorerTree:BeginUpdate()
		oGroup := oExplorerTree:Groups():Add("Default")
			oGroup:Expanded := .T.
			oGroup:Columns:Item(0):SetProperty("Def",34/*exCellDrawPartsOrder*/,"caption,check,icon,icons,picture")
			oItems := oGroup:Items()
				h := oItems:AddItem("Text")
				oItems:SetProperty("CellImage",h,0,1)
				oItems:SetProperty("CellHasCheckBox",h,0,.T.)
		oExplorerTree:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
15:
Can I have an image displayed after the text. Can I get that effect without using HTML content

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oExplorerTree
	LOCAL oGroup
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oExplorerTree := XbpActiveXControl():new( oForm:drawingArea )
	oExplorerTree:CLSID  := "Exontrol.ExplorerTree.1" /*{1036744E-4103-4987-BA7A-BB6C35BD5852}*/
	oExplorerTree:create(,, {10,60},{610,370} )

		oExplorerTree:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oExplorerTree:BeginUpdate()
		oGroup := oExplorerTree:Groups():Add("Default")
			oGroup:Expanded := .T.
			oGroup:Columns:Item(0):SetProperty("Def",34/*exCellDrawPartsOrder*/,"caption,icon,check,icons,picture")
			oItems := oGroup:Items()
				h := oItems:AddItem("Text")
				oItems:SetProperty("CellImage",h,0,1)
		oExplorerTree:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
14:
How do I enable the filter prompt feature

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oExplorerTree
	LOCAL oColumns
	LOCAL oGroup
	LOCAL oItems
	LOCAL h0

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oExplorerTree := XbpActiveXControl():new( oForm:drawingArea )
	oExplorerTree:CLSID  := "Exontrol.ExplorerTree.1" /*{1036744E-4103-4987-BA7A-BB6C35BD5852}*/
	oExplorerTree:create(,, {10,60},{610,370} )

		oExplorerTree:BeginUpdate()
		oExplorerTree:Groups():Add("Group 1")
		oGroup := oExplorerTree:Groups():Add("Group 2")
			oGroup:AutoHeight := .T.
			oGroup:HeaderVisible := .T.
			oGroup:Columns():Clear()
			oGroup:ColumnAutoResize := .T.
			oGroup:ContinueColumnScroll := .F.
			oGroup:MarkSearchColumn := .F.
			oGroup:SearchColumnIndex := 1
			oGroup:FilterBarPromptVisible := .T.
			oColumns := oGroup:Columns()
				oColumns:Add("Name"):Width := 96
				oColumns:Add("Title"):Width := 96
				oColumns:Add("City")
			oItems := oGroup:Items()
				h0 := oItems:AddItem("Nancy Davolio")
				oItems:SetProperty("CellCaption",h0,1,"Sales Representative")
				oItems:SetProperty("CellCaption",h0,2,"Seattle")
				h0 := oItems:AddItem("Andrew Fuller")
				oItems:SetProperty("CellCaption",h0,1,"Vice President, Sales")
				oItems:SetProperty("CellCaption",h0,2,"Tacoma")
				oItems:SetProperty("SelectItem",h0,.T.)
				h0 := oItems:AddItem("Janet Leverling")
				oItems:SetProperty("CellCaption",h0,1,"Sales Representative")
				oItems:SetProperty("CellCaption",h0,2,"Kirkland")
				h0 := oItems:AddItem("Margaret Peacock")
				oItems:SetProperty("CellCaption",h0,1,"Sales Representative")
				oItems:SetProperty("CellCaption",h0,2,"Redmond")
				h0 := oItems:AddItem("Steven Buchanan")
				oItems:SetProperty("CellCaption",h0,1,"Sales Manager")
				oItems:SetProperty("CellCaption",h0,2,"London")
				h0 := oItems:AddItem("Michael Suyama")
				oItems:SetProperty("CellCaption",h0,1,"Sales Representative")
				oItems:SetProperty("CellCaption",h0,2,"London")
				h0 := oItems:AddItem("Robert King")
				oItems:SetProperty("CellCaption",h0,1,"Sales Representative")
				oItems:SetProperty("CellCaption",h0,2,"London")
				h0 := oItems:AddItem("Laura Callahan")
				oItems:SetProperty("CellCaption",h0,1,"Inside Sales Coordinator")
				oItems:SetProperty("CellCaption",h0,2,"Seattle")
				h0 := oItems:AddItem("Anne Dodsworth")
				oItems:SetProperty("CellCaption",h0,1,"Sales Representative")
				oItems:SetProperty("CellCaption",h0,2,"London")
			oGroup:Expanded := .T.
		oExplorerTree:Groups():Add("Group 3")
		oExplorerTree:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
13:
Can I specify unsortable items

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oExplorerTree
	LOCAL oColumns
	LOCAL oGroup
	LOCAL oItems
	LOCAL h,h1

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oExplorerTree := XbpActiveXControl():new( oForm:drawingArea )
	oExplorerTree:CLSID  := "Exontrol.ExplorerTree.1" /*{1036744E-4103-4987-BA7A-BB6C35BD5852}*/
	oExplorerTree:create(,, {10,60},{610,370} )

		oExplorerTree:BeginUpdate()
		oGroup := oExplorerTree:Groups():Add("Default")
			oGroup:AutoHeight := .T.
			oGroup:HeaderVisible := .T.
			oGroup:Columns():Clear()
			oGroup:HasLines := 0/*exNoLine*/
			oGroup:ScrollBySingleLine := .T.
			oGroup:MarkSearchColumn := .F.
			oColumns := oGroup:Columns()
				oColumns:Add("Name")
				oColumns:Add("A")
				oColumns:Add("B")
				oColumns:Add("C")
			oItems := oGroup:Items()
				h := oItems:AddItem("Group 1")
				oItems:SetProperty("CellHAlignment",h,0,1/*CenterAlignment*/)
				oItems:SetProperty("ItemDivider",h,0)
				oItems:SetProperty("ItemDividerLineAlignment",h,3/*DividerBoth*/)
				oItems:SetProperty("ItemHeight",h,24)
				oItems:SetProperty("SortableItem",h,.F.)
				h1 := oItems:InsertItem(h,,"Child 1")
				oItems:SetProperty("CellCaption",h1,1,1)
				oItems:SetProperty("CellCaption",h1,2,2)
				oItems:SetProperty("CellCaption",h1,3,3)
				h1 := oItems:InsertItem(h,,"Child 2")
				oItems:SetProperty("CellCaption",h1,1,4)
				oItems:SetProperty("CellCaption",h1,2,5)
				oItems:SetProperty("CellCaption",h1,3,6)
				oItems:SetProperty("ExpandItem",h,.T.)
				h := oItems:AddItem("Group 2")
				oItems:SetProperty("CellHAlignment",h,0,1/*CenterAlignment*/)
				oItems:SetProperty("ItemDivider",h,0)
				oItems:SetProperty("ItemDividerLineAlignment",h,3/*DividerBoth*/)
				oItems:SetProperty("ItemHeight",h,24)
				oItems:SetProperty("SortableItem",h,.F.)
				h1 := oItems:InsertItem(h,,"Child 1")
				oItems:SetProperty("CellCaption",h1,1,1)
				oItems:SetProperty("CellCaption",h1,2,2)
				oItems:SetProperty("CellCaption",h1,3,3)
				h1 := oItems:InsertItem(h,,"Child 2")
				oItems:SetProperty("CellCaption",h1,1,4)
				oItems:SetProperty("CellCaption",h1,2,5)
				oItems:SetProperty("CellCaption",h1,3,6)
				oItems:SetProperty("ExpandItem",h,.T.)
			oGroup:Expanded := .T.
		oExplorerTree:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
12:
Can I change the style of the line being displayed by a divider item

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oExplorerTree
	LOCAL oGroup
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oExplorerTree := XbpActiveXControl():new( oForm:drawingArea )
	oExplorerTree:CLSID  := "Exontrol.ExplorerTree.1" /*{1036744E-4103-4987-BA7A-BB6C35BD5852}*/
	oExplorerTree:create(,, {10,60},{610,370} )

		oExplorerTree:BeginUpdate()
		oGroup := oExplorerTree:Groups():Add("Default")
			oGroup:HeaderVisible := .T.
			oGroup:Columns():Clear()
			oGroup:MarkSearchColumn := .F.
			oGroup:TreeColumnIndex := -1
			oGroup:ScrollBySingleLine := .F.
			oGroup:Columns():Add("C1")
			oGroup:Columns():Add("C2")
			oGroup:SelBackMode := 1/*exTransparent*/
			oItems := oGroup:Items()
				h := oItems:AddItem("Cell 1")
				oItems:SetProperty("CellCaption",h,1,"This is bit of text that's shown on multiple lines. This is bit of text that's shown on multiple lines.")
				oItems:SetProperty("CellSingleLine",h,1,.F.)
				h := oItems:AddItem("This is bit of text that's displayed on the entire item, divider.")
				oItems:SetProperty("ItemDivider",h,0)
				oItems:SetProperty("ItemDividerLine",h,4/*DoubleDotLine*/)
				oItems:SetProperty("ItemDividerLineAlignment",h,3/*DividerBoth*/)
				oItems:SetProperty("CellHAlignment",h,0,1/*CenterAlignment*/)
				oItems:SetProperty("ItemHeight",h,24)
			oGroup:Expanded := .T.
		oExplorerTree:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
11:
How can I expand all items

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oExplorerTree
	LOCAL oGroup
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oExplorerTree := XbpActiveXControl():new( oForm:drawingArea )
	oExplorerTree:CLSID  := "Exontrol.ExplorerTree.1" /*{1036744E-4103-4987-BA7A-BB6C35BD5852}*/
	oExplorerTree:create(,, {10,60},{610,370} )

		oExplorerTree:BeginUpdate()
		oGroup := oExplorerTree:Groups():Add("Default")
			oGroup:HeaderVisible := .T.
			oGroup:Columns():Clear()
			oGroup:LinesAtRoot := -1/*exLinesAtRoot*/
			oGroup:Columns():Add("Items")
			oItems := oGroup:Items()
				h := oItems:AddItem("Root 1")
				oItems:InsertItem(h,,"Child 1")
				oItems:InsertItem(h,,"Child 2")
				h := oItems:AddItem("Root 2")
				oItems:InsertItem(h,,"Child 1")
				oItems:InsertItem(h,,"Child 2")
				oItems:SetProperty("ExpandItem",0,.T.)
			oGroup:Expanded := .T.
		oExplorerTree:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
10:
Is it possible display numbers in the same format no matter of regional settings in the control panel

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oExplorerTree
	LOCAL oGroup
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oExplorerTree := XbpActiveXControl():new( oForm:drawingArea )
	oExplorerTree:CLSID  := "Exontrol.ExplorerTree.1" /*{1036744E-4103-4987-BA7A-BB6C35BD5852}*/
	oExplorerTree:create(,, {10,60},{610,370} )

		oGroup := oExplorerTree:Groups():Add("Default")
			oGroup:HeaderVisible := .T.
			oGroup:Columns():Clear()
			oGroup:Columns():Add("Def"):SetProperty("Def",17/*exCellCaptionFormat*/,1)
			oItems := oGroup:Items()
				h := oItems:AddItem(100000.27)
				oItems:SetProperty("FormatCell",h,0,"(value format '') +  ' <fgcolor=808080>(default positive)'")
				h := oItems:AddItem(100000.27)
				oItems:SetProperty("FormatCell",h,0,"(value format '2|.|3|,|1|1')")
				h := oItems:AddItem(-100000.27)
				oItems:SetProperty("FormatCell",h,0,"(value format '') +  ' <fgcolor=808080>(default negative)'")
				h := oItems:AddItem(-100000.27)
				oItems:SetProperty("FormatCell",h,0,"(value format '2|.|3|,|1|1')")
			oGroup:Expanded := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
9:
Is it possible to format numbers

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oExplorerTree
	LOCAL oColumn,oColumn1,oColumn2,oColumn3
	LOCAL oColumns
	LOCAL oGroup
	LOCAL oItems
	LOCAL h,h1

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oExplorerTree := XbpActiveXControl():new( oForm:drawingArea )
	oExplorerTree:CLSID  := "Exontrol.ExplorerTree.1" /*{1036744E-4103-4987-BA7A-BB6C35BD5852}*/
	oExplorerTree:create(,, {10,60},{610,370} )

		oExplorerTree:BeginUpdate()
		oGroup := oExplorerTree:Groups():Add("Default")
			oGroup:HeaderVisible := .T.
			oGroup:MarkSearchColumn := .F.
			oGroup:Columns():Clear()
			oColumns := oGroup:Columns()
				oColumns:Add("Name")
				oColumn := oColumns:Add("A")
					oColumn:SortType := 1/*SortNumeric*/
					oColumn:AllowSizing := .F.
					oColumn:Width := 36
					oColumn:FormatColumn := "len(value) ? value + ' +'"
				oColumn1 := oColumns:Add("B")
					oColumn1:SortType := 1/*SortNumeric*/
					oColumn1:AllowSizing := .F.
					oColumn1:Width := 36
					oColumn1:FormatColumn := "len(value) ? value + ' +'"
				oColumn2 := oColumns:Add("C")
					oColumn2:SortType := 1/*SortNumeric*/
					oColumn2:AllowSizing := .F.
					oColumn2:Width := 36
					oColumn2:FormatColumn := "len(value) ? value + ' ='"
				oColumn3 := oColumns:Add("A+B+C")
					oColumn3:SortType := 1/*SortNumeric*/
					oColumn3:Width := 64
					oColumn3:ComputedField := "dbl(%1)+dbl(%2)+dbl(%3)"
					oColumn3:FormatColumn := "type(value) in (0,1) ? 'null' : ( dbl(value)<0 ? '<fgcolor=FF0000>'+ (value format '2|.|3|,|1' ) : (dbl(value)>0 ? '<fgcolor=0000FF>+'+(value format '2|.|3|,' ): '0.00') )"
					oColumn3:SetProperty("Def",17/*exCellCaptionFormat*/,1)
			oItems := oGroup:Items()
				h := oItems:AddItem("Root")
				oItems:SetProperty("CellCaptionFormat",h,4,2/*exComputedField*/)
				h1 := oItems:InsertItem(h,,"Child 1")
				oItems:SetProperty("CellCaption",h1,1,7)
				oItems:SetProperty("CellCaption",h1,2,3)
				oItems:SetProperty("CellCaption",h1,3,1)
				h1 := oItems:InsertItem(h,,"Child 2")
				oItems:SetProperty("CellCaption",h1,1,-2)
				oItems:SetProperty("CellCaption",h1,2,-2)
				oItems:SetProperty("CellCaption",h1,3,-4)
				h1 := oItems:InsertItem(h,,"Child 3")
				oItems:SetProperty("CellCaption",h1,1,2)
				oItems:SetProperty("CellCaption",h1,2,2)
				oItems:SetProperty("CellCaption",h1,3,-4)
				oItems:SetProperty("ExpandItem",h,.T.)
			oGroup:Expanded := .T.
		oExplorerTree:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
8:
Is there any function to round the values base on the .5 value

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oExplorerTree
	LOCAL oGroup
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oExplorerTree := XbpActiveXControl():new( oForm:drawingArea )
	oExplorerTree:CLSID  := "Exontrol.ExplorerTree.1" /*{1036744E-4103-4987-BA7A-BB6C35BD5852}*/
	oExplorerTree:create(,, {10,60},{610,370} )

		oGroup := oExplorerTree:Groups():Add("Default")
			oGroup:HeaderVisible := .T.
			oGroup:Columns():Clear()
			oGroup:Columns():Add("Number")
			oGroup:Columns():Add("Round"):ComputedField := "round(%0)"
			oItems := oGroup:Items()
				oItems:AddItem("-1.98")
				oItems:AddItem("0.99")
				oItems:AddItem("1.23")
				oItems:AddItem("2.34")
			oGroup:Expanded := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
7:
How can I show a column that adds values in the cells

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oExplorerTree
	LOCAL oGroup
	LOCAL oItems,oItems1

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oExplorerTree := XbpActiveXControl():new( oForm:drawingArea )
	oExplorerTree:CLSID  := "Exontrol.ExplorerTree.1" /*{1036744E-4103-4987-BA7A-BB6C35BD5852}*/
	oExplorerTree:create(,, {10,60},{610,370} )

		oGroup := oExplorerTree:Groups():Add("Default")
			oGroup:Columns():Clear()
			oGroup:HeaderVisible := .T.
			oGroup:Columns():Add("A")
			oGroup:Columns():Add("B")
			oGroup:Columns():Add("A+B"):ComputedField := "dbl(%0) + dbl(%1)"
			oItems := oGroup:Items()
				oItems:SetProperty("CellCaption",oItems:AddItem(1),1,2)
			oItems1 := oGroup:Items()
				oItems1:SetProperty("CellCaption",oItems1:AddItem(10),1,20)
			oGroup:Expanded := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
6:
How do I change the item's background color for numbers less than a value

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oExplorerTree
	LOCAL oGroup

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oExplorerTree := XbpActiveXControl():new( oForm:drawingArea )
	oExplorerTree:CLSID  := "Exontrol.ExplorerTree.1" /*{1036744E-4103-4987-BA7A-BB6C35BD5852}*/
	oExplorerTree:create(,, {10,60},{610,370} )

		oGroup := oExplorerTree:Groups():Add("Default")
			oGroup:ConditionalFormats():Add("dbl(%0) < 10"):SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
			oGroup:Items():AddItem(1)
			oGroup:Items():AddItem(2)
			oGroup:Items():AddItem(10)
			oGroup:Items():AddItem(20)
			oGroup:Expanded := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
5:
How do I highlight in bold the numbers greater than a value

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oExplorerTree
	LOCAL oGroup

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oExplorerTree := XbpActiveXControl():new( oForm:drawingArea )
	oExplorerTree:CLSID  := "Exontrol.ExplorerTree.1" /*{1036744E-4103-4987-BA7A-BB6C35BD5852}*/
	oExplorerTree:create(,, {10,60},{610,370} )

		oGroup := oExplorerTree:Groups():Add("Default")
			oGroup:ConditionalFormats():Add("dbl(%0) >= 10"):Bold := .T.
			oGroup:Items():AddItem(1)
			oGroup:Items():AddItem(2)
			oGroup:Items():AddItem(10)
			oGroup:Items():AddItem(20)
			oGroup:Expanded := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
4:
How do I change the caption being displayed in the control's filter bar

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oExplorerTree
	LOCAL oColumn
	LOCAL oGroup

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oExplorerTree := XbpActiveXControl():new( oForm:drawingArea )
	oExplorerTree:CLSID  := "Exontrol.ExplorerTree.1" /*{1036744E-4103-4987-BA7A-BB6C35BD5852}*/
	oExplorerTree:create(,, {10,60},{610,370} )

		oGroup := oExplorerTree:Groups():Add("Default")
			oGroup:FilterBarCaption := "your filter caption"
			oColumn := oGroup:Columns():Add("Column")
				oColumn:DisplayFilterButton := .T.
				oColumn:FilterType := 1/*exBlanks*/
			oGroup:ApplyFilter()
			oGroup:Expanded := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
3:
Is it possible to change the style for the vertical or horizontal grid lines, in the list area

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oExplorerTree
	LOCAL oColumn
	LOCAL oGroup
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oExplorerTree := XbpActiveXControl():new( oForm:drawingArea )
	oExplorerTree:CLSID  := "Exontrol.ExplorerTree.1" /*{1036744E-4103-4987-BA7A-BB6C35BD5852}*/
	oExplorerTree:create(,, {10,60},{610,370} )

		oExplorerTree:BeginUpdate()
		oGroup := oExplorerTree:Groups():Add("Default")
			oGroup:AutoHeight := .T.
			oGroup:DrawGridLines := -1/*exAllLines*/
			oGroup:GridLineStyle := 33/*exGridLinesVSolid+exGridLinesHDot4*/
			oGroup:ColumnAutoResize := .F.
			oColumn := oGroup:Columns:Item(0)
				oColumn:Caption := "C1"
				oColumn:Width := 64
			oGroup:Columns():Add("C2")
			oGroup:Columns():Add("C3")
			oGroup:ColumnAutoResize := .T.
			oItems := oGroup:Items()
				h := oItems:AddItem("Item 1")
				oItems:SetProperty("CellCaption",h,1,"SubItem 1.2")
				oItems:SetProperty("CellCaption",h,2,"SubItem 1.3")
				h := oItems:AddItem("Item 2")
				oItems:SetProperty("CellCaption",h,1,"SubItem 2.2")
				oItems:SetProperty("CellCaption",h,2,"SubItem 2.3")
				h := oItems:AddItem("Item 3")
				oItems:SetProperty("CellCaption",h,1,"SubItem 3.2")
				oItems:SetProperty("CellCaption",h,2,"SubItem 3.3")
			oGroup:Expanded := .T.
		oExplorerTree:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
2:
Is it possible to change the style for the grid lines, for instance to be solid not dotted

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oExplorerTree
	LOCAL oGroup

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oExplorerTree := XbpActiveXControl():new( oForm:drawingArea )
	oExplorerTree:CLSID  := "Exontrol.ExplorerTree.1" /*{1036744E-4103-4987-BA7A-BB6C35BD5852}*/
	oExplorerTree:create(,, {10,60},{610,370} )

		oExplorerTree:BeginUpdate()
		oGroup := oExplorerTree:Groups():Add("Default")
			oGroup:DrawGridLines := -1/*exAllLines*/
			oGroup:GridLineStyle := 48/*exGridLinesSolid*/
			oGroup:Expanded := .T.
		oExplorerTree:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
1:
How can I change the visual appearance for the groups, using your EBN files

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oExplorerTree
	LOCAL oGroups

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oExplorerTree := XbpActiveXControl():new( oForm:drawingArea )
	oExplorerTree:CLSID  := "Exontrol.ExplorerTree.1" /*{1036744E-4103-4987-BA7A-BB6C35BD5852}*/
	oExplorerTree:create(,, {10,60},{610,370} )

		oExplorerTree:BeginUpdate()
		oExplorerTree:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oExplorerTree:SetProperty("BackColorGroup",0x1000000)
		oGroups := oExplorerTree:Groups()
			oGroups:Add("Group 1")
			oGroups:Add("Group 2")
			oGroups:Add("Group 3")
		oExplorerTree:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN