I'm in favor of making a final XP release declaration and move on. While it could be possible to try dynamically loading any newer API calls, I'm not sure it is worth the effort. I'm definitely NOT in favor of locking this down the the Windows XP-only level.
For the API I was just talking about, that's exactly what I tried to do. Dynamically load the API. It worked fine on the 64-bit build on Windows 7 64-bit. But crashed with the 32-bit ooRexx on Windows 64-bit.
I'm pretty sure I just had the linking specification wrong in the typedef for the function prototype. But, I couldn't seem to get it right, so I gave up. It is one of the COM Shell APIs
Anyway, even if I did some more research and got the typedef right, it's just a lot of extra work that could be better spent elsewhere.