If you want to iterate over the list of all selected items, you can use the method FindNext() of the JamSelectionList, e.g.:
This returns the names of the selected files and folders. When all items have been enumerated, an empty string will be returned.
If you want to get a list of the selected items, you can use the Paths property of the JamSelectionList.
You could use the OnBeforeShellCommand event to overwrite the Windows Shell 's default behaviour depending on the affected files and/or the command the is about to be executed, and set the var parameter "AllowExecute" to False, to skip the default handling for these cases.
The history is cleared if you root a JamShellTree at a different folder. The reason is that you usually have an entire different branch of the shell namespace available in the tree control and can't simply move back to the old folders as they are most likely no longer part if the display branch.
To select item after adding it, you can use:
JamFileList1.Add( 'C:\ctapi_out_gr.txt ').Selected := True;
If you just want to highlight items in a custom way, you could use the CustomDraw events that the TJamFileList inherited from Delphi 's TListView.