+ screenshot
! Missing EOL
- dependency on VS2010 runtime
* Version 1.0.1
* New website screenshot
* New version of Regsvr64
+ Add LevelZap in approved shell exts
* 1.0.2
! Associate with "Directory" and not "Folder". This prevents us appearing for ZIP files and such.
! Honor NOUI flag when called from the shell.
- Goes recursive on directories.
- Selected file types are moved to a _meta folder in the root, instead of to the root.
- File association changed from Directory to AllFileSystemObjects since it handles both files and directories. The files in the root will be moved to the _meta folder or left in place.
- Configurable from registry.
- Changed all SL strings to ATL strings.
- Added OutputDebugStringEx function, debug output can be viewed in for example DebugView.
- Added batch build files.
- Optional explorer.exe restart added to PreLinkEvent in case the $(TargetPath) file write fails.

Technical discussion about folder renaming: The need for folder renaming because of a name conflict is now rare since no folders, only files, are moved to the root. It's rare that a file has the same name as a directory. The renaming function is still in place though, but renaming occurs only when needed to avoid confusing the user with foreign GUID named folders unnecessarily (in the dialog prompts and in the root after canceled move operations). Since the name conflicts are rare I suggest the renaming code is removed. The benefits are; no additional delay from the conflict check (PathFindFile), less complex code, no foreign GUID named folder whose original name may not be obvious to the user is left in the root after a canceled move operation. These benefits outweigh the downside of manual renaming on rare occasions.

Technical notes about user prompting: The "Don't move" user selection (in the move operation dialog "There is already a file with the same name in this location.") is treated more carefully by prompting the user if he still want to delete the non-empty directory to the Recycle Bin. Selecting Cancel still cancel both the move and the deletion.

Technical discussion about PreLinkEvent: To avoid restarting explorer.exe another file explorer that's less intrusive to restart can be used for testing instead. And I have plans for a Process Hacker command line option to unload the module instead, when that's available this PreLinkEvent can be removed altogether.

I'm fully committed to fix any bugs in my code. Please inform me about the issue and I will try to correct it. Please run DebugView when testing the code and provide the debug log with the issue report.
+ Testing files
- Test files (it doesn't work well)
+ Add recursion levels option. 0 is unlimited recursion.
+ MetaFiles "*" interpreted as no file ending.
+ Original folder/file name added to (GUID) renamed folder/file to retain identifiability.

Comment to point one: 1 level (and a blank MetaFiles value) should make it work as before the previous commit.
Comment to point three: If the user select Don't move to a Move File dialog the Delete Folder dialog will be presented. That's were identifiability is simplified if the original folder name is still in the name.
! Moved root level functions to class.
! Ctrl key on invoke perform recursive zap.
! Meta files only considered in recursive zap.
! Recursive zap always require user confirmation.
! Build configuration moved to property files.
+ Using native task dialog in Windows 6 and newer.
! Minor: Added quotes to PostBuildEvent (in case of spaces in path)
! Adding a missing recursion check in PathFindFile.
! Removing FOF_NOCONFIRMMKDIR because it's unnecessary and cause a hang in the case explained below. (It's unnecessary because LevelZap will never attempt to move items to a non-existing directory.)
! Moving the build configuration with RegisterOutput to a separate configuration. (Because registration is not desired if the intent is to move LevelZap.dll and run it from for example %ProgramFiles%\LevelZap.)
! Changing "exit" to "exit /b %ERRORLEVEL%" in batch build so that it doesn't exit a cmd.exe process.
+ Adding GetLastErrorEx message to MoveFolderEx.
- Removing explorer.exe restart in PreLinkEvent as it's unnecessary because another shell process such as the included mtexplorer.exe support most shell extension features and can therefore be used for testing instead of explorer.exe.
- Removing Regsvr64.exe as a developer is unlikely to use a 32-bit Windows.

In the sample file structure
	collision -> folder
	folder
	zap
	zap\collision -> zap
	zap\zap
(where the items followed by arrows indicate reparse points and their target) SHFileOperation with FOF_NOCONFIRMMKDIR will not display the "Item Not Found" dialog (for "zap\collision" that is otherwise displayed because it has moved "zap\zap" before "zap\collision" so "zap\collision" points to a non-existing folder) and will hang indefinitely.
Checked in by server upgrade
Upgrade: New Version of LabDefaultTemplate.xaml. To upgrade your build definitions, please visit the following link: http://go.microsoft.com/fwlink/?LinkId=254563
Moving trunk to root