I have a function which allows the user to edit a file, either with their default program, or choose a program using SHOpenFileDialog.
It is documented here: https:/