48
Is there a way to change the header names

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:ColumnNames := "Name(Ime),Date modified(Datum),Item type(Tip),Size(Velikost)"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
47
Disable or prevent the header's context-menu
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:AllowContextMenu := 1/*exAllowListViewContextMenu*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
46
Disable or prevent the list-view's context-menu
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:AllowContextMenu := 2/*exAllowHeaderContextMenu*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
45
Disable or prevent the control's context-menu
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:AllowContextMenu := 0/*exDisableContextMenu*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
44
How can I add my own items, without the default context menu

PROCEDURE OnInvokeMenuCommand(oExShellView,Command)
	DevOut( Transform(Command,"") )
RETURN

PROCEDURE OnQueryContextMenu(oExShellView,Items,Separator)
	Separator := ","
	Items := "My First Item,My Second Item"
RETURN

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:InvokeMenuCommand := {|Command| OnInvokeMenuCommand(oExShellView,Command)} /*Fired when the user selects an item context menu that has been added during QueryContextMenu event.*/
		oExShellView:QueryContextMenu := {|Items,Separator| OnQueryContextMenu(oExShellView,Items,Separator)} /*Fired when the context menu is about to be active. You can supply new items to the context menu.*/

		oExShellView:DefaultMenuItems := .F.
		oExShellView:BrowseFolder := "c:\Temp"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
43
How can I add my own items

PROCEDURE OnInvokeMenuCommand(oExShellView,Command)
	DevOut( Transform(Command,"") )
RETURN

PROCEDURE OnQueryContextMenu(oExShellView,Items,Separator)
	Separator := ","
	Items := ",My First Item,My Second Item"
RETURN

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:InvokeMenuCommand := {|Command| OnInvokeMenuCommand(oExShellView,Command)} /*Fired when the user selects an item context menu that has been added during QueryContextMenu event.*/
		oExShellView:QueryContextMenu := {|Items,Separator| OnQueryContextMenu(oExShellView,Items,Separator)} /*Fired when the context menu is about to be active. You can supply new items to the context menu.*/

		oExShellView:BrowseFolder := "c:\Temp"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
42
The InvokeCommand("open") will not work on a german. What can I do
PROCEDURE OnDblClick(oExShellView)
	/*Objects(0).InvokeCommand("Open")*/
	oExShellView:Objects():Get(1/*SelectedItems*/)
RETURN

PROCEDURE OnInvokeItemMenu(oExShellView,Command)
	DevOut( Transform(Command,"") )
RETURN

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:DblClick := {|| OnDblClick(oExShellView)} /*Occurs when the user dblclk the left mouse button over an object.*/
		oExShellView:InvokeItemMenu := {|Command| OnInvokeItemMenu(oExShellView,Command)} /*Notifies the application once the user selects a command in the context menu.*/

		oExShellView:BrowseFolder := "c:\Temp"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
41
How can I open the file's properties when user double clicks it
PROCEDURE OnDblClick(oExShellView)
	/*Objects(0).InvokeCommand("Properties")*/
	oExShellView:Objects():Get(1/*SelectedItems*/)
RETURN

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:DblClick := {|| OnDblClick(oExShellView)} /*Occurs when the user dblclk the left mouse button over an object.*/

		oExShellView:BrowseFolder := "c:\Temp"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
40
We're looking for a control to show files, just like the eXShellView, but than we would like to specify the files themselves. Is that possible using your control

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:ViewMode := 1/*LargeIcons*/
		oExShellView:HeaderVisible := .F.
		oExShellView:BrowseFiles := "C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe|C:\Program Files\Microsoft Visual FoxPro 9\vfp9.exe"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
39
How do I prevent pressing the Backspace, or go up to the parent

PROCEDURE OnKeyDown(oExShellView,KeyCode,Shift)
	DevOut( "Set the KeyCode = 0, if the KeyCode is 8 " )
	KeyCode := 0
RETURN

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:KeyDown := {|KeyCode,Shift| OnKeyDown(oExShellView,KeyCode,Shift)} /*Occurs when the user presses a key while an object has the focus.*/

		oExShellView:ViewMode := 4/*Details*/
		oExShellView:BrowseFolder := "c:\Temp"
		oExShellView:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
38
How can I show grid lines around items

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:ViewMode := 4/*Details*/
		oExShellView:DrawGridLines := .T.
		oExShellView:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
37
How can I prevent shwoing the overlay icons (shortcut icons have a small arrow in lower-left corner, shared folders have a hand that shows that folder is shared, etc. )

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:ViewMode := 1/*LargeIcons*/
		oExShellView:OverlayIcons := .F.
		oExShellView:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
36
I need to provide my own context menu but I am not able to find RClick event. What can be done

PROCEDURE OnQueryContextMenu(oExShellView,Items,Separator)
	DevOut( "Show here your popup/context menu" )
RETURN

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:QueryContextMenu := {|Items,Separator| OnQueryContextMenu(oExShellView,Items,Separator)} /*Fired when the context menu is about to be active. You can supply new items to the context menu.*/

		oExShellView:DefaultMenuItems := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
35
How can I provide my own context menu (RClick event is missing)

PROCEDURE OnInvokeMenuCommand(oExShellView,Command)
	DevOut( Transform(Command,"") )
RETURN

PROCEDURE OnQueryContextMenu(oExShellView,Items,Separator)
	Separator := ","
	Items := "First,Second,Third"
RETURN

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:InvokeMenuCommand := {|Command| OnInvokeMenuCommand(oExShellView,Command)} /*Fired when the user selects an item context menu that has been added during QueryContextMenu event.*/
		oExShellView:QueryContextMenu := {|Items,Separator| OnQueryContextMenu(oExShellView,Items,Separator)} /*Fired when the context menu is about to be active. You can supply new items to the context menu.*/

		oExShellView:DefaultMenuItems := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
34
Is it possible to specify the "Extra Large Icons" view

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:ViewMode := 13/*Extra_Large_Icons*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
33
Is it possible to specify the "Large Icons" view

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:ViewMode := 14/*Large_Icons*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
32
Is it possible to specify the "Medium Icons" view

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:ViewMode := 15/*Medium_Icons*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
31
How can I hide the file names

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:HideFileNames := .T.
		oExShellView:ViewMode := 5/*Thumbnail*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
30
Is it possible to set the Auto Arrange and Align To Grid flags by code

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:AutoArrange := .T.
		oExShellView:AlignToGrid := .T.
		oExShellView:ViewMode := 5/*Thumbnail*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
29
Is it possible to set the Auto Arrange flag by code

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:AutoArrange := .T.
		oExShellView:ViewMode := 5/*Thumbnail*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
28
How do I specify the current folder

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:CurrentFolder := "c:\windows"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
27
Is it possible to disable showing tooltips for files and folders

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:HideToolTips := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
26
Is it possible to hide the control's header

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:HeaderVisible := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
25
How can I get the name of file being double clicked

PROCEDURE OnObjectSelect(oExShellView,Object)
	oExShellView:CancelObjectSelect()
	DevOut( Transform(Object,"") )
RETURN

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:ObjectSelect := {|Object| OnObjectSelect(oExShellView,Object)} /*Fired when the user selects a new object for browsing.*/


	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
24
How can I prevent opening or selecting a folder or zip files when user double click it
PROCEDURE OnObjectSelect(oExShellView,Object)
	oExShellView:CancelObjectSelect()
RETURN

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:ObjectSelect := {|Object| OnObjectSelect(oExShellView,Object)} /*Fired when the user selects a new object for browsing.*/


	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
23
Is it possible to list only files, no folders

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:ModifyFolderFlags(128/*NoSubFolders*/,0/*NoFlag*/)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
22
How can I enable multiple selection

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:ModifyFolderFlags(0/*NoFlag*/,64/*SingleSel*/)
		oExShellView:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
21
How can I select a file or a folder

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:Objects():Get(2/*AllItems*/)
		oExShellView:Objects():Item(0):SelectItem(1/*Select*/)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
20
How can I get all files and folders as they are listed
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:Objects():Get(18/*AsDisplayed+AllItems*/)
		DevOut( Transform(oExShellView:Objects:Count(),"") )

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
19
How can I get all files and folders being displayed
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:Objects():Get(2/*AllItems*/)
		DevOut( Transform(oExShellView:Objects:Count(),"") )

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
18
How do I get the selected files or folders as they are displayed
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:Objects():Get(17/*AsDisplayed+SelectedItems*/)
		DevOut( Transform(oExShellView:Objects:Count(),"") )

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
17
How do I get the selected files or folders
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:Objects():Get(1/*SelectedItems*/)
		DevOut( Transform(oExShellView:Objects:Count(),"") )

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
16
How can I disable or enable the control's context menu

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:DefaultMenuItems := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
15
How can I include only files that match a pattern

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:IncludeObjectType := 3/*PatternObjects*/
		oExShellView:FilePattern := "*.exe *.lnk"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
14
How can I include only files that match a pattern

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:IncludeObjectType := 3/*PatternObjects*/
		oExShellView:FilePattern := "*.bmp"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
13
How can I list only folders in the view

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:IncludeObjectType := 2/*FoldersOnly*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
12
How do I specify what objects files or folders should be included in the list

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:IncludeObjectType := 2/*FoldersOnly*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
11
How do I browse a special folder

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:BrowseFolder := oExShellView:ShellFolder(oExShellView:SpecialFolder(2/*Programs*/))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
10
How can I go up to one level, so I can browse the parent folder

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:BrowseFolder := oExShellView:ShellFolder("C:\")
		oExShellView:UpOneLevel()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
9
How do I browse a specified folder

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:BrowseFolder := oExShellView:ShellFolder("C:\")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
8
How can I disable or enable the entire control

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:Enabled := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
7
How do I refresh the control
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
6
How can I change the control's font

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oExShellView
	LOCAL f

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		f := CreateObject("StdFont")
			f:Name := "Verdana"
			f:Size := 12
		oExShellView:Font := f

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
5
How can I change the view, so it displays as THUMBNAIL

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:ViewMode := 5/*Thumbnail*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
4
How can I change the view, so it displays as a a grid with details

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:ViewMode := 4/*Details*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
3
How can I change the view, so it displays as a list

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:ViewMode := 3/*List*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
2
How can I change the view, so it displays small icons

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:ViewMode := 2/*SmallIcon*/

	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 view, so it displays large icons

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

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

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

	oExShellView := XbpActiveXControl():new( oForm:drawingArea )
	oExShellView:CLSID  := "Exontrol.ShellView.1" /*{B4E1F234-AF0D-4EAD-8113-A563B40E71CA}*/
	oExShellView:create(,, {10,60},{610,370} )

		oExShellView:ViewMode := 1/*LargeIcons*/

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