FastCopy Buttons & Drop Menu

After trying several external file copy programs I ended up going with FastCopy as my app of choice. The main reason is that FastCopy gives you some options for handling reparse points (junctions, hard links and sym links) that are very useful. From the fastcopy command line, if the switch:
[ul]
[]/reparse=FALSE then reparse points are treated as regular files/folders and the actual data is copied/moved.[/]
[]/reparse=TRUE then only the reparse points are copied/moved rather than the actual data. This means that any junctions or links are retained so you don't end up with duplicate data.[/]
[/ul]
FastCopy is a portable app. You can download it from here http://www.ipmsg.org/tools/fastcopy.html.en. Note that there are a bunch of other fastcopy command line switches that I didn't expose in DOpus. If you find them useful, then have at it and post your code.

Following is the code and some images. Note that I'm using a custom alias /portableapps in the fastcopy app path that you will need to change to match your own installation. Ditto for the icon path in the Drag-Drop menu:

FastCopy.dcf: (Three-Button: LMB-Copy / RMB-Copy and Keep Links)

<?xml version="1.0"?>
<button backcol="none" display="icon" textcol="none" type="three_button">
	<label>FastCopy</label>
	<icon1>#copy</icon1>
	<button backcol="none" display="both" textcol="none">
		<label>FastCopy All</label>
		<icon1>#copy</icon1>
		<function type="normal">
			<instruction>/portableapps\System\FastCopy\fastcopy.exe /auto_close /open_window /estimate /reparse=FALSE {F} /to={d}</instruction>
		</function>
	</button>
	<button backcol="none" display="both" textcol="none">
		<label>FastCopy and Keep Links</label>
		<icon1>#copy</icon1>
		<function type="normal">
			<instruction>/portableapps\System\FastCopy\fastcopy.exe /auto_close /open_window /estimate /reparse=TRUE /linkdest {F} /to={d}</instruction>
		</function>
	</button>
</button>

FastMove.dcf (Three-Button: LMB-Move / RMB-Move and Keep Links)

<?xml version="1.0"?> <button backcol="none" display="icon" textcol="none" type="three_button"> <label>FastMove</label> <icon1>#move</icon1> <button backcol="none" display="both" textcol="none"> <label>FastMove All</label> <icon1>#move</icon1> <function type="normal"> <instruction>/portableapps\System\FastCopy\fastcopy.exe /cmd=move /auto_close /open_window /estimate /reparse=FALSE {F} /to={d}</instruction> </function> </button> <button backcol="none" display="both" textcol="none"> <label>FastMove and Keep Links</label> <icon1>#move</icon1> <function type="normal"> <instruction>/portableapps\System\FastCopy\fastcopy.exe /cmd=move /auto_close /open_window /estimate /reparse=TRUE /linkdest {F} /to={d}</instruction> </function> </button> </button>

FastCopy Drag-Drop Menu (from AllFilesystemObjects.oxr)

<key name="FastCopy_Here"> <key name="opusflags"> <value name="Position" type="sz">2</value> <value name="SubMenu" type="sz">1</value> <value name="Icon" type="sz">D:\PortableApps\System\FastCopy\FastCopy.exe,0</value> </key> <key name="command"> <value name="@default" type="sz_multi" /> <value name="OpusFlags" type="dword">0</value> </key> <value name="@default" type="sz">FastCopy Here</value> </key> <key name="Copy"> <key name="opusflags"> <value name="Position" type="sz">3</value> </key> <key name="command"> <value name="@default" type="sz_multi">/portableapps\System\FastCopy\fastcopy.exe /auto_close /open_window /estimate /reparse=FALSE {F} /to={d}</value> <value name="OpusFlags" type="dword">0</value> </key> <value name="@default" type="sz">Copy</value> </key> <key name="Copy_Reparse_Points"> <key name="opusflags"> <value name="Position" type="sz">4</value> </key> <key name="command"> <value name="@default" type="sz_multi">/portableapps\System\FastCopy\fastcopy.exe /auto_close /open_window /estimate /reparse=TRUE /linkdest {F} /to={d}</value> <value name="OpusFlags" type="dword">0</value> </key> <value name="@default" type="sz">Copy and Keep Links</value> </key> <key name="Move"> <key name="opusflags"> <value name="Position" type="sz">5</value> <value name="BeginGroup" type="sz">1</value> </key> <key name="command"> <value name="@default" type="sz_multi">/portableapps\System\FastCopy\fastcopy.exe /cmd=move /auto_close /open_window /estimate /reparse=FALSE {F} /to={d}</value> <value name="OpusFlags" type="dword">0</value> </key> <value name="@default" type="sz">Move</value> </key> <key name="Move_Reparse_Points"> <key name="opusflags"> <value name="Position" type="sz">6</value> <value name="EndSubMenu" type="sz">1</value> </key> <key name="command"> <value name="@default" type="sz_multi">/portableapps\System\FastCopy\fastcopy.exe /cmd=move /auto_close /open_window /estimate /reparse=TRUE /linkdest {F} /to={d}</value> <value name="OpusFlags" type="dword">0</value> </key> <value name="@default" type="sz">Move and Keep Links</value> </key>