А если передавать имя открываемого файла вторым параметром функции?
X++:
static void jbCheckShellExecute(Args _args)
{
#define.TestFileNameRTF( @'C:\Test.rtf' )
#define.WordPadApplication( @'C:\Program Files\Windows NT\Accessories\wordpad.exe' )
;
WinAPI::shellExecute( #TestFileNameRTF ) ;
WinAPI::shellExecute( @'C:\Program Files\Windows NT\Accessories\wordpad.exe', #TestFileNameRTF ) ;
}