Microsoft maintains windows crate that should help with all of the linking issues you might encounter. In particular ShellExecuteW is defined here: https://microsoft.github.io/windows-docs-rs/doc/windows/Win32/UI/Shell/fn.ShellExecuteW.html
Yes, the crate is quite large, but I believe it is still worth doing to reduce maintenance burden and get guaranteed correct implementation from upstream.