The command-line arguments passed to the hook program, in order, are:
- Repository path
- Commit transaction name
It seems that the pre-commit.exe file has to be placed inside the repo hooks directory. Once I moved it there, it got hit with the correct parameters. I think the Visual SVN pre-commit hook dialog actually creates a batch file, and it was losing the arguments when it called the executable.
I could probably also have tweaked the behaviour of that wrapper to make it work, but dropping the executable in there did the trick.