desktop_util: Make ShellExecute() result cast 64-bit-safe

int is not a sufficiently large type for casting a pointer type on
64-bit Windows, so use ptrdiff_t instead.

Tested by vultraz.