Application Verifier says there is an access violation when running the code:
var shi: TShellExecuteInfo; begin shi := Default(
As @RaymondChen said, it's a bug in Windows 10.
Raymond's too modest to accept reputation; so i use his answer as my own.